@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
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
// Manifest posture for removed keys and removed packs: warn and ignore,
|
|
2
|
+
// never reject (task a4d8adc5).
|
|
3
|
+
//
|
|
4
|
+
// `ManifestSchema` is `.strict()`, so a key the schema no longer declares
|
|
5
|
+
// would fail the whole load. Every hook loads the manifest, and the
|
|
6
|
+
// branch-protection hook refuses every edit when the load fails, so a machine
|
|
7
|
+
// whose manifest still carries a key a newer release removed would lock
|
|
8
|
+
// itself out the moment the new release is installed. Instead the table below
|
|
9
|
+
// names every removed manifest path and every removed pack name; matching
|
|
10
|
+
// entries are stripped from the raw manifest before the strict parse and
|
|
11
|
+
// returned as warnings (`harness validate`, `harness doctor` and `harness
|
|
12
|
+
// apply` print them, `harness validate --strict` fails on them). A key that was
|
|
13
|
+
// never valid is not in the table and still fails the parse.
|
|
14
|
+
//
|
|
15
|
+
// An empty value (`[]`, `{}`, null) of a key marked `silentWhenEmpty` is
|
|
16
|
+
// stripped without a warning: a manifest written before the removal often
|
|
17
|
+
// carries an empty `policies: []`, and warning about a key that configures
|
|
18
|
+
// nothing would only make `harness validate --strict` fail on it. A non-empty
|
|
19
|
+
// value warns. A path may also name the exact shape an older release wrote by
|
|
20
|
+
// default (`silentWhen`): `harness export` serialised the parsed manifest, so
|
|
21
|
+
// every exported manifest carried `audit: { redact: [] }` and `doctor: {
|
|
22
|
+
// ignore_template_drift: [] }`, and those two shapes are stripped silently too.
|
|
23
|
+
//
|
|
24
|
+
// A removed per-hook field (REMOVED_HOOK_FIELDS below) is stripped from the
|
|
25
|
+
// hook, which stays: `hooks[].bash_match` and `hooks[].path_match` were never
|
|
26
|
+
// projected into settings.json or the Codex config (`generate-settings.ts` and
|
|
27
|
+
// `generate-codex-config.ts` documented them as script-side filters), so
|
|
28
|
+
// dropping the key does not change what the hook runs on, while dropping the
|
|
29
|
+
// hook would remove an operator's own script. There is one warning per hook.
|
|
30
|
+
//
|
|
31
|
+
// Removed manifest paths and removed per-hook fields are also stripped from
|
|
32
|
+
// the base and from every override layer BEFORE the layers are merged
|
|
33
|
+
// (`stripRemovedManifestPaths` and `stripRemovedHookFields`, used by
|
|
34
|
+
// `mergeLayersStrippingRemovedPaths` in src/overrides): the merge walks
|
|
35
|
+
// name-keyed lists and throws on a shape it cannot reconcile, and that throw
|
|
36
|
+
// happens before the strip of the merged manifest runs. A removed hook field
|
|
37
|
+
// can collide the same way (`bash_match` as a list of named objects in the
|
|
38
|
+
// base under a plain list in a layer), so its strip runs pre-merge too; the
|
|
39
|
+
// post-merge strip of `stripRemovedManifestEntries` stays as the safety net
|
|
40
|
+
// for callers that parse a single source without merging, where it finds
|
|
41
|
+
// nothing left and warns no second time.
|
|
42
|
+
//
|
|
43
|
+
// Removed CLI commands (REMOVED_COMMANDS below) are not stripped: a hook or
|
|
44
|
+
// pack config that still calls one parses fine, so `findRemovedCommandUses`
|
|
45
|
+
// reports each such site through the same warning channel.
|
|
46
|
+
export const REMOVED_MANIFEST_PATHS = [
|
|
47
|
+
{
|
|
48
|
+
path: "grounding.evidence_ledger.retention_days",
|
|
49
|
+
removedIn: "1.0.0",
|
|
50
|
+
reason: "reserved and never consumed: evidence-ledger implements no retention pruning",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
path: "grounding.policies_source",
|
|
54
|
+
removedIn: "1.0.0",
|
|
55
|
+
reason: "reserved and never consumed: policies live in policy_packs[]",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
path: "session_start_preflight",
|
|
59
|
+
removedIn: "1.0.0",
|
|
60
|
+
reason: "the session-start preflight producer is removed",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
path: "toolchain_parity",
|
|
64
|
+
removedIn: "1.0.0",
|
|
65
|
+
reason: "the session-start toolchain-parity producer is removed",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
path: "stale_base_check",
|
|
69
|
+
removedIn: "1.0.0",
|
|
70
|
+
reason: "the session-start stale-base-check producer is removed",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
path: "permission_profiles",
|
|
74
|
+
removedIn: "1.0.0",
|
|
75
|
+
reason: "only the removed understanding-gate pack consumed permission profiles",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
path: "risk",
|
|
79
|
+
removedIn: "1.0.0",
|
|
80
|
+
reason: "the Risk Gate is removed, so its classifier configuration has no consumer",
|
|
81
|
+
note: (stripped) => isPlainObject(stripped) && stripped["degraded_fail_posture"] === "fail_open"
|
|
82
|
+
? "risk.degraded_fail_posture: fail_open is no longer honoured: manifest policies are no longer evaluated, so no policy fails open or closed on unreadable evidence"
|
|
83
|
+
: undefined,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
path: "environments",
|
|
87
|
+
removedIn: "1.0.0",
|
|
88
|
+
reason: "the Risk Gate is removed, so environment resolution has no consumer",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
path: "policies",
|
|
92
|
+
removedIn: "1.0.0",
|
|
93
|
+
reason: "the policy engine is removed, so manifest policies are no longer evaluated (the branch-protection pack in policy_packs[] is unaffected)",
|
|
94
|
+
silentWhenEmpty: true,
|
|
95
|
+
note: policiesNote,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
path: "workflows",
|
|
99
|
+
removedIn: "1.0.0",
|
|
100
|
+
reason: "workflows[] only derived review-gate policies, and the policy engine is removed",
|
|
101
|
+
silentWhenEmpty: true,
|
|
102
|
+
note: () => "workflow-derived review gates are no longer enforced",
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
path: "review_templates",
|
|
106
|
+
removedIn: "1.0.0",
|
|
107
|
+
reason: "only workflows[] used review templates",
|
|
108
|
+
silentWhenEmpty: true,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
path: "doctor",
|
|
112
|
+
removedIn: "1.0.0",
|
|
113
|
+
reason: "its only setting, ignore_template_drift, has no reader since the template drift check was removed",
|
|
114
|
+
silentWhenEmpty: true,
|
|
115
|
+
silentWhen: (stripped) => isOnlyEmptyListKey(stripped, "ignore_template_drift"),
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
path: "audit",
|
|
119
|
+
removedIn: "1.0.0",
|
|
120
|
+
reason: "only the removed `harness session-export` read audit.redact",
|
|
121
|
+
silentWhenEmpty: true,
|
|
122
|
+
silentWhen: (stripped) => isOnlyEmptyListKey(stripped, "redact"),
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
/** How many policy names the `policies` note spells out. */
|
|
126
|
+
const POLICY_NAMES_IN_NOTE = 5;
|
|
127
|
+
function policiesNote(stripped) {
|
|
128
|
+
if (!Array.isArray(stripped))
|
|
129
|
+
return "manifest policies are no longer evaluated";
|
|
130
|
+
const names = stripped
|
|
131
|
+
.map((p) => stringAt(p, "name"))
|
|
132
|
+
.filter((n) => n !== undefined);
|
|
133
|
+
const count = stripped.length;
|
|
134
|
+
const listed = names.slice(0, POLICY_NAMES_IN_NOTE).map((n) => `"${n}"`);
|
|
135
|
+
const more = names.length - listed.length;
|
|
136
|
+
const suffix = listed.length === 0 ? "" : ` (${listed.join(", ")}${more > 0 ? `, and ${more} more` : ""})`;
|
|
137
|
+
return `${count} ${count === 1 ? "policy is" : "policies are"} no longer evaluated${suffix}`;
|
|
138
|
+
}
|
|
139
|
+
const HOOK_FILTER_REASON = "it was never projected into settings.json or the Codex config, so the hook runs on the same events with or without it";
|
|
140
|
+
export const REMOVED_HOOK_FIELDS = [
|
|
141
|
+
{ field: "bash_match", removedIn: "1.0.0", reason: HOOK_FILTER_REASON },
|
|
142
|
+
{ field: "path_match", removedIn: "1.0.0", reason: HOOK_FILTER_REASON },
|
|
143
|
+
];
|
|
144
|
+
export const REMOVED_PACK_NAMES = [
|
|
145
|
+
{
|
|
146
|
+
name: "post-merge-gate",
|
|
147
|
+
removedIn: "1.0.0",
|
|
148
|
+
reason: "opt-in ledger-backed gate removed with the harness simplification",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "solution-acceptance",
|
|
152
|
+
removedIn: "1.0.0",
|
|
153
|
+
reason: "opt-in verdict-gated completion gate removed with the harness simplification",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "understanding-before-execution",
|
|
157
|
+
removedIn: "1.0.0",
|
|
158
|
+
reason: "the understanding-gate pack is removed with the harness simplification",
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
export const REMOVED_MANIFEST_TABLE = {
|
|
162
|
+
paths: REMOVED_MANIFEST_PATHS,
|
|
163
|
+
hookFields: REMOVED_HOOK_FIELDS,
|
|
164
|
+
packs: REMOVED_PACK_NAMES,
|
|
165
|
+
};
|
|
166
|
+
export const REMOVED_LIST_CATEGORIES = [
|
|
167
|
+
{ name: "policies", removedIn: "1.0.0", reason: "the manifest has no policies key any more" },
|
|
168
|
+
{ name: "workflows", removedIn: "1.0.0", reason: "the manifest has no workflows key any more" },
|
|
169
|
+
];
|
|
170
|
+
export const REMOVED_DESCRIBE_PILLARS = [
|
|
171
|
+
{ name: "policies", removedIn: "1.0.0", reason: "the manifest has no policies key any more" },
|
|
172
|
+
{ name: "workflows", removedIn: "1.0.0", reason: "the manifest has no workflows key any more" },
|
|
173
|
+
{ name: "review_templates", removedIn: "1.0.0", reason: "the manifest has no review_templates key any more" },
|
|
174
|
+
];
|
|
175
|
+
/** The usage-error text for a removed `kind` ("list category", "pillar") given on the command line. */
|
|
176
|
+
export function removedInspectNameMessage(kind, removed) {
|
|
177
|
+
return `${kind} "${removed.name}" was removed in ${removed.removedIn} (${removed.reason})`;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The index in the manifest as written for index `k` of the stripped array.
|
|
181
|
+
* An index past the kept entries (an entry appended after the parse) keeps
|
|
182
|
+
* its distance from the end.
|
|
183
|
+
*/
|
|
184
|
+
export function originalIndex(map, k) {
|
|
185
|
+
if (map === undefined)
|
|
186
|
+
return k;
|
|
187
|
+
const hit = map.kept[k];
|
|
188
|
+
return hit !== undefined ? hit : k + (map.originalLength - map.kept.length);
|
|
189
|
+
}
|
|
190
|
+
/** Remap a zod issue path (`["policy_packs", 0, ...]`) to the manifest as written. */
|
|
191
|
+
export function remapIssuePath(path, maps) {
|
|
192
|
+
const [head, idx, ...rest] = path;
|
|
193
|
+
if (maps === undefined || typeof idx !== "number")
|
|
194
|
+
return [...path];
|
|
195
|
+
if (head === "policy_packs")
|
|
196
|
+
return [head, originalIndex(maps.policy_packs, idx), ...rest];
|
|
197
|
+
return [...path];
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Remap a diagnostic path that names `policy_packs[k]` (also the dotted
|
|
201
|
+
* `policy_packs.k`) to the manifest as written. Any other path is returned
|
|
202
|
+
* unchanged.
|
|
203
|
+
*/
|
|
204
|
+
export function remapDiagnosticPath(path, maps) {
|
|
205
|
+
if (maps === undefined)
|
|
206
|
+
return path;
|
|
207
|
+
const m = /^policy_packs(?:\[(\d+)\]|\.(\d+)(?=\.|$))/.exec(path);
|
|
208
|
+
if (m === null)
|
|
209
|
+
return path;
|
|
210
|
+
const k = Number(m[1] ?? m[2]);
|
|
211
|
+
const mapped = originalIndex(maps.policy_packs, k);
|
|
212
|
+
return `policy_packs${m[1] !== undefined ? `[${mapped}]` : `.${mapped}`}${path.slice(m[0].length)}`;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* A plain `{...}` mapping: not null, not an array, and with `Object.prototype`
|
|
216
|
+
* or no prototype at all. The one shared copy (the merge engine and the
|
|
217
|
+
* layer-root check were copies of this); YAML-parsed documents only ever
|
|
218
|
+
* carry such objects, arrays, and scalars, so the prototype check only
|
|
219
|
+
* excludes exotic values like a YAML timestamp's `Date`.
|
|
220
|
+
*/
|
|
221
|
+
export function isPlainObject(v) {
|
|
222
|
+
if (v === null || typeof v !== "object" || Array.isArray(v))
|
|
223
|
+
return false;
|
|
224
|
+
const proto = Object.getPrototypeOf(v);
|
|
225
|
+
return proto === Object.prototype || proto === null;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Remove the key at `segments` from `node`, copying every object on the way
|
|
229
|
+
* so the caller's raw manifest is never mutated. Returns the new node and
|
|
230
|
+
* whether a key was removed. A path through anything but plain objects is
|
|
231
|
+
* left alone (the strict parse then reports whatever is wrong there).
|
|
232
|
+
*/
|
|
233
|
+
function withoutPath(node, segments) {
|
|
234
|
+
if (!isPlainObject(node) || segments.length === 0)
|
|
235
|
+
return { node, removed: false };
|
|
236
|
+
const [head, ...rest] = segments;
|
|
237
|
+
if (!Object.prototype.hasOwnProperty.call(node, head))
|
|
238
|
+
return { node, removed: false };
|
|
239
|
+
if (rest.length === 0) {
|
|
240
|
+
const copy = { ...node };
|
|
241
|
+
delete copy[head];
|
|
242
|
+
return { node: copy, removed: true };
|
|
243
|
+
}
|
|
244
|
+
const inner = withoutPath(node[head], rest);
|
|
245
|
+
if (!inner.removed)
|
|
246
|
+
return { node, removed: false };
|
|
247
|
+
return { node: { ...node, [head]: inner.node }, removed: true };
|
|
248
|
+
}
|
|
249
|
+
/** The value at `segments` under `node`, or undefined (own properties only). */
|
|
250
|
+
function valueAt(node, segments) {
|
|
251
|
+
let cur = node;
|
|
252
|
+
for (const seg of segments) {
|
|
253
|
+
if (!isPlainObject(cur) || !Object.prototype.hasOwnProperty.call(cur, seg))
|
|
254
|
+
return undefined;
|
|
255
|
+
cur = cur[seg];
|
|
256
|
+
}
|
|
257
|
+
return cur;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* True for a value that configures nothing: null, `[]` or `{}`. Only a
|
|
261
|
+
* prototype-plain object counts as `{}`: a YAML-typed value (a `!!set` Set, an
|
|
262
|
+
* `!!omap` Map, a `!!timestamp` Date) has no own enumerable keys either, but
|
|
263
|
+
* it is not empty, so it warns.
|
|
264
|
+
*/
|
|
265
|
+
function isEmptyValue(v) {
|
|
266
|
+
if (v === null)
|
|
267
|
+
return true;
|
|
268
|
+
if (Array.isArray(v))
|
|
269
|
+
return v.length === 0;
|
|
270
|
+
if (!isPlainObject(v))
|
|
271
|
+
return false;
|
|
272
|
+
const proto = Object.getPrototypeOf(v);
|
|
273
|
+
return (proto === Object.prototype || proto === null) && Object.keys(v).length === 0;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* True for a prototype-plain object whose only own key is `key` and whose
|
|
277
|
+
* value is an empty array: the shape an old schema default serialised
|
|
278
|
+
* (`{ redact: [] }`). `{ redact: null }` is not that shape and warns: no
|
|
279
|
+
* release wrote it.
|
|
280
|
+
*/
|
|
281
|
+
function isOnlyEmptyListKey(v, key) {
|
|
282
|
+
if (!isPlainObject(v))
|
|
283
|
+
return false;
|
|
284
|
+
const proto = Object.getPrototypeOf(v);
|
|
285
|
+
if (proto !== Object.prototype && proto !== null)
|
|
286
|
+
return false;
|
|
287
|
+
const keys = Object.keys(v);
|
|
288
|
+
const value = keys.length === 1 && keys[0] === key ? v[key] : undefined;
|
|
289
|
+
return Array.isArray(value) && value.length === 0;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Strip every removed manifest path from a raw manifest (or one override
|
|
293
|
+
* layer), one warning per path that was present, none for an empty value of a
|
|
294
|
+
* `silentWhenEmpty` path or a value its `silentWhen` accepts. Pure: `raw` is
|
|
295
|
+
* not modified, and the same object is returned when nothing was stripped.
|
|
296
|
+
*/
|
|
297
|
+
export function stripRemovedManifestPaths(raw, paths = REMOVED_MANIFEST_PATHS) {
|
|
298
|
+
const warnings = [];
|
|
299
|
+
let current = raw;
|
|
300
|
+
for (const entry of paths) {
|
|
301
|
+
const segments = entry.path.split(".");
|
|
302
|
+
const stripped = valueAt(current, segments);
|
|
303
|
+
const r = withoutPath(current, segments);
|
|
304
|
+
if (!r.removed)
|
|
305
|
+
continue;
|
|
306
|
+
current = r.node;
|
|
307
|
+
if (entry.silentWhenEmpty === true && isEmptyValue(stripped))
|
|
308
|
+
continue;
|
|
309
|
+
if (entry.silentWhen?.(stripped) === true)
|
|
310
|
+
continue;
|
|
311
|
+
const note = entry.note?.(stripped);
|
|
312
|
+
warnings.push({
|
|
313
|
+
path: entry.path,
|
|
314
|
+
message: `removed in ${entry.removedIn} and ignored (${entry.reason}); delete it from the manifest` +
|
|
315
|
+
(note !== undefined ? `. ${note}` : ""),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
return { raw: current, warnings };
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Strip every removed field from the hooks that carry it (the hook stays,
|
|
322
|
+
* one warning per hook), over one `hooks` array. Shared by
|
|
323
|
+
* `stripRemovedHookFields` (one raw source, before the merge) and
|
|
324
|
+
* `stripRemovedManifestEntries` (the merged manifest), so the wording exists
|
|
325
|
+
* once. Pure: `hooks` is not modified.
|
|
326
|
+
*/
|
|
327
|
+
function stripRemovedHookFieldsFromHooks(hooks, hookFields) {
|
|
328
|
+
const warnings = [];
|
|
329
|
+
let changed = false;
|
|
330
|
+
const next = hooks.map((hook, i) => {
|
|
331
|
+
if (!isPlainObject(hook))
|
|
332
|
+
return hook;
|
|
333
|
+
const found = hookFields.filter((f) => Object.prototype.hasOwnProperty.call(hook, f.field));
|
|
334
|
+
if (found.length === 0)
|
|
335
|
+
return hook;
|
|
336
|
+
changed = true;
|
|
337
|
+
const copy = { ...hook };
|
|
338
|
+
for (const f of found)
|
|
339
|
+
delete copy[f.field];
|
|
340
|
+
const name = stringAt(hook, "name");
|
|
341
|
+
warnings.push({
|
|
342
|
+
path: `hooks[${i}]`,
|
|
343
|
+
message: `${name !== undefined ? `hook "${name}"` : "this hook"} carries ${found.map((f) => f.field).join(" and ")}, ` +
|
|
344
|
+
`removed in ${found[0].removedIn} (${[...new Set(found.map((f) => f.reason))].join("; ")}); the field is ignored, delete the ` +
|
|
345
|
+
`${found.length === 1 ? "key" : "keys"} from it`,
|
|
346
|
+
});
|
|
347
|
+
return copy;
|
|
348
|
+
});
|
|
349
|
+
return { hooks: next, changed, warnings };
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Strip every removed per-hook field from one raw source (the base manifest
|
|
353
|
+
* or one override layer) BEFORE it is merged: the merge walks name-keyed
|
|
354
|
+
* lists and throws on a shape it cannot reconcile, and a removed field like
|
|
355
|
+
* `bash_match` can carry exactly such colliding shapes across sources. The
|
|
356
|
+
* hooks stay; one warning per hook that carried a key, as in
|
|
357
|
+
* `stripRemovedManifestEntries`, whose post-merge strip stays as the safety
|
|
358
|
+
* net for callers that parse without merging (it then finds nothing left).
|
|
359
|
+
* Pure: `raw` is not modified, and the same object is returned when nothing
|
|
360
|
+
* was stripped.
|
|
361
|
+
*/
|
|
362
|
+
export function stripRemovedHookFields(raw, hookFields = REMOVED_HOOK_FIELDS) {
|
|
363
|
+
if (!isPlainObject(raw) || !Array.isArray(raw["hooks"]) || hookFields.length === 0) {
|
|
364
|
+
return { raw, warnings: [] };
|
|
365
|
+
}
|
|
366
|
+
const stripped = stripRemovedHookFieldsFromHooks(raw["hooks"], hookFields);
|
|
367
|
+
if (!stripped.changed)
|
|
368
|
+
return { raw, warnings: [] };
|
|
369
|
+
return { raw: { ...raw, hooks: stripped.hooks }, warnings: stripped.warnings };
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Strip every removed manifest path, strip every removed field from the
|
|
373
|
+
* hooks that carry it (the hook stays), and drop every removed pack entry
|
|
374
|
+
* from a raw (merged, not yet parsed) manifest. After a
|
|
375
|
+
* `mergeLayersStrippingRemovedPaths` merge the hook fields are already
|
|
376
|
+
* stripped (they went before the merge), so this strip finds nothing left of
|
|
377
|
+
* them and warns no second time; it stays for callers that parse a single
|
|
378
|
+
* source without merging. Pure: `raw` is not modified.
|
|
379
|
+
*/
|
|
380
|
+
export function stripRemovedManifestEntries(raw, table = REMOVED_MANIFEST_TABLE) {
|
|
381
|
+
const indexMaps = {};
|
|
382
|
+
const paths = stripRemovedManifestPaths(raw, table.paths);
|
|
383
|
+
const warnings = paths.warnings;
|
|
384
|
+
let current = paths.raw;
|
|
385
|
+
if (isPlainObject(current) && Array.isArray(current["hooks"]) && table.hookFields.length > 0) {
|
|
386
|
+
const stripped = stripRemovedHookFieldsFromHooks(current["hooks"], table.hookFields);
|
|
387
|
+
warnings.push(...stripped.warnings);
|
|
388
|
+
if (stripped.changed)
|
|
389
|
+
current = { ...current, hooks: stripped.hooks };
|
|
390
|
+
}
|
|
391
|
+
if (isPlainObject(current) && Array.isArray(current["policy_packs"]) && table.packs.length > 0) {
|
|
392
|
+
const packs = current["policy_packs"];
|
|
393
|
+
const kept = [];
|
|
394
|
+
const keptFrom = [];
|
|
395
|
+
packs.forEach((pack, i) => {
|
|
396
|
+
const name = isPlainObject(pack) ? pack["name"] : undefined;
|
|
397
|
+
const removed = typeof name === "string" ? table.packs.find((p) => p.name === name) : undefined;
|
|
398
|
+
if (removed === undefined) {
|
|
399
|
+
kept.push(pack);
|
|
400
|
+
keptFrom.push(i);
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
warnings.push({
|
|
404
|
+
path: `policy_packs[${i}]`,
|
|
405
|
+
message: `pack "${removed.name}" was removed in ${removed.removedIn} and is skipped (${removed.reason}); delete the entry from the manifest`,
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
if (kept.length !== packs.length) {
|
|
409
|
+
current = { ...current, policy_packs: kept };
|
|
410
|
+
indexMaps.policy_packs = { kept: keptFrom, originalLength: packs.length };
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
return Object.keys(indexMaps).length > 0 ? { raw: current, warnings, indexMaps } : { raw: current, warnings };
|
|
414
|
+
}
|
|
415
|
+
/** One line per warning, as `harness validate` / `harness doctor` print it. */
|
|
416
|
+
export function formatPostureWarning(w) {
|
|
417
|
+
return `${w.path}: ${w.message}`;
|
|
418
|
+
}
|
|
419
|
+
export const REMOVED_COMMANDS = [
|
|
420
|
+
{ command: "harness session-start", removedIn: "1.0.0", reason: "the SessionStart producers are removed" },
|
|
421
|
+
{ command: "harness preflight", removedIn: "1.0.0", reason: "alias of the removed session-start preflight producer" },
|
|
422
|
+
{ command: "harness pack hook post-merge-gate", removedIn: "1.0.0", reason: "the post-merge-gate pack is removed" },
|
|
423
|
+
{ command: "harness pack hook solution-acceptance", removedIn: "1.0.0", reason: "the solution-acceptance pack is removed" },
|
|
424
|
+
{ command: "harness pack hook pre-tool-use", removedIn: "1.0.0", reason: "the understanding-gate PreToolUse hook is removed" },
|
|
425
|
+
{ command: "harness pack hook post-tool-use", removedIn: "1.0.0", reason: "the understanding-gate PostToolUse hook is removed" },
|
|
426
|
+
{ command: "harness pack hook track-active-claim", removedIn: "1.0.0", reason: "the understanding-gate active-claim hook is removed" },
|
|
427
|
+
{ command: "harness pack hook stay-in-scope", removedIn: "1.0.0", reason: "the understanding-gate stay-in-scope hook is removed" },
|
|
428
|
+
{ command: "harness pack hook subagent-start", removedIn: "1.0.0", reason: "the understanding-gate subagent hooks are removed" },
|
|
429
|
+
{ command: "harness pack hook subagent-stop", removedIn: "1.0.0", reason: "the understanding-gate subagent hooks are removed" },
|
|
430
|
+
{ command: "harness pack hook codex-pre-tool-use", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
|
|
431
|
+
{ command: "harness pack hook codex-post-tool-use", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
|
|
432
|
+
{ command: "harness pack hook codex-user-prompt-submit", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
|
|
433
|
+
{ command: "harness pack hook codex-stop", removedIn: "1.0.0", reason: "the understanding-gate Codex hooks are removed" },
|
|
434
|
+
{ command: "harness pack hook runtime-reality", removedIn: "1.0.0", reason: "the runtime-reality hook is removed" },
|
|
435
|
+
{ command: "harness delegate", removedIn: "1.0.0", reason: "subagent delegation for the understanding gate is removed" },
|
|
436
|
+
{ command: "harness approve understanding", removedIn: "1.0.0", reason: "the understanding-gate approval verb is removed" },
|
|
437
|
+
{ command: "harness gc", removedIn: "1.0.0", reason: "the understanding-gate state cleanup verb is removed" },
|
|
438
|
+
{ command: "harness pack upgrade", removedIn: "1.0.0", reason: "the understanding-gate auto_approve upgrade verb is removed" },
|
|
439
|
+
{ command: "harness explain-action", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
|
|
440
|
+
{ command: "harness test-risk", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
|
|
441
|
+
{ command: "harness resolve-env", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
|
|
442
|
+
{ command: "harness approve risk", removedIn: "1.0.0", reason: "the Risk Gate approval verb is removed" },
|
|
443
|
+
{ command: "harness explain-policy", removedIn: "1.0.0", reason: "the Risk Gate debug verbs are removed" },
|
|
444
|
+
{ command: "harness dry-run", removedIn: "1.0.0", reason: "the policy engine's debug verbs are removed" },
|
|
445
|
+
{ command: "harness policy intercept", removedIn: "1.0.0", reason: "the policy engine behind the PreToolUse intercept hook is removed" },
|
|
446
|
+
{ command: "harness record", removedIn: "1.0.0", reason: "the evidence recording verbs for the removed policy gates are removed" },
|
|
447
|
+
{ command: "harness smoke", removedIn: "1.0.0", reason: "the end-to-end smoke verb, whose decision mode read the removed policy engine, is removed" },
|
|
448
|
+
{ command: "harness pause", removedIn: "1.0.0", reason: "the operator pause is removed; use `harness gate disable`" },
|
|
449
|
+
{ command: "harness resume", removedIn: "1.0.0", reason: "the operator pause is removed; use `harness gate enable`" },
|
|
450
|
+
{ command: "harness audit", removedIn: "1.0.0", reason: "the policy-decision replay is removed; read the ledger with the evidence-ledger CLI" },
|
|
451
|
+
{ command: "harness session-export", removedIn: "1.0.0", reason: "the transcript and ledger export is removed; harness no longer reads the evidence ledger" },
|
|
452
|
+
// `harness explain` is a prefix of `harness explain-action` and
|
|
453
|
+
// `harness explain-policy` (hyphen continuation) and lookup takes the
|
|
454
|
+
// FIRST matching row, so this row must stay below both of them; pinned
|
|
455
|
+
// in tests/schema/removed-commands.test.ts (task bfe5efb4).
|
|
456
|
+
{ command: "harness explain", removedIn: "1.0.0", reason: "the policy engine's debug verbs are removed" },
|
|
457
|
+
];
|
|
458
|
+
// Leading `NAME=value` shell assignments in front of the command word. Only
|
|
459
|
+
// unquoted values without shell metacharacters count: a quote, a backslash, a
|
|
460
|
+
// `$` or a backtick could hide where the assignment ends, so such a command is
|
|
461
|
+
// left unmatched (a missed warning) rather than guessed at (a false one).
|
|
462
|
+
const LEADING_ENV_ASSIGNMENTS = /^(?:[A-Za-z_][A-Za-z0-9_]*=[^\s'"\\$`;|&<>()]*\s+)*/;
|
|
463
|
+
/**
|
|
464
|
+
* The removed command `command` invokes, if any. Matching rule: after trimming
|
|
465
|
+
* and dropping leading plain `NAME=value` assignments, the command must start
|
|
466
|
+
* with a table entry followed by the end, whitespace or a hyphen. Anything
|
|
467
|
+
* else is not matched: a command word given as a path (`/usr/local/bin/harness
|
|
468
|
+
* preflight`), a wrapper (`npx harness preflight`), a compound command (`cd x
|
|
469
|
+
* && harness preflight`), or an assignment with a quoted or expanded value.
|
|
470
|
+
*/
|
|
471
|
+
export function invokesRemovedCommand(command, table = REMOVED_COMMANDS) {
|
|
472
|
+
const trimmed = command.trim().replace(LEADING_ENV_ASSIGNMENTS, "");
|
|
473
|
+
return table.find((r) => trimmed === r.command || trimmed.startsWith(`${r.command} `) || trimmed.startsWith(`${r.command}-`));
|
|
474
|
+
}
|
|
475
|
+
export function removedCommandMessage(removed, remedy) {
|
|
476
|
+
return `calls "${removed.command}", removed in ${removed.removedIn} (${removed.reason}), so it fails with "unknown command"; ${remedy}`;
|
|
477
|
+
}
|
|
478
|
+
function stringAt(node, key) {
|
|
479
|
+
if (!isPlainObject(node))
|
|
480
|
+
return undefined;
|
|
481
|
+
const v = node[key];
|
|
482
|
+
return typeof v === "string" ? v : undefined;
|
|
483
|
+
}
|
|
484
|
+
function arrayAt(node, key) {
|
|
485
|
+
if (!isPlainObject(node))
|
|
486
|
+
return [];
|
|
487
|
+
const v = node[key];
|
|
488
|
+
return Array.isArray(v) ? v : [];
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Every place a raw (merged) manifest still calls a removed CLI command, one
|
|
492
|
+
* warning per site. A manifest generated before the removal keeps such hooks
|
|
493
|
+
* and pack configs until the operator deletes them: `harness apply` renders from
|
|
494
|
+
* the manifest, so it re-emits them, and the hook or the agent-facing remedy
|
|
495
|
+
* then runs a command that no longer exists.
|
|
496
|
+
*
|
|
497
|
+
* Scanned sites: `hooks[].command`; each pack's `config.producers[].command`
|
|
498
|
+
* and `config.ux.run[]`. An entry of a removed pack is skipped (the pack
|
|
499
|
+
* itself already warns). Pure and tolerant: anything that is not the expected
|
|
500
|
+
* shape is skipped, the strict parse reports it.
|
|
501
|
+
*/
|
|
502
|
+
export function findRemovedCommandUses(raw, commands = REMOVED_COMMANDS, removedPacks = REMOVED_PACK_NAMES) {
|
|
503
|
+
const warnings = [];
|
|
504
|
+
const check = (value, path, remedy) => {
|
|
505
|
+
if (typeof value !== "string")
|
|
506
|
+
return;
|
|
507
|
+
const removed = invokesRemovedCommand(value, commands);
|
|
508
|
+
if (removed !== undefined)
|
|
509
|
+
warnings.push({ path, message: removedCommandMessage(removed, remedy()) });
|
|
510
|
+
};
|
|
511
|
+
arrayAt(raw, "hooks").forEach((hook, i) => {
|
|
512
|
+
const name = stringAt(hook, "name");
|
|
513
|
+
check(stringAt(hook, "command"), `hooks[${i}].command`, () => `delete ${name !== undefined ? `hook "${name}"` : "this hook"} from the manifest, then re-run \`harness apply\``);
|
|
514
|
+
});
|
|
515
|
+
arrayAt(raw, "policy_packs").forEach((pack, i) => {
|
|
516
|
+
const name = stringAt(pack, "name");
|
|
517
|
+
if (name !== undefined && removedPacks.some((p) => p.name === name))
|
|
518
|
+
return;
|
|
519
|
+
const config = isPlainObject(pack) ? pack["config"] : undefined;
|
|
520
|
+
const remedy = () => `remove the line from the pack's config, or run \`harness pack reseed ${name ?? "<name>"}\` when the pack ships a default`;
|
|
521
|
+
arrayAt(config, "producers").forEach((producer, j) => {
|
|
522
|
+
check(stringAt(producer, "command"), `policy_packs[${i}].config.producers[${j}].command`, remedy);
|
|
523
|
+
});
|
|
524
|
+
const ux = isPlainObject(config) ? config["ux"] : undefined;
|
|
525
|
+
arrayAt(ux, "run").forEach((line, j) => {
|
|
526
|
+
check(line, `policy_packs[${i}].config.ux.run[${j}]`, remedy);
|
|
527
|
+
});
|
|
528
|
+
});
|
|
529
|
+
return warnings;
|
|
530
|
+
}
|
|
531
|
+
//# sourceMappingURL=removed-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removed-keys.js","sourceRoot":"","sources":["../../src/schema/removed-keys.ts"],"names":[],"mappings":"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"}
|