CHAPTER 46: Inspect allowed calls and a bounded repeat

Boards: 46a and 46b.
Read the surrounding chapter before this lab. All examples are original and synthetic.

PREDICT
Predict the failing check for each proposed action before running. The loop uses unittest.mock.patch, a controlled replacement introduced in Chapter 46: it intercepts the provider function with fixed responses. No model or network is used.

RUN
From the companion root, run:
python visual_labs/ch46/walkthrough.py
Use python3 if that is your configured command.

COMPARE
Compare the printed values and explanations with both boards. Read expected_output.txt after making your prediction. An assert checks a known expected result and stops if it differs. Temporary output folders are removed after the demonstrations; original course files are not edited.

CHANGE ONE THING
Change the repeated query in only the second scripted response to returns and supply a final response, following test_ai.py's successful mock example. Expected: two distinct policy reads may occur, then a draft can be returned. A third tool request would fail the tool budget. Merely changing call_id does not make an identical action new.

EXPLAIN
State which input changed, which instruction handled that change, and why the resulting output is appropriate. If your prediction differs, identify the first step at which it diverges. Return to the surrounding lesson before adding more complexity.
