ed457a9d4f
A `tool_call` handler (extension or hook) could previously only block a tool. It can now also return `input` to replace the arguments the tool executes with, so a handler can normalize or rewrite a built-in's input without reimplementing the tool. The returned object is the raw execution input passed to the tool's `execute` (the handler owns its correctness), not the normalized `event.input` view, which may carry derived gate-only fields (e.g. hashline `edit` `path`/`paths`) that are not real parameters. It is ignored when `block` is set, and not applied to `computer` tool calls whose event input is a synthetic actions view rather than the real params. When multiple handlers set `input`, the last one wins. Honored in both the extension and hook tool wrappers; documented in docs/extensions.md, docs/hooks.md, and docs/skills/authoring-hooks.md.