@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,323 +0,0 @@
|
|
|
1
|
-
import { type SignatureVerification } from "../../runtime/approval-signing.js";
|
|
2
|
-
import type { PolicyPack } from "../../schema/index.js";
|
|
3
|
-
export declare const PACK_NAME = "solution-acceptance";
|
|
4
|
-
/**
|
|
5
|
-
* agent-tasks MCP verbs that mark a completion boundary. The gate fires on
|
|
6
|
-
* these (matched by exact tool name `mcp__agent-tasks__<verb>`). These MCP
|
|
7
|
-
* choke points are reliable: unlike the bash matcher they cannot be evaded
|
|
8
|
-
* by shell indirection.
|
|
9
|
-
*/
|
|
10
|
-
export declare const DEFAULT_PROTECTED_COMPLETION_TOOLS: readonly ["task_finish", "task_submit_pr", "task_merge", "pull_requests_merge"];
|
|
11
|
-
/**
|
|
12
|
-
* Belt-and-suspenders bash matcher for `git push` / `gh pr merge`. Regex on
|
|
13
|
-
* the typed command, so an env-var indirection
|
|
14
|
-
* (`B=main && git push origin $B`) evades it — the MCP verbs above are the
|
|
15
|
-
* load-bearing choke points; hardening this is follow-up `7207d8f9`.
|
|
16
|
-
* Tolerates a leading `cd … &&`, inline `VAR=val` assignments, and `git -C
|
|
17
|
-
* <path> push`.
|
|
18
|
-
*
|
|
19
|
-
* Task 76671e5a: bare `&` added to the boundary alternation (`&&` kept to
|
|
20
|
-
* its left only to mirror `src/runtime/command-normalize.ts`'s alternation
|
|
21
|
-
* order for readability — NOT because order is load-bearing here, unlike
|
|
22
|
-
* that module). Same fix as `d834a065` applied to every policy trigger —
|
|
23
|
-
* bash starts a new command after a single `&`, so `A=x&git push` used to
|
|
24
|
-
* slip past this DENY matcher entirely. Broadening is the stricter direction
|
|
25
|
-
* here (this gates completion actions, it is not an allow-list). Measured:
|
|
26
|
-
* swapping to `&|&&` produces a byte-identical match set for this matcher
|
|
27
|
-
* (a `RegExp.test` existential check over every start offset, not a
|
|
28
|
-
* segmenter — the reasoning that makes order matter in
|
|
29
|
-
* `command-normalize.ts`'s `BOUNDARY_RE`/`AMP_BOUNDARY_RE` does not transfer
|
|
30
|
-
* to a plain `.test()` matcher like this one).
|
|
31
|
-
*/
|
|
32
|
-
export declare const DEFAULT_PUSH_BASH_RE: RegExp;
|
|
33
|
-
/**
|
|
34
|
-
* Resolve the completion verbs the gate fires on: the pack's
|
|
35
|
-
* `config.protected_completion_tools` override, else the default set.
|
|
36
|
-
* Always non-empty. Lives here (not in the pack module) so the
|
|
37
|
-
* completion-gate hook can share it without importing the pack's zod
|
|
38
|
-
* surface (mirrors `resolveProtectedBranches` in branch-protection-runtime).
|
|
39
|
-
*/
|
|
40
|
-
export declare function resolveProtectedCompletionTools(pack: PolicyPack): string[];
|
|
41
|
-
/**
|
|
42
|
-
* The verdict marker the producer writes. Keep field-for-field with
|
|
43
|
-
* grounding-mcp for the first 7 keys (golden-fixture-pinned below).
|
|
44
|
-
*
|
|
45
|
-
* `alg` / `signature` (harness/c7c3f606) are ADDITIVE and OPTIONAL: a
|
|
46
|
-
* legacy / not-yet-updated producer omits them entirely (parsed as
|
|
47
|
-
* `undefined`, never `null` — mirrors how `ApprovalMarker.reportContentHash`
|
|
48
|
-
* distinguishes "absent" from an explicit empty value), and such a verdict
|
|
49
|
-
* is REJECTED by `evaluateGate` (missing signature = forged/unsigned, fail
|
|
50
|
-
* closed) rather than silently accepted. See the module doc for the
|
|
51
|
-
* consumer-only / cross-repo-follow-up honesty.
|
|
52
|
-
*/
|
|
53
|
-
export interface Verdict {
|
|
54
|
-
id: string;
|
|
55
|
-
head: string;
|
|
56
|
-
ready: boolean;
|
|
57
|
-
confidence: number;
|
|
58
|
-
blockers: string[];
|
|
59
|
-
timestamp: string;
|
|
60
|
-
source: string;
|
|
61
|
-
/** Signature algorithm tag; only `SIGNING_ALG` (`src/runtime/approval-signing.ts`) verifies. */
|
|
62
|
-
alg?: string;
|
|
63
|
-
/** HMAC-SHA256 hex signature over the canonical identifying tuple (see `verifyVerdictSignature`). */
|
|
64
|
-
signature?: string;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Marker-id namespace the verdict's HMAC signature is bound to (mirrors
|
|
68
|
-
* `BRANCH_PROTECTION_MARKER_PREFIX` in branch-protection-runtime.ts): a
|
|
69
|
-
* validly-signed verdict for one id can never be replayed as a validly-
|
|
70
|
-
* signed verdict — or a validly-signed understanding-gate / branch-
|
|
71
|
-
* protection marker — for a different id, because `markerId` is bound into
|
|
72
|
-
* the signed payload (`approval-signing.ts` `canonicalPayload`) and this
|
|
73
|
-
* prefix keeps the three id spaces disjoint even where the raw ids
|
|
74
|
-
* (task ids, session ids) could otherwise collide.
|
|
75
|
-
*/
|
|
76
|
-
export declare const VERDICT_MARKER_ID_PREFIX = "solution-verdict-";
|
|
77
|
-
/** The HMAC markerId for verdict `id` (NOT a filesystem path — see `verdictPathFor` for that). */
|
|
78
|
-
export declare function verdictMarkerId(id: string): string;
|
|
79
|
-
/**
|
|
80
|
-
* Sign `verdict`, reusing `signMarker` (`src/runtime/approval-signing.ts`)
|
|
81
|
-
* unmodified — same crypto as the understanding-gate / branch-protection
|
|
82
|
-
* markers (harness/f9485cc7). Payload mapping mirrors the approval
|
|
83
|
-
* marker's shape (`approvedAt`/`approvedBy`/`reportContentHash`) onto the
|
|
84
|
-
* verdict's own fields:
|
|
85
|
-
* - `approvedAt` <- `verdict.timestamp` (when the attestation was made)
|
|
86
|
-
* - `approvedBy` <- `verdict.source` (what attests it, e.g. "preflight")
|
|
87
|
-
* - `reportContentHash` <- `verdictContentHash(verdict)` (binds
|
|
88
|
-
* head/ready/confidence/blockers, the fields signMarker's fixed shape
|
|
89
|
-
* has no dedicated slot for)
|
|
90
|
-
*
|
|
91
|
-
* NOT wired to any production write path in harness (harness is a pure
|
|
92
|
-
* CONSUMER of this marker, see module doc) — exported as the pattern +
|
|
93
|
-
* exemplar a grounding-mcp-side producer change reuses, and used directly
|
|
94
|
-
* by this module's own tests to construct validly-signed fixtures.
|
|
95
|
-
*
|
|
96
|
-
* Load-bearing on the producer side: `signMarker` is called with
|
|
97
|
-
* `verdictMarkerId(verdict.id)`, while the consumer (`verifyVerdictSignature`
|
|
98
|
-
* below) verifies with `verdictMarkerId(id)` where `id` is the CALLER's id,
|
|
99
|
-
* not `verdict.id`. Those two only agree when a mirroring producer sets
|
|
100
|
-
* `verdict.id` to the EXACT id string the consumer looks the marker up by —
|
|
101
|
-
* byte-identical, no trimming or case normalization on either side — and the
|
|
102
|
-
* consumer additionally rejects outright when `verdict.id !== id` even if
|
|
103
|
-
* the signature itself still verifies (belt-and-braces, see `evaluateGate`).
|
|
104
|
-
*/
|
|
105
|
-
export declare function signVerdict(generatedDir: string, verdict: Verdict): Verdict;
|
|
106
|
-
/**
|
|
107
|
-
* Verify `verdict`'s signature, reusing `verifyMarkerSignature` unmodified.
|
|
108
|
-
* Recomputes `verdictContentHash` from the (possibly tampered) verdict
|
|
109
|
-
* being checked — the SAME name-mapping `signVerdict` uses — so any
|
|
110
|
-
* post-signing edit to `head` / `ready` / `confidence` / `blockers` /
|
|
111
|
-
* `timestamp` / `source` fails verification, not just an edit to
|
|
112
|
-
* `signature` itself.
|
|
113
|
-
*
|
|
114
|
-
* `id` is the CALLER's id — the one `evaluateGate` is actually checking
|
|
115
|
-
* (`readVerdict`'s lookup key) — NOT `verdict.id` (a field read back out of
|
|
116
|
-
* the marker BODY, which is exactly the bytes an attacker controls when
|
|
117
|
-
* copying a validly-signed marker verbatim onto a different id's path).
|
|
118
|
-
* This mirrors the load-bearing invariant `approval-signing.ts`'s
|
|
119
|
-
* `signMarker` doc states explicitly: "verification always recomputes the
|
|
120
|
-
* HMAC using the id the caller is checking, NOT one read back out of the
|
|
121
|
-
* marker body." Trusting `verdict.id` here would let a byte-for-byte copy
|
|
122
|
-
* of one id's signed verdict pass verification under a DIFFERENT id's
|
|
123
|
-
* request, because the copy's `signature` and its own (also-copied)
|
|
124
|
-
* `verdict.id` field would always agree with each other regardless of which
|
|
125
|
-
* id actually asked.
|
|
126
|
-
*/
|
|
127
|
-
export declare function verifyVerdictSignature(generatedDir: string, id: string, verdict: Verdict): SignatureVerification;
|
|
128
|
-
/** Env knob that overrides the verdict directory (mirrors the producer). */
|
|
129
|
-
export declare const VERDICT_DIR_ENV = "SOLUTION_VERDICT_DIR";
|
|
130
|
-
/**
|
|
131
|
-
* Env knob that supplies the verdict id for SOLO / non-agent-tasks sessions.
|
|
132
|
-
* The completion-gate consults it ONLY when no agent-tasks `active-claim` is
|
|
133
|
-
* recorded (resolution order: active-claim first, then this env, then
|
|
134
|
-
* fail-closed), so a claimed session's id stays authoritative and cannot be
|
|
135
|
-
* redirected by an env var. A sessionId fallback is intentionally still NOT a
|
|
136
|
-
* source (the wrong-scope bug class understanding-gate closed).
|
|
137
|
-
*/
|
|
138
|
-
export declare const VERDICT_ID_ENV = "SOLUTION_VERDICT_ID";
|
|
139
|
-
/**
|
|
140
|
-
* Stable tail of the default verdict dir. The write-guard's reference
|
|
141
|
-
* detection matches on this so ANY spelling of the home prefix is caught
|
|
142
|
-
* (`~/.local/state/...`, `$HOME/...`, `$XDG_STATE_HOME/...`, the literal
|
|
143
|
-
* absolute path).
|
|
144
|
-
*/
|
|
145
|
-
export declare const VERDICT_DIR_TAIL: string;
|
|
146
|
-
/**
|
|
147
|
-
* Resolve the verdict directory. Resolution order MUST match grounding-mcp's
|
|
148
|
-
* `verdictDir()` so the consumer reads exactly where the producer writes
|
|
149
|
-
* (operator decision B: both sides use the producer default; no apply-time
|
|
150
|
-
* env threading, no divergence risk):
|
|
151
|
-
* 1. SOLUTION_VERDICT_DIR
|
|
152
|
-
* 2. $XDG_STATE_HOME/agent-grounding/solution-verdicts
|
|
153
|
-
* 3. ~/.local/state/agent-grounding/solution-verdicts
|
|
154
|
-
*/
|
|
155
|
-
export declare function verdictDir(env?: NodeJS.ProcessEnv, homedir?: () => string): string;
|
|
156
|
-
/**
|
|
157
|
-
* Reduce a verdict id to a single safe path segment. Mirrors the producer's
|
|
158
|
-
* `sanitizeVerdictId`: non-portable chars collapse to `_`, `path.basename`
|
|
159
|
-
* strips any residual separator (path-traversal guard), empty / dot-only ids
|
|
160
|
-
* are rejected.
|
|
161
|
-
*/
|
|
162
|
-
export declare function sanitizeVerdictId(id: string): string;
|
|
163
|
-
export declare function verdictPathFor(dir: string, id: string): string;
|
|
164
|
-
/**
|
|
165
|
-
* Resolve the explicit verdict id from `SOLUTION_VERDICT_ID`, or null when it
|
|
166
|
-
* is unset, blank, or not a safe single path segment. Validated through
|
|
167
|
-
* `sanitizeVerdictId` so a traversal-y or empty value fails closed here
|
|
168
|
-
* (returns null -> the gate denies) rather than reaching the marker read. This
|
|
169
|
-
* is the solo / non-agent-tasks fallback the completion-gate uses only when no
|
|
170
|
-
* active-claim is present.
|
|
171
|
-
*/
|
|
172
|
-
export declare function resolveExplicitVerdictId(env?: NodeJS.ProcessEnv): string | null;
|
|
173
|
-
/**
|
|
174
|
-
* WHY the verdict marker for an id yielded no verdict, as ONE observation.
|
|
175
|
-
* `readVerdict` below answers `null` for every non-`ok` kind, which is all
|
|
176
|
-
* the gate DECISION needs; the deny TEXT needs to say which one, and must
|
|
177
|
-
* not learn it from a second look at the path. A second look can disagree
|
|
178
|
-
* with the first (a background attempt finishing in between is exactly the
|
|
179
|
-
* case this pack exists for), and a note rendered from the later one then
|
|
180
|
-
* describes a rejection the gate never made: it would tell the agent its
|
|
181
|
-
* fresh marker was refused when the gate had simply not seen it yet
|
|
182
|
-
* (review finding, harness/799de976, round 6). Both consumers therefore
|
|
183
|
-
* read through this one function.
|
|
184
|
-
*/
|
|
185
|
-
export type VerdictReadOutcome = {
|
|
186
|
-
kind: "ok";
|
|
187
|
-
verdict: Verdict;
|
|
188
|
-
} | {
|
|
189
|
-
kind: "invalid-id";
|
|
190
|
-
} | {
|
|
191
|
-
kind: "missing";
|
|
192
|
-
} | {
|
|
193
|
-
kind: "symlink";
|
|
194
|
-
} | {
|
|
195
|
-
kind: "not-regular";
|
|
196
|
-
} | {
|
|
197
|
-
kind: "unreadable";
|
|
198
|
-
} | {
|
|
199
|
-
kind: "invalid-record";
|
|
200
|
-
};
|
|
201
|
-
/**
|
|
202
|
-
* Read + validate the verdict marker for `id` in ONE filesystem
|
|
203
|
-
* observation, reporting the outcome instead of collapsing it. The
|
|
204
|
-
* symlink-rejecting read is the shared `src/io/read-regular-file.ts`
|
|
205
|
-
* helper (same defense-in-depth as `checkApprovalMarker` against a symlink
|
|
206
|
-
* planted at the marker path pointing at agent-controlled content), and
|
|
207
|
-
* its four non-ok kinds pass straight through, so this outcome set cannot
|
|
208
|
-
* drift from the reader's own. `invalid-record` is the one kind added on
|
|
209
|
-
* top: a regular file that WAS read but is not a verdict (unparseable
|
|
210
|
-
* JSON, or JSON missing one of the three required fields).
|
|
211
|
-
*/
|
|
212
|
-
export declare function readVerdictDetailed(dir: string, id: string): VerdictReadOutcome;
|
|
213
|
-
/**
|
|
214
|
-
* Read + validate the verdict marker for `id`, or null when it is absent,
|
|
215
|
-
* unparseable, a symlink, or not a regular file: `readVerdictDetailed`
|
|
216
|
-
* above with the reason dropped. The completion-gate hook reads through
|
|
217
|
-
* `readVerdictDetailed` (it needs the reason), so this null-collapsing form
|
|
218
|
-
* has no production caller today; it stays as the exported form for a
|
|
219
|
-
* caller that only needs the verdict, and its collapse is unit-tested.
|
|
220
|
-
*/
|
|
221
|
-
export declare function readVerdict(dir: string, id: string): Verdict | null;
|
|
222
|
-
export interface GateResult {
|
|
223
|
-
allowed: boolean;
|
|
224
|
-
reason: string;
|
|
225
|
-
verdict: Verdict | null;
|
|
226
|
-
/**
|
|
227
|
-
* True when `allowed` is false SPECIFICALLY because a verdict file
|
|
228
|
-
* existed and parsed (the 7 producer keys), but carried a missing or
|
|
229
|
-
* invalid HMAC signature (harness/c7c3f606), or a body that identifies a
|
|
230
|
-
* different id than the one being checked (cross-id replay, see the
|
|
231
|
-
* `verdict.id !== id` check below) — a legacy/not-yet-signing producer, a
|
|
232
|
-
* marker planted through some write primitive the write-guard doesn't
|
|
233
|
-
* enumerate, or content tampered/copied post-signing. Distinct from
|
|
234
|
-
* `verdict === null` (no marker at all, `forged: false`), from a
|
|
235
|
-
* signing-key I/O failure (fail-closed but NOT classified as forged,
|
|
236
|
-
* mirroring `SignatureVerification`'s `kind: "key-unavailable"` — a
|
|
237
|
-
* broken key file must not read as an active forgery attempt in audit
|
|
238
|
-
* output), and from a verdict with NO `alg`/`signature` fields at all
|
|
239
|
-
* whose `timestamp` / `source` also reads blank (fail-closed but NOT
|
|
240
|
-
* classified as forged either — a legitimately malformed, never-signed
|
|
241
|
-
* marker, not evidence of an attack; see the `MISSING_*_REASON` carve-out
|
|
242
|
-
* below). That last carve-out is scoped tightly: a verdict that DOES carry
|
|
243
|
-
* `alg`/`signature` but still hits the same blank-field reason IS
|
|
244
|
-
* classified `forged: true` — a signed field reading blank only happens
|
|
245
|
-
* via post-signing tampering, so it does not get the "legitimately
|
|
246
|
-
* malformed" benefit of the doubt (review R2, closes an audit-fidelity
|
|
247
|
-
* gap where a forger could blank a real signed verdict's `timestamp` to
|
|
248
|
-
* suppress this tag while the block itself still held). `allowed` is
|
|
249
|
-
* always false when `forged` is true.
|
|
250
|
-
*/
|
|
251
|
-
forged: boolean;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Evaluate the gate for `id` at `currentHead`. First verifies the verdict's
|
|
255
|
-
* HMAC signature (harness/c7c3f606, fail-closed — see `verifyVerdictSignature`);
|
|
256
|
-
* a verdict that fails this is REJECTED before its `ready` / `head` fields
|
|
257
|
-
* are ever trusted, with a distinct forged/unsigned reason so an
|
|
258
|
-
* operator/auditor can tell that apart from the routine "not ready yet" or
|
|
259
|
-
* "no verdict" cases. Signature verification needs `generatedDir` (the
|
|
260
|
-
* harness `.generated/` dir holding the shared signing key, NOT the verdict
|
|
261
|
-
* dir) — `undefined` when it could not be resolved, which fails closed with
|
|
262
|
-
* its own distinct (non-forged) reason.
|
|
263
|
-
*
|
|
264
|
-
* `verifyVerdictSignature` is called with `id` — the CALLER's id, i.e. the
|
|
265
|
-
* one this function is asked to check — not `verdict.id`. A SECOND,
|
|
266
|
-
* belt-and-braces check below independently rejects `verdict.id !== id`:
|
|
267
|
-
* even though the signature check alone already closes the cross-id-replay
|
|
268
|
-
* hole (a byte-for-byte copy of a validly-signed verdict onto a different
|
|
269
|
-
* id's path fails signature verification, because the markerId the
|
|
270
|
-
* signature is bound to no longer matches `id`), the verdict body's `id`
|
|
271
|
-
* field itself is NOT part of the signed payload (only `timestamp` /
|
|
272
|
-
* `source` / the head-ready-confidence-blockers content hash are), so it
|
|
273
|
-
* can drift from the id that was actually verified without invalidating an
|
|
274
|
-
* otherwise-valid signature. This check makes that drift fail loudly too,
|
|
275
|
-
* rather than silently ignoring an inconsistency in the body of a verdict
|
|
276
|
-
* that otherwise passed.
|
|
277
|
-
*
|
|
278
|
-
* Once signed and identity-checked, mirrors grounding-mcp `evaluateGate`:
|
|
279
|
-
* allow iff `verdict.ready === true` AND `verdict.head === currentHead`.
|
|
280
|
-
* `confidence` is INFORMATIONAL ONLY and never gates — a `ready:true
|
|
281
|
-
* confidence:0` verdict at HEAD passes — so the harness consumer stays
|
|
282
|
-
* byte-parity with the producer's `solution_gate` for THAT decision.
|
|
283
|
-
* Signature verification itself is NOT (yet) mirrored on the producer side
|
|
284
|
-
* — see module doc, "HONEST RESIDUAL": grounding-mcp's own `solution_gate`
|
|
285
|
-
* does not enforce this signature, only this harness consumer does, until a
|
|
286
|
-
* matching producer release ships.
|
|
287
|
-
*/
|
|
288
|
-
export declare function evaluateGate(verdict: Verdict | null, currentHead: string | null, id: string, generatedDir: string | undefined): GateResult;
|
|
289
|
-
/**
|
|
290
|
-
* Is `target` inside `dir` after resolution? Used for the path-tool arm
|
|
291
|
-
* (Write/Edit/MultiEdit/NotebookEdit `file_path`) and for a Bash shell whose
|
|
292
|
-
* cwd is the protected dir. A relative `target` resolves against `cwd`
|
|
293
|
-
* (falling back to process.cwd()).
|
|
294
|
-
*/
|
|
295
|
-
export declare function isInsideDir(target: string, dir: string, cwd?: string): boolean;
|
|
296
|
-
/**
|
|
297
|
-
* Does a Bash command TEXTUALLY reference the verdict dir? Catches the
|
|
298
|
-
* enumerated spellings without shell-evaluating (same contract as
|
|
299
|
-
* read-only-bash):
|
|
300
|
-
* - the literal absolute dir,
|
|
301
|
-
* - the `$SOLUTION_VERDICT_DIR` env token,
|
|
302
|
-
* - the stable tail `agent-grounding/solution-verdicts` (covers `~/...`,
|
|
303
|
-
* `$HOME/...`, `$XDG_STATE_HOME/...`, and absolute spellings), and
|
|
304
|
-
* - the dir's LEAF segment (`solution-verdicts` for the default).
|
|
305
|
-
*
|
|
306
|
-
* The leaf segment closes the `cd <parent> && write <relative-into-dir>`
|
|
307
|
-
* descent (where the parent path and the child redirect never form the
|
|
308
|
-
* contiguous tail): ANY relative write into the dir from a cwd that is not
|
|
309
|
-
* the dir itself must name the leaf somewhere in the command, and a
|
|
310
|
-
* `cd <…/leaf>` to first make cwd==dir would itself contain the leaf. The
|
|
311
|
-
* write-guard's cwd-inside check covers the only remaining case (cwd already
|
|
312
|
-
* inside the dir). The leaf needle is length-guarded so a short custom
|
|
313
|
-
* basename does not over-block; the default leaf is distinctive, and a
|
|
314
|
-
* non-default dir already warns at validate time.
|
|
315
|
-
*
|
|
316
|
-
* `chmod`/`chattr` that target the dir are caught the same way, so the
|
|
317
|
-
* FS-perm-loosening attack is covered.
|
|
318
|
-
*
|
|
319
|
-
* Honest residual: a path constructed at runtime inside an interpreter with
|
|
320
|
-
* no textual reference (e.g. base64-decoded inside `python3 -c`) is NOT
|
|
321
|
-
* caught. That is what marker signing (follow-up) closes.
|
|
322
|
-
*/
|
|
323
|
-
export declare function bashReferencesVerdictDir(command: string, dir: string): boolean;
|