@lannguyensi/harness 0.64.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 +64 -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 -345
- 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 -713
- 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 -387
- 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 +9 -2131
- 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 -245
- 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/{delegate/register.d.ts → register-gate-group.d.ts} +1 -1
- 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 +1 -1
- package/dist/cli/register-operator-lifecycle.js +3 -100
- package/dist/cli/register-operator-lifecycle.js.map +1 -1
- 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-audit-group.d.ts → register-setup-group.d.ts} +1 -1
- 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.js +2 -19
- package/dist/cli/remove/register.js.map +1 -1
- 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.js +6 -4
- package/dist/cli/uninstall/register.js.map +1 -1
- 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 -444
- package/dist/cli/delegate/index.js.map +0 -1
- package/dist/cli/delegate/register.js +0 -90
- package/dist/cli/delegate/register.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/expire-on-tool-match.d.ts +0 -15
- package/dist/cli/doctor/expire-on-tool-match.js +0 -58
- package/dist/cli/doctor/expire-on-tool-match.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 -58
- package/dist/cli/dry-run.js +0 -283
- package/dist/cli/dry-run.js.map +0 -1
- package/dist/cli/enriched-event.d.ts +0 -35
- package/dist/cli/enriched-event.js +0 -60
- package/dist/cli/enriched-event.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 -25
- package/dist/cli/explain-action.js +0 -57
- package/dist/cli/explain-action.js.map +0 -1
- package/dist/cli/explain-policy.d.ts +0 -147
- package/dist/cli/explain-policy.js +0 -248
- 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 -438
- 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 -1022
- 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 -110
- 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/register-audit-group.js +0 -91
- package/dist/cli/register-audit-group.js.map +0 -1
- package/dist/cli/resolve-env.d.ts +0 -32
- package/dist/cli/resolve-env.js +0 -46
- 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 -27
- package/dist/cli/test-risk.js +0 -38
- 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 -643
- 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 -106
- 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 -625
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1076
- 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 -1078
- 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 -623
- package/dist/runtime/intercept.js +0 -1384
- 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 -105
- package/dist/runtime/task-providers/agent-tasks.js +0 -247
- 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
package/dist/schema/policies.js
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { MatchableEnvironmentSchema } from "./environments.js";
|
|
3
|
-
import { ExtractMapSchema, InputMatchMapSchema } from "./extract.js";
|
|
4
|
-
import { HookEventSchema } from "./hooks.js";
|
|
5
|
-
import { RequiresSchema, isBuiltinVariable, referencedVariables } from "./requires.js";
|
|
6
|
-
import { RiskCategorySchema, RiskSeveritySchema } from "./risk.js";
|
|
7
|
-
// `trigger:`: the WHICH-tool-calls filter. Every declared field is
|
|
8
|
-
// ANDed: `match` on the tool name, `path_match` on the edited file path,
|
|
9
|
-
// `bash_match` on the shell command text, and `input_match` (task
|
|
10
|
-
// 2699b476) on the tool call's own arguments.
|
|
11
|
-
//
|
|
12
|
-
// `input_match` exists because the other three cannot express "this MCP
|
|
13
|
-
// verb, but only in the mode that actually does the dangerous thing".
|
|
14
|
-
// `mcp__agent-tasks__task_finish` is the motivating shape: the same verb
|
|
15
|
-
// either merges the PR (`autoMerge: true`) or just advances the task, and
|
|
16
|
-
// a name-only trigger would have to gate both or neither. Keys are
|
|
17
|
-
// `toolArgs.`-namespaced extract expressions (the SAME grammar and parser
|
|
18
|
-
// `extract` uses, `src/schema/extract.ts` + `src/io/extract.ts`), values
|
|
19
|
-
// are literals compared by strict equality; a missing path never matches.
|
|
20
|
-
// See `firstInputMatchMismatch` in `src/io/extract.ts` for the evaluator
|
|
21
|
-
// `policyMatchesEvent` and `harness policy dry-run` both call.
|
|
22
|
-
export const PolicyTriggerSchema = z
|
|
23
|
-
.object({
|
|
24
|
-
event: HookEventSchema,
|
|
25
|
-
match: z.string().min(1).optional(),
|
|
26
|
-
path_match: z.string().min(1).optional(),
|
|
27
|
-
bash_match: z.string().min(1).optional(),
|
|
28
|
-
input_match: InputMatchMapSchema.optional(),
|
|
29
|
-
extract: ExtractMapSchema.optional(),
|
|
30
|
-
})
|
|
31
|
-
.strict();
|
|
32
|
-
// How a policy acts when its `requires:` evidence is absent:
|
|
33
|
-
// block — deny the tool call.
|
|
34
|
-
// warn — let the call proceed, record + surface a warning.
|
|
35
|
-
// require_approval — Phase 7 #5. The evaluator returns a first-class
|
|
36
|
-
// `require_approval` outcome, distinct from `deny`
|
|
37
|
-
// and `warn`; Phase 7 #6 makes it actually block
|
|
38
|
-
// until matching approval evidence exists in the
|
|
39
|
-
// ledger. A `block` / `warn` policy is unchanged.
|
|
40
|
-
export const PolicyEnforcementSchema = z.enum([
|
|
41
|
-
"block",
|
|
42
|
-
"warn",
|
|
43
|
-
"require_approval",
|
|
44
|
-
]);
|
|
45
|
-
// `producers:` is the structured remediation hint the policy engine
|
|
46
|
-
// appends to the deny envelope. Each entry tells the agent ONE concrete
|
|
47
|
-
// way to produce the ledger evidence that would unblock the gate.
|
|
48
|
-
// Three kinds today:
|
|
49
|
-
// bash — shell command the agent can run (gated by the Bash hook).
|
|
50
|
-
// mcp — MCP tool call (NOT gated by the Bash hook; the ungated
|
|
51
|
-
// recovery path for lockout scenarios — see [[feedback_understanding_gate_lockout_recovery]]).
|
|
52
|
-
// ask — bare bash command the harness pre-tool-use hook escapes
|
|
53
|
-
// via ask-path semantics (e.g. `harness approve understanding`).
|
|
54
|
-
// Operator's "go" on the prompt IS the approval.
|
|
55
|
-
//
|
|
56
|
-
// At least one `mcp` producer is required when the field is set, so an
|
|
57
|
-
// agent that gets blocked by an unrelated gate (e.g. understanding-gate
|
|
58
|
-
// has Bash locked down entirely) still has an ungated recovery path
|
|
59
|
-
// (PR agent-tasks/3804b785).
|
|
60
|
-
export const ProducerSchema = z.discriminatedUnion("kind", [
|
|
61
|
-
z
|
|
62
|
-
.object({
|
|
63
|
-
kind: z.literal("bash"),
|
|
64
|
-
command: z.string().min(1),
|
|
65
|
-
description: z.string().min(1),
|
|
66
|
-
})
|
|
67
|
-
.strict(),
|
|
68
|
-
z
|
|
69
|
-
.object({
|
|
70
|
-
kind: z.literal("mcp"),
|
|
71
|
-
verb: z.string().min(1),
|
|
72
|
-
example: z.string().min(1),
|
|
73
|
-
description: z.string().min(1),
|
|
74
|
-
})
|
|
75
|
-
.strict(),
|
|
76
|
-
z
|
|
77
|
-
.object({
|
|
78
|
-
kind: z.literal("ask"),
|
|
79
|
-
command: z.string().min(1),
|
|
80
|
-
description: z.string().min(1),
|
|
81
|
-
})
|
|
82
|
-
.strict(),
|
|
83
|
-
]);
|
|
84
|
-
// `ux:` is the agent-facing translation of an engine-internal block.
|
|
85
|
-
//
|
|
86
|
-
// When a policy denies a tool call, the engine has two readers: the
|
|
87
|
-
// audit ledger (which wants every internal detail: tag, hint,
|
|
88
|
-
// matchedCount, session) and the agent (which only needs to know what
|
|
89
|
-
// it cannot do, what condition is missing, and which command satisfies
|
|
90
|
-
// it). The legacy deny envelope leaks engine vocabulary
|
|
91
|
-
// ("no matching ledger entry for tag preflight:harness") to both.
|
|
92
|
-
//
|
|
93
|
-
// `ux:`, when declared, replaces the agent-facing reason text with a
|
|
94
|
-
// structured, plain-language form: a `cannot` sentence, a `required:`
|
|
95
|
-
// list of human-readable preconditions, and a `run:` list of exact
|
|
96
|
-
// commands. The internal decision (PolicyDecision.reason, recordHint,
|
|
97
|
-
// matchedCount) is unchanged and still written to the audit ledger.
|
|
98
|
-
//
|
|
99
|
-
// All three fields are templates: `${VAR}` references resolve against
|
|
100
|
-
// the same extract.values map the ledger_tag was substituted with, so
|
|
101
|
-
// the rendered text reflects the exact context the agent just hit at
|
|
102
|
-
// block time.
|
|
103
|
-
// Builtins (SESSION_ID / REPO / BRANCH / TOOL_NAME / CWD) are
|
|
104
|
-
// available even when the policy declares no `trigger.extract` map.
|
|
105
|
-
export const PolicyUxSchema = z
|
|
106
|
-
.object({
|
|
107
|
-
cannot: z.string().min(1),
|
|
108
|
-
required: z.array(z.string().min(1)).min(1),
|
|
109
|
-
run: z.array(z.string().min(1)).min(1),
|
|
110
|
-
})
|
|
111
|
-
.strict();
|
|
112
|
-
// `when:` — the risk/environment-aware match layer.
|
|
113
|
-
//
|
|
114
|
-
// STATUS: live as of Phase 7 #5. `harness policy intercept` ANDs a
|
|
115
|
-
// declared `when:` onto the policy's `trigger:` match, evaluating it
|
|
116
|
-
// against the Action Envelope enriched by the Risk Classifier (#3) and
|
|
117
|
-
// Context Resolver (#4). A policy with no `when:` matches on `trigger:`
|
|
118
|
-
// alone, exactly as in Phase 4. See src/runtime/when-eval.ts for the
|
|
119
|
-
// evaluator and docs/risk-gate.md for the clause semantics.
|
|
120
|
-
//
|
|
121
|
-
// Each clause is optional and keyed by the envelope path it tests:
|
|
122
|
-
// risk.severity_at_least — envelope risk severity at or above this
|
|
123
|
-
// rung of the ordered scale.
|
|
124
|
-
// risk.category_in — envelope risk carries any of these
|
|
125
|
-
// categories.
|
|
126
|
-
// environment.name — resolved environment equals this name
|
|
127
|
-
// (`unknown` is matchable: unknown is not
|
|
128
|
-
// safe).
|
|
129
|
-
// action.reversible — envelope action reversibility flag.
|
|
130
|
-
// action.deletion_target_unresolvable — a deletion-verb command (`rm
|
|
131
|
-
// -r*`/`-f*`, `find ... -delete`, `git clean
|
|
132
|
-
// -f*`) whose target(s) could not be
|
|
133
|
-
// statically proven inside a declared
|
|
134
|
-
// `risk.safe_deletion_roots` entry. UNLIKE the
|
|
135
|
-
// four clauses above, this one is NEVER
|
|
136
|
-
// subject to the "unknown is not safe"
|
|
137
|
-
// fail-close: an action the deletion resolver
|
|
138
|
-
// does not recognize as a deletion verb at
|
|
139
|
-
// all does not satisfy this clause, so a
|
|
140
|
-
// policy gated purely on it does not need an
|
|
141
|
-
// `environment.name` scope to avoid firing on
|
|
142
|
-
// every unrelated unclassified command — see
|
|
143
|
-
// src/runtime/when-eval.ts and
|
|
144
|
-
// src/runtime/deletion-target-resolve.ts.
|
|
145
|
-
// ONLY `true` is a meaningful value (task
|
|
146
|
-
// d03af8f6, review round 2): a resolver
|
|
147
|
-
// verdict is either `unresolvable: true` (gate
|
|
148
|
-
// it) or the action never reaches this clause
|
|
149
|
-
// at all (a resolved-safe target or a
|
|
150
|
-
// non-deletion command both simply fail to
|
|
151
|
-
// match `true`) — `false` would match every
|
|
152
|
-
// non-deletion-verb command in the manifest
|
|
153
|
-
// (verdict `null` -> "actual" false -> equals
|
|
154
|
-
// declared `false`), which is never the
|
|
155
|
-
// intent of a `when:` clause naming this key.
|
|
156
|
-
// The schema accepts only the literal `true`;
|
|
157
|
-
// `false` is a validate-time error.
|
|
158
|
-
// An empty `when: {}` is rejected: it would be a silent no-op.
|
|
159
|
-
export const PolicyWhenSchema = z
|
|
160
|
-
.object({
|
|
161
|
-
"risk.severity_at_least": RiskSeveritySchema.optional(),
|
|
162
|
-
"risk.category_in": z.array(RiskCategorySchema).min(1).optional(),
|
|
163
|
-
"environment.name": MatchableEnvironmentSchema.optional(),
|
|
164
|
-
"action.reversible": z.boolean().optional(),
|
|
165
|
-
"action.deletion_target_unresolvable": z.literal(true).optional(),
|
|
166
|
-
})
|
|
167
|
-
.strict()
|
|
168
|
-
.superRefine((when, ctx) => {
|
|
169
|
-
if (Object.keys(when).length === 0) {
|
|
170
|
-
ctx.addIssue({
|
|
171
|
-
code: z.ZodIssueCode.custom,
|
|
172
|
-
path: [],
|
|
173
|
-
message: "policy.when must declare at least one clause; an empty when: {} is a silent no-op",
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
// `operator_only: true` — the unconditional operator-only deny (task
|
|
178
|
-
// 2cc73f55). Every other `block` policy names `requires.ledger_tag`
|
|
179
|
-
// evidence, but the only satisfaction primitives the engine has —
|
|
180
|
-
// a ledger tag (writable in-session via
|
|
181
|
-
// `mcp__grounding-mcp__ledger_add`) or a filesystem marker (operator-
|
|
182
|
-
// only only while a gate already locks Bash/Write down, circular on a
|
|
183
|
-
// default install) — are agent-satisfiable. That leaves no honest way to
|
|
184
|
-
// express "the agent may NEVER do this, and cannot self-satisfy it this
|
|
185
|
-
// session" — see the three `deny-*` kill-switch policies in
|
|
186
|
-
// `src/cli/init/templates.ts`, which had to ship with permanent
|
|
187
|
-
// self-attestation warnings for exactly this reason.
|
|
188
|
-
//
|
|
189
|
-
// `operator_only: true` closes that gap by omission rather than by
|
|
190
|
-
// naming a fake evidence source: the policy declares NO `requires:` at
|
|
191
|
-
// all, and `intercept()` (`src/runtime/intercept.ts`) short-circuits
|
|
192
|
-
// before the `requires` pipeline entirely — no ledger query, no
|
|
193
|
-
// template substitution, no `evaluateRequires` call — so there is
|
|
194
|
-
// nothing an in-session actor (ledger write, marker file, env flag) can
|
|
195
|
-
// ever produce that flips the outcome to allow. Restricted to
|
|
196
|
-
// `enforcement: block`: `warn` and `require_approval` already have
|
|
197
|
-
// their own always-evaluated evidence paths, and require_approval's
|
|
198
|
-
// canonical unblock is the `harness approve risk` operator verb, not a
|
|
199
|
-
// requires-satisfaction story this marker would replace.
|
|
200
|
-
//
|
|
201
|
-
// Mutually exclusive with `requires:` AND `producers:` by construction
|
|
202
|
-
// (both enforced below): declaring `requires:` alongside it would be
|
|
203
|
-
// self-contradictory — an unconditional deny that also names an
|
|
204
|
-
// in-session-satisfiable evidence tag nobody will ever evaluate.
|
|
205
|
-
// `producers:` is the same class of contradiction one level up: it
|
|
206
|
-
// describes a documented way to PRODUCE the evidence that unblocks the
|
|
207
|
-
// gate ("here is a legitimate way to satisfy this"), but `operator_only:
|
|
208
|
-
// true` never evaluates any evidence at all, so a declared producer
|
|
209
|
-
// would misrepresent the gate as satisfiable when it structurally is
|
|
210
|
-
// not. `checkPolicySelfAttestation` (`src/cli/validate/checks.ts`)
|
|
211
|
-
// treats `operator_only: true` as correct-by-construction and emits
|
|
212
|
-
// neither the "declares no producers" warning nor a --strict error for
|
|
213
|
-
// it, since there is no undocumented evidence source to flag.
|
|
214
|
-
export const PolicySchema = z
|
|
215
|
-
.object({
|
|
216
|
-
name: z.string().min(1),
|
|
217
|
-
description: z.string().min(1),
|
|
218
|
-
trigger: PolicyTriggerSchema,
|
|
219
|
-
requires: RequiresSchema.optional(),
|
|
220
|
-
hook: z.string().min(1),
|
|
221
|
-
enforcement: PolicyEnforcementSchema,
|
|
222
|
-
operator_only: z.boolean().optional(),
|
|
223
|
-
producers: z.array(ProducerSchema).min(1).optional(),
|
|
224
|
-
ux: PolicyUxSchema.optional(),
|
|
225
|
-
when: PolicyWhenSchema.optional(),
|
|
226
|
-
})
|
|
227
|
-
.strict()
|
|
228
|
-
.superRefine((policy, ctx) => {
|
|
229
|
-
if (policy.operator_only === true) {
|
|
230
|
-
if (policy.enforcement !== "block") {
|
|
231
|
-
ctx.addIssue({
|
|
232
|
-
code: z.ZodIssueCode.custom,
|
|
233
|
-
path: ["operator_only"],
|
|
234
|
-
message: "operator_only: true is only meaningful for enforcement: block (an unconditional operator-only deny); warn / require_approval already have their own always-evaluated evidence paths",
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
if (policy.requires !== undefined) {
|
|
238
|
-
ctx.addIssue({
|
|
239
|
-
code: z.ZodIssueCode.custom,
|
|
240
|
-
path: ["requires"],
|
|
241
|
-
message: "operator_only: true policies must not also declare requires: — an unconditional deny that also names in-session-satisfiable evidence is self-contradictory; drop requires: (the policy never evaluates it)",
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
if (policy.producers !== undefined) {
|
|
245
|
-
ctx.addIssue({
|
|
246
|
-
code: z.ZodIssueCode.custom,
|
|
247
|
-
path: ["producers"],
|
|
248
|
-
message: "operator_only: true policies must not also declare producers: — producers describe a documented way to satisfy the gate, but an unconditional deny never evaluates any evidence, so a declared producer would misrepresent it as satisfiable; drop producers: (or drop operator_only: true if you actually want a satisfiable requires: gate)",
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
else if (policy.requires === undefined) {
|
|
253
|
-
ctx.addIssue({
|
|
254
|
-
code: z.ZodIssueCode.custom,
|
|
255
|
-
path: ["requires"],
|
|
256
|
-
message: "requires is mandatory unless the policy declares operator_only: true (an unconditional operator-only deny)",
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
if (policy.requires !== undefined) {
|
|
260
|
-
const refs = referencedVariables(policy.requires.ledger_tag);
|
|
261
|
-
const declared = new Set(Object.keys(policy.trigger.extract ?? {}));
|
|
262
|
-
for (const v of refs) {
|
|
263
|
-
if (isBuiltinVariable(v))
|
|
264
|
-
continue;
|
|
265
|
-
if (!declared.has(v)) {
|
|
266
|
-
ctx.addIssue({
|
|
267
|
-
code: z.ZodIssueCode.custom,
|
|
268
|
-
path: ["requires", "ledger_tag"],
|
|
269
|
-
message: `requires.ledger_tag references \${${v}} but no matching trigger.extract entry was declared`,
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
if (policy.producers !== undefined) {
|
|
275
|
-
const hasMcp = policy.producers.some((p) => p.kind === "mcp");
|
|
276
|
-
if (!hasMcp) {
|
|
277
|
-
ctx.addIssue({
|
|
278
|
-
code: z.ZodIssueCode.custom,
|
|
279
|
-
path: ["producers"],
|
|
280
|
-
message: "at least one producer with kind:mcp is required so agents have an ungated recovery path when the Bash hook is locked down",
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
export const PoliciesSchema = z.array(PolicySchema).superRefine((policies, ctx) => {
|
|
286
|
-
const seen = new Set();
|
|
287
|
-
policies.forEach((p, i) => {
|
|
288
|
-
if (seen.has(p.name)) {
|
|
289
|
-
ctx.addIssue({
|
|
290
|
-
code: z.ZodIssueCode.custom,
|
|
291
|
-
path: [i, "name"],
|
|
292
|
-
message: `duplicate policy name: ${p.name}`,
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
seen.add(p.name);
|
|
296
|
-
});
|
|
297
|
-
});
|
|
298
|
-
//# sourceMappingURL=policies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/schema/policies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const DurationSchema: z.ZodEffects<z.ZodString, string, string>;
|
|
3
|
-
export declare const CountSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
4
|
-
min: z.ZodOptional<z.ZodNumber>;
|
|
5
|
-
max: z.ZodOptional<z.ZodNumber>;
|
|
6
|
-
exact: z.ZodOptional<z.ZodNumber>;
|
|
7
|
-
}, "strict", z.ZodTypeAny, {
|
|
8
|
-
exact?: number | undefined;
|
|
9
|
-
min?: number | undefined;
|
|
10
|
-
max?: number | undefined;
|
|
11
|
-
}, {
|
|
12
|
-
exact?: number | undefined;
|
|
13
|
-
min?: number | undefined;
|
|
14
|
-
max?: number | undefined;
|
|
15
|
-
}>, {
|
|
16
|
-
exact?: number | undefined;
|
|
17
|
-
min?: number | undefined;
|
|
18
|
-
max?: number | undefined;
|
|
19
|
-
}, {
|
|
20
|
-
exact?: number | undefined;
|
|
21
|
-
min?: number | undefined;
|
|
22
|
-
max?: number | undefined;
|
|
23
|
-
}>, {
|
|
24
|
-
exact?: number | undefined;
|
|
25
|
-
min?: number | undefined;
|
|
26
|
-
max?: number | undefined;
|
|
27
|
-
}, {
|
|
28
|
-
exact?: number | undefined;
|
|
29
|
-
min?: number | undefined;
|
|
30
|
-
max?: number | undefined;
|
|
31
|
-
}>, {
|
|
32
|
-
exact?: number | undefined;
|
|
33
|
-
min?: number | undefined;
|
|
34
|
-
max?: number | undefined;
|
|
35
|
-
}, {
|
|
36
|
-
exact?: number | undefined;
|
|
37
|
-
min?: number | undefined;
|
|
38
|
-
max?: number | undefined;
|
|
39
|
-
}>, {
|
|
40
|
-
exact?: number | undefined;
|
|
41
|
-
min?: number | undefined;
|
|
42
|
-
max?: number | undefined;
|
|
43
|
-
}, {
|
|
44
|
-
exact?: number | undefined;
|
|
45
|
-
min?: number | undefined;
|
|
46
|
-
max?: number | undefined;
|
|
47
|
-
}>;
|
|
48
|
-
export declare const RequiresSchema: z.ZodObject<{
|
|
49
|
-
ledger_tag: z.ZodString;
|
|
50
|
-
within: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
51
|
-
count: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
52
|
-
min: z.ZodOptional<z.ZodNumber>;
|
|
53
|
-
max: z.ZodOptional<z.ZodNumber>;
|
|
54
|
-
exact: z.ZodOptional<z.ZodNumber>;
|
|
55
|
-
}, "strict", z.ZodTypeAny, {
|
|
56
|
-
exact?: number | undefined;
|
|
57
|
-
min?: number | undefined;
|
|
58
|
-
max?: number | undefined;
|
|
59
|
-
}, {
|
|
60
|
-
exact?: number | undefined;
|
|
61
|
-
min?: number | undefined;
|
|
62
|
-
max?: number | undefined;
|
|
63
|
-
}>, {
|
|
64
|
-
exact?: number | undefined;
|
|
65
|
-
min?: number | undefined;
|
|
66
|
-
max?: number | undefined;
|
|
67
|
-
}, {
|
|
68
|
-
exact?: number | undefined;
|
|
69
|
-
min?: number | undefined;
|
|
70
|
-
max?: number | undefined;
|
|
71
|
-
}>, {
|
|
72
|
-
exact?: number | undefined;
|
|
73
|
-
min?: number | undefined;
|
|
74
|
-
max?: number | undefined;
|
|
75
|
-
}, {
|
|
76
|
-
exact?: number | undefined;
|
|
77
|
-
min?: number | undefined;
|
|
78
|
-
max?: number | undefined;
|
|
79
|
-
}>, {
|
|
80
|
-
exact?: number | undefined;
|
|
81
|
-
min?: number | undefined;
|
|
82
|
-
max?: number | undefined;
|
|
83
|
-
}, {
|
|
84
|
-
exact?: number | undefined;
|
|
85
|
-
min?: number | undefined;
|
|
86
|
-
max?: number | undefined;
|
|
87
|
-
}>, {
|
|
88
|
-
exact?: number | undefined;
|
|
89
|
-
min?: number | undefined;
|
|
90
|
-
max?: number | undefined;
|
|
91
|
-
}, {
|
|
92
|
-
exact?: number | undefined;
|
|
93
|
-
min?: number | undefined;
|
|
94
|
-
max?: number | undefined;
|
|
95
|
-
}>>;
|
|
96
|
-
/**
|
|
97
|
-
* When true, a tag-matching ledger entry whose `head:<sha>` token
|
|
98
|
-
* equals the runtime-resolved current HEAD sha satisfies the gate
|
|
99
|
-
* regardless of `within`. Falls through to the time-window check
|
|
100
|
-
* when no entry head-matches (entry predates the head shift,
|
|
101
|
-
* operator switched branches, producer ran on a different HEAD,
|
|
102
|
-
* runtime could not resolve the current HEAD). The producer must
|
|
103
|
-
* emit `head:<sha>` into the entry content for this to bite; the
|
|
104
|
-
* standard `harness session-start preflight` producer does so as
|
|
105
|
-
* of the `at_head` rollout. Designed for `preflight-before-push`
|
|
106
|
-
* to eliminate per-commit re-preflight churn while keeping the
|
|
107
|
-
* time-window as a freshness ceiling for the head-mismatch case.
|
|
108
|
-
*/
|
|
109
|
-
at_head: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
-
}, "strict", z.ZodTypeAny, {
|
|
111
|
-
ledger_tag: string;
|
|
112
|
-
within?: string | undefined;
|
|
113
|
-
count?: {
|
|
114
|
-
exact?: number | undefined;
|
|
115
|
-
min?: number | undefined;
|
|
116
|
-
max?: number | undefined;
|
|
117
|
-
} | undefined;
|
|
118
|
-
at_head?: boolean | undefined;
|
|
119
|
-
}, {
|
|
120
|
-
ledger_tag: string;
|
|
121
|
-
within?: string | undefined;
|
|
122
|
-
count?: {
|
|
123
|
-
exact?: number | undefined;
|
|
124
|
-
min?: number | undefined;
|
|
125
|
-
max?: number | undefined;
|
|
126
|
-
} | undefined;
|
|
127
|
-
at_head?: boolean | undefined;
|
|
128
|
-
}>;
|
|
129
|
-
export type Requires = z.infer<typeof RequiresSchema>;
|
|
130
|
-
export declare function referencedVariables(template: string): string[];
|
|
131
|
-
export declare function isBuiltinVariable(name: string): boolean;
|
package/dist/schema/requires.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { InvalidDurationError, parseDurationSeconds, } from "../io/duration.js";
|
|
3
|
-
export const DurationSchema = z.string().min(1).superRefine((v, ctx) => {
|
|
4
|
-
try {
|
|
5
|
-
parseDurationSeconds(v);
|
|
6
|
-
}
|
|
7
|
-
catch (err) {
|
|
8
|
-
if (err instanceof InvalidDurationError) {
|
|
9
|
-
ctx.addIssue({ code: z.ZodIssueCode.custom, message: err.message });
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
throw err;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
export const CountSchema = z
|
|
16
|
-
.object({
|
|
17
|
-
min: z.number().int().nonnegative().optional(),
|
|
18
|
-
max: z.number().int().positive().optional(),
|
|
19
|
-
exact: z.number().int().positive().optional(),
|
|
20
|
-
})
|
|
21
|
-
.strict()
|
|
22
|
-
.refine((c) => c.min !== undefined || c.max !== undefined || c.exact !== undefined, {
|
|
23
|
-
message: "count must declare at least one of min, max, exact",
|
|
24
|
-
})
|
|
25
|
-
.refine((c) => !(c.exact !== undefined && (c.min !== undefined || c.max !== undefined)), { message: "count.exact may not coexist with min or max" })
|
|
26
|
-
.refine((c) => c.min === undefined || c.max === undefined || c.min <= c.max, { message: "count.min must be <= count.max" })
|
|
27
|
-
.refine((c) => c.min !== 0, {
|
|
28
|
-
message: "count.min: 0 is a no-op; remove the field or use a different policy",
|
|
29
|
-
path: ["min"],
|
|
30
|
-
});
|
|
31
|
-
export const RequiresSchema = z
|
|
32
|
-
.object({
|
|
33
|
-
ledger_tag: z.string().min(1),
|
|
34
|
-
within: DurationSchema.optional(),
|
|
35
|
-
count: CountSchema.optional(),
|
|
36
|
-
/**
|
|
37
|
-
* When true, a tag-matching ledger entry whose `head:<sha>` token
|
|
38
|
-
* equals the runtime-resolved current HEAD sha satisfies the gate
|
|
39
|
-
* regardless of `within`. Falls through to the time-window check
|
|
40
|
-
* when no entry head-matches (entry predates the head shift,
|
|
41
|
-
* operator switched branches, producer ran on a different HEAD,
|
|
42
|
-
* runtime could not resolve the current HEAD). The producer must
|
|
43
|
-
* emit `head:<sha>` into the entry content for this to bite; the
|
|
44
|
-
* standard `harness session-start preflight` producer does so as
|
|
45
|
-
* of the `at_head` rollout. Designed for `preflight-before-push`
|
|
46
|
-
* to eliminate per-commit re-preflight churn while keeping the
|
|
47
|
-
* time-window as a freshness ceiling for the head-mismatch case.
|
|
48
|
-
*/
|
|
49
|
-
at_head: z.boolean().optional(),
|
|
50
|
-
})
|
|
51
|
-
.strict();
|
|
52
|
-
// The five built-ins ship resolved by the runtime, so policies may
|
|
53
|
-
// reference them in `requires.ledger_tag` without declaring a matching
|
|
54
|
-
// `trigger.extract` entry. The schema check in `PolicySchema.superRefine`
|
|
55
|
-
// skips them via `isBuiltinVariable`.
|
|
56
|
-
//
|
|
57
|
-
// Resolution sources (all live as of Phase 5, see ARCHITECTURE §6):
|
|
58
|
-
// - SESSION_ID — `src/runtime/session-id.ts:resolveSessionId`, fed from
|
|
59
|
-
// the hook event's `session_id` or `$CLAUDE_SESSION_ID`. End-to-end
|
|
60
|
-
// coverage in `tests/runtime/intercept.test.ts` (the `dogfood:${SESSION_ID}`
|
|
61
|
-
// fixture).
|
|
62
|
-
// - REPO / BRANCH / CWD — populated by the runtime from git + process state
|
|
63
|
-
// before `evaluateExtract` runs (`src/io/extract.ts:ExtractBuiltins`).
|
|
64
|
-
// - TOOL_NAME — taken from the hook event payload.
|
|
65
|
-
//
|
|
66
|
-
// Adding a new variable here is a spec change: update ARCHITECTURE §6, wire
|
|
67
|
-
// the runtime source, and add `isBuiltinVariable` test coverage in the same
|
|
68
|
-
// PR.
|
|
69
|
-
const BUILTIN_VARIABLES = new Set([
|
|
70
|
-
"SESSION_ID",
|
|
71
|
-
"REPO",
|
|
72
|
-
"BRANCH",
|
|
73
|
-
"TOOL_NAME",
|
|
74
|
-
"CWD",
|
|
75
|
-
]);
|
|
76
|
-
const VAR_REF_RE = /\$\{([A-Z][A-Z0-9_]*)\}/g;
|
|
77
|
-
export function referencedVariables(template) {
|
|
78
|
-
const seen = new Set();
|
|
79
|
-
for (const m of template.matchAll(VAR_REF_RE)) {
|
|
80
|
-
if (m[1])
|
|
81
|
-
seen.add(m[1]);
|
|
82
|
-
}
|
|
83
|
-
return [...seen];
|
|
84
|
-
}
|
|
85
|
-
export function isBuiltinVariable(name) {
|
|
86
|
-
return BUILTIN_VARIABLES.has(name);
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=requires.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"requires.js","sourceRoot":"","sources":["../../src/schema/requires.ts"],"names":[],"mappings":"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"}
|