{ "_comment": [ "grok-glance hook wiring.", "Passive events use type=http: they POST straight into the daemon with no process spawn,", "so they cost ~nothing per tool call and fail open if the daemon is not running.", "SessionStart uses type=command because it is what boots the daemon.", "PreToolUse is wired twice on purpose: an http entry records every tool call for the", "timeline, and a command entry gates only risky tools, because only a command hook has a", "documented way to return a deny decision.", "If you change the port in ~/.grok/glance/config.json, run `glance sync-hooks` to rewrite", "the URLs below, or edit them by hand." ], "hooks": { "SessionStart": [ { "hooks": [ { "type": "command", "command": "node \"$GROK_PLUGIN_ROOT/bin/glance-up.mjs\"", "timeout": 20 } ] } ], "PreToolUse": [ { "hooks": [ { "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 } ] }, { "matcher": "^(Bash|Write|Edit|MultiEdit|NotebookEdit)$", "hooks": [ { "type": "command", "command": "node \"$GROK_PLUGIN_ROOT/bin/glance-approve.mjs\"", "timeout": 125 } ] } ], "PostToolUse": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "PostToolUseFailure": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "UserPromptSubmit": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "PermissionDenied": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "Notification": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "Stop": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "StopFailure": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "SubagentStart": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "SubagentStop": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "PreCompact": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "PostCompact": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ], "SessionEnd": [ { "hooks": [{ "type": "http", "url": "http://127.0.0.1:8791/hook/record", "timeout": 3 }] } ] } }