{ "hooks": { "PreCompact": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason pre-compact" } ] } ], "SessionStart": [ { "matcher": "compact", "hooks": [ { "type": "command", "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason session-start-compact" } ] }, { "matcher": "resume|clear", "hooks": [ { "type": "command", "command": "python3 \"$HOME/.config/mosaic/tools/lease-broker/revoke-lease.py\" --runtime claude --reason session-start-rollover --bump-generation" } ] } ], "UserPromptSubmit": [ { "matcher": "^/mosaic-promote$", "hooks": [ { "type": "command", "command": "python3 ~/.config/mosaic/tools/lease-broker/promote-begin.py", "timeout": 15 } ] } ], "PreToolUse": [ { "matcher": ".*", "hooks": [ { "type": "command", "command": "python3 ~/.config/mosaic/tools/lease-broker/mutator-gate.py --runtime claude --recovery-command ~/.config/mosaic/tools/lease-broker/recover-context.py", "timeout": 3 } ] } ], "Stop": [ { "hooks": [ { "type": "command", "command": "python3 ~/.config/mosaic/tools/lease-broker/receipt-observer-client.py --runtime claude --latest-entry; observer_status=$?; python3 ~/.config/mosaic/tools/lease-broker/promote-complete.py; exit $observer_status", "timeout": 15 } ] } ] } }