@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,166 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
const NonblankString = z.string().min(1).refine((value) => value.trim().length > 0, {
|
|
3
|
-
message: "must not be blank",
|
|
4
|
-
});
|
|
5
|
-
// Codex expands only a bare pipe-list of simple names. Keeping the same
|
|
6
|
-
// restricted grammar here means a configured name cannot change matcher
|
|
7
|
-
// syntax or introduce a regular-expression fragment.
|
|
8
|
-
const SimpleToolName = z.string().min(1).regex(/^[A-Za-z0-9_.:-]+$/, {
|
|
9
|
-
message: "must be a simple tool name without matcher metacharacters",
|
|
10
|
-
}).refine((value) => value.trim().length > 0, { message: "must not be blank" });
|
|
11
|
-
const DescriptionWindowSchema = z
|
|
12
|
-
.object({
|
|
13
|
-
marker: NonblankString,
|
|
14
|
-
contains: NonblankString,
|
|
15
|
-
max_chars: z.number().int().positive(),
|
|
16
|
-
})
|
|
17
|
-
.strict();
|
|
18
|
-
const ParentReferencePattern = z.string().nullable().superRefine((value, ctx) => {
|
|
19
|
-
if (value === null)
|
|
20
|
-
return;
|
|
21
|
-
try {
|
|
22
|
-
new RegExp(value, "i");
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must be valid regular-expression source" });
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
const ParentUrlPattern = z.string().nullable().superRefine((value, ctx) => {
|
|
29
|
-
if (value === null)
|
|
30
|
-
return;
|
|
31
|
-
try {
|
|
32
|
-
new RegExp(value);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must be valid regular-expression source" });
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* The optional reminder integration's one shared strict input schema.
|
|
40
|
-
* Runtime consumers deliberately parse this schema again: a previously
|
|
41
|
-
* generated hook must turn into a no-op when an operator disables or breaks
|
|
42
|
-
* the current manifest after apply.
|
|
43
|
-
*/
|
|
44
|
-
export const StayInScopeConfigSchema = z
|
|
45
|
-
.object({
|
|
46
|
-
enabled: z.boolean(),
|
|
47
|
-
tools: z.array(SimpleToolName).min(1).optional(),
|
|
48
|
-
label_markers: z.array(NonblankString).optional(),
|
|
49
|
-
description_markers: z.array(NonblankString).optional(),
|
|
50
|
-
description_window: DescriptionWindowSchema.nullable().optional(),
|
|
51
|
-
parent_reference_pattern: ParentReferencePattern.optional(),
|
|
52
|
-
parent_url_pattern: ParentUrlPattern.optional(),
|
|
53
|
-
messages: z
|
|
54
|
-
.object({ reminder: NonblankString, second_order: NonblankString })
|
|
55
|
-
.strict()
|
|
56
|
-
.optional(),
|
|
57
|
-
})
|
|
58
|
-
.strict()
|
|
59
|
-
.superRefine((value, ctx) => {
|
|
60
|
-
if (!value.enabled)
|
|
61
|
-
return;
|
|
62
|
-
for (const key of [
|
|
63
|
-
"tools",
|
|
64
|
-
"label_markers",
|
|
65
|
-
"description_markers",
|
|
66
|
-
"description_window",
|
|
67
|
-
"parent_reference_pattern",
|
|
68
|
-
"parent_url_pattern",
|
|
69
|
-
"messages",
|
|
70
|
-
]) {
|
|
71
|
-
if (value[key] === undefined) {
|
|
72
|
-
ctx.addIssue({ code: z.ZodIssueCode.custom, path: [key], message: "is required when enabled:true" });
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if ((value.label_markers?.length ?? 0) === 0 &&
|
|
76
|
-
(value.description_markers?.length ?? 0) === 0 &&
|
|
77
|
-
value.description_window === null) {
|
|
78
|
-
ctx.addIssue({
|
|
79
|
-
code: z.ZodIssueCode.custom,
|
|
80
|
-
message: "enabled:true requires at least one label, description, or window detector",
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
/** Returns null for absent, disabled, or invalid configuration. */
|
|
85
|
-
export function resolveStayInScopeConfig(raw) {
|
|
86
|
-
const parsed = StayInScopeConfigSchema.safeParse(raw);
|
|
87
|
-
if (!parsed.success || !parsed.data.enabled)
|
|
88
|
-
return null;
|
|
89
|
-
const value = parsed.data;
|
|
90
|
-
// superRefine establishes these fields for enabled:true. The narrow casts
|
|
91
|
-
// keep the public resolver free of a second, diverging validation path.
|
|
92
|
-
if (value.tools === undefined ||
|
|
93
|
-
value.label_markers === undefined ||
|
|
94
|
-
value.description_markers === undefined ||
|
|
95
|
-
value.description_window === undefined ||
|
|
96
|
-
value.parent_reference_pattern === undefined ||
|
|
97
|
-
value.parent_url_pattern === undefined ||
|
|
98
|
-
value.messages === undefined) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
tools: value.tools,
|
|
103
|
-
labelMarkers: value.label_markers,
|
|
104
|
-
descriptionMarkers: value.description_markers,
|
|
105
|
-
descriptionWindow: value.description_window === null
|
|
106
|
-
? null
|
|
107
|
-
: {
|
|
108
|
-
marker: value.description_window.marker,
|
|
109
|
-
contains: value.description_window.contains,
|
|
110
|
-
maxChars: value.description_window.max_chars,
|
|
111
|
-
},
|
|
112
|
-
parentReferencePattern: value.parent_reference_pattern,
|
|
113
|
-
parentUrlPattern: value.parent_url_pattern,
|
|
114
|
-
messages: {
|
|
115
|
-
reminder: value.messages.reminder,
|
|
116
|
-
secondOrder: value.messages.second_order,
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
function firstParentReference(description, pattern) {
|
|
121
|
-
if (pattern === null)
|
|
122
|
-
return null;
|
|
123
|
-
const match = description.match(new RegExp(pattern, "i"));
|
|
124
|
-
const capture = match?.[1];
|
|
125
|
-
return typeof capture === "string" && /^[0-9]+$/.test(capture) ? capture : null;
|
|
126
|
-
}
|
|
127
|
-
export function evaluateStayInScopeMatch(config, labels, description) {
|
|
128
|
-
const labelMatch = labels.some((label) => config.labelMarkers.some((marker) => label.toLowerCase().includes(marker.toLowerCase())));
|
|
129
|
-
const explicitMarker = config.descriptionMarkers.some((marker) => description.includes(marker));
|
|
130
|
-
const window = config.descriptionWindow;
|
|
131
|
-
const windowMatch = !explicitMarker &&
|
|
132
|
-
window !== null &&
|
|
133
|
-
(() => {
|
|
134
|
-
const index = description.indexOf(window.marker);
|
|
135
|
-
return index !== -1 && description.slice(index, index + window.maxChars).toLowerCase().includes(window.contains.toLowerCase());
|
|
136
|
-
})();
|
|
137
|
-
const matchedRule = labelMatch
|
|
138
|
-
? "label"
|
|
139
|
-
: explicitMarker
|
|
140
|
-
? "explicit-marker"
|
|
141
|
-
: windowMatch
|
|
142
|
-
? "hintergrund-marker"
|
|
143
|
-
: "none";
|
|
144
|
-
const parentReference = firstParentReference(description, config.parentReferencePattern);
|
|
145
|
-
return {
|
|
146
|
-
matched: matchedRule !== "none",
|
|
147
|
-
matchedRule,
|
|
148
|
-
secondOrder: labelMatch && parentReference !== null,
|
|
149
|
-
parentReference,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
export function extractConfiguredParentUrl(config, description, parentReference) {
|
|
153
|
-
if (config.parentUrlPattern !== null) {
|
|
154
|
-
const pattern = new RegExp(config.parentUrlPattern, "g");
|
|
155
|
-
let match;
|
|
156
|
-
while ((match = pattern.exec(description)) !== null) {
|
|
157
|
-
if (match[0].length > 0)
|
|
158
|
-
return match[0];
|
|
159
|
-
if (pattern.lastIndex >= description.length)
|
|
160
|
-
break;
|
|
161
|
-
pattern.lastIndex += 1;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return parentReference === null ? null : `#${parentReference}`;
|
|
165
|
-
}
|
|
166
|
-
//# sourceMappingURL=stay-in-scope-config.js.map
|
package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stay-in-scope-config.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;IAClF,OAAO,EAAE,mBAAmB;CAC7B,CAAC,CAAC;AAEH,wEAAwE;AACxE,wEAAwE;AACxE,qDAAqD;AACrD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAE;IACnE,OAAO,EAAE,2DAA2D;CACrE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAEhF,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC9E,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IACjD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IACvD,kBAAkB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjE,wBAAwB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC3D,kBAAkB,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;SAClE,MAAM,EAAE;SACR,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE;KACR,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO;IAC3B,KAAK,MAAM,GAAG,IAAI;QAChB,OAAO;QACP,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,UAAU;KACF,EAAE,CAAC;QACX,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IACD,IACE,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAC9C,KAAK,CAAC,kBAAkB,KAAK,IAAI,EACjC,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,2EAA2E;SACrF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAYL,mEAAmE;AACnE,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,0EAA0E;IAC1E,wEAAwE;IACxE,IACE,KAAK,CAAC,KAAK,KAAK,SAAS;QACzB,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,KAAK,CAAC,mBAAmB,KAAK,SAAS;QACvC,KAAK,CAAC,kBAAkB,KAAK,SAAS;QACtC,KAAK,CAAC,wBAAwB,KAAK,SAAS;QAC5C,KAAK,CAAC,kBAAkB,KAAK,SAAS;QACtC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,aAAa;QACjC,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;QAC7C,iBAAiB,EACf,KAAK,CAAC,kBAAkB,KAAK,IAAI;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,MAAM;gBACvC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,QAAQ;gBAC3C,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,SAAS;aAC7C;QACP,sBAAsB,EAAE,KAAK,CAAC,wBAAwB;QACtD,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;QAC1C,QAAQ,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACjC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;SACzC;KACF,CAAC;AACJ,CAAC;AAWD,SAAS,oBAAoB,CAAC,WAAmB,EAAE,OAAsB;IACvE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAyB,EACzB,MAAyB,EACzB,WAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CACzF,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxC,MAAM,WAAW,GACf,CAAC,cAAc;QACf,MAAM,KAAK,IAAI;QACf,CAAC,GAAG,EAAE;YACJ,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,KAAK,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACjI,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAA2B,UAAU;QACpD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,cAAc;YACd,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,MAAM,CAAC;IACf,MAAM,eAAe,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACzF,OAAO;QACL,OAAO,EAAE,WAAW,KAAK,MAAM;QAC/B,WAAW;QACX,WAAW,EAAE,UAAU,IAAI,eAAe,KAAK,IAAI;QACnD,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAyB,EACzB,WAAmB,EACnB,eAA8B;IAE9B,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM;gBAAE,MAAM;YACnD,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { type ApprovalMarker, type CheckApprovalMarkerOptions, type MarkerCheck } from "./markers.js";
|
|
2
|
-
import { type ApprovalMarkerKind } from "./persisted-reports.js";
|
|
3
|
-
export declare const APPROVAL_MARKER_TASK_PREFIX = "task-";
|
|
4
|
-
/** Filesystem path of a per-task approval marker. */
|
|
5
|
-
export declare function taskApprovalMarkerPathFor(generatedDir: string, taskId: string): string;
|
|
6
|
-
/**
|
|
7
|
-
* Operator-side: write a task-scoped marker file. Atomic. Caller is
|
|
8
|
-
* `harness approve understanding --task <id>`. The session marker is
|
|
9
|
-
* written separately by the same caller for back-compat.
|
|
10
|
-
*
|
|
11
|
-
* Signed the same way as `writeApprovalMarker` (harness/f9485cc7), using
|
|
12
|
-
* `task-<id>` (the exact string `checkActiveClaimApprovalMarker` looks
|
|
13
|
-
* up) as the signed markerId — so a validly-signed task marker cannot be
|
|
14
|
-
* copied onto a different task id (or the session marker's id) and still
|
|
15
|
-
* verify.
|
|
16
|
-
*/
|
|
17
|
-
export declare function writeTaskApprovalMarker(generatedDir: string, taskId: string, marker: ApprovalMarker): string;
|
|
18
|
-
/**
|
|
19
|
-
* Gate-side: resolve the active agent-tasks claim (via `active-claim`)
|
|
20
|
-
* and check ONLY that task's approval marker. When no active claim is
|
|
21
|
-
* recorded, this returns `matched:false` so the caller falls through
|
|
22
|
-
* to the session marker — preserving the legacy contract for solo /
|
|
23
|
-
* non-agent-tasks workflows that never call `task_start`.
|
|
24
|
-
*
|
|
25
|
-
* Replaces the v1 "any task marker satisfies the gate" behaviour
|
|
26
|
-
* (PR #198): a stale approval from a different, already-completed task
|
|
27
|
-
* was silently authorising every Edit/Write/Bash in the next session
|
|
28
|
-
* because the scan returned the first existing marker regardless of
|
|
29
|
-
* which task the agent had actually claimed.
|
|
30
|
-
*
|
|
31
|
-
* Same safety filters as `checkApprovalMarker` (signature verification,
|
|
32
|
-
* symlink rejection, optional freshness via `maxAgeMs`); the only
|
|
33
|
-
* difference is the filename suffix derived from `active-claim`.
|
|
34
|
-
*/
|
|
35
|
-
export declare function checkActiveClaimApprovalMarker(generatedDir: string, opts?: CheckApprovalMarkerOptions): MarkerCheck;
|
|
36
|
-
export interface SessionMarkerCheck extends MarkerCheck {
|
|
37
|
-
/**
|
|
38
|
-
* True when a validly signed session marker existed but was refused
|
|
39
|
-
* because of its task binding (task 5018c0c4): it was granted for a
|
|
40
|
-
* different active claim than the current one, or it carries no
|
|
41
|
-
* binding at all (written by a release before the binding existed).
|
|
42
|
-
* `matched`, `expired` and `forged` are all false in that case: the
|
|
43
|
-
* gate treats it exactly like a missing marker.
|
|
44
|
-
*/
|
|
45
|
-
bindingRefused: boolean;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Gate-side: the session-keyed marker, accepted only while it belongs to
|
|
49
|
-
* the current task (task 5018c0c4, operator decision: bind the session
|
|
50
|
-
* marker to the task). `writeApprovalMarker` records the active-claim
|
|
51
|
-
* task id at approval time (`null` when none was held); this reader
|
|
52
|
-
* compares it with the active claim NOW and refuses the marker when the
|
|
53
|
-
* two differ, so an approval never carries over to another task, even
|
|
54
|
-
* when the previous task completed outside the session where no
|
|
55
|
-
* PostToolUse hook could expire it (a merge in the UI, a webhook moving
|
|
56
|
-
* the task to done). A marker without the binding field (older release)
|
|
57
|
-
* is refused too: one fresh approve re-binds it.
|
|
58
|
-
*
|
|
59
|
-
* The binding is checked BEFORE the `maxAgeMs` verdict is passed on, so a
|
|
60
|
-
* marker that belongs to another task never reads as `expired` (that
|
|
61
|
-
* signal means "this task's own approval aged out" and opens the
|
|
62
|
-
* recovery-git-commit exemption, see src/runtime/recovery-git-commit.ts).
|
|
63
|
-
*
|
|
64
|
-
* `opts.taskBinding` is required so every reader states it: pass
|
|
65
|
-
* `!lifecycle.legacyMode`. Under `approval_lifecycle: { mode: session }`
|
|
66
|
-
* (operator decision on task 5018c0c4) the binding is NOT applied: the
|
|
67
|
-
* documented contract of that mode is one approval for the whole
|
|
68
|
-
* session, bounded only by `max_age`, so a bound or unbound session
|
|
69
|
-
* marker counts for every task there. The writer still records
|
|
70
|
-
* `claimTaskId` in every mode, so switching away from `mode: session`
|
|
71
|
-
* takes effect on the next check without a re-approve.
|
|
72
|
-
*/
|
|
73
|
-
export interface CheckSessionApprovalMarkerOptions extends CheckApprovalMarkerOptions {
|
|
74
|
-
/** Apply the claimed-task binding (false under `mode: session`). */
|
|
75
|
-
taskBinding: boolean;
|
|
76
|
-
}
|
|
77
|
-
export declare function checkSessionApprovalMarker(generatedDir: string, sessionId: string, opts: CheckSessionApprovalMarkerOptions): SessionMarkerCheck;
|
|
78
|
-
export interface OperatorMarkerApproval {
|
|
79
|
-
matched: boolean;
|
|
80
|
-
/** Which marker satisfied the gate; null when neither matched. */
|
|
81
|
-
source: "task" | "session" | null;
|
|
82
|
-
/** Detail of the decisive check (the match, or the session-scoped miss). */
|
|
83
|
-
detail: string;
|
|
84
|
-
/** Task-scoped check detail, for callers that trace the fall-through. */
|
|
85
|
-
taskCheckDetail: string;
|
|
86
|
-
/**
|
|
87
|
-
* The matched marker's signed `reportContentHash`; null when no marker
|
|
88
|
-
* matched or the matched marker binds no report. The gate-read
|
|
89
|
-
* cross-check (`verifyApprovedReportHash`) consumes it.
|
|
90
|
-
*/
|
|
91
|
-
reportContentHash: string | null;
|
|
92
|
-
/**
|
|
93
|
-
* A session marker that ALSO matched behind a matched task marker whose
|
|
94
|
-
* signed hash is non-null (null otherwise). The gate-read cross-check
|
|
95
|
-
* falls back to it when the task marker's report content is gone: a task
|
|
96
|
-
* marker is not bound to a session, so it can be signed for another
|
|
97
|
-
* session's report while this session's own marker still verifies.
|
|
98
|
-
*/
|
|
99
|
-
sessionFallback: {
|
|
100
|
-
detail: string;
|
|
101
|
-
reportContentHash: string | null;
|
|
102
|
-
} | null;
|
|
103
|
-
/**
|
|
104
|
-
* True when EITHER the task-scoped or the session-scoped marker
|
|
105
|
-
* existed but aged past `approval_lifecycle.max_age` (task 6e888423).
|
|
106
|
-
* False when `matched` is true, and false when a marker was simply
|
|
107
|
-
* absent (never approved, or cleared by a task-completion boundary
|
|
108
|
-
* tool) — distinguishing "this identity had a real approval that
|
|
109
|
-
* merely expired" from "this identity was never approved" / "a new
|
|
110
|
-
* task just started". PreToolUse hooks use this (never on its own —
|
|
111
|
-
* always alongside `isRecoveryGitCommit`) to decide whether a bare
|
|
112
|
-
* recovery `git commit` may proceed without a fresh Understanding
|
|
113
|
-
* Report; see src/runtime/recovery-git-commit.ts.
|
|
114
|
-
*/
|
|
115
|
-
expired: boolean;
|
|
116
|
-
/**
|
|
117
|
-
* True when EITHER the task-scoped or the session-scoped marker
|
|
118
|
-
* existed but FAILED signature verification (harness/f9485cc7) —
|
|
119
|
-
* missing/invalid signature, wrong `alg`, or tampered payload. Distinct
|
|
120
|
-
* from a marker simply being absent, so a caller can log a forgery
|
|
121
|
-
* attempt distinctly from the routine "not approved yet" case.
|
|
122
|
-
*/
|
|
123
|
-
forged: boolean;
|
|
124
|
-
/**
|
|
125
|
-
* True when the session marker was refused only because of its task
|
|
126
|
-
* binding (`SessionMarkerCheck.bindingRefused`, task 5018c0c4): it
|
|
127
|
-
* belongs to another task, or predates the binding. Always false when
|
|
128
|
-
* `matched` is true. Lets the PreToolUse hooks say "the approval
|
|
129
|
-
* belongs to another task" instead of "no approval marker".
|
|
130
|
-
*/
|
|
131
|
-
sessionBindingRefused: boolean;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Shared marker resolution for the Claude and Codex understanding-gate
|
|
135
|
-
* PreToolUse hooks (task e7c2ec3c): parse `approval_lifecycle` from the
|
|
136
|
-
* pack config, consult the task-scoped (active-claim) marker first and
|
|
137
|
-
* the session-scoped marker second, both under the same TTL. One code
|
|
138
|
-
* path on purpose — the Codex hook previously called the bare session
|
|
139
|
-
* check, so `max_age` and task-scoping silently applied only to Claude
|
|
140
|
-
* sessions.
|
|
141
|
-
*/
|
|
142
|
-
export declare function checkOperatorApprovalMarkers(generatedDir: string, sessionId: string, packConfig: unknown, stderr?: {
|
|
143
|
-
write: (s: string) => void;
|
|
144
|
-
} | null): OperatorMarkerApproval;
|
|
145
|
-
/** Clear a specific task-scoped marker. Used by the post-tool-use hook. */
|
|
146
|
-
export declare function clearTaskApprovalMarker(generatedDir: string, taskId: string): void;
|
|
147
|
-
export type MatchedMarkerReportCheck = {
|
|
148
|
-
ok: true;
|
|
149
|
-
source: ApprovalMarkerKind;
|
|
150
|
-
detail: string;
|
|
151
|
-
} | {
|
|
152
|
-
ok: false;
|
|
153
|
-
detail: string;
|
|
154
|
-
};
|
|
155
|
-
/**
|
|
156
|
-
* Gate-read report cross-check for a matched operator marker, shared by the
|
|
157
|
-
* Claude and Codex PreToolUse hooks (task fa423e9b). Applies
|
|
158
|
-
* `verifyApprovedReportHash` to the matched marker and, when that fails and
|
|
159
|
-
* a session marker matched behind a task marker, to the session marker, so
|
|
160
|
-
* the verdict never depends on which marker the check order happened to
|
|
161
|
-
* pick. On success `source`/`detail` describe the marker that verified; on
|
|
162
|
-
* failure `detail` is the block reason.
|
|
163
|
-
*/
|
|
164
|
-
export declare function verifyMatchedMarkerReport(reportsDir: string, markers: OperatorMarkerApproval): MatchedMarkerReportCheck;
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
// Task-scoped approval markers (harness/1ee26e77), split out of the
|
|
2
|
-
// former monolithic understanding-before-execution-runtime.ts (structural
|
|
3
|
-
// concentration slice 2, agent-tasks 348a4d42). Pure move: see
|
|
4
|
-
// src/policy-packs/builtin/understanding-before-execution/index.ts for
|
|
5
|
-
// the re-exported public surface.
|
|
6
|
-
import * as fs from "node:fs";
|
|
7
|
-
import * as path from "node:path";
|
|
8
|
-
import { atomicWriteFile } from "../../../io/atomic-write.js";
|
|
9
|
-
import { signMarker } from "../../../runtime/approval-signing.js";
|
|
10
|
-
import { readActiveClaim } from "./active-claim.js";
|
|
11
|
-
import { parseApprovalLifecycle } from "./lifecycle.js";
|
|
12
|
-
import { APPROVAL_MARKER_DIRNAME, checkApprovalMarker, } from "./markers.js";
|
|
13
|
-
import { verifyApprovedReportHash, } from "./persisted-reports.js";
|
|
14
|
-
// Task-scoped approval markers (harness/1ee26e77). When the operator
|
|
15
|
-
// passes `--task <id>` to `harness approve understanding`, a second
|
|
16
|
-
// marker file is written next to the session marker, keyed by the
|
|
17
|
-
// agent-tasks task id and prefixed `task-` so a directory scan can
|
|
18
|
-
// distinguish them from session-keyed markers (UUIDs do not start with
|
|
19
|
-
// `task-`). Either marker satisfies the gate; the session marker
|
|
20
|
-
// remains for back-compat with operators who don't pass --task and for
|
|
21
|
-
// non-agent-tasks workflows.
|
|
22
|
-
//
|
|
23
|
-
// Why task-scope: a session can span many distinct tasks; the operator's
|
|
24
|
-
// Understanding Report for task A doesn't transfer trust to task B
|
|
25
|
-
// (different surface, different acceptance criteria). Without per-task
|
|
26
|
-
// markers a multi-task session re-uses the first task's approval for
|
|
27
|
-
// every subsequent task. The expire_on_tool_match PostToolUse hook
|
|
28
|
-
// deletes the session marker on a listed completion boundary (a
|
|
29
|
-
// `task_finish` to done, `task_abandon`, `task_merge`, ...), but if
|
|
30
|
-
// delivery is unreliable (e.g. PostToolUse skipped for an MCP tool) or
|
|
31
|
-
// the task completes outside the session (a merge in the UI), the file
|
|
32
|
-
// persists. A task-keyed marker side-steps that delivery concern because
|
|
33
|
-
// the next task's id is different even if the previous marker file
|
|
34
|
-
// outlives its scope; outside `mode: session` the session marker gets
|
|
35
|
-
// the same property from its signed task binding
|
|
36
|
-
// (`checkSessionApprovalMarker`, task 5018c0c4).
|
|
37
|
-
export const APPROVAL_MARKER_TASK_PREFIX = "task-";
|
|
38
|
-
/**
|
|
39
|
-
* Reject taskIds that would escape the approvals/ namespace via path
|
|
40
|
-
* traversal or directory separators. The operator's --task flag value
|
|
41
|
-
* lands here verbatim; an accidental shell-expanded `..` or `/` would
|
|
42
|
-
* otherwise write to a sibling directory. This is defensive — the
|
|
43
|
-
* caller is the operator's own shell — but pins the trust boundary.
|
|
44
|
-
*/
|
|
45
|
-
function rejectMalformedTaskId(taskId) {
|
|
46
|
-
if (taskId.length === 0) {
|
|
47
|
-
throw new Error("taskId is empty");
|
|
48
|
-
}
|
|
49
|
-
if (taskId.includes("/") || taskId.includes("\\") || taskId.includes("..")) {
|
|
50
|
-
throw new Error(`taskId contains path-separator or traversal characters: ${JSON.stringify(taskId)}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/** Filesystem path of a per-task approval marker. */
|
|
54
|
-
export function taskApprovalMarkerPathFor(generatedDir, taskId) {
|
|
55
|
-
rejectMalformedTaskId(taskId);
|
|
56
|
-
return path.join(generatedDir, APPROVAL_MARKER_DIRNAME, `${APPROVAL_MARKER_TASK_PREFIX}${taskId}`);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Operator-side: write a task-scoped marker file. Atomic. Caller is
|
|
60
|
-
* `harness approve understanding --task <id>`. The session marker is
|
|
61
|
-
* written separately by the same caller for back-compat.
|
|
62
|
-
*
|
|
63
|
-
* Signed the same way as `writeApprovalMarker` (harness/f9485cc7), using
|
|
64
|
-
* `task-<id>` (the exact string `checkActiveClaimApprovalMarker` looks
|
|
65
|
-
* up) as the signed markerId — so a validly-signed task marker cannot be
|
|
66
|
-
* copied onto a different task id (or the session marker's id) and still
|
|
67
|
-
* verify.
|
|
68
|
-
*/
|
|
69
|
-
export function writeTaskApprovalMarker(generatedDir, taskId, marker) {
|
|
70
|
-
const filePath = taskApprovalMarkerPathFor(generatedDir, taskId);
|
|
71
|
-
const markerId = `${APPROVAL_MARKER_TASK_PREFIX}${taskId}`;
|
|
72
|
-
const signed = signMarker(generatedDir, markerId, marker);
|
|
73
|
-
atomicWriteFile(filePath, `${JSON.stringify(signed, null, 2)}\n`, { mode: 0o600 });
|
|
74
|
-
return filePath;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Gate-side: resolve the active agent-tasks claim (via `active-claim`)
|
|
78
|
-
* and check ONLY that task's approval marker. When no active claim is
|
|
79
|
-
* recorded, this returns `matched:false` so the caller falls through
|
|
80
|
-
* to the session marker — preserving the legacy contract for solo /
|
|
81
|
-
* non-agent-tasks workflows that never call `task_start`.
|
|
82
|
-
*
|
|
83
|
-
* Replaces the v1 "any task marker satisfies the gate" behaviour
|
|
84
|
-
* (PR #198): a stale approval from a different, already-completed task
|
|
85
|
-
* was silently authorising every Edit/Write/Bash in the next session
|
|
86
|
-
* because the scan returned the first existing marker regardless of
|
|
87
|
-
* which task the agent had actually claimed.
|
|
88
|
-
*
|
|
89
|
-
* Same safety filters as `checkApprovalMarker` (signature verification,
|
|
90
|
-
* symlink rejection, optional freshness via `maxAgeMs`); the only
|
|
91
|
-
* difference is the filename suffix derived from `active-claim`.
|
|
92
|
-
*/
|
|
93
|
-
export function checkActiveClaimApprovalMarker(generatedDir, opts = {}) {
|
|
94
|
-
const claim = readActiveClaim(generatedDir);
|
|
95
|
-
if (claim === null) {
|
|
96
|
-
return {
|
|
97
|
-
matched: false,
|
|
98
|
-
detail: `no active-claim recorded; task-scoped check skipped`,
|
|
99
|
-
marker: null,
|
|
100
|
-
expired: false,
|
|
101
|
-
forged: false,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
const markerName = `${APPROVAL_MARKER_TASK_PREFIX}${claim}`;
|
|
105
|
-
const check = checkApprovalMarker(generatedDir, markerName, opts);
|
|
106
|
-
if (check.matched) {
|
|
107
|
-
return {
|
|
108
|
-
matched: true,
|
|
109
|
-
detail: `task-scoped marker for active-claim ${claim}: ${check.detail}`,
|
|
110
|
-
marker: check.marker,
|
|
111
|
-
expired: false,
|
|
112
|
-
forged: false,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
matched: false,
|
|
117
|
-
detail: `active-claim ${claim} has no fresh task marker (${check.detail})`,
|
|
118
|
-
marker: null,
|
|
119
|
-
expired: check.expired,
|
|
120
|
-
forged: check.forged,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
function describeClaim(taskId) {
|
|
124
|
-
return taskId === null ? "no claimed task" : `task ${taskId}`;
|
|
125
|
-
}
|
|
126
|
-
export function checkSessionApprovalMarker(generatedDir, sessionId, opts) {
|
|
127
|
-
const { taskBinding, ...ageOpts } = opts;
|
|
128
|
-
const check = checkApprovalMarker(generatedDir, sessionId, ageOpts);
|
|
129
|
-
if (check.marker === null || !taskBinding) {
|
|
130
|
-
// Absent, unreadable, forged, or a malformed session id: nothing to
|
|
131
|
-
// bind, the plain verdict stands. Same under `mode: session`, where
|
|
132
|
-
// the binding does not apply.
|
|
133
|
-
return { ...check, bindingRefused: false };
|
|
134
|
-
}
|
|
135
|
-
const refused = (detail) => ({
|
|
136
|
-
matched: false,
|
|
137
|
-
detail,
|
|
138
|
-
marker: null,
|
|
139
|
-
expired: false,
|
|
140
|
-
forged: false,
|
|
141
|
-
bindingRefused: true,
|
|
142
|
-
});
|
|
143
|
-
if (!Object.prototype.hasOwnProperty.call(check.marker, "claimTaskId")) {
|
|
144
|
-
return refused(`session approval marker for ${sessionId} carries no task binding (written by a harness release before approvals were bound to the claimed task); approve once more to bind it to ${describeClaim(readActiveClaim(generatedDir))}`);
|
|
145
|
-
}
|
|
146
|
-
const boundTo = check.marker.claimTaskId ?? null;
|
|
147
|
-
const current = readActiveClaim(generatedDir);
|
|
148
|
-
if (boundTo !== current) {
|
|
149
|
-
return refused(`session approval for ${sessionId} belongs to another task: it was granted for ${describeClaim(boundTo)}, the active claim is now ${describeClaim(current)}; approve the Understanding Report for this task`);
|
|
150
|
-
}
|
|
151
|
-
return { ...check, bindingRefused: false };
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Shared marker resolution for the Claude and Codex understanding-gate
|
|
155
|
-
* PreToolUse hooks (task e7c2ec3c): parse `approval_lifecycle` from the
|
|
156
|
-
* pack config, consult the task-scoped (active-claim) marker first and
|
|
157
|
-
* the session-scoped marker second, both under the same TTL. One code
|
|
158
|
-
* path on purpose — the Codex hook previously called the bare session
|
|
159
|
-
* check, so `max_age` and task-scoping silently applied only to Claude
|
|
160
|
-
* sessions.
|
|
161
|
-
*/
|
|
162
|
-
export function checkOperatorApprovalMarkers(generatedDir, sessionId, packConfig, stderr) {
|
|
163
|
-
const lifecycleRaw = packConfig !== null && typeof packConfig === "object" && !Array.isArray(packConfig)
|
|
164
|
-
? packConfig["approval_lifecycle"]
|
|
165
|
-
: undefined;
|
|
166
|
-
const lifecycle = parseApprovalLifecycle(lifecycleRaw, stderr);
|
|
167
|
-
const ageOpts = lifecycle.maxAgeMs !== undefined ? { maxAgeMs: lifecycle.maxAgeMs } : {};
|
|
168
|
-
const taskMarker = checkActiveClaimApprovalMarker(generatedDir, ageOpts);
|
|
169
|
-
if (taskMarker.matched) {
|
|
170
|
-
const taskHash = taskMarker.marker?.reportContentHash ?? null;
|
|
171
|
-
// Only a task marker that binds a report can fail the gate-read hash
|
|
172
|
-
// check, so only then is the session marker read as its fallback.
|
|
173
|
-
const sessionFallback = taskHash === null
|
|
174
|
-
? null
|
|
175
|
-
: (() => {
|
|
176
|
-
const fallback = checkSessionApprovalMarker(generatedDir, sessionId, {
|
|
177
|
-
...ageOpts,
|
|
178
|
-
taskBinding: !lifecycle.legacyMode,
|
|
179
|
-
});
|
|
180
|
-
return fallback.matched
|
|
181
|
-
? {
|
|
182
|
-
detail: fallback.detail,
|
|
183
|
-
reportContentHash: fallback.marker?.reportContentHash ?? null,
|
|
184
|
-
}
|
|
185
|
-
: null;
|
|
186
|
-
})();
|
|
187
|
-
return {
|
|
188
|
-
matched: true,
|
|
189
|
-
source: "task",
|
|
190
|
-
detail: taskMarker.detail,
|
|
191
|
-
taskCheckDetail: taskMarker.detail,
|
|
192
|
-
reportContentHash: taskHash,
|
|
193
|
-
sessionFallback,
|
|
194
|
-
expired: false,
|
|
195
|
-
forged: false,
|
|
196
|
-
sessionBindingRefused: false,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
const sessionMarker = checkSessionApprovalMarker(generatedDir, sessionId, {
|
|
200
|
-
...ageOpts,
|
|
201
|
-
taskBinding: !lifecycle.legacyMode,
|
|
202
|
-
});
|
|
203
|
-
if (sessionMarker.matched) {
|
|
204
|
-
return {
|
|
205
|
-
matched: true,
|
|
206
|
-
source: "session",
|
|
207
|
-
detail: sessionMarker.detail,
|
|
208
|
-
taskCheckDetail: taskMarker.detail,
|
|
209
|
-
reportContentHash: sessionMarker.marker?.reportContentHash ?? null,
|
|
210
|
-
sessionFallback: null,
|
|
211
|
-
expired: false,
|
|
212
|
-
forged: false,
|
|
213
|
-
sessionBindingRefused: false,
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
return {
|
|
217
|
-
matched: false,
|
|
218
|
-
source: null,
|
|
219
|
-
detail: sessionMarker.detail,
|
|
220
|
-
taskCheckDetail: taskMarker.detail,
|
|
221
|
-
reportContentHash: null,
|
|
222
|
-
sessionFallback: null,
|
|
223
|
-
// `expired` is computed ONLY on this non-matched path, preserving the
|
|
224
|
-
// "false when matched is true" invariant (task 6e888423 review):
|
|
225
|
-
// e.g. a FRESH session marker (matched:true, returned above) must not
|
|
226
|
-
// read expired:true just because a STALE sibling task marker also
|
|
227
|
-
// exists — that sibling is irrelevant once the session marker itself
|
|
228
|
-
// satisfied the gate. Either marker aged out counts here: a
|
|
229
|
-
// task-scoped approval that expired (even though the session-scoped
|
|
230
|
-
// check may simply have never existed) is just as legitimate a "this
|
|
231
|
-
// had approval, it lapsed" signal as a session-scoped expiry.
|
|
232
|
-
expired: taskMarker.expired || sessionMarker.expired,
|
|
233
|
-
// Surfaced so a forgery attempt against EITHER marker is visible to
|
|
234
|
-
// the caller even though the overall result is (correctly) unmatched
|
|
235
|
-
// — mirrors the `expired` OR-merge above.
|
|
236
|
-
forged: taskMarker.forged || sessionMarker.forged,
|
|
237
|
-
sessionBindingRefused: sessionMarker.bindingRefused,
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
/** Clear a specific task-scoped marker. Used by the post-tool-use hook. */
|
|
241
|
-
export function clearTaskApprovalMarker(generatedDir, taskId) {
|
|
242
|
-
try {
|
|
243
|
-
fs.rmSync(taskApprovalMarkerPathFor(generatedDir, taskId));
|
|
244
|
-
}
|
|
245
|
-
catch {
|
|
246
|
-
/* already gone */
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Gate-read report cross-check for a matched operator marker, shared by the
|
|
251
|
-
* Claude and Codex PreToolUse hooks (task fa423e9b). Applies
|
|
252
|
-
* `verifyApprovedReportHash` to the matched marker and, when that fails and
|
|
253
|
-
* a session marker matched behind a task marker, to the session marker, so
|
|
254
|
-
* the verdict never depends on which marker the check order happened to
|
|
255
|
-
* pick. On success `source`/`detail` describe the marker that verified; on
|
|
256
|
-
* failure `detail` is the block reason.
|
|
257
|
-
*/
|
|
258
|
-
export function verifyMatchedMarkerReport(reportsDir, markers) {
|
|
259
|
-
const source = markers.source === "task" ? "task" : "session";
|
|
260
|
-
const primary = {
|
|
261
|
-
kind: source,
|
|
262
|
-
reportContentHash: markers.reportContentHash,
|
|
263
|
-
};
|
|
264
|
-
const fallback = markers.sessionFallback === null
|
|
265
|
-
? null
|
|
266
|
-
: { kind: "session", reportContentHash: markers.sessionFallback.reportContentHash };
|
|
267
|
-
const verdict = verifyApprovedReportHash(reportsDir, primary, fallback);
|
|
268
|
-
if (!verdict.ok)
|
|
269
|
-
return verdict;
|
|
270
|
-
if (verdict.kind === primary.kind || markers.sessionFallback === null) {
|
|
271
|
-
return { ok: true, source: verdict.kind, detail: markers.detail };
|
|
272
|
-
}
|
|
273
|
-
return { ok: true, source: "session", detail: markers.sessionFallback.detail };
|
|
274
|
-
}
|
|
275
|
-
//# sourceMappingURL=task-markers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-markers.js","sourceRoot":"","sources":["../../../../src/policy-packs/builtin/understanding-before-execution/task-markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./understanding-before-execution/index.js";
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// Re-export shim. The implementation moved to
|
|
2
|
-
// ./understanding-before-execution/ (structural concentration slice 2,
|
|
3
|
-
// agent-tasks 348a4d42), split into one sibling file per concern:
|
|
4
|
-
// ledger.ts, markers.ts, persisted-reports.ts, lifecycle.ts,
|
|
5
|
-
// task-markers.ts, post-tool-use-boundary.ts, active-claim.ts, composed
|
|
6
|
-
// by index.ts. Kept at this path so every existing import across the repo
|
|
7
|
-
// (hook-pre-tool-use.ts, hook-codex-pre-tool-use.ts,
|
|
8
|
-
// cli/approve/understanding.ts, tests, etc.) keeps working unchanged.
|
|
9
|
-
export * from "./understanding-before-execution/index.js";
|
|
10
|
-
//# sourceMappingURL=understanding-before-execution-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"understanding-before-execution-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/understanding-before-execution-runtime.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,uEAAuE;AACvE,kEAAkE;AAClE,6DAA6D;AAC7D,wEAAwE;AACxE,0EAA0E;AAC1E,qDAAqD;AACrD,sEAAsE;AACtE,cAAc,2CAA2C,CAAC"}
|