hooks / pretooluse-rewrite · 約 8 分

updatedInput で書き換える

permissionDecision が allow のときだけ updatedInput を返します。

学習目標

書き換えは permissionDecisionallow のときだけ updatedInput を付けます。Bash と apply_patch では updatedInput.command が文字列である必要があります。 [codex-hooks]

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "allow",
    "updatedInput": { "command": "echo rewritten" }
  }
}

前提

deny スクリプトの構造が分かっていること。

なぜ必要か

危険なフラグを落とす、社内ラッパーを前置する、といった用途です。

実行場所

Web実習 (browser) は WebContainer の Node で公式仕様の入力例を流す練習です。Codex 本体の hook 実行ではありません。local-bridge では hooks.json の PreToolUse ハンドラ command をこのスクリプトに向け、/hooks で再信頼します。

echo '{"tool_input":{"command":"echo original"}}' | node .codex/hooks/pre_tool_use_rewrite.mjs

成功結果

スクリプトが updatedInputallow を含みます。

失敗対処

updatedInput を deny と一緒に返すとエラーになります。allow のときだけ返します。 [codex-hooks]

このレッスンで接続する

ページを移動するとブラウザ内実習の接続とファイルは消えます。演習の直前に、このパネルから明示的に再接続してください(自動では戻りません)。