d683cf90e7
Follow-up to the earlier approval re-check, which missed the prompt-to-prompt case: if the original and revised inputs both resolve to `prompt`, a handler could swap in different prompt-gated args that ran under approval granted for the original. Emit the `tool_call` event before the approval gate instead of after, so the gate resolves policy and shows the interactive prompt against the input that actually executes. The user always approves what runs, and deny/allow-to-prompt/prompt-to-prompt transitions are all covered by one gate rather than special-cased. A `deny` on the original input still short-circuits before the runner is touched, so an already-denied tool never emits `tool_call`. Tests: the approval prompt reflects the revised input, `tool_call` fires before `tool_approval_requested`, plus the existing deny/computer/ multi-handler cases.