@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,66 +1,22 @@
|
|
|
1
1
|
// Shared bootstrap helpers for Claude Code pack hooks.
|
|
2
2
|
//
|
|
3
|
-
// Extracts the boilerplate pieces that
|
|
4
|
-
//
|
|
3
|
+
// Extracts the boilerplate pieces that the pack hooks reimplemented
|
|
4
|
+
// independently:
|
|
5
5
|
//
|
|
6
6
|
// 1. stdin envelope read (the common event-stream pattern).
|
|
7
|
-
// 2.
|
|
8
|
-
// so callers skip the conditional-opts-building block).
|
|
9
|
-
// 3. manifest load with injection support (the common if-injected / else
|
|
7
|
+
// 2. manifest load with injection support (the common if-injected / else
|
|
10
8
|
// loadManifest pattern; callers wrap the call in their own try/catch
|
|
11
9
|
// because error semantics differ per hook).
|
|
12
|
-
//
|
|
10
|
+
// 3. pack `config.ux` parsing (label-parameterized; formerly four
|
|
13
11
|
// byte-identical copies, task 19e293c6).
|
|
14
|
-
//
|
|
15
|
-
// byte-identical copies across
|
|
16
|
-
//
|
|
17
|
-
// 6. `resolveToolInput` — tool_input-with-raw_input-fallback resolver
|
|
18
|
-
// (task cf4cdc93 review finding: track-active-claim and
|
|
19
|
-
// stay-in-scope read ONLY `tool_input`, silently no-op-ing on a
|
|
20
|
-
// Codex shim that sends `raw_input` instead — the exact shape
|
|
21
|
-
// `hook-codex-post-tool-use.ts`'s own private `resolveToolInput`
|
|
22
|
-
// already handles).
|
|
23
|
-
// 7. `resolveHookPackContext` — the declared-pack-lookup / enabled-check /
|
|
24
|
-
// generatedDir-resolution trio that follows manifest load in nearly
|
|
25
|
-
// every hook. Its shape is closely mirrored by hook-post-tool-use.ts,
|
|
26
|
-
// hook-track-active-claim.ts, hook-pre-tool-use.ts and the Codex
|
|
27
|
-
// siblings, which were deliberately left calling their own inline
|
|
28
|
-
// copies rather than switched over here (out of scope for the task
|
|
29
|
-
// that added this helper); it was extracted for the
|
|
30
|
-
// subagent-start/subagent-stop pair, which would otherwise have
|
|
31
|
-
// re-duplicated it a further two times.
|
|
32
|
-
// 8. `resolveSessionAndAgentIds` — session_id + agent_id parse and
|
|
33
|
-
// validation shared by subagent-start/subagent-stop. Pack-agnostic
|
|
34
|
-
// by construction: the agent-id validator is injected by the caller
|
|
35
|
-
// rather than imported here, so this module stays free of any
|
|
36
|
-
// understanding-before-execution-specific dependency.
|
|
37
|
-
// 9. `resolveSubagentHookContext` — the pause-check / id-resolution /
|
|
38
|
-
// pack-context preamble shared verbatim by subagent-start and
|
|
39
|
-
// subagent-stop, up to the point where their bodies diverge (write
|
|
40
|
-
// vs. clear). Composes 2, 7, and 8 above.
|
|
41
|
-
//
|
|
42
|
-
// Not used by:
|
|
43
|
-
// - hook-runtime-reality.ts: it keeps an `isTTY` guard in front of the
|
|
44
|
-
// same shared idle-bounded reader (`src/cli/bounded-stdin.ts`) and
|
|
45
|
-
// composes the read itself, which is a legitimately different contract.
|
|
46
|
-
// - hook-solution-acceptance-writeguard.ts: loads no manifest.
|
|
47
|
-
// - hook-stay-in-scope.ts: loads the current manifest so a generated hook
|
|
48
|
-
// can no-op after an operator changes its optional configuration.
|
|
49
|
-
//
|
|
50
|
-
// hook-codex-stop.ts and hook-codex-user-prompt-submit.ts now also call
|
|
51
|
-
// the pause check (2, `checkHookPause`), on top of the stdin reader (1) and
|
|
52
|
-
// manifest loader (3) they already used (tasks 63fefe3a, 1432e053); they
|
|
53
|
-
// used to be listed here as "no pause check" exceptions. Neither one pulls
|
|
54
|
-
// in 4-6, so "use all of the above" would overstate it.
|
|
12
|
+
// 4. `pickString` — first-defined-string-wins candidate picker (was three
|
|
13
|
+
// byte-identical copies across hook modules before task
|
|
14
|
+
// a1348c89 extracted it here).
|
|
55
15
|
//
|
|
56
16
|
// Per-hook decision logic, error envelopes, and early-return shapes stay local
|
|
57
17
|
// to each hook. This module covers structural boilerplate only, not semantics.
|
|
58
|
-
import {
|
|
59
|
-
import { readStdinBounded, STDIN_IDLE_TIMEOUT_MS, stdinTimeoutNote, stdinTimeoutBlockJson, stdinTimeoutBlockReason } from "../bounded-stdin.js";
|
|
60
|
-
import { checkPauseFromLoader } from "../pause-check.js";
|
|
18
|
+
import { readStdinBounded, STDIN_IDLE_TIMEOUT_MS } from "../bounded-stdin.js";
|
|
61
19
|
import { loadManifest } from "../loader.js";
|
|
62
|
-
import { resolveGeneratedDir } from "../../runtime/pending-approval.js";
|
|
63
|
-
import { rejectMalformedSessionId } from "../../runtime/reject-malformed-session-id.js";
|
|
64
20
|
import { PolicyUxSchema } from "../../schema/index.js";
|
|
65
21
|
/**
|
|
66
22
|
* Idle-bounded stdin read that tells the caller whether it timed out and
|
|
@@ -75,76 +31,6 @@ export async function readStdinChecked(stream, opts = {}) {
|
|
|
75
31
|
const read = await readStdinBounded(stream, idleTimeoutMs);
|
|
76
32
|
return { text: read.text, timedOut: read.timedOut, idleTimeoutMs };
|
|
77
33
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Promise-based stdin reader for the pack hooks that are NOT PreToolUse gates
|
|
80
|
-
* (PostToolUse, Stop, SubagentStart/Stop, UserPromptSubmit and the like).
|
|
81
|
-
* Resolves to the UTF-8 string read from the stream, ending at `end` or, when
|
|
82
|
-
* no chunk has arrived for the idle bound, at the idle timeout (task 7dfdcaaf;
|
|
83
|
-
* the shared reader is `src/cli/bounded-stdin.ts`). Rejects on stream error.
|
|
84
|
-
*
|
|
85
|
-
* Claude Code pipes the event and closes stdin, so a real hook never reaches
|
|
86
|
-
* the bound; it only bites on an open, never-closed stdin, where an end-only
|
|
87
|
-
* read held the hook until the host's own hook timeout. On a timeout the text
|
|
88
|
-
* read so far is returned and one stderr note names the bound, so the caller
|
|
89
|
-
* continues exactly as it does for an empty or truncated event it was handed
|
|
90
|
-
* on a closed stdin. A PreToolUse gate must not use this: it calls
|
|
91
|
-
* `readStdinChecked` and blocks on `timedOut`.
|
|
92
|
-
*/
|
|
93
|
-
export async function readStdin(stream, opts = {}) {
|
|
94
|
-
const read = await readStdinChecked(stream, opts);
|
|
95
|
-
if (read.timedOut) {
|
|
96
|
-
(opts.stderr ?? process.stderr).write(`harness pack hook: ${stdinTimeoutNote({ text: read.text, timedOut: true }, read.idleTimeoutMs, "continuing as an empty event")}\n`);
|
|
97
|
-
}
|
|
98
|
-
return read.text;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Run a PreToolUse gate entry behind a stdin-timeout refusal without editing
|
|
102
|
-
* the entry's body: read stdin with the idle bound first, and when the read
|
|
103
|
-
* timed out (and the operator pause does not apply) hand `refuse` the reason
|
|
104
|
-
* instead of running the gate. Otherwise the text read is replayed to `run` on
|
|
105
|
-
* a closed stream, so the gate sees exactly what it would have read itself.
|
|
106
|
-
* Used by the two large gate entries whose line numbers other docs cite.
|
|
107
|
-
*/
|
|
108
|
-
export async function runGateWithStdinRefusal(opts, isPaused, refuse, run) {
|
|
109
|
-
const read = await readStdinChecked(opts.stdin ?? process.stdin);
|
|
110
|
-
const stderr = opts.stderr ?? process.stderr;
|
|
111
|
-
if (read.timedOut && !isPaused(stderr)) {
|
|
112
|
-
return refuse(stdinTimeoutBlockReason(read.idleTimeoutMs), opts.stdout ?? process.stdout, stderr);
|
|
113
|
-
}
|
|
114
|
-
const replay = new PassThrough();
|
|
115
|
-
replay.end(read.text);
|
|
116
|
-
return run({ ...opts, stdin: replay });
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* The refusal the Claude Code gates that write a block envelope to stdout hand
|
|
120
|
-
* to `runGateWithStdinRefusal`: one `harness pack hook <label>: BLOCK: ...`
|
|
121
|
-
* stderr line, the block envelope on stdout, and the blocked result (exit 0).
|
|
122
|
-
*/
|
|
123
|
-
export function stdoutBlockRefusal(label) {
|
|
124
|
-
return (reason, stdout, stderr) => {
|
|
125
|
-
const diagnostic = `BLOCK: ${reason}`;
|
|
126
|
-
stderr.write(`harness pack hook ${label}: ${diagnostic}\n`);
|
|
127
|
-
stdout.write(`${stdinTimeoutBlockJson(reason)}\n`);
|
|
128
|
-
return { exitCode: 0, blocked: true, diagnostic };
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
// ---------------------------------------------------------------------------
|
|
132
|
-
// 2. Pause-sentinel check helper
|
|
133
|
-
// ---------------------------------------------------------------------------
|
|
134
|
-
/**
|
|
135
|
-
* Thin wrapper around `checkPauseFromLoader` that removes the
|
|
136
|
-
* conditional-opts-building block each hook previously duplicated. Callers
|
|
137
|
-
* can express the pause check in a single expression:
|
|
138
|
-
*
|
|
139
|
-
* if (checkHookPause("my-hook", stderr, opts, opts.generatedDir).paused) { ... }
|
|
140
|
-
*
|
|
141
|
-
* Pass `undefined` for `loaderOpts`, `generatedDir`, or `now` when the hook
|
|
142
|
-
* does not supply them — the underlying `checkPauseFromLoader` already handles
|
|
143
|
-
* `undefined` for all optional fields.
|
|
144
|
-
*/
|
|
145
|
-
export function checkHookPause(hookLabel, stderr, loaderOpts, generatedDir, now) {
|
|
146
|
-
return checkPauseFromLoader({ hookLabel, stderr, loaderOpts, generatedDir, now });
|
|
147
|
-
}
|
|
148
34
|
/**
|
|
149
35
|
* Load the manifest, using `injected` directly when it is provided (test
|
|
150
36
|
* injection path). Throws on disk-load failure so callers can wrap the call
|
|
@@ -170,14 +56,14 @@ export function loadManifestOrInjected(loaderOpts, injected) {
|
|
|
170
56
|
return { manifest: loaded.manifest, manifestPath: loaded.resolved.base };
|
|
171
57
|
}
|
|
172
58
|
// ---------------------------------------------------------------------------
|
|
173
|
-
//
|
|
59
|
+
// 3. First-defined-string-wins candidate picker
|
|
174
60
|
// ---------------------------------------------------------------------------
|
|
175
61
|
/**
|
|
176
62
|
* Return the first candidate that is a non-empty string, else `undefined`.
|
|
177
63
|
* Used to resolve a field that may arrive under one of several tolerated
|
|
178
64
|
* synonyms (e.g. Codex's `tool_name` vs `tool`, or `last_assistant_message`
|
|
179
|
-
* as a direct shortcut).
|
|
180
|
-
*
|
|
65
|
+
* as a direct shortcut). Consumed by `hook-branch-protection.ts`; was three
|
|
66
|
+
* byte-identical private copies before task a1348c89.
|
|
181
67
|
*/
|
|
182
68
|
export function pickString(...candidates) {
|
|
183
69
|
for (const c of candidates) {
|
|
@@ -187,33 +73,13 @@ export function pickString(...candidates) {
|
|
|
187
73
|
return undefined;
|
|
188
74
|
}
|
|
189
75
|
// ---------------------------------------------------------------------------
|
|
190
|
-
//
|
|
191
|
-
// ---------------------------------------------------------------------------
|
|
192
|
-
/**
|
|
193
|
-
* Resolve a PostToolUse-style event's tool arguments: prefer `tool_input`
|
|
194
|
-
* (the field name real Codex sends, matching Claude Code's own
|
|
195
|
-
* convention — `hook-codex-post-tool-use.ts`'s own doc comment) and fall
|
|
196
|
-
* back to `raw_input` (harness's originally-published portable wire
|
|
197
|
-
* format, still accepted for any shim built against harness's earlier
|
|
198
|
-
* Codex adapter). Mirrors that hook's private `resolveToolInput`
|
|
199
|
-
* (task a1348c89); extracted here so the agent-tasks-specific
|
|
200
|
-
* PostToolUse hooks added later for Codex parity (track-active-claim,
|
|
201
|
-
* stay-in-scope — task cf4cdc93) share the identical resolution instead
|
|
202
|
-
* of hand-copying it a second and third time.
|
|
203
|
-
*/
|
|
204
|
-
export function resolveToolInput(event) {
|
|
205
|
-
if (event.tool_input !== undefined)
|
|
206
|
-
return event.tool_input;
|
|
207
|
-
return event.raw_input;
|
|
208
|
-
}
|
|
209
|
-
// ---------------------------------------------------------------------------
|
|
210
|
-
// 6. Pack `config.ux` parser
|
|
76
|
+
// 4. Pack `config.ux` parser
|
|
211
77
|
// ---------------------------------------------------------------------------
|
|
212
78
|
/**
|
|
213
79
|
* Parse the optional `ux:` block from a pack config (task 19e293c6). This
|
|
214
|
-
* body existed as four byte-identical copies (hook-
|
|
215
|
-
*
|
|
216
|
-
* whose only difference was
|
|
80
|
+
* body existed as four byte-identical copies (hook-branch-protection was
|
|
81
|
+
* the only survivor of the removals; the others named their own stderr
|
|
82
|
+
* prefix) whose only difference was that prefix — the exact drift the
|
|
217
83
|
* CHANGELOG had flagged at copy #3 and that landed a 4th time anyway.
|
|
218
84
|
* `hookLabel` carries that prefix so the per-hook stderr warnings stay
|
|
219
85
|
* byte-identical to the pre-extraction output (pinned by a test).
|
|
@@ -233,146 +99,4 @@ export function parseConfigUx(raw, stderr, hookLabel) {
|
|
|
233
99
|
}
|
|
234
100
|
return result.data;
|
|
235
101
|
}
|
|
236
|
-
/**
|
|
237
|
-
* Load the manifest (or use injection), confirm `packName` is declared and
|
|
238
|
-
* enabled, and resolve `generatedDir` — the fixed sequence that follows
|
|
239
|
-
* `loadManifestOrInjected` in nearly every pack hook. Returns a single
|
|
240
|
-
* failure shape with a ready-to-emit `${hookLabel}: ...` diagnostic instead
|
|
241
|
-
* of three separate early-return blocks, so a caller wires it as:
|
|
242
|
-
*
|
|
243
|
-
* const ctx = resolveHookPackContext(hookLabel, packName, opts);
|
|
244
|
-
* if (!ctx.ok) return noop(ctx.diagnostic, stderr, ...);
|
|
245
|
-
*/
|
|
246
|
-
export function resolveHookPackContext(hookLabel, packName, opts) {
|
|
247
|
-
let manifest;
|
|
248
|
-
let manifestPath;
|
|
249
|
-
try {
|
|
250
|
-
({ manifest, manifestPath } = loadManifestOrInjected(opts, opts.manifest));
|
|
251
|
-
}
|
|
252
|
-
catch (err) {
|
|
253
|
-
return {
|
|
254
|
-
ok: false,
|
|
255
|
-
diagnostic: `${hookLabel}: manifest load failed (${err.message}), skipping`,
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
const declared = manifest.policy_packs.find((p) => p.name === packName);
|
|
259
|
-
if (!declared) {
|
|
260
|
-
return {
|
|
261
|
-
ok: false,
|
|
262
|
-
diagnostic: `${hookLabel}: pack "${packName}" not declared in manifest, skipping`,
|
|
263
|
-
};
|
|
264
|
-
}
|
|
265
|
-
if (!declared.enabled) {
|
|
266
|
-
return {
|
|
267
|
-
ok: false,
|
|
268
|
-
diagnostic: `${hookLabel}: pack "${packName}" is enabled:false, skipping`,
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
const generatedDir = opts.generatedDir ??
|
|
272
|
-
(manifestPath !== undefined
|
|
273
|
-
? resolveGeneratedDir({
|
|
274
|
-
...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}),
|
|
275
|
-
manifestPath,
|
|
276
|
-
})
|
|
277
|
-
: undefined);
|
|
278
|
-
if (generatedDir === undefined) {
|
|
279
|
-
return {
|
|
280
|
-
ok: false,
|
|
281
|
-
diagnostic: `${hookLabel}: generatedDir unresolvable, skipping`,
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
return { ok: true, context: { manifest, declared, generatedDir } };
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Parse and validate `session_id` + `agent_id` off an event body (the
|
|
288
|
-
* subagent-start/subagent-stop shared shape). `validateAgentId` is
|
|
289
|
-
* injected rather than imported here — the agent-id allowlist lives with
|
|
290
|
-
* the understanding-before-execution pack's in-flight records
|
|
291
|
-
* (`rejectMalformedAgentId`), and this module stays pack-agnostic on
|
|
292
|
-
* purpose (see the module header).
|
|
293
|
-
*/
|
|
294
|
-
export function resolveSessionAndAgentIds(hookLabel, event, validateAgentId) {
|
|
295
|
-
const sessionId = pickString(event.session_id) ?? "";
|
|
296
|
-
const agentId = pickString(event.agent_id) ?? "";
|
|
297
|
-
if (sessionId === "") {
|
|
298
|
-
return { ok: false, diagnostic: `${hookLabel}: missing session_id, skipping`, sessionId: null };
|
|
299
|
-
}
|
|
300
|
-
// Validate sessionId right after the emptiness check, before any other
|
|
301
|
-
// early return, so every ok:false path below carries an already-rejected
|
|
302
|
-
// (never a raw, unvalidated) sessionId — a caller that echoes `sessionId`
|
|
303
|
-
// into a diagnostic or a path.join can never see an unvalidated value.
|
|
304
|
-
try {
|
|
305
|
-
rejectMalformedSessionId(sessionId);
|
|
306
|
-
}
|
|
307
|
-
catch (err) {
|
|
308
|
-
return {
|
|
309
|
-
ok: false,
|
|
310
|
-
diagnostic: `${hookLabel}: malformed session_id (${err.message}), skipping`,
|
|
311
|
-
sessionId: null,
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
if (agentId === "") {
|
|
315
|
-
return { ok: false, diagnostic: `${hookLabel}: missing agent_id, skipping`, sessionId };
|
|
316
|
-
}
|
|
317
|
-
try {
|
|
318
|
-
validateAgentId(agentId);
|
|
319
|
-
}
|
|
320
|
-
catch (err) {
|
|
321
|
-
return {
|
|
322
|
-
ok: false,
|
|
323
|
-
diagnostic: `${hookLabel}: malformed agent_id (${err.message}), skipping`,
|
|
324
|
-
sessionId,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
return { ok: true, ids: { sessionId, agentId } };
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* The three-step preamble subagent-start and subagent-stop both ran
|
|
331
|
-
* verbatim before the point where their bodies diverge (write vs. clear):
|
|
332
|
-
* pause-sentinel check, session_id/agent_id resolution, then pack-context
|
|
333
|
-
* resolution. Extracted to close the residual clone between the two hook
|
|
334
|
-
* files (review finding, subagent-gate). `verb` names the hook for both
|
|
335
|
-
* the pause check's own stderr label and the caller-facing "paused,
|
|
336
|
-
* skipping" diagnostic (e.g. "subagent-start"); `hookLabel` is the fuller
|
|
337
|
-
* `harness pack hook: <verb>` prefix used in every other diagnostic.
|
|
338
|
-
*
|
|
339
|
-
* Each ok:false case reports a `sessionId`/`agentId` pair matching exactly
|
|
340
|
-
* what the pre-extraction call sites passed to their own `noop()`: both
|
|
341
|
-
* null on a pause, `sessionId` non-null (once past validation) on a
|
|
342
|
-
* missing/malformed agent_id, and both non-null once ids resolved but the
|
|
343
|
-
* pack context failed.
|
|
344
|
-
*/
|
|
345
|
-
export function resolveSubagentHookContext(hookLabel, verb, packName, event, validateAgentId, opts) {
|
|
346
|
-
if (checkHookPause(verb, opts.stderr, opts, opts.generatedDir).paused) {
|
|
347
|
-
return {
|
|
348
|
-
ok: false,
|
|
349
|
-
diagnostic: `harness paused; ${verb} skipping without evaluating.`,
|
|
350
|
-
sessionId: null,
|
|
351
|
-
agentId: null,
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
const idsResult = resolveSessionAndAgentIds(hookLabel, event, validateAgentId);
|
|
355
|
-
if (!idsResult.ok) {
|
|
356
|
-
return {
|
|
357
|
-
ok: false,
|
|
358
|
-
diagnostic: idsResult.diagnostic,
|
|
359
|
-
sessionId: idsResult.sessionId,
|
|
360
|
-
agentId: null,
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
const { sessionId, agentId } = idsResult.ids;
|
|
364
|
-
const ctx = resolveHookPackContext(hookLabel, packName, opts);
|
|
365
|
-
if (!ctx.ok) {
|
|
366
|
-
return { ok: false, diagnostic: ctx.diagnostic, sessionId, agentId };
|
|
367
|
-
}
|
|
368
|
-
return {
|
|
369
|
-
ok: true,
|
|
370
|
-
context: {
|
|
371
|
-
sessionId,
|
|
372
|
-
agentId,
|
|
373
|
-
declared: ctx.context.declared,
|
|
374
|
-
generatedDir: ctx.context.generatedDir,
|
|
375
|
-
},
|
|
376
|
-
};
|
|
377
|
-
}
|
|
378
102
|
//# sourceMappingURL=hook-bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-bootstrap.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-bootstrap.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"hook-bootstrap.js","sourceRoot":"","sources":["../../../src/cli/pack/hook-bootstrap.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,iBAAiB;AACjB,EAAE;AACF,8DAA8D;AAC9D,2EAA2E;AAC3E,0EAA0E;AAC1E,iDAAiD;AACjD,oEAAoE;AACpE,8CAA8C;AAC9C,4EAA4E;AAC5E,6DAA6D;AAC7D,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAsB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAsBrF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA6B,EAC7B,OAAgD,EAAE;IAElD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrE,CAAC;AAeD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAyB,EACzB,QAA8B;IAE9B,4EAA4E;IAC5E,8EAA8E;IAC9E,sDAAsD;IACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,GAAG,UAAqB;IACjD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAY,EACZ,MAA6B,EAC7B,SAAiB;IAEjB,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CACV,GAAG,SAAS,wBAAwB,MAAM,CAAC,KAAK,CAAC,MAAM;aACpD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type GitHeadReader } from "../../runtime/git-branch.js";
|
|
2
2
|
import { type Manifest } from "../../schema/index.js";
|
|
3
3
|
import { type LoaderOptions } from "../loader.js";
|
|
4
|
+
/**
|
|
5
|
+
* Bound on resolving the paths and on all git calls of one event together,
|
|
6
|
+
* in ms, counted from the moment the hook starts (the stdin read and the
|
|
7
|
+
* manifest load included), so neither a slow stdin nor a large event can
|
|
8
|
+
* push the hook past its budget.
|
|
9
|
+
*/
|
|
10
|
+
export declare const GIT_READ_DEADLINE_MS = 3000;
|
|
11
|
+
/** The runtimes whose block contract this hook speaks. */
|
|
12
|
+
export declare const BRANCH_PROTECTION_RUNTIMES: readonly ["claude-code", "codex"];
|
|
4
13
|
export interface PackHookBranchProtectionOptions extends LoaderOptions {
|
|
5
14
|
/** Defaults to process.stdin. */
|
|
6
15
|
stdin?: NodeJS.ReadableStream;
|
|
@@ -8,26 +17,20 @@ export interface PackHookBranchProtectionOptions extends LoaderOptions {
|
|
|
8
17
|
stdout?: NodeJS.WritableStream;
|
|
9
18
|
/** Defaults to process.stderr. */
|
|
10
19
|
stderr?: NodeJS.WritableStream;
|
|
11
|
-
/** Override "now" for deterministic freshness-window tests. */
|
|
12
|
-
now?: Date;
|
|
13
20
|
/** Override the cwd resolution (test injection). */
|
|
14
21
|
cwd?: string;
|
|
15
|
-
/** Per-call ledger timeout in ms. */
|
|
16
|
-
ledgerTimeoutMs?: number;
|
|
17
22
|
/** Inject a manifest (test). */
|
|
18
23
|
manifest?: Manifest;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/** Inject
|
|
28
|
-
|
|
29
|
-
degraded: string;
|
|
30
|
-
}>;
|
|
24
|
+
/** Block contract: `claude-code` (default) or `codex`. */
|
|
25
|
+
runtime?: string;
|
|
26
|
+
/** Inject the git runner (test). */
|
|
27
|
+
gitReader?: GitHeadReader;
|
|
28
|
+
/** Bound on one git call in ms (test). */
|
|
29
|
+
gitTimeoutMs?: number;
|
|
30
|
+
/** Bound on the path resolution and all git calls of one event, from the hook's start, in ms (test). */
|
|
31
|
+
gitDeadlineMs?: number;
|
|
32
|
+
/** Inject the clock the bound is measured with, in ms (test). Defaults to Date.now. */
|
|
33
|
+
now?: () => number;
|
|
31
34
|
}
|
|
32
35
|
export interface PackHookBranchProtectionResult {
|
|
33
36
|
exitCode: number;
|
|
@@ -36,9 +39,13 @@ export interface PackHookBranchProtectionResult {
|
|
|
36
39
|
diagnostic: string;
|
|
37
40
|
}
|
|
38
41
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
* Every path an `apply_patch` call names in a file header line, read from
|
|
43
|
+
* every string of `value` (the whole event, or any part of it), each once.
|
|
44
|
+
*/
|
|
45
|
+
export declare function patchTargetPaths(value: unknown): string[];
|
|
46
|
+
/**
|
|
47
|
+
* `harness pack hook branch-protection`. `opts.runtime` selects the block
|
|
48
|
+
* contract; an unknown value refuses with exit 2, which both runtimes read as
|
|
49
|
+
* a block.
|
|
43
50
|
*/
|
|
44
51
|
export declare function runPackHookBranchProtectionCli(opts?: PackHookBranchProtectionOptions): Promise<PackHookBranchProtectionResult>;
|