@lannguyensi/harness 0.63.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/README.md +46 -42
- package/dist/cli/add/index.js +17 -21
- package/dist/cli/add/index.js.map +1 -1
- package/dist/cli/adopt/derive.d.ts +2 -2
- package/dist/cli/adopt/derive.js +2 -19
- package/dist/cli/adopt/derive.js.map +1 -1
- package/dist/cli/adopt/index.d.ts +1 -1
- package/dist/cli/adopt/index.js +1 -12
- package/dist/cli/adopt/index.js.map +1 -1
- package/dist/cli/apply/apply.d.ts +20 -35
- package/dist/cli/apply/apply.js +61 -136
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/apply/generate-codex-config.js +10 -58
- package/dist/cli/apply/generate-codex-config.js.map +1 -1
- package/dist/cli/apply/generate-memory-index.js +1 -2
- package/dist/cli/apply/generate-memory-index.js.map +1 -1
- package/dist/cli/apply/generate-opencode-config.d.ts +2 -10
- package/dist/cli/apply/generate-opencode-config.js +74 -113
- package/dist/cli/apply/generate-opencode-config.js.map +1 -1
- package/dist/cli/apply/generate-settings.d.ts +11 -64
- package/dist/cli/apply/generate-settings.js +27 -132
- package/dist/cli/apply/generate-settings.js.map +1 -1
- package/dist/cli/apply/index.d.ts +1 -1
- package/dist/cli/apply/index.js +1 -1
- package/dist/cli/apply/index.js.map +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +153 -1
- package/dist/cli/apply/install-codex-config.js +445 -70
- package/dist/cli/apply/install-codex-config.js.map +1 -1
- package/dist/cli/apply/next-steps.d.ts +7 -0
- package/dist/cli/apply/next-steps.js +13 -1
- package/dist/cli/apply/next-steps.js.map +1 -1
- package/dist/cli/bounded-stdin.d.ts +0 -23
- package/dist/cli/bounded-stdin.js +2 -49
- package/dist/cli/bounded-stdin.js.map +1 -1
- package/dist/cli/describe.d.ts +1 -1
- package/dist/cli/describe.js +0 -3
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/diff/engine.d.ts +0 -11
- package/dist/cli/diff/engine.js +1 -17
- package/dist/cli/diff/engine.js.map +1 -1
- package/dist/cli/diff/index.js +14 -25
- package/dist/cli/diff/index.js.map +1 -1
- package/dist/cli/doctor/claude-mcp.d.ts +4 -19
- package/dist/cli/doctor/claude-mcp.js +11 -22
- package/dist/cli/doctor/claude-mcp.js.map +1 -1
- package/dist/cli/doctor/codex.d.ts +12 -14
- package/dist/cli/doctor/codex.js +31 -144
- package/dist/cli/doctor/codex.js.map +1 -1
- package/dist/cli/doctor/format.js +23 -338
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/hook-liveness.d.ts +56 -0
- package/dist/cli/doctor/hook-liveness.js +455 -0
- package/dist/cli/doctor/hook-liveness.js.map +1 -0
- package/dist/cli/doctor/index.d.ts +13 -87
- package/dist/cli/doctor/index.js +57 -705
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/opencode.d.ts +2 -1
- package/dist/cli/doctor/opencode.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +21 -378
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/drain-stdio.d.ts +31 -0
- package/dist/cli/drain-stdio.js +76 -0
- package/dist/cli/drain-stdio.js.map +1 -0
- package/dist/cli/export.d.ts +3 -1
- package/dist/cli/export.js +7 -16
- package/dist/cli/export.js.map +1 -1
- package/dist/cli/gate/codex-disable.d.ts +29 -0
- package/dist/cli/gate/codex-disable.js +195 -0
- package/dist/cli/gate/codex-disable.js.map +1 -0
- package/dist/cli/gate/codex-enable.d.ts +41 -0
- package/dist/cli/gate/codex-enable.js +127 -0
- package/dist/cli/gate/codex-enable.js.map +1 -0
- package/dist/cli/gate/codex-snapshot.d.ts +208 -0
- package/dist/cli/gate/codex-snapshot.js +402 -0
- package/dist/cli/gate/codex-snapshot.js.map +1 -0
- package/dist/cli/gate/disable.d.ts +9 -0
- package/dist/cli/gate/disable.js +263 -28
- package/dist/cli/gate/disable.js.map +1 -1
- package/dist/cli/gate/enable.d.ts +26 -6
- package/dist/cli/gate/enable.js +152 -80
- package/dist/cli/gate/enable.js.map +1 -1
- package/dist/cli/gate/link-chain.d.ts +53 -0
- package/dist/cli/gate/link-chain.js +122 -0
- package/dist/cli/gate/link-chain.js.map +1 -0
- package/dist/cli/gate/snapshot.d.ts +289 -12
- package/dist/cli/gate/snapshot.js +481 -22
- package/dist/cli/gate/snapshot.js.map +1 -1
- package/dist/cli/index.d.ts +0 -9
- package/dist/cli/index.js +15 -2607
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.d.ts +3 -6
- package/dist/cli/init/composer.js +6 -370
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/dependencies.d.ts +1 -2
- package/dist/cli/init/dependencies.js +4 -80
- package/dist/cli/init/dependencies.js.map +1 -1
- package/dist/cli/init/detect.js +5 -4
- package/dist/cli/init/detect.js.map +1 -1
- package/dist/cli/init/interactive.d.ts +1 -23
- package/dist/cli/init/interactive.js +33 -247
- package/dist/cli/init/interactive.js.map +1 -1
- package/dist/cli/init/profiles.d.ts +2 -2
- package/dist/cli/init/profiles.js +51 -243
- package/dist/cli/init/profiles.js.map +1 -1
- package/dist/cli/init/templates.d.ts +2 -37
- package/dist/cli/init/templates.js +25 -1237
- package/dist/cli/init/templates.js.map +1 -1
- package/dist/cli/list.d.ts +1 -1
- package/dist/cli/list.js +1 -38
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/loader.d.ts +15 -1
- package/dist/cli/loader.js +56 -39
- package/dist/cli/loader.js.map +1 -1
- package/dist/cli/main.js +7 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migrate-home/index.js +2 -2
- package/dist/cli/migrate-home/index.js.map +1 -1
- package/dist/cli/pack/add.js +1 -1
- package/dist/cli/pack/add.js.map +1 -1
- package/dist/cli/pack/hook-bootstrap.d.ts +5 -164
- package/dist/cli/pack/hook-bootstrap.js +15 -291
- package/dist/cli/pack/hook-bootstrap.js.map +1 -1
- package/dist/cli/pack/hook-branch-protection.d.ts +28 -21
- package/dist/cli/pack/hook-branch-protection.js +365 -340
- package/dist/cli/pack/hook-branch-protection.js.map +1 -1
- package/dist/cli/pack/index.d.ts +0 -1
- package/dist/cli/pack/index.js +0 -1
- package/dist/cli/pack/index.js.map +1 -1
- package/dist/cli/pack/list.js +1 -6
- package/dist/cli/pack/list.js.map +1 -1
- package/dist/cli/pack/mutate.d.ts +7 -9
- package/dist/cli/pack/mutate.js +6 -9
- package/dist/cli/pack/mutate.js.map +1 -1
- package/dist/cli/pack/reseed.d.ts +2 -2
- package/dist/cli/pack/reseed.js +16 -22
- package/dist/cli/pack/reseed.js.map +1 -1
- package/dist/cli/register-gate-group.d.ts +5 -0
- package/dist/cli/register-gate-group.js +348 -0
- package/dist/cli/register-gate-group.js.map +1 -0
- package/dist/cli/register-inspect-group.d.ts +6 -0
- package/dist/cli/register-inspect-group.js +189 -0
- package/dist/cli/register-inspect-group.js.map +1 -0
- package/dist/cli/register-operator-lifecycle.d.ts +5 -0
- package/dist/cli/register-operator-lifecycle.js +20 -0
- package/dist/cli/register-operator-lifecycle.js.map +1 -0
- package/dist/cli/register-pack-group.d.ts +5 -0
- package/dist/cli/register-pack-group.js +134 -0
- package/dist/cli/register-pack-group.js.map +1 -0
- package/dist/cli/register-setup-group.d.ts +5 -0
- package/dist/cli/register-setup-group.js +495 -0
- package/dist/cli/register-setup-group.js.map +1 -0
- package/dist/cli/remove/index.d.ts +0 -14
- package/dist/cli/remove/index.js +2 -115
- package/dist/cli/remove/index.js.map +1 -1
- package/dist/cli/remove/mutate.d.ts +0 -2
- package/dist/cli/remove/mutate.js +1 -19
- package/dist/cli/remove/mutate.js.map +1 -1
- package/dist/cli/remove/register.d.ts +5 -0
- package/dist/cli/remove/register.js +25 -0
- package/dist/cli/remove/register.js.map +1 -0
- package/dist/cli/shell-quote.d.ts +7 -0
- package/dist/cli/shell-quote.js +17 -0
- package/dist/cli/shell-quote.js.map +1 -0
- package/dist/cli/uninstall/index.d.ts +4 -2
- package/dist/cli/uninstall/index.js +15 -7
- package/dist/cli/uninstall/index.js.map +1 -1
- package/dist/cli/uninstall/register.d.ts +5 -0
- package/dist/cli/uninstall/register.js +171 -0
- package/dist/cli/uninstall/register.js.map +1 -0
- package/dist/cli/uninstall/snapshot.d.ts +15 -0
- package/dist/cli/uninstall/snapshot.js +38 -0
- package/dist/cli/uninstall/snapshot.js.map +1 -1
- package/dist/cli/validate/checks.d.ts +0 -77
- package/dist/cli/validate/checks.js +3 -1049
- package/dist/cli/validate/checks.js.map +1 -1
- package/dist/cli/validate/index.js +19 -15
- package/dist/cli/validate/index.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/io/claude-mcp.d.ts +1 -1
- package/dist/io/claude-mcp.js +27 -14
- package/dist/io/claude-mcp.js.map +1 -1
- package/dist/io/harness-lock.js +2 -2
- package/dist/io/harness-lock.js.map +1 -1
- package/dist/io/lock.d.ts +0 -26
- package/dist/io/lock.js +10 -27
- package/dist/io/lock.js.map +1 -1
- package/dist/io/merge-settings.js +6 -4
- package/dist/io/merge-settings.js.map +1 -1
- package/dist/io/project-name.d.ts +22 -39
- package/dist/io/project-name.js +25 -42
- package/dist/io/project-name.js.map +1 -1
- package/dist/io/read-regular-file.d.ts +103 -40
- package/dist/io/read-regular-file.js +196 -35
- package/dist/io/read-regular-file.js.map +1 -1
- package/dist/io/restart-hints.js +3 -6
- package/dist/io/restart-hints.js.map +1 -1
- package/dist/io/version-compare.d.ts +1 -3
- package/dist/io/version-compare.js +1 -3
- package/dist/io/version-compare.js.map +1 -1
- package/dist/io/write-regular-file.d.ts +30 -0
- package/dist/io/write-regular-file.js +85 -0
- package/dist/io/write-regular-file.js.map +1 -0
- package/dist/overrides/index.d.ts +1 -0
- package/dist/overrides/index.js +1 -0
- package/dist/overrides/index.js.map +1 -1
- package/dist/overrides/merge-layers.d.ts +43 -0
- package/dist/overrides/merge-layers.js +76 -0
- package/dist/overrides/merge-layers.js.map +1 -0
- package/dist/overrides/merge.d.ts +16 -0
- package/dist/overrides/merge.js +21 -8
- package/dist/overrides/merge.js.map +1 -1
- package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
- package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
- package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
- package/dist/policy-packs/builtin/branch-protection.js +56 -89
- package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
- package/dist/policy-packs/config-check.d.ts +7 -5
- package/dist/policy-packs/config-check.js +2 -2
- package/dist/policy-packs/config-check.js.map +1 -1
- package/dist/policy-packs/expand.d.ts +1 -3
- package/dist/policy-packs/expand.js +5 -42
- package/dist/policy-packs/expand.js.map +1 -1
- package/dist/policy-packs/index.d.ts +3 -3
- package/dist/policy-packs/index.js +2 -2
- package/dist/policy-packs/index.js.map +1 -1
- package/dist/policy-packs/registry.d.ts +9 -38
- package/dist/policy-packs/registry.js +5 -65
- package/dist/policy-packs/registry.js.map +1 -1
- package/dist/policy-packs/runtime.d.ts +0 -4
- package/dist/policy-packs/runtime.js +9 -22
- package/dist/policy-packs/runtime.js.map +1 -1
- package/dist/policy-packs/types.d.ts +0 -19
- package/dist/policy-packs/ux-compare.d.ts +1 -11
- package/dist/policy-packs/ux-compare.js +6 -42
- package/dist/policy-packs/ux-compare.js.map +1 -1
- package/dist/policy-packs/ux-drift-check.d.ts +5 -5
- package/dist/policy-packs/ux-drift-check.js +17 -22
- package/dist/policy-packs/ux-drift-check.js.map +1 -1
- package/dist/policy-packs/version-check.d.ts +5 -26
- package/dist/policy-packs/version-check.js +19 -74
- package/dist/policy-packs/version-check.js.map +1 -1
- package/dist/probes/memory.d.ts +1 -1
- package/dist/probes/memory.js +1 -1
- package/dist/probes/memory.js.map +1 -1
- package/dist/runtime/agent-facing.d.ts +9 -0
- package/dist/runtime/agent-facing.js +28 -14
- package/dist/runtime/agent-facing.js.map +1 -1
- package/dist/runtime/bounded-text.d.ts +15 -0
- package/dist/runtime/bounded-text.js +27 -0
- package/dist/runtime/bounded-text.js.map +1 -0
- package/dist/runtime/git-branch.d.ts +125 -0
- package/dist/runtime/git-branch.js +381 -0
- package/dist/runtime/git-branch.js.map +1 -0
- package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
- package/dist/runtime/hermetic-spawn-guard.js +24 -34
- package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
- package/dist/runtime/home-dir.js +3 -2
- package/dist/runtime/home-dir.js.map +1 -1
- package/dist/runtime/tool-name-aliases.d.ts +0 -6
- package/dist/runtime/tool-name-aliases.js +5 -18
- package/dist/runtime/tool-name-aliases.js.map +1 -1
- package/dist/schema/grounding.d.ts +7 -54
- package/dist/schema/grounding.js +10 -12
- package/dist/schema/grounding.js.map +1 -1
- package/dist/schema/hooks.d.ts +39 -136
- package/dist/schema/hooks.js +3 -6
- package/dist/schema/hooks.js.map +1 -1
- package/dist/schema/index.d.ts +114 -3828
- package/dist/schema/index.js +41 -80
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/memory.d.ts +54 -131
- package/dist/schema/memory.js +2 -2
- package/dist/schema/memory.js.map +1 -1
- package/dist/schema/policy-packs.d.ts +3 -45
- package/dist/schema/policy-packs.js +7 -13
- package/dist/schema/policy-packs.js.map +1 -1
- package/dist/schema/policy-ux.d.ts +7 -0
- package/dist/schema/policy-ux.js +18 -0
- package/dist/schema/policy-ux.js.map +1 -0
- package/dist/schema/removed-keys.d.ts +185 -0
- package/dist/schema/removed-keys.js +531 -0
- package/dist/schema/removed-keys.js.map +1 -0
- package/dist/schema/tools.d.ts +30 -268
- package/dist/schema/tools.js +4 -4
- package/dist/schema/tools.js.map +1 -1
- package/package.json +5 -16
- package/dist/cli/approve/branch-protection.d.ts +0 -69
- package/dist/cli/approve/branch-protection.js +0 -144
- package/dist/cli/approve/branch-protection.js.map +0 -1
- package/dist/cli/approve/risk.d.ts +0 -112
- package/dist/cli/approve/risk.js +0 -197
- package/dist/cli/approve/risk.js.map +0 -1
- package/dist/cli/approve/stdin-report.d.ts +0 -57
- package/dist/cli/approve/stdin-report.js +0 -145
- package/dist/cli/approve/stdin-report.js.map +0 -1
- package/dist/cli/approve/understanding.d.ts +0 -410
- package/dist/cli/approve/understanding.js +0 -996
- package/dist/cli/approve/understanding.js.map +0 -1
- package/dist/cli/audit.d.ts +0 -80
- package/dist/cli/audit.js +0 -252
- package/dist/cli/audit.js.map +0 -1
- package/dist/cli/delegate/index.d.ts +0 -76
- package/dist/cli/delegate/index.js +0 -443
- package/dist/cli/delegate/index.js.map +0 -1
- package/dist/cli/doctor/auto-approve-mode.d.ts +0 -37
- package/dist/cli/doctor/auto-approve-mode.js +0 -80
- package/dist/cli/doctor/auto-approve-mode.js.map +0 -1
- package/dist/cli/doctor/bypass-without-auto-approve.d.ts +0 -38
- package/dist/cli/doctor/bypass-without-auto-approve.js +0 -95
- package/dist/cli/doctor/bypass-without-auto-approve.js.map +0 -1
- package/dist/cli/doctor/codex-config-drift.d.ts +0 -28
- package/dist/cli/doctor/codex-config-drift.js +0 -240
- package/dist/cli/doctor/codex-config-drift.js.map +0 -1
- package/dist/cli/doctor/rogue-ledger.d.ts +0 -53
- package/dist/cli/doctor/rogue-ledger.js +0 -153
- package/dist/cli/doctor/rogue-ledger.js.map +0 -1
- package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
- package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
- package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
- package/dist/cli/doctor/settings-drift.d.ts +0 -25
- package/dist/cli/doctor/settings-drift.js +0 -213
- package/dist/cli/doctor/settings-drift.js.map +0 -1
- package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
- package/dist/cli/doctor/toolchain-parity.js +0 -154
- package/dist/cli/doctor/toolchain-parity.js.map +0 -1
- package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
- package/dist/cli/doctor/ug-auto-approvals.js +0 -91
- package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
- package/dist/cli/doctor/ug-delegations.d.ts +0 -26
- package/dist/cli/doctor/ug-delegations.js +0 -121
- package/dist/cli/doctor/ug-delegations.js.map +0 -1
- package/dist/cli/doctor/ug-inflight.d.ts +0 -35
- package/dist/cli/doctor/ug-inflight.js +0 -57
- package/dist/cli/doctor/ug-inflight.js.map +0 -1
- package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
- package/dist/cli/doctor/understanding-mode-env.js +0 -98
- package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
- package/dist/cli/dry-run.d.ts +0 -46
- package/dist/cli/dry-run.js +0 -250
- package/dist/cli/dry-run.js.map +0 -1
- package/dist/cli/event-input.d.ts +0 -28
- package/dist/cli/event-input.js +0 -73
- package/dist/cli/event-input.js.map +0 -1
- package/dist/cli/explain-action.d.ts +0 -20
- package/dist/cli/explain-action.js +0 -27
- package/dist/cli/explain-action.js.map +0 -1
- package/dist/cli/explain-policy.d.ts +0 -135
- package/dist/cli/explain-policy.js +0 -266
- package/dist/cli/explain-policy.js.map +0 -1
- package/dist/cli/explain.d.ts +0 -31
- package/dist/cli/explain.js +0 -159
- package/dist/cli/explain.js.map +0 -1
- package/dist/cli/gc/index.d.ts +0 -63
- package/dist/cli/gc/index.js +0 -566
- package/dist/cli/gc/index.js.map +0 -1
- package/dist/cli/pack/approve-escape.d.ts +0 -19
- package/dist/cli/pack/approve-escape.js +0 -190
- package/dist/cli/pack/approve-escape.js.map +0 -1
- package/dist/cli/pack/auto-approve-path.d.ts +0 -146
- package/dist/cli/pack/auto-approve-path.js +0 -462
- package/dist/cli/pack/auto-approve-path.js.map +0 -1
- package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
- package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
- package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
- package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
- package/dist/cli/pack/hook-codex-stop.js +0 -329
- package/dist/cli/pack/hook-codex-stop.js.map +0 -1
- package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
- package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
- package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
- package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
- package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
- package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
- package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
- package/dist/cli/pack/hook-post-merge-gate.js +0 -277
- package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
- package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
- package/dist/cli/pack/hook-post-tool-use.js +0 -137
- package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
- package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
- package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
- package/dist/cli/pack/hook-runtime-reality.js +0 -210
- package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
- package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
- package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -337
- package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
- package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
- package/dist/cli/pack/hook-solution-acceptance.js +0 -530
- package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
- package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
- package/dist/cli/pack/hook-stay-in-scope.js +0 -128
- package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
- package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
- package/dist/cli/pack/hook-subagent-start.js +0 -88
- package/dist/cli/pack/hook-subagent-start.js.map +0 -1
- package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
- package/dist/cli/pack/hook-subagent-stop.js +0 -41
- package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
- package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
- package/dist/cli/pack/hook-track-active-claim.js +0 -275
- package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
- package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
- package/dist/cli/pack/transcript-report-scan.js +0 -359
- package/dist/cli/pack/transcript-report-scan.js.map +0 -1
- package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
- package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
- package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
- package/dist/cli/pack/upgrade.d.ts +0 -32
- package/dist/cli/pack/upgrade.js +0 -273
- package/dist/cli/pack/upgrade.js.map +0 -1
- package/dist/cli/pause/index.d.ts +0 -113
- package/dist/cli/pause/index.js +0 -251
- package/dist/cli/pause/index.js.map +0 -1
- package/dist/cli/pause-check.d.ts +0 -22
- package/dist/cli/pause-check.js +0 -54
- package/dist/cli/pause-check.js.map +0 -1
- package/dist/cli/policy/intercept.d.ts +0 -233
- package/dist/cli/policy/intercept.js +0 -1020
- package/dist/cli/policy/intercept.js.map +0 -1
- package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
- package/dist/cli/policy/risk-envelope-enrichment.js +0 -108
- package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
- package/dist/cli/record/index.d.ts +0 -81
- package/dist/cli/record/index.js +0 -348
- package/dist/cli/record/index.js.map +0 -1
- package/dist/cli/resolve-env.d.ts +0 -32
- package/dist/cli/resolve-env.js +0 -47
- package/dist/cli/resolve-env.js.map +0 -1
- package/dist/cli/session-export/index.d.ts +0 -46
- package/dist/cli/session-export/index.js +0 -169
- package/dist/cli/session-export/index.js.map +0 -1
- package/dist/cli/session-export/redact.d.ts +0 -22
- package/dist/cli/session-export/redact.js +0 -47
- package/dist/cli/session-export/redact.js.map +0 -1
- package/dist/cli/session-export/transcript.d.ts +0 -24
- package/dist/cli/session-export/transcript.js +0 -164
- package/dist/cli/session-export/transcript.js.map +0 -1
- package/dist/cli/session-start/branch-check.d.ts +0 -18
- package/dist/cli/session-start/branch-check.js +0 -140
- package/dist/cli/session-start/branch-check.js.map +0 -1
- package/dist/cli/session-start/index.d.ts +0 -121
- package/dist/cli/session-start/index.js +0 -591
- package/dist/cli/session-start/index.js.map +0 -1
- package/dist/cli/session-start/shared-options.d.ts +0 -103
- package/dist/cli/session-start/shared-options.js +0 -107
- package/dist/cli/session-start/shared-options.js.map +0 -1
- package/dist/cli/session-start/stale-base-check.d.ts +0 -46
- package/dist/cli/session-start/stale-base-check.js +0 -352
- package/dist/cli/session-start/stale-base-check.js.map +0 -1
- package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
- package/dist/cli/session-start/toolchain-parity.js +0 -797
- package/dist/cli/session-start/toolchain-parity.js.map +0 -1
- package/dist/cli/smoke/assertions.d.ts +0 -46
- package/dist/cli/smoke/assertions.js +0 -170
- package/dist/cli/smoke/assertions.js.map +0 -1
- package/dist/cli/smoke/index.d.ts +0 -76
- package/dist/cli/smoke/index.js +0 -245
- package/dist/cli/smoke/index.js.map +0 -1
- package/dist/cli/smoke/runner.d.ts +0 -55
- package/dist/cli/smoke/runner.js +0 -134
- package/dist/cli/smoke/runner.js.map +0 -1
- package/dist/cli/smoke/stream-parser.d.ts +0 -65
- package/dist/cli/smoke/stream-parser.js +0 -115
- package/dist/cli/smoke/stream-parser.js.map +0 -1
- package/dist/cli/test-risk.d.ts +0 -26
- package/dist/cli/test-risk.js +0 -34
- package/dist/cli/test-risk.js.map +0 -1
- package/dist/io/display-path.d.ts +0 -11
- package/dist/io/display-path.js +0 -29
- package/dist/io/display-path.js.map +0 -1
- package/dist/io/duration.d.ts +0 -5
- package/dist/io/duration.js +0 -50
- package/dist/io/duration.js.map +0 -1
- package/dist/io/extract.d.ts +0 -79
- package/dist/io/extract.js +0 -226
- package/dist/io/extract.js.map +0 -1
- package/dist/io/ledger-record.d.ts +0 -83
- package/dist/io/ledger-record.js +0 -301
- package/dist/io/ledger-record.js.map +0 -1
- package/dist/io/read-json-dir-entries.d.ts +0 -36
- package/dist/io/read-json-dir-entries.js +0 -48
- package/dist/io/read-json-dir-entries.js.map +0 -1
- package/dist/io/safe-json-parse.d.ts +0 -5
- package/dist/io/safe-json-parse.js +0 -21
- package/dist/io/safe-json-parse.js.map +0 -1
- package/dist/policies/index.d.ts +0 -5
- package/dist/policies/index.js +0 -6
- package/dist/policies/index.js.map +0 -1
- package/dist/policies/ledger-client.d.ts +0 -113
- package/dist/policies/ledger-client.js +0 -500
- package/dist/policies/ledger-client.js.map +0 -1
- package/dist/policies/producers.d.ts +0 -12
- package/dist/policies/producers.js +0 -61
- package/dist/policies/producers.js.map +0 -1
- package/dist/policies/requires.d.ts +0 -75
- package/dist/policies/requires.js +0 -240
- package/dist/policies/requires.js.map +0 -1
- package/dist/policies/timestamp.d.ts +0 -14
- package/dist/policies/timestamp.js +0 -36
- package/dist/policies/timestamp.js.map +0 -1
- package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
- package/dist/policy-packs/builtin/permission-profiles.js +0 -74
- package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
- package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
- package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
- package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
- package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
- package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -618
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -93
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -620
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1047
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
- package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1074
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
- package/dist/policy-packs/permission-translator.d.ts +0 -9
- package/dist/policy-packs/permission-translator.js +0 -76
- package/dist/policy-packs/permission-translator.js.map +0 -1
- package/dist/runtime/action-envelope.d.ts +0 -64
- package/dist/runtime/action-envelope.js +0 -46
- package/dist/runtime/action-envelope.js.map +0 -1
- package/dist/runtime/approval-signing.d.ts +0 -111
- package/dist/runtime/approval-signing.js +0 -384
- package/dist/runtime/approval-signing.js.map +0 -1
- package/dist/runtime/bash-match-facts.d.ts +0 -60
- package/dist/runtime/bash-match-facts.js +0 -196
- package/dist/runtime/bash-match-facts.js.map +0 -1
- package/dist/runtime/bash-match-registry.d.ts +0 -112
- package/dist/runtime/bash-match-registry.js +0 -406
- package/dist/runtime/bash-match-registry.js.map +0 -1
- package/dist/runtime/bash-prefix-parse.d.ts +0 -31
- package/dist/runtime/bash-prefix-parse.js +0 -576
- package/dist/runtime/bash-prefix-parse.js.map +0 -1
- package/dist/runtime/command-normalize.d.ts +0 -658
- package/dist/runtime/command-normalize.js +0 -2410
- package/dist/runtime/command-normalize.js.map +0 -1
- package/dist/runtime/deletion-target-resolve.d.ts +0 -28
- package/dist/runtime/deletion-target-resolve.js +0 -1078
- package/dist/runtime/deletion-target-resolve.js.map +0 -1
- package/dist/runtime/destructive-shell-floor.d.ts +0 -19
- package/dist/runtime/destructive-shell-floor.js +0 -611
- package/dist/runtime/destructive-shell-floor.js.map +0 -1
- package/dist/runtime/environment-resolver.d.ts +0 -36
- package/dist/runtime/environment-resolver.js +0 -138
- package/dist/runtime/environment-resolver.js.map +0 -1
- package/dist/runtime/git-context.d.ts +0 -201
- package/dist/runtime/git-context.js +0 -422
- package/dist/runtime/git-context.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -12
- package/dist/runtime/index.js +0 -13
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/intercept.d.ts +0 -494
- package/dist/runtime/intercept.js +0 -1313
- package/dist/runtime/intercept.js.map +0 -1
- package/dist/runtime/kube-context.d.ts +0 -16
- package/dist/runtime/kube-context.js +0 -63
- package/dist/runtime/kube-context.js.map +0 -1
- package/dist/runtime/kubectl-target-parse.d.ts +0 -31
- package/dist/runtime/kubectl-target-parse.js +0 -249
- package/dist/runtime/kubectl-target-parse.js.map +0 -1
- package/dist/runtime/ledger-add.d.ts +0 -16
- package/dist/runtime/ledger-add.js +0 -150
- package/dist/runtime/ledger-add.js.map +0 -1
- package/dist/runtime/ledger-writer.d.ts +0 -27
- package/dist/runtime/ledger-writer.js +0 -46
- package/dist/runtime/ledger-writer.js.map +0 -1
- package/dist/runtime/pause-sentinel.d.ts +0 -60
- package/dist/runtime/pause-sentinel.js +0 -156
- package/dist/runtime/pause-sentinel.js.map +0 -1
- package/dist/runtime/pending-approval.d.ts +0 -23
- package/dist/runtime/pending-approval.js +0 -67
- package/dist/runtime/pending-approval.js.map +0 -1
- package/dist/runtime/read-only-bash.d.ts +0 -141
- package/dist/runtime/read-only-bash.js +0 -2204
- package/dist/runtime/read-only-bash.js.map +0 -1
- package/dist/runtime/recovery-git-commit.d.ts +0 -22
- package/dist/runtime/recovery-git-commit.js +0 -284
- package/dist/runtime/recovery-git-commit.js.map +0 -1
- package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
- package/dist/runtime/reject-malformed-session-id.js +0 -16
- package/dist/runtime/reject-malformed-session-id.js.map +0 -1
- package/dist/runtime/risk-classifier.d.ts +0 -38
- package/dist/runtime/risk-classifier.js +0 -311
- package/dist/runtime/risk-classifier.js.map +0 -1
- package/dist/runtime/session-id.d.ts +0 -113
- package/dist/runtime/session-id.js +0 -193
- package/dist/runtime/session-id.js.map +0 -1
- package/dist/runtime/shell-word.d.ts +0 -62
- package/dist/runtime/shell-word.js +0 -410
- package/dist/runtime/shell-word.js.map +0 -1
- package/dist/runtime/task-providers/agent-tasks.d.ts +0 -103
- package/dist/runtime/task-providers/agent-tasks.js +0 -245
- package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
- package/dist/runtime/when-eval.d.ts +0 -62
- package/dist/runtime/when-eval.js +0 -212
- package/dist/runtime/when-eval.js.map +0 -1
- package/dist/runtime/workflow-policies.d.ts +0 -207
- package/dist/runtime/workflow-policies.js +0 -596
- package/dist/runtime/workflow-policies.js.map +0 -1
- package/dist/schema/audit.d.ts +0 -71
- package/dist/schema/audit.js +0 -32
- package/dist/schema/audit.js.map +0 -1
- package/dist/schema/doctor.d.ts +0 -25
- package/dist/schema/doctor.js +0 -23
- package/dist/schema/doctor.js.map +0 -1
- package/dist/schema/environments.d.ts +0 -215
- package/dist/schema/environments.js +0 -101
- package/dist/schema/environments.js.map +0 -1
- package/dist/schema/extract.d.ts +0 -9
- package/dist/schema/extract.js +0 -86
- package/dist/schema/extract.js.map +0 -1
- package/dist/schema/permission-profiles.d.ts +0 -2292
- package/dist/schema/permission-profiles.js +0 -60
- package/dist/schema/permission-profiles.js.map +0 -1
- package/dist/schema/policies.d.ts +0 -974
- package/dist/schema/policies.js +0 -298
- package/dist/schema/policies.js.map +0 -1
- package/dist/schema/requires.d.ts +0 -131
- package/dist/schema/requires.js +0 -88
- package/dist/schema/requires.js.map +0 -1
- package/dist/schema/risk.d.ts +0 -144
- package/dist/schema/risk.js +0 -194
- package/dist/schema/risk.js.map +0 -1
- package/dist/schema/session-start-preflight.d.ts +0 -10
- package/dist/schema/session-start-preflight.js +0 -106
- package/dist/schema/session-start-preflight.js.map +0 -1
- package/dist/schema/stale-base-check.d.ts +0 -18
- package/dist/schema/stale-base-check.js +0 -37
- package/dist/schema/stale-base-check.js.map +0 -1
- package/dist/schema/toolchain-parity.d.ts +0 -21
- package/dist/schema/toolchain-parity.js +0 -48
- package/dist/schema/toolchain-parity.js.map +0 -1
- package/dist/schema/workflows.d.ts +0 -519
- package/dist/schema/workflows.js +0 -81
- package/dist/schema/workflows.js.map +0 -1
- package/scripts/runtime-reality-docker-probe.mjs +0 -71
|
@@ -1,474 +0,0 @@
|
|
|
1
|
-
// Phase 6 #6 — `harness pack hook codex-pre-tool-use` runtime verb.
|
|
2
|
-
//
|
|
3
|
-
// Codex variant of the Claude Code blocker (`hook-pre-tool-use.ts`).
|
|
4
|
-
// Same approval logic (signed marker only; report + ledger are evidence,
|
|
5
|
-
// task 7402301d), but a different I/O contract:
|
|
6
|
-
//
|
|
7
|
-
// stdin : JSON envelope shaped as `{ session_id, tool_name,
|
|
8
|
-
// raw_input, event }` — harness's published wire format that
|
|
9
|
-
// the Codex CLI integration is wrapped to emit. The
|
|
10
|
-
// integration is documented in
|
|
11
|
-
// `docs/policy-packs/understanding-before-execution.md`
|
|
12
|
-
// "Adapter notes / Codex".
|
|
13
|
-
// stdout : block reason on stderr; allow path is silent on stdout.
|
|
14
|
-
// exit : 0 on allow, 2 on block. Codex's blocking convention is
|
|
15
|
-
// non-zero exit (the JSON-decision shape Claude Code reads
|
|
16
|
-
// is not part of Codex's hook contract today).
|
|
17
|
-
//
|
|
18
|
-
// Failure mode mirrors the Claude blocker: any error in load / parse /
|
|
19
|
-
// ledger / report scan resolves to ALLOW (exit 0, silent diagnostic on
|
|
20
|
-
// stderr). The package's optional standalone blocker remains a safety
|
|
21
|
-
// net for solo users; the harness blocker is strictly more powerful.
|
|
22
|
-
import * as path from "node:path";
|
|
23
|
-
import { queryLedgerByTag } from "../../policies/index.js";
|
|
24
|
-
import { checkOperatorApprovalMarkers, checkPersistedReport, MAX_HOOK_LISTING_ENTRIES, defaultReportsDir, describeMarkerTtlExpiry, matchLedgerEntries, noApprovalMarkerReason, verifyMatchedMarkerReport, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
|
|
25
|
-
import { findLatestParseError, renderMalformedSectionsNotice } from "../approve/understanding.js";
|
|
26
|
-
import { CODEX_HARNESS } from "../../policy-packs/builtin/understanding-before-execution/auto-approve.js";
|
|
27
|
-
import { attemptAutoApproval, AUTO_APPROVE_LEDGER_SOURCE_CODEX, } from "./auto-approve-path.js";
|
|
28
|
-
import { resolveGeneratedDir, writePendingApproval, } from "../../runtime/pending-approval.js";
|
|
29
|
-
import { resolveManifestLedgerWriter } from "../../runtime/ledger-writer.js";
|
|
30
|
-
import { extractShellCommand } from "../../runtime/tool-name-aliases.js";
|
|
31
|
-
import { renderAgentFacing } from "../../runtime/agent-facing.js";
|
|
32
|
-
import { isReadOnlyBashPipeline } from "../../runtime/read-only-bash.js";
|
|
33
|
-
import { isRecoveryGitCommit } from "../../runtime/recovery-git-commit.js";
|
|
34
|
-
import { renderReportSchemaHint } from "./understanding-report-schema-hint.js";
|
|
35
|
-
import { checkHookPause, loadManifestOrInjected, parseConfigUx, pickString, readStdin, runGateWithStdinRefusal, } from "./hook-bootstrap.js";
|
|
36
|
-
const PACK_NAME = "understanding-before-execution";
|
|
37
|
-
const EXIT_BLOCK = 2;
|
|
38
|
-
function findGroundingMcp(manifest) {
|
|
39
|
-
return manifest.tools.mcp.find((m) => m.name === "grounding-mcp") ?? null;
|
|
40
|
-
}
|
|
41
|
-
// Exported so sibling Codex hooks (e.g. hook-codex-post-tool-use.ts) that
|
|
42
|
-
// need the same "is this tool call shell-equivalent" test share one
|
|
43
|
-
// definition instead of re-declaring the alias list (task a1348c89).
|
|
44
|
-
export const CODEX_SHELL_TOOLS = new Set([
|
|
45
|
-
"Bash",
|
|
46
|
-
"shell",
|
|
47
|
-
"exec_command",
|
|
48
|
-
"functions.exec_command",
|
|
49
|
-
]);
|
|
50
|
-
function extractCodexShellCommand(rawInput) {
|
|
51
|
-
if (rawInput && typeof rawInput === "object") {
|
|
52
|
-
const args = rawInput;
|
|
53
|
-
if (typeof args.command === "string" &&
|
|
54
|
-
typeof args.cmd === "string" &&
|
|
55
|
-
args.command.trim() !== args.cmd.trim()) {
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const command = extractShellCommand({ raw_input: rawInput });
|
|
60
|
-
if (command !== null)
|
|
61
|
-
return command;
|
|
62
|
-
return typeof rawInput === "string" ? rawInput : null;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* The command the two EXEMPTIONS below (read-only Bash, recovery
|
|
66
|
-
* `git commit`) are allowed to act on, or `null` when the payload does
|
|
67
|
-
* not pin one down. Deliberately stricter than the shared
|
|
68
|
-
* `resolveToolInput` (hook-bootstrap.ts), which stays as it is: its
|
|
69
|
-
* other callers are PostToolUse observers whose worst case is a missed
|
|
70
|
-
* observation, whereas here the classified command decides whether a
|
|
71
|
-
* gated call is exempted (reviewer round-1 finding on slice 2). Two
|
|
72
|
-
* differences, both fail-closed:
|
|
73
|
-
*
|
|
74
|
-
* - `tool_input: null` is treated as ABSENT and falls back to
|
|
75
|
-
* `raw_input`, instead of shadowing it. `resolveToolInput` tests
|
|
76
|
-
* `!== undefined`, so a payload carrying an explicit null
|
|
77
|
-
* `tool_input` plus a real `raw_input` would otherwise classify to
|
|
78
|
-
* nothing.
|
|
79
|
-
* - When BOTH fields carry a command and they DISAGREE, this returns
|
|
80
|
-
* `null` rather than picking one. Otherwise a payload could pair a
|
|
81
|
-
* read-only `ls` in the preferred field with `rm -rf ...` in the
|
|
82
|
-
* other and be exempted on the harmless one while the runtime runs
|
|
83
|
-
* whichever field it itself reads.
|
|
84
|
-
*
|
|
85
|
-
* `null` is never an allow: both call sites fall through to the block
|
|
86
|
-
* path, and the auto-approval attempt below does not read this at all.
|
|
87
|
-
*/
|
|
88
|
-
function resolveCodexExemptionCommand(event) {
|
|
89
|
-
const toolInput = event.tool_input ?? undefined;
|
|
90
|
-
const rawInput = event.raw_input ?? undefined;
|
|
91
|
-
if (toolInput !== undefined && rawInput !== undefined) {
|
|
92
|
-
const fromToolInput = extractCodexShellCommand(toolInput);
|
|
93
|
-
const fromRawInput = extractCodexShellCommand(rawInput);
|
|
94
|
-
if (fromToolInput === null || fromRawInput === null)
|
|
95
|
-
return null;
|
|
96
|
-
if (fromToolInput.trim() !== fromRawInput.trim())
|
|
97
|
-
return null;
|
|
98
|
-
return fromToolInput;
|
|
99
|
-
}
|
|
100
|
-
if (toolInput !== undefined)
|
|
101
|
-
return extractCodexShellCommand(toolInput);
|
|
102
|
-
if (rawInput !== undefined)
|
|
103
|
-
return extractCodexShellCommand(rawInput);
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
async function checkLedger(manifest, sessionId, opts) {
|
|
107
|
-
if (opts.ledgerQuery) {
|
|
108
|
-
const result = await opts.ledgerQuery(sessionId);
|
|
109
|
-
if ("degraded" in result) {
|
|
110
|
-
return { matched: false, detail: `ledger degraded (${result.degraded})` };
|
|
111
|
-
}
|
|
112
|
-
return matchLedgerEntries(result, sessionId);
|
|
113
|
-
}
|
|
114
|
-
const server = findGroundingMcp(manifest);
|
|
115
|
-
if (!server) {
|
|
116
|
-
return { matched: false, detail: "grounding-mcp not declared in manifest" };
|
|
117
|
-
}
|
|
118
|
-
const command = Array.isArray(server.command)
|
|
119
|
-
? server.command
|
|
120
|
-
: server.command.trim().split(/\s+/);
|
|
121
|
-
const env = server.env ?? undefined;
|
|
122
|
-
const timeoutMs = opts.ledgerTimeoutMs ?? server.health?.timeout_ms ?? 5_000;
|
|
123
|
-
const result = await queryLedgerByTag({
|
|
124
|
-
mcpCommand: command,
|
|
125
|
-
...(env && { mcpEnv: env }),
|
|
126
|
-
sessionId,
|
|
127
|
-
timeoutMs,
|
|
128
|
-
});
|
|
129
|
-
if (result.kind === "degraded") {
|
|
130
|
-
return { matched: false, detail: `ledger degraded (${result.reason})` };
|
|
131
|
-
}
|
|
132
|
-
return matchLedgerEntries(result.entries, sessionId);
|
|
133
|
-
}
|
|
134
|
-
function allowResult(detail, source, stderr) {
|
|
135
|
-
const diagnostic = `harness pack hook codex: ${detail}, allowing.`;
|
|
136
|
-
stderr.write(`${diagnostic}\n`);
|
|
137
|
-
return {
|
|
138
|
-
exitCode: 0,
|
|
139
|
-
blocked: false,
|
|
140
|
-
approvalCheck: { approved: true, source, detail },
|
|
141
|
-
diagnostic,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
async function runPackHookCodexPreToolUseCliInner(opts = {}) {
|
|
145
|
-
const stdin = opts.stdin ?? process.stdin;
|
|
146
|
-
const stderr = opts.stderr ?? process.stderr;
|
|
147
|
-
const packName = opts.pack ?? PACK_NAME;
|
|
148
|
-
// Read stdin defensively. Bad JSON falls through to allow (matches
|
|
149
|
-
// Claude blocker's failure mode) but emits a stderr diagnostic so
|
|
150
|
-
// the degradation is loud — a silently-allowing gate manufactures
|
|
151
|
-
// false confidence, which is the worst direction for a governance
|
|
152
|
-
// hook to fail in.
|
|
153
|
-
const raw = await readStdin(stdin);
|
|
154
|
-
let event = {};
|
|
155
|
-
try {
|
|
156
|
-
event = JSON.parse(raw.trim() || "{}");
|
|
157
|
-
}
|
|
158
|
-
catch (err) {
|
|
159
|
-
stderr.write(`harness pack hook (codex): malformed event JSON on stdin (${err.message}), allowing.\n`);
|
|
160
|
-
}
|
|
161
|
-
const sessionId = pickString(event.session_id) ??
|
|
162
|
-
process.env["CODEX_SESSION_ID"] ??
|
|
163
|
-
process.env["CLAUDE_CODE_SESSION_ID"] ??
|
|
164
|
-
process.env["CLAUDE_SESSION_ID"] ??
|
|
165
|
-
"";
|
|
166
|
-
const toolName = pickString(event.tool_name, event.tool) ?? "(unknown)";
|
|
167
|
-
// Pause sentinel — honoured BEFORE manifest load so the lockout-recovery
|
|
168
|
-
// flow (broken install) still respects an active pause.
|
|
169
|
-
if (checkHookPause("codex-pre-tool-use", stderr, opts, opts.generatedDir).paused) {
|
|
170
|
-
return allowResult("harness paused", "none", stderr);
|
|
171
|
-
}
|
|
172
|
-
// Load manifest (or use injection). Bail to allow on any failure so a
|
|
173
|
-
// missing harness install never bricks the session.
|
|
174
|
-
let manifest;
|
|
175
|
-
let manifestPath;
|
|
176
|
-
try {
|
|
177
|
-
({ manifest, manifestPath } = loadManifestOrInjected(opts, opts.manifest));
|
|
178
|
-
}
|
|
179
|
-
catch (err) {
|
|
180
|
-
return allowResult(`manifest load failed (${err.message})`, "none", stderr);
|
|
181
|
-
}
|
|
182
|
-
// Confirm the pack is enabled.
|
|
183
|
-
const declared = manifest.policy_packs.find((p) => p.name === packName);
|
|
184
|
-
if (!declared) {
|
|
185
|
-
return allowResult(`pack "${packName}" not declared in manifest`, "none", stderr);
|
|
186
|
-
}
|
|
187
|
-
if (!declared.enabled) {
|
|
188
|
-
return allowResult(`pack "${packName}" is enabled:false`, "none", stderr);
|
|
189
|
-
}
|
|
190
|
-
if (sessionId === "") {
|
|
191
|
-
return allowResult("no session_id resolvable from input or $CODEX_SESSION_ID/$CLAUDE_CODE_SESSION_ID/$CLAUDE_SESSION_ID", "none", stderr);
|
|
192
|
-
}
|
|
193
|
-
// Resolve generatedDir up-front for the marker check.
|
|
194
|
-
const generatedDir = opts.generatedDir ??
|
|
195
|
-
(manifestPath !== undefined
|
|
196
|
-
? resolveGeneratedDir({
|
|
197
|
-
...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}),
|
|
198
|
-
manifestPath,
|
|
199
|
-
})
|
|
200
|
-
: undefined);
|
|
201
|
-
// Source 1: filesystem marker (agent-tasks/88ca4bb3). Same boundary
|
|
202
|
-
// as the Claude blocker: operator-authored marker beats ledger
|
|
203
|
-
// self-approval. Falls through to ledger-as-audit when generatedDir
|
|
204
|
-
// is unresolvable (test injection without a manifest path).
|
|
205
|
-
// Task-scoped (active-claim) marker first, session marker second,
|
|
206
|
-
// both under the `approval_lifecycle` TTL — shared with the Claude
|
|
207
|
-
// hook via `checkOperatorApprovalMarkers` (task e7c2ec3c; the bare
|
|
208
|
-
// `checkApprovalMarker` call here previously ignored `max_age` and
|
|
209
|
-
// task-scoping, so those knobs silently applied only to Claude).
|
|
210
|
-
// `markerExpired` is hoisted so the recovery-git-commit exception
|
|
211
|
-
// (task 6e888423) below can see it: true only when a REAL marker
|
|
212
|
-
// existed for this session/task and aged past
|
|
213
|
-
// `approval_lifecycle.max_age`, not when one was simply never written
|
|
214
|
-
// or was cleared by a task-completion boundary tool. Mirrors the
|
|
215
|
-
// Claude hook (hook-pre-tool-use.ts) so the two runtimes stay in
|
|
216
|
-
// lockstep, same rationale as `checkOperatorApprovalMarkers` itself.
|
|
217
|
-
// Session marker refused only for its task binding (task 5018c0c4),
|
|
218
|
-
// mirroring the Claude hook: blocks like a missing marker, with its
|
|
219
|
-
// own reason text.
|
|
220
|
-
let sessionBindingRefusedDetail;
|
|
221
|
-
let markerExpired = false;
|
|
222
|
-
// The max_age sentence for the block reason (wording only, never read by a
|
|
223
|
-
// gate decision); set when the marker check reported a TTL expiry.
|
|
224
|
-
let markerTtlExpiry;
|
|
225
|
-
// True when checkOperatorApprovalMarkers found a marker FILE that failed
|
|
226
|
-
// signature verification (harness/f9485cc7), mirroring the Claude hook.
|
|
227
|
-
let markerForged = false;
|
|
228
|
-
// Set when a marker matched but no persisted report file hashes to the
|
|
229
|
-
// content that marker was signed for any more (task fa423e9b),
|
|
230
|
-
// mirroring the Claude hook: the call falls through to the ordinary block
|
|
231
|
-
// path (read-only shell commands keep their exemption) with this reason.
|
|
232
|
-
let reportHashMismatchDetail;
|
|
233
|
-
const reportsDir = opts.reportsDir ?? defaultReportsDir();
|
|
234
|
-
if (generatedDir !== undefined) {
|
|
235
|
-
const markers = checkOperatorApprovalMarkers(generatedDir, sessionId, declared.config, stderr);
|
|
236
|
-
markerExpired = markers.expired;
|
|
237
|
-
markerTtlExpiry = describeMarkerTtlExpiry(markers);
|
|
238
|
-
markerForged = markers.forged;
|
|
239
|
-
if (markers.source !== "task") {
|
|
240
|
-
// Trace the task-marker miss, mirroring the Claude hook, so an
|
|
241
|
-
// operator debugging a Codex session sees the active-claim vs
|
|
242
|
-
// marker mismatch rather than only the generic session miss.
|
|
243
|
-
stderr.write(`harness pack hook codex: task-scoped check: ${markers.taskCheckDetail}\n`);
|
|
244
|
-
}
|
|
245
|
-
sessionBindingRefusedDetail = markers.sessionBindingRefused ? markers.detail : undefined;
|
|
246
|
-
if (markers.matched) {
|
|
247
|
-
// Cross-check the matched marker's signed report hash against the
|
|
248
|
-
// persisted reports (task fa423e9b): the task marker first, the
|
|
249
|
-
// session marker as fallback.
|
|
250
|
-
const reportHash = verifyMatchedMarkerReport(reportsDir, markers);
|
|
251
|
-
if (reportHash.ok) {
|
|
252
|
-
return allowResult(reportHash.detail, "marker", stderr);
|
|
253
|
-
}
|
|
254
|
-
reportHashMismatchDetail = reportHash.detail;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
// Persisted-report EVIDENCE probe (task 7402301d), mirroring the Claude
|
|
258
|
-
// hook: no longer an approval source. `report.detail` feeds the block
|
|
259
|
-
// reason (with the distinct `unsigned persisted-report approval
|
|
260
|
-
// rejected` phrase when the on-disk status says approved) and
|
|
261
|
-
// `report.report === null` gates the parse-error lookup below. The
|
|
262
|
-
// signed marker is the only APPROVAL source that opens the gate in
|
|
263
|
-
// this hook too. The read-only-Bash and recovery-git-commit carve-outs
|
|
264
|
-
// below are separate, independently-argued exemptions, not a second
|
|
265
|
-
// approval source.
|
|
266
|
-
const report = checkPersistedReport(reportsDir, sessionId);
|
|
267
|
-
// Audit-only ledger probe.
|
|
268
|
-
const ledger = await checkLedger(manifest, sessionId, opts);
|
|
269
|
-
// Exception: read-only shell commands. Real Codex carries tool args in
|
|
270
|
-
// `tool_input`, harness's older published envelope in `raw_input`;
|
|
271
|
-
// `resolveCodexExemptionCommand` reads both (before this, a real Codex
|
|
272
|
-
// payload's command was invisible here and every read-only `ls` hit
|
|
273
|
-
// the block). If neither field carries a classifiable command — a
|
|
274
|
-
// conflicting `command`/`cmd` pair, or two fields naming DIFFERENT
|
|
275
|
-
// commands — this stays `null` and the call falls through to the block
|
|
276
|
-
// path (fail-closed); see that function for the full argument.
|
|
277
|
-
const commandStr = resolveCodexExemptionCommand(event);
|
|
278
|
-
if (commandStr !== null &&
|
|
279
|
-
CODEX_SHELL_TOOLS.has(toolName) &&
|
|
280
|
-
isReadOnlyBashPipeline(commandStr)) {
|
|
281
|
-
const diagnostic = `harness pack hook codex: read-only Bash command, allowing without an approved report (\`${commandStr.trim()}\`)`;
|
|
282
|
-
stderr.write(`${diagnostic}\n`);
|
|
283
|
-
return {
|
|
284
|
-
exitCode: 0,
|
|
285
|
-
blocked: false,
|
|
286
|
-
approvalCheck: { approved: true, source: "none", detail: diagnostic },
|
|
287
|
-
diagnostic,
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
// Exception: the narrow recovery-git-commit shape (task 6e888423).
|
|
291
|
-
// Mirrors the Claude hook's exemption exactly (see hook-pre-tool-use.ts
|
|
292
|
-
// for the full safety argument): gated on BOTH `markerExpired` (a real
|
|
293
|
-
// operator approval existed for this session/task and merely aged out
|
|
294
|
-
// — not "never approved", not "cleared by a task-completion boundary")
|
|
295
|
-
// and `isRecoveryGitCommit` (a bare, unchained `git commit` that
|
|
296
|
-
// cannot smuggle other work or new file content).
|
|
297
|
-
if (commandStr !== null &&
|
|
298
|
-
CODEX_SHELL_TOOLS.has(toolName) &&
|
|
299
|
-
markerExpired &&
|
|
300
|
-
isRecoveryGitCommit(commandStr)) {
|
|
301
|
-
const diagnostic = `harness pack hook codex: recovery-commit exemption — approval for session ${sessionId} had expired, but this session/task WAS previously approved; allowing the bare \`git commit\` to record already-approved work (\`${commandStr.trim()}\`). A fresh Understanding Report is still required for any new Edit/Write/Bash.`;
|
|
302
|
-
stderr.write(`${diagnostic}\n`);
|
|
303
|
-
return {
|
|
304
|
-
exitCode: 0,
|
|
305
|
-
blocked: false,
|
|
306
|
-
approvalCheck: { approved: true, source: "recovery-commit", detail: diagnostic },
|
|
307
|
-
diagnostic,
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
// Step 9: the operator-opt-in auto-approval attempt (slice 2 of
|
|
311
|
-
// docs/decisions/2026-08-27-ug-auto-mode-approval.md, agent-tasks/
|
|
312
|
-
// 57058364). The SAME `attemptAutoApproval` the Claude hook calls, at
|
|
313
|
-
// the same place in the decision order: last, on a call that the
|
|
314
|
-
// marker check (source 1) and both exemptions above have already
|
|
315
|
-
// declined — i.e. exactly a call that would otherwise reach the final
|
|
316
|
-
// block. So a read-only `ls` or a recovery `git commit` mints nothing,
|
|
317
|
-
// and `max_age` starts counting from the call that actually needed an
|
|
318
|
-
// approval. Arguments carry everything that is Codex-specific:
|
|
319
|
-
// `harness: CODEX_HARNESS` (the minted `approvedBy` reads
|
|
320
|
-
// `auto-mode:codex:<mode>`, so an audit can tell the runtimes apart),
|
|
321
|
-
// the transcript-path session-consistency check (a Codex hook process
|
|
322
|
-
// carries no session-id environment variable for the Claude variant to
|
|
323
|
-
// compare against), and this hook's own ledger `source` and stderr
|
|
324
|
-
// label.
|
|
325
|
-
//
|
|
326
|
-
// Sharing the body does NOT share the opt-in: the attempt declines
|
|
327
|
-
// unless the operator listed `codex` in `auto_approve.harnesses`,
|
|
328
|
-
// which an `auto_approve` block written before this hook existed does
|
|
329
|
-
// not (an absent key means Claude Code only).
|
|
330
|
-
//
|
|
331
|
-
// It never returns an allow of its own: the allow below comes from the
|
|
332
|
-
// auto path's own re-run of `checkOperatorApprovalMarkers`, the same
|
|
333
|
-
// authority source 1 consults, and is reported through this hook's
|
|
334
|
-
// ordinary `allowResult` with `source: "marker"`. Any failure falls
|
|
335
|
-
// through to the block with `markerExpired` / `markerForged` intact.
|
|
336
|
-
//
|
|
337
|
-
// Placed BEFORE the `.pending-approval` staging write below on
|
|
338
|
-
// purpose: a successful auto-approval must not leave this session id
|
|
339
|
-
// staged for a later arg-less `harness approve understanding` to
|
|
340
|
-
// resolve to.
|
|
341
|
-
//
|
|
342
|
-
// The ledger writer resolves lazily, exactly like the Claude hook: the
|
|
343
|
-
// thunk runs only after the auto path's own opt-in and `when` checks
|
|
344
|
-
// both pass, so an ordinary gated Codex call never resolves one.
|
|
345
|
-
const resolveAutoLedger = () => {
|
|
346
|
-
if (opts.writeLedger)
|
|
347
|
-
return { write: opts.writeLedger };
|
|
348
|
-
const resolved = resolveManifestLedgerWriter(manifest, {
|
|
349
|
-
...(opts.ledgerTimeoutMs !== undefined ? { ledgerTimeoutMs: opts.ledgerTimeoutMs } : {}),
|
|
350
|
-
});
|
|
351
|
-
return resolved.ok ? { write: resolved.write } : { write: null, reason: resolved.reason };
|
|
352
|
-
};
|
|
353
|
-
const auto = await attemptAutoApproval({
|
|
354
|
-
generatedDir,
|
|
355
|
-
sessionId,
|
|
356
|
-
payloadSessionId: event.session_id,
|
|
357
|
-
permissionMode: event.permission_mode,
|
|
358
|
-
harness: CODEX_HARNESS,
|
|
359
|
-
// This hook's own verb on the audit-only ledger fact and its own
|
|
360
|
-
// stderr prefix, so neither an audit row nor a diagnostic line
|
|
361
|
-
// attributes a Codex decision to the Claude Code hook.
|
|
362
|
-
ledgerSource: AUTO_APPROVE_LEDGER_SOURCE_CODEX,
|
|
363
|
-
label: "harness pack hook codex",
|
|
364
|
-
sessionConsistency: { kind: "transcript-path", transcriptPath: event.transcript_path },
|
|
365
|
-
packConfig: declared.config,
|
|
366
|
-
reportsDir,
|
|
367
|
-
markerForged,
|
|
368
|
-
stderr,
|
|
369
|
-
resolveLedger: resolveAutoLedger,
|
|
370
|
-
});
|
|
371
|
-
if (auto.approved) {
|
|
372
|
-
return allowResult(auto.detail, "marker", stderr);
|
|
373
|
-
}
|
|
374
|
-
// Stage the session id so `harness approve understanding`, run from
|
|
375
|
-
// the operator's shell where none of $CODEX_SESSION_ID,
|
|
376
|
-
// $CLAUDE_CODE_SESSION_ID or $CLAUDE_SESSION_ID is set, can resolve it without scraping logs or
|
|
377
|
-
// grepping transcript dirs. Mirrors the Claude blocker's symmetric
|
|
378
|
-
// staging (hook-pre-tool-use.ts) so arg-less approval after a Codex
|
|
379
|
-
// PreToolUse block has the same shape. Best-effort: a staging-write
|
|
380
|
-
// failure must not escalate a gate block into a hook error.
|
|
381
|
-
if (generatedDir !== undefined) {
|
|
382
|
-
try {
|
|
383
|
-
writePendingApproval(generatedDir, sessionId);
|
|
384
|
-
}
|
|
385
|
-
catch {
|
|
386
|
-
/* best-effort; the block below proceeds regardless */
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
// Neither operator source approved. Codex blocks via non-zero exit
|
|
390
|
-
// + stderr reason; there is no JSON-decision wire to write to stdout.
|
|
391
|
-
// Mirrors the Claude hook's distinct forged-marker reason (harness/f9485cc7).
|
|
392
|
-
const unapprovedReason = generatedDir !== undefined
|
|
393
|
-
? markerForged
|
|
394
|
-
? `forged/unsigned marker rejected for session ${sessionId}; ${report.detail}; ${ledger.detail}`
|
|
395
|
-
: sessionBindingRefusedDetail !== undefined
|
|
396
|
-
? `${sessionBindingRefusedDetail}; ${report.detail}; ${ledger.detail}`
|
|
397
|
-
: noApprovalMarkerReason(sessionId, markerTtlExpiry, report.detail, ledger.detail)
|
|
398
|
-
: `generatedDir not resolvable (test/injection path); ${report.detail}; ${ledger.detail}`;
|
|
399
|
-
// A marker that matched but whose signed report content is gone (the
|
|
400
|
-
// approved report was edited or removed after approval, task fa423e9b)
|
|
401
|
-
// gets its own reason, naming the marker kind and the one-command fix; no
|
|
402
|
-
// "no approval marker" wording applies to it.
|
|
403
|
-
const reason = reportHashMismatchDetail !== undefined
|
|
404
|
-
? `${reportHashMismatchDetail}; ${ledger.detail}`
|
|
405
|
-
: unapprovedReason;
|
|
406
|
-
// When the pack config declares `ux:`, the agent-facing block becomes
|
|
407
|
-
// the plain-language shape and the legacy schemaHint text is
|
|
408
|
-
// suppressed. The engine-vocabulary `reason` still lands in stderr
|
|
409
|
-
// (operator audit surface, not agent surface) so a flapping gate
|
|
410
|
-
// remains diagnosable.
|
|
411
|
-
const configUx = parseConfigUx(declared.config["ux"], stderr, "harness pack hook codex");
|
|
412
|
-
let agentFacing = configUx
|
|
413
|
-
? renderAgentFacing(configUx, { SESSION_ID: sessionId, TOOL_NAME: toolName })
|
|
414
|
-
: `Run \`harness approve understanding\` once you have produced and confirmed an Understanding Report.\n${renderReportSchemaHint()}`;
|
|
415
|
-
// Best-effort lookup of the session's latest parse-error log (task
|
|
416
|
-
// 823837fd, follow-up gate task 823837fd review), mirroring the Claude
|
|
417
|
-
// hook (hook-pre-tool-use.ts): the standalone Stop hook / `harness
|
|
418
|
-
// approve understanding` stdin-report path writes one to
|
|
419
|
-
// `<reports-parent>/parse-errors/` when the agent's report failed to
|
|
420
|
-
// parse. Gated on `report.report === null` (no persisted report at
|
|
421
|
-
// all for this session): a report that WAS persisted but is merely
|
|
422
|
-
// pending approval must not surface a stale parse-error from an
|
|
423
|
-
// earlier, already-fixed attempt; mirrors the CLI's own gate (`if
|
|
424
|
-
// (!latest)`, approve/understanding.ts). Moved here, right before the
|
|
425
|
-
// block render and after every exemption early-return above, so the
|
|
426
|
-
// lookup only runs on the path that actually renders it (pure code
|
|
427
|
-
// motion from its previous location right after `checkPersistedReport`).
|
|
428
|
-
const latestParseError = report.report === null
|
|
429
|
-
? findLatestParseError(path.join(path.dirname(reportsDir), "parse-errors"), sessionId, {
|
|
430
|
-
maxEntries: MAX_HOOK_LISTING_ENTRIES,
|
|
431
|
-
})
|
|
432
|
-
: null;
|
|
433
|
-
// Name the malformed sections from that log, when it carries any:
|
|
434
|
-
// shared with the Claude hook's identical append via
|
|
435
|
-
// `renderMalformedSectionsNotice` (approve/understanding.ts) so the two
|
|
436
|
-
// runtimes cannot drift apart byte-for-byte.
|
|
437
|
-
const malformedNotice = renderMalformedSectionsNotice(latestParseError?.malformedSections ?? []);
|
|
438
|
-
if (malformedNotice) {
|
|
439
|
-
agentFacing = `${agentFacing}\n\n${malformedNotice}`;
|
|
440
|
-
}
|
|
441
|
-
// No separate expiry sentence is appended here (the Claude hook does append
|
|
442
|
-
// one): the Codex agent reads the whole stderr diagnostic, and the engine
|
|
443
|
-
// reason on its BLOCK line already carries `approval expired because ...`
|
|
444
|
-
// (see `noApprovalMarkerReason`), so a second copy would say it twice.
|
|
445
|
-
const diagnostic = configUx
|
|
446
|
-
? `harness pack hook codex: BLOCK: ${reason}.\n${agentFacing}`
|
|
447
|
-
: `harness pack hook codex: BLOCK: ${reason}. Tool: ${toolName}. ${agentFacing}`;
|
|
448
|
-
stderr.write(`${diagnostic}\n`);
|
|
449
|
-
return {
|
|
450
|
-
exitCode: EXIT_BLOCK,
|
|
451
|
-
blocked: true,
|
|
452
|
-
approvalCheck: { approved: false, source: "none", detail: reason },
|
|
453
|
-
diagnostic,
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* `harness pack hook codex-pre-tool-use`. A timed-out stdin read exits 2 with
|
|
458
|
-
* the reason on stderr (the runtime's deny form) instead of running the gate on
|
|
459
|
-
* an empty or truncated event it would allow (task 7dfdcaaf). The operator
|
|
460
|
-
* pause still wins; every other input runs the gate unchanged.
|
|
461
|
-
*/
|
|
462
|
-
export function runPackHookCodexPreToolUseCli(opts = {}) {
|
|
463
|
-
return runGateWithStdinRefusal(opts, (stderr) => checkHookPause("codex-pre-tool-use", stderr, opts, opts.generatedDir).paused, (reason, _stdout, stderr) => {
|
|
464
|
-
const diagnostic = `harness pack hook codex: BLOCK: ${reason}`;
|
|
465
|
-
stderr.write(`${diagnostic}\n`);
|
|
466
|
-
return {
|
|
467
|
-
exitCode: EXIT_BLOCK,
|
|
468
|
-
blocked: true,
|
|
469
|
-
approvalCheck: { approved: false, source: "none", detail: reason },
|
|
470
|
-
diagnostic,
|
|
471
|
-
};
|
|
472
|
-
}, runPackHookCodexPreToolUseCliInner);
|
|
473
|
-
}
|
|
474
|
-
//# sourceMappingURL=hook-codex-pre-tool-use.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hook-codex-pre-tool-use.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-codex-pre-tool-use.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,gDAAgD;AAChD,EAAE;AACF,+DAA+D;AAC/D,wEAAwE;AACxE,+DAA+D;AAC/D,0CAA0C;AAC1C,mEAAmE;AACnE,sCAAsC;AACtC,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AAErE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,sEAAsE,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,2EAA2E,CAAC;AAC1G,OAAO,EACL,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,2BAA2B,EAAsB,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,SAAS,EAAE,uBAAuB,GACnC,MAAM,qBAAqB,CAAC;AAE7B,MAAM,SAAS,GAAG,gCAAgC,CAAC;AACnD,MAAM,UAAU,GAAG,CAAC,CAAC;AAmErB,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC;AAC5E,CAAC;AAED,0EAA0E;AAC1E,oEAAoE;AACpE,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,MAAM;IACN,OAAO;IACP,cAAc;IACd,wBAAwB;CACzB,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,QAAiB;IACjD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAgD,CAAC;QAC9D,IACE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAChC,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;YAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EACvC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,4BAA4B,CAAC,KAAyB;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC;IAC9C,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACxE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,QAAkB,EAClB,SAAiB,EACjB,IAAoC;IAEpC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,UAAU,EAAE,OAAO;QACnB,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC3B,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAClB,MAAc,EACd,MAAqC,EACrC,MAA6B;IAE7B,MAAM,UAAU,GAAG,4BAA4B,MAAM,aAAa,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;QACjD,UAAU;KACX,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,OAAuC,EAAE;IAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAExC,mEAAmE;IACnE,kEAAkE;IAClE,kEAAkE;IAClE,kEAAkE;IAClE,mBAAmB;IACnB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,KAAK,GAAuB,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAuB,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CACV,6DACG,GAAa,CAAC,OACjB,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GACb,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAChC,EAAE,CAAC;IACL,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;IAExE,yEAAyE;IACzE,wDAAwD;IACxD,IAAI,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;QACjF,OAAO,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,sEAAsE;IACtE,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,YAAgC,CAAC;IACrC,IAAI,CAAC;QACH,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAChB,yBAA0B,GAAa,CAAC,OAAO,GAAG,EAClD,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC,SAAS,QAAQ,4BAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC,SAAS,QAAQ,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,WAAW,CAChB,qGAAqG,EACrG,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY;QACjB,CAAC,YAAY,KAAK,SAAS;YACzB,CAAC,CAAC,mBAAmB,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,YAAY;aACb,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,oEAAoE;IACpE,+DAA+D;IAC/D,oEAAoE;IACpE,4DAA4D;IAC5D,kEAAkE;IAClE,mEAAmE;IACnE,mEAAmE;IACnE,mEAAmE;IACnE,iEAAiE;IACjE,kEAAkE;IAClE,iEAAiE;IACjE,8CAA8C;IAC9C,sEAAsE;IACtE,iEAAiE;IACjE,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,oEAAoE;IACpE,mBAAmB;IACnB,IAAI,2BAA+C,CAAC;IACpD,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,eAAmC,CAAC;IACxC,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,uEAAuE;IACvE,+DAA+D;IAC/D,0EAA0E;IAC1E,yEAAyE;IACzE,IAAI,wBAA4C,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,4BAA4B,CAC1C,YAAY,EACZ,SAAS,EACT,QAAQ,CAAC,MAAM,EACf,MAAM,CACP,CAAC;QACF,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,eAAe,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACnD,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,8DAA8D;YAC9D,6DAA6D;YAC7D,MAAM,CAAC,KAAK,CACV,+CAA+C,OAAO,CAAC,eAAe,IAAI,CAC3E,CAAC;QACJ,CAAC;QACD,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,kEAAkE;YAClE,gEAAgE;YAChE,8BAA8B;YAC9B,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBAClB,OAAO,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC;YACD,wBAAwB,GAAG,UAAU,CAAC,MAAM,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,gEAAgE;IAChE,8DAA8D;IAC9D,mEAAmE;IACnE,mEAAmE;IACnE,uEAAuE;IACvE,oEAAoE;IACpE,mBAAmB;IACnB,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAE5D,uEAAuE;IACvE,mEAAmE;IACnE,uEAAuE;IACvE,oEAAoE;IACpE,kEAAkE;IAClE,mEAAmE;IACnE,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACvD,IACE,UAAU,KAAK,IAAI;QACnB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/B,sBAAsB,CAAC,UAAU,CAAC,EAClC,CAAC;QACD,MAAM,UAAU,GAAG,2FAA2F,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QACrI,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;YACrE,UAAU;SACX,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,iEAAiE;IACjE,kDAAkD;IAClD,IACE,UAAU,KAAK,IAAI;QACnB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/B,aAAa;QACb,mBAAmB,CAAC,UAAU,CAAC,EAC/B,CAAC;QACD,MAAM,UAAU,GAAG,6EAA6E,SAAS,oIAAoI,UAAU,CAAC,IAAI,EAAE,kFAAkF,CAAC;QACjV,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE;YAChF,UAAU;SACX,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,mEAAmE;IACnE,sEAAsE;IACtE,iEAAiE;IACjE,iEAAiE;IACjE,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,+DAA+D;IAC/D,0DAA0D;IAC1D,sEAAsE;IACtE,sEAAsE;IACtE,uEAAuE;IACvE,mEAAmE;IACnE,SAAS;IACT,EAAE;IACF,mEAAmE;IACnE,kEAAkE;IAClE,sEAAsE;IACtE,8CAA8C;IAC9C,EAAE;IACF,uEAAuE;IACvE,qEAAqE;IACrE,mEAAmE;IACnE,oEAAoE;IACpE,qEAAqE;IACrE,EAAE;IACF,+DAA+D;IAC/D,qEAAqE;IACrE,iEAAiE;IACjE,cAAc;IACd,EAAE;IACF,uEAAuE;IACvE,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,iBAAiB,GAAG,GAAqD,EAAE;QAC/E,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,EAAE;YACrD,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5F,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;QACrC,YAAY;QACZ,SAAS;QACT,gBAAgB,EAAE,KAAK,CAAC,UAAU;QAClC,cAAc,EAAE,KAAK,CAAC,eAAe;QACrC,OAAO,EAAE,aAAa;QACtB,iEAAiE;QACjE,+DAA+D;QAC/D,uDAAuD;QACvD,YAAY,EAAE,gCAAgC;QAC9C,KAAK,EAAE,yBAAyB;QAChC,kBAAkB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,CAAC,eAAe,EAAE;QACtF,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,UAAU;QACV,YAAY;QACZ,MAAM;QACN,aAAa,EAAE,iBAAiB;KACjC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,oEAAoE;IACpE,wDAAwD;IACxD,gGAAgG;IAChG,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,4DAA4D;IAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,oBAAoB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,sEAAsE;IACtE,8EAA8E;IAC9E,MAAM,gBAAgB,GAAG,YAAY,KAAK,SAAS;QACjD,CAAC,CAAC,YAAY;YACZ,CAAC,CAAC,+CAA+C,SAAS,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;YAChG,CAAC,CAAC,2BAA2B,KAAK,SAAS;gBACzC,CAAC,CAAC,GAAG,2BAA2B,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;gBACtE,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtF,CAAC,CAAC,sDAAsD,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5F,qEAAqE;IACrE,uEAAuE;IACvE,0EAA0E;IAC1E,8CAA8C;IAC9C,MAAM,MAAM,GACV,wBAAwB,KAAK,SAAS;QACpC,CAAC,CAAC,GAAG,wBAAwB,KAAK,MAAM,CAAC,MAAM,EAAE;QACjD,CAAC,CAAC,gBAAgB,CAAC;IACvB,sEAAsE;IACtE,6DAA6D;IAC7D,mEAAmE;IACnE,iEAAiE;IACjE,uBAAuB;IACvB,MAAM,QAAQ,GAAG,aAAa,CAC3B,QAAQ,CAAC,MAAkC,CAAC,IAAI,CAAC,EAClD,MAAM,EACN,yBAAyB,CAC1B,CAAC;IACF,IAAI,WAAW,GAAG,QAAQ;QACxB,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC,CAAC,wGAAwG,sBAAsB,EAAE,EAAE,CAAC;IACvI,mEAAmE;IACnE,uEAAuE;IACvE,mEAAmE;IACnE,yDAAyD;IACzD,qEAAqE;IACrE,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,kEAAkE;IAClE,sEAAsE;IACtE,oEAAoE;IACpE,mEAAmE;IACnE,yEAAyE;IACzE,MAAM,gBAAgB,GACpB,MAAM,CAAC,MAAM,KAAK,IAAI;QACpB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE;YACnF,UAAU,EAAE,wBAAwB;SACrC,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IACX,kEAAkE;IAClE,qDAAqD;IACrD,wEAAwE;IACxE,6CAA6C;IAC7C,MAAM,eAAe,GAAG,6BAA6B,CACnD,gBAAgB,EAAE,iBAAiB,IAAI,EAAE,CAC1C,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QACpB,WAAW,GAAG,GAAG,WAAW,OAAO,eAAe,EAAE,CAAC;IACvD,CAAC;IACD,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,UAAU,GAAG,QAAQ;QACzB,CAAC,CAAC,mCAAmC,MAAM,MAAM,WAAW,EAAE;QAC9D,CAAC,CAAC,mCAAmC,MAAM,WAAW,QAAQ,KAAK,WAAW,EAAE,CAAC;IACnF,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAClE,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAuC,EAAE;IAEzC,OAAO,uBAAuB,CAC5B,IAAI,EACJ,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EACxF,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1B,MAAM,UAAU,GAAG,mCAAmC,MAAM,EAAE,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QAChC,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YAClE,UAAU;SACX,CAAC;IACJ,CAAC,EACD,kCAAkC,CACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { Manifest } from "../../schema/index.js";
|
|
2
|
-
import { type LoaderOptions } from "../loader.js";
|
|
3
|
-
export interface PackHookCodexStopOptions extends LoaderOptions {
|
|
4
|
-
pack?: string;
|
|
5
|
-
reportsDir?: string;
|
|
6
|
-
stdin?: NodeJS.ReadableStream;
|
|
7
|
-
stdout?: NodeJS.WritableStream;
|
|
8
|
-
stderr?: NodeJS.WritableStream;
|
|
9
|
-
manifest?: Manifest;
|
|
10
|
-
/** Test-injectable clock; defaults to new Date(). */
|
|
11
|
-
now?: Date;
|
|
12
|
-
/** Test-injected generatedDir for the pause-sentinel check; bypasses
|
|
13
|
-
* path resolution when supplied (mirrors `hook-codex-pre-tool-use.ts`
|
|
14
|
-
* / `hook-codex-post-tool-use.ts`). */
|
|
15
|
-
generatedDir?: string;
|
|
16
|
-
}
|
|
17
|
-
export interface ParsedReport {
|
|
18
|
-
interpretation: string;
|
|
19
|
-
assumptions: string[];
|
|
20
|
-
openQuestions: string[];
|
|
21
|
-
outOfScope: string[];
|
|
22
|
-
risks: string[];
|
|
23
|
-
verificationPlan: string;
|
|
24
|
-
}
|
|
25
|
-
export interface PackHookCodexStopResult {
|
|
26
|
-
exitCode: number;
|
|
27
|
-
/** Path of the persisted report; null when no file was written. */
|
|
28
|
-
reportPath: string | null;
|
|
29
|
-
/** True when at least one Understanding Report field was extracted. */
|
|
30
|
-
parsed: boolean;
|
|
31
|
-
diagnostic: string;
|
|
32
|
-
}
|
|
33
|
-
export declare function parseUnderstandingReport(text: string): ParsedReport;
|
|
34
|
-
export declare function reportHasContent(r: ParsedReport): boolean;
|
|
35
|
-
export declare function runPackHookCodexStopCli(opts?: PackHookCodexStopOptions): Promise<PackHookCodexStopResult>;
|