@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bash-match-facts.js","sourceRoot":"","sources":["../../src/runtime/bash-match-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import type { BashMatchFacts } from "./bash-match-facts.js";
|
|
2
|
-
export type RegisteredSetIntent = "covers-gated-head-tokens" | "must-not-contain-gated-head-token";
|
|
3
|
-
/**
|
|
4
|
-
* The registration hands the guard the CONSTANT itself, discriminated by
|
|
5
|
-
* shape (task `209e6dc4` redesign — see the module header). There is no
|
|
6
|
-
* `has()` closure any more: `sourceHas` below is the ONLY way membership is
|
|
7
|
-
* ever tested, so a registration cannot assert a predicate that diverges
|
|
8
|
-
* from what the underlying `Set`/`RegExp` actually does, because there is
|
|
9
|
-
* only one value, not a value plus a separate self-description of it.
|
|
10
|
-
*/
|
|
11
|
-
export type HeadTokenSource = {
|
|
12
|
-
readonly kind: "set";
|
|
13
|
-
readonly set: ReadonlySet<string>;
|
|
14
|
-
} | {
|
|
15
|
-
readonly kind: "regex";
|
|
16
|
-
readonly re: RegExp;
|
|
17
|
-
};
|
|
18
|
-
/** Membership test derived FROM `source` — never independently supplied. */
|
|
19
|
-
export declare function sourceHas(source: HeadTokenSource, token: string): boolean;
|
|
20
|
-
interface RegisteredHeadTokenSetCommon {
|
|
21
|
-
/**
|
|
22
|
-
* Stable identifier, used in failure messages and by the unregistered-set
|
|
23
|
-
* scan's cross-reference. Purely descriptive (task `209e6dc4`): the
|
|
24
|
-
* checked value is `source`, a direct reference to the real constant, so
|
|
25
|
-
* a wrong `id` here is a misleading LABEL, never a way to escape a
|
|
26
|
-
* check — see the module header's point 6.
|
|
27
|
-
*/
|
|
28
|
-
readonly id: string;
|
|
29
|
-
/** File the set is actually declared in, for failure messages. Descriptive only, same caveat as `id`. */
|
|
30
|
-
readonly module: string;
|
|
31
|
-
/** The actual constant this registration mirrors — see `HeadTokenSource`. */
|
|
32
|
-
readonly source: HeadTokenSource;
|
|
33
|
-
readonly description: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* A "covers-gated-head-tokens" registration — the set exists so the engine
|
|
37
|
-
* RECOGNISES these head tokens.
|
|
38
|
-
*/
|
|
39
|
-
export interface CoversHeadTokenSet extends RegisteredHeadTokenSetCommon {
|
|
40
|
-
readonly intent: "covers-gated-head-tokens";
|
|
41
|
-
/**
|
|
42
|
-
* Token(s) this registration KNOWINGLY shares coverage of with another
|
|
43
|
-
* registered "covers-gated-head-tokens" set — an explicit, conscious
|
|
44
|
-
* declaration (task `209e6dc4` redesign, resolving the module header's
|
|
45
|
-
* point 4), never an inference. `checkRegisteredSets`'s covers-redundancy
|
|
46
|
-
* check only clears a token for which MORE THAN ONE covers-set answers
|
|
47
|
-
* true when EVERY one of those covering sets lists that token here. A
|
|
48
|
-
* set that silently overlaps without declaring so still trips the
|
|
49
|
-
* check — legitimate double coverage requires editing both
|
|
50
|
-
* registrations, not just adding one next to an untouched other.
|
|
51
|
-
*/
|
|
52
|
-
readonly intentionalOverlaps?: ReadonlySet<string>;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* A "must-not-contain-gated-head-token" registration — the set exists for
|
|
56
|
-
* some OTHER purpose and must never contain a token the manifest itself
|
|
57
|
-
* gates (the dbc6d303 CRITICAL shape). No purity/redundancy semantics apply
|
|
58
|
-
* to this arm — only `sourceHas` is ever asked anything (check (a)).
|
|
59
|
-
*/
|
|
60
|
-
export interface MustNotContainHeadTokenSet extends RegisteredHeadTokenSetCommon {
|
|
61
|
-
readonly intent: "must-not-contain-gated-head-token";
|
|
62
|
-
}
|
|
63
|
-
/** Discriminated union on `intent`. */
|
|
64
|
-
export type RegisteredHeadTokenSet = CoversHeadTokenSet | MustNotContainHeadTokenSet;
|
|
65
|
-
export declare const REGISTERED_HEAD_TOKEN_SETS: readonly RegisteredHeadTokenSet[];
|
|
66
|
-
/**
|
|
67
|
-
* Which check flagged this violation. `covers-purity` (task `209e6dc4`
|
|
68
|
-
* redesign) merges what used to be three separate checks (covers-purity,
|
|
69
|
-
* covers-predicate-purity, and the documented-uncovered laundering gap
|
|
70
|
-
* that had no check at all) into one probe over the registration's real
|
|
71
|
-
* `source` — see the module header's points 1 and 3.
|
|
72
|
-
*/
|
|
73
|
-
export type RegistrationCheck = "must-not-contain" | "covers-completeness" | "covers-empty" | "covers-purity" | "covers-redundancy";
|
|
74
|
-
export interface RegistrationViolation {
|
|
75
|
-
readonly setId: string;
|
|
76
|
-
readonly intent: RegisteredSetIntent;
|
|
77
|
-
readonly token: string;
|
|
78
|
-
readonly check: RegistrationCheck;
|
|
79
|
-
readonly reason: string;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Fixed, deliberately small, PER-ENTRY-PINNED vocabulary of plausible
|
|
83
|
-
* NON-gated head tokens (originally fix round 2 S4/D-004; each entry
|
|
84
|
-
* individually pinned by a live regression test in
|
|
85
|
-
* `tests/runtime/bash-match-head-token-drift.test.ts` as of task
|
|
86
|
-
* `209e6dc4` — see the module header's point 5): commands a reasonable
|
|
87
|
-
* engine-side set might plausibly mirror or accidentally absorb, but that
|
|
88
|
-
* no shipped `bash_match` policy gates today. Combined with the live
|
|
89
|
-
* `facts.gatedHeadTokens` (every token that IS gated, verified fresh — see
|
|
90
|
-
* `bash-match-facts.ts`) this gives covers-purity a concrete probe domain
|
|
91
|
-
* to test every registered "covers" source against, instead of trusting a
|
|
92
|
-
* registration to honestly describe what it covers.
|
|
93
|
-
*
|
|
94
|
-
* RESIDUAL, named not hidden: this list cannot be exhaustively DERIVED from
|
|
95
|
-
* the manifest — the manifest enumerates what IS gated, never the infinite
|
|
96
|
-
* negative space of what is not. A token entirely outside both this list
|
|
97
|
-
* and `facts.gatedHeadTokens` (e.g. `yarn`, `pnpm`) is not probed by
|
|
98
|
-
* covers-purity. Widening this list narrows that residual; it cannot close
|
|
99
|
-
* it completely for a `RegExp`-backed source, whose true match set is not
|
|
100
|
-
* enumerable at all.
|
|
101
|
-
*/
|
|
102
|
-
export declare const PLAUSIBLE_NON_GATED_HEAD_TOKENS: readonly string[];
|
|
103
|
-
/**
|
|
104
|
-
* Check every registered set against the live facts. Returns an EMPTY
|
|
105
|
-
* array when clean. `registrations` and `documentedUncovered` default to
|
|
106
|
-
* the real, shipped values but accept fixtures — see
|
|
107
|
-
* `tests/runtime/bash-match-registry.test.ts`'s regression tests for the
|
|
108
|
-
* historical incidents, which pass deliberately-broken fixtures to prove
|
|
109
|
-
* this function catches their exact shape.
|
|
110
|
-
*/
|
|
111
|
-
export declare function checkRegisteredSets(facts: Pick<BashMatchFacts, "gatedHeadTokens" | "classify">, registrations?: readonly RegisteredHeadTokenSet[], documentedUncovered?: ReadonlySet<string>): RegistrationViolation[];
|
|
112
|
-
export {};
|
|
@@ -1,406 +0,0 @@
|
|
|
1
|
-
// Registration point for every engine-side constant set that mirrors
|
|
2
|
-
// FULL_TEMPLATE's `bash_match` facts (task `074acf5d`, run
|
|
3
|
-
// `2026-07-28-manifest-facts-drift-guard`; redesigned by task `209e6dc4`).
|
|
4
|
-
//
|
|
5
|
-
// WHY A REGISTRY, NOT ONE HARD-CODED COMPARISON: the guard this replaces
|
|
6
|
-
// (`tests/runtime/bash-match-head-token-drift.test.ts`, pre-migration)
|
|
7
|
-
// checked exactly one named set (`NON_GIT_HEAD_TOKENS`) against the
|
|
8
|
-
// manifest. That guard could not see run `dbc6d303`'s `INERT_CONSUMER_HEADS`
|
|
9
|
-
// (a NEW module, CRITICAL: contained `harness`, the kill-switch's own
|
|
10
|
-
// gated head token) at all — it simply never looked at any set but the
|
|
11
|
-
// one it was told about. `REGISTERED_HEAD_TOKEN_SETS` below is the list
|
|
12
|
-
// every such set must join; `checkRegisteredSets` walks the WHOLE list
|
|
13
|
-
// against the live facts, so a set registered tomorrow is checked
|
|
14
|
-
// automatically, and (paired with the unregistered-set scan in
|
|
15
|
-
// `tests/runtime/bash-match-head-token-drift.test.ts`) a set that is
|
|
16
|
-
// NOT registered is itself a finding.
|
|
17
|
-
//
|
|
18
|
-
// TWO INTENTS (minimum required — see the two historical incidents this
|
|
19
|
-
// registry exists to close):
|
|
20
|
-
// - "covers-gated-head-tokens": the set exists so the engine recognises
|
|
21
|
-
// these head tokens (`NON_GIT_HEAD_TOKENS`'s shape). Checked for
|
|
22
|
-
// COMPLETENESS: every head token the manifest actually gates (barring
|
|
23
|
-
// a consciously `documented-uncovered` token) must be covered by AT
|
|
24
|
-
// LEAST ONE registered set with this intent — the run `432db3d3` HIGH
|
|
25
|
-
// (a covers-set spanning only 4 of 8 gated tokens) as a standing
|
|
26
|
-
// regression class.
|
|
27
|
-
// - "must-not-contain-gated-head-token": the set exists for some OTHER
|
|
28
|
-
// purpose entirely and must NEVER contain a token the manifest itself
|
|
29
|
-
// gates — the run `dbc6d303` CRITICAL's shape (an "inert consumer"
|
|
30
|
-
// allowlist that accidentally absorbed the kill-switch's own gated
|
|
31
|
-
// head token). Checked by testing every LIVE gated head token against
|
|
32
|
-
// every such registered set's coverage.
|
|
33
|
-
//
|
|
34
|
-
// REDESIGN (task `209e6dc4`) — WHY: the ORIGINAL registration surface (fix
|
|
35
|
-
// rounds 1 and 2 of task `074acf5d`, both superseded by this redesign) let a
|
|
36
|
-
// registration hand the guard a freely-chosen `has: (token) => boolean`
|
|
37
|
-
// closure plus an independently hand-typed `members: readonly string[]`
|
|
38
|
-
// array — TWO self-descriptions of the SAME underlying constant, asserted
|
|
39
|
-
// by the registrant, never derived from it. Three adversarial review
|
|
40
|
-
// passes attacked that gap; two fix rounds narrowed the escape family by
|
|
41
|
-
// adding checks c/d/e over the self-descriptions (covers-purity,
|
|
42
|
-
// covers-redundancy, covers-predicate-purity) without closing it — every
|
|
43
|
-
// added check produced the next bypass. Review round 3 measured the
|
|
44
|
-
// residual: a `covers-gated-head-tokens` registration declaring
|
|
45
|
-
// `members: ["tee"]` (or any subset of the four `documented-uncovered`
|
|
46
|
-
// tokens `env`/`unset`/`tee`/`cp`) passed every one of the five checks with
|
|
47
|
-
// an entirely honest, live-coupled `has()` and `members` — because nothing
|
|
48
|
-
// in the old design distinguished "genuinely not gated" from "gated but
|
|
49
|
-
// consciously uncovered", and `members` could say anything a NEW closure
|
|
50
|
-
// also happened to agree with.
|
|
51
|
-
//
|
|
52
|
-
// HALT CRITERION (recorded before this redesign's first line, task
|
|
53
|
-
// `209e6dc4` brief, quoted verbatim): "Findet ein spaeterer Review eine
|
|
54
|
-
// weitere Registrierung, die akzeptiert wird und nicht sollte, wird NICHT
|
|
55
|
-
// nachgebessert (keine fuenfte/sechste Pruefung), sondern die Oberflaeche
|
|
56
|
-
// erneut vorgelegt. Drei Passes haben gezeigt: jede zusaetzliche Pruefung
|
|
57
|
-
// produziert die naechste Umgehung. Der Umbau muss die Formen STRUKTURELL
|
|
58
|
-
// unausdrueckbar machen, nicht einzeln fangen." This redesign follows that
|
|
59
|
-
// instruction literally: it does not add a sixth check on top of the old
|
|
60
|
-
// five. It removes the SURFACE the old checks were inspecting.
|
|
61
|
-
//
|
|
62
|
-
// THE STRUCTURAL FIX: `has()` as a freely-chosen closure, and `members` as
|
|
63
|
-
// an independently hand-typed array, are BOTH GONE. A registration now
|
|
64
|
-
// supplies a single `source: HeadTokenSource` — a discriminated union that
|
|
65
|
-
// holds the ACTUAL constant (`{ kind: "set"; set: NON_GIT_HEAD_TOKENS }` or
|
|
66
|
-
// `{ kind: "regex"; re: GIT_TOKEN_RE }`), imported and passed by reference,
|
|
67
|
-
// not re-described. `sourceHas` (below) derives membership testing FROM
|
|
68
|
-
// `source` — there is no code path left where a registration's declared
|
|
69
|
-
// coverage and its actual behaviour can diverge, because there is only one
|
|
70
|
-
// value now, not two. See the six-point closure list below for exactly
|
|
71
|
-
// which of the three passes' findings this makes unexpressible vs. which
|
|
72
|
-
// residual boundary (documented, not hidden) remains.
|
|
73
|
-
//
|
|
74
|
-
// SIX FORMS MEASURED OPEN BEFORE THIS REDESIGN (task `209e6dc4` brief,
|
|
75
|
-
// reconstructed from review round 3 since the run's own `.ai/runs/` docs
|
|
76
|
-
// are gitignored and not present in this checkout) AND THEIR DISPOSITION:
|
|
77
|
-
//
|
|
78
|
-
// 1. Documented-uncovered laundering WITHOUT dishonesty: a covers
|
|
79
|
-
// registration whose declared members are all `documented-uncovered`
|
|
80
|
-
// gated tokens (env/unset/tee/cp) passed all five checks with an
|
|
81
|
-
// honest, live-coupled has()/members (the dbc6d303-CRITICAL shape,
|
|
82
|
-
// concretely reproduced with `members: ["tee"]`).
|
|
83
|
-
// CLOSED, structurally + a live probe: `checkRegisteredSets`'s (now
|
|
84
|
-
// merged) covers-purity check probes the registration's actual
|
|
85
|
-
// `source` — not a hand-typed members list, there isn't one any
|
|
86
|
-
// more — against every live gated head token AND treats a
|
|
87
|
-
// `documented-uncovered` token as ILLEGITIMATE to claim, exactly like
|
|
88
|
-
// a token that is not gated at all. A registration cannot "declare"
|
|
89
|
-
// its way around this: the probe reads the real Set/RegExp.
|
|
90
|
-
// Pinned by the `["tee"]`-shaped regression test in
|
|
91
|
-
// `tests/runtime/bash-match-registry.test.ts` (the exact form review
|
|
92
|
-
// round 3 measured).
|
|
93
|
-
// 2. `has()` as an arbitrary closure with no coupling to the constant
|
|
94
|
-
// `id`/`module` name (stale hand-copied predicate; `has: () => false`;
|
|
95
|
-
// no predicate check at all on the must-not-contain arm).
|
|
96
|
-
// STRUCTURALLY UNEXPRESSIBLE: there is no `has()` field any more.
|
|
97
|
-
// `source` holds the constant directly; `sourceHas` is the ONLY way
|
|
98
|
-
// membership is ever tested, for both intents.
|
|
99
|
-
// 3. `members` claiming coverage `has()` rejects (each walked in only one
|
|
100
|
-
// direction), and `members: []`, which type-checked and passed.
|
|
101
|
-
// STRUCTURALLY UNEXPRESSIBLE (the divergence half): there is no
|
|
102
|
-
// `members` field to disagree with `source` — a registration has
|
|
103
|
-
// exactly one thing to say about its coverage. CHECKED, not merely
|
|
104
|
-
// unexpressible (the empty half): an empty/vacuous `source` (e.g.
|
|
105
|
-
// `new Set([])`, or a regex matching none of the live vocabulary) is
|
|
106
|
-
// still a value a registrant CAN write — `checkRegisteredSets`'s new
|
|
107
|
-
// covers-empty check flags a covers registration whose `source`
|
|
108
|
-
// matches none of the legitimately-coverable live gated head tokens.
|
|
109
|
-
// 4. Check (d) COVERS-REDUNDANCY (fix round 2) forbade ALL double
|
|
110
|
-
// coverage, so it would also convict a legitimate future case (two
|
|
111
|
-
// registered sets consciously, by design, both keying the same head
|
|
112
|
-
// token) as if it were laundering.
|
|
113
|
-
// RESOLVED: `CoversHeadTokenSet.intentionalOverlaps` is an explicit,
|
|
114
|
-
// conscious per-token declaration. Covers-redundancy now only clears
|
|
115
|
-
// a multiply-covered token when EVERY registered set currently
|
|
116
|
-
// covering it lists that token in ITS OWN `intentionalOverlaps` — a
|
|
117
|
-
// set that silently overlaps (the round-2 laundering shape: a new
|
|
118
|
-
// set quietly re-covering a token an existing set already owns)
|
|
119
|
-
// still trips the check, because it has declared nothing. Legitimate
|
|
120
|
-
// double coverage requires touching BOTH registrations, not one.
|
|
121
|
-
// 5. `PLAUSIBLE_NON_GATED_HEAD_TOKENS` (the probe vocabulary check (e)
|
|
122
|
-
// used) was itself an uncoupled hand-written constant — 5 of its 8
|
|
123
|
-
// entries were exercised by no test at the time, and a token outside
|
|
124
|
-
// BOTH vocabularies (e.g. `yarn`/`pnpm`) went unprobed.
|
|
125
|
-
// PARTIALLY CLOSED (acceptance's declared "OR" branch — the vocabulary
|
|
126
|
-
// cannot be DERIVED from the manifest, which only enumerates what IS
|
|
127
|
-
// gated, never the negative space of what is not): every entry is now
|
|
128
|
-
// individually pinned by a live regression test in
|
|
129
|
-
// `tests/runtime/bash-match-head-token-drift.test.ts` asserting it is
|
|
130
|
-
// NOT a live gated head token — a future policy gating one of these
|
|
131
|
-
// words turns that test red, forcing a conscious update instead of a
|
|
132
|
-
// silent drift. The residual boundary (a probe token entirely outside
|
|
133
|
-
// both vocabularies stays unprobed) is named here AND at the constant.
|
|
134
|
-
// 6. A registration could name a `module`/`id` to which no exported
|
|
135
|
-
// constant actually corresponds.
|
|
136
|
-
// STRUCTURALLY UNEXPRESSIBLE, by the TypeScript compiler: `id` and
|
|
137
|
-
// `module` are now purely descriptive strings (used only in failure
|
|
138
|
-
// messages) — the CHECKED value is `source.set` / `source.re`, a
|
|
139
|
-
// direct reference to the real imported binding. Writing
|
|
140
|
-
// `source: { kind: "set", set: SOME_NAME_THAT_DOES_NOT_EXIST }`
|
|
141
|
-
// is `TS2304: Cannot find name` — a compile error, before any test
|
|
142
|
-
// runs. Manually verified (task `209e6dc4`): temporarily editing a
|
|
143
|
-
// real registration's `source.set` reference to an undeclared
|
|
144
|
-
// identifier fails `npm run typecheck` immediately; reverted right
|
|
145
|
-
// after. `id`/`module` can still be a MISLEADING label for a real,
|
|
146
|
-
// existing `source` (e.g. call `NON_GIT_HEAD_TOKENS`'s registration
|
|
147
|
-
// `id: "TOTALLY_WRONG_NAME"` while `source.set` still correctly
|
|
148
|
-
// references it) — that is a cosmetic residual, not a behavioural
|
|
149
|
-
// one: every check still evaluates the REAL constant regardless of
|
|
150
|
-
// the label.
|
|
151
|
-
//
|
|
152
|
-
// WHAT IS STILL A RESIDUAL, NAMED HONESTLY, NOT HIDDEN:
|
|
153
|
-
// - The probe vocabulary (point 5) is finite; a token outside both
|
|
154
|
-
// `facts.gatedHeadTokens` and `PLAUSIBLE_NON_GATED_HEAD_TOKENS` is not
|
|
155
|
-
// probed by covers-purity. This is inherent to any predicate-based
|
|
156
|
-
// check over an unbounded domain (a `RegExp`'s match set is not
|
|
157
|
-
// enumerable) and is not something the source-based redesign changes;
|
|
158
|
-
// it narrows the practical exposure (both arms are now checked with
|
|
159
|
-
// the SAME probe set, no separate unguarded closure) without claiming
|
|
160
|
-
// to enumerate "every string that is not gated".
|
|
161
|
-
// - `id`/`module` remain free-text labels, decoupled from `source`'s
|
|
162
|
-
// actual identity (point 6's cosmetic half, above).
|
|
163
|
-
// - `intentionalOverlaps` is itself a hand-declared field. A registrant
|
|
164
|
-
// COULD mark an overlap "intentional" when it is not. The bar this
|
|
165
|
-
// redesign sets is that doing so requires editing BOTH covering
|
|
166
|
-
// registrations (a two-registration diff, visible in review), not
|
|
167
|
-
// silently adding one new registration next to an untouched existing
|
|
168
|
-
// one — a materially higher bar than the round-2 escape, not a
|
|
169
|
-
// mathematical impossibility.
|
|
170
|
-
// - The must-not-contain arm has no purity check of its own (never did):
|
|
171
|
-
// its whole point is that its content is unrelated to gated head
|
|
172
|
-
// tokens, so there is nothing to compare its coverage against.
|
|
173
|
-
//
|
|
174
|
-
// AXIS SCOPE (carried forward, unchanged by this redesign): this registry
|
|
175
|
-
// models the HEAD-TOKEN axis only — which literal head token a
|
|
176
|
-
// `bash_match` anchors on. A shipped policy's `bash_match` can equally
|
|
177
|
-
// anchor on a VERB with no head-token significance of its own (`pause` in
|
|
178
|
-
// `deny-kill-switch-bypass`), checked today only by `HARNESS_READ_ONLY_SUBS`
|
|
179
|
-
// in `read-only-bash.ts`, a set this registry does not see and does not
|
|
180
|
-
// check. The VERB axis is explicitly OUT OF SCOPE here, unchanged from the
|
|
181
|
-
// prior design: the exact same defect shape (an engine-side allowlist
|
|
182
|
-
// silently absorbing a gated token) is unmodellable here today, one axis
|
|
183
|
-
// over. Do not assume verb coverage exists because head-token coverage
|
|
184
|
-
// does.
|
|
185
|
-
//
|
|
186
|
-
// WHY src/runtime/, NOT tests/: see `bash-match-facts.ts`'s module header —
|
|
187
|
-
// the same reasoning applies here.
|
|
188
|
-
//
|
|
189
|
-
// TODAY'S REAL REGISTRATIONS are both "covers" sets — `GIT_TOKEN_RE` and
|
|
190
|
-
// `NON_GIT_HEAD_TOKENS`, both from `command-normalize.ts`, the two sets
|
|
191
|
-
// the pre-migration guard already knew about, each now registered by
|
|
192
|
-
// handing this module the ACTUAL constant (`source: { kind: "regex", re:
|
|
193
|
-
// GIT_TOKEN_RE }` / `source: { kind: "set", set: NON_GIT_HEAD_TOKENS }`),
|
|
194
|
-
// not a re-description of it. No real "must-not-contain-gated-head-token"
|
|
195
|
-
// consumer exists in this tree today (run `dbc6d303`'s own module is
|
|
196
|
-
// explicit non-goal / future work) — the intent is fully implemented and
|
|
197
|
-
// covered by the fixture regression tests in
|
|
198
|
-
// `tests/runtime/bash-match-registry.test.ts` (reproducing the CRITICAL's
|
|
199
|
-
// exact shape) and by a live mutation probe against this file's own
|
|
200
|
-
// `REGISTERED_HEAD_TOKEN_SETS` array, not against a second production
|
|
201
|
-
// consumer: temporarily registering a fixture
|
|
202
|
-
// (`intent: "must-not-contain-gated-head-token"`,
|
|
203
|
-
// `source: { kind: "set", set: new Set(["harness"]) }`) reddens exactly
|
|
204
|
-
// "every registered engine-side set is clean against the live facts ..."
|
|
205
|
-
// and the defaults test in
|
|
206
|
-
// `tests/runtime/bash-match-head-token-drift.test.ts`, with the violation
|
|
207
|
-
// naming the fixture's own `setId` and the offending token — the probe was
|
|
208
|
-
// reverted immediately after.
|
|
209
|
-
import { GIT_TOKEN_RE, NON_GIT_HEAD_TOKENS } from "./command-normalize.js";
|
|
210
|
-
import { DOCUMENTED_UNCOVERED_HEAD_TOKENS, isHeadTokenGated } from "./bash-match-facts.js";
|
|
211
|
-
/** Membership test derived FROM `source` — never independently supplied. */
|
|
212
|
-
export function sourceHas(source, token) {
|
|
213
|
-
return source.kind === "set" ? source.set.has(token) : source.re.test(token);
|
|
214
|
-
}
|
|
215
|
-
export const REGISTERED_HEAD_TOKEN_SETS = [
|
|
216
|
-
{
|
|
217
|
-
id: "GIT_TOKEN_RE",
|
|
218
|
-
module: "src/runtime/command-normalize.ts",
|
|
219
|
-
intent: "covers-gated-head-tokens",
|
|
220
|
-
source: { kind: "regex", re: GIT_TOKEN_RE },
|
|
221
|
-
description: "canonicalizeSegment's git-basename recognizer (matches `git`, and any `\\S*/git` path-qualified spelling, by basename)",
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
id: "NON_GIT_HEAD_TOKENS",
|
|
225
|
-
module: "src/runtime/command-normalize.ts",
|
|
226
|
-
intent: "covers-gated-head-tokens",
|
|
227
|
-
source: { kind: "set", set: NON_GIT_HEAD_TOKENS },
|
|
228
|
-
description: "canonicalizeSegment's closed non-git head-token set (today: gh, npm, harness)",
|
|
229
|
-
},
|
|
230
|
-
];
|
|
231
|
-
/**
|
|
232
|
-
* Fixed, deliberately small, PER-ENTRY-PINNED vocabulary of plausible
|
|
233
|
-
* NON-gated head tokens (originally fix round 2 S4/D-004; each entry
|
|
234
|
-
* individually pinned by a live regression test in
|
|
235
|
-
* `tests/runtime/bash-match-head-token-drift.test.ts` as of task
|
|
236
|
-
* `209e6dc4` — see the module header's point 5): commands a reasonable
|
|
237
|
-
* engine-side set might plausibly mirror or accidentally absorb, but that
|
|
238
|
-
* no shipped `bash_match` policy gates today. Combined with the live
|
|
239
|
-
* `facts.gatedHeadTokens` (every token that IS gated, verified fresh — see
|
|
240
|
-
* `bash-match-facts.ts`) this gives covers-purity a concrete probe domain
|
|
241
|
-
* to test every registered "covers" source against, instead of trusting a
|
|
242
|
-
* registration to honestly describe what it covers.
|
|
243
|
-
*
|
|
244
|
-
* RESIDUAL, named not hidden: this list cannot be exhaustively DERIVED from
|
|
245
|
-
* the manifest — the manifest enumerates what IS gated, never the infinite
|
|
246
|
-
* negative space of what is not. A token entirely outside both this list
|
|
247
|
-
* and `facts.gatedHeadTokens` (e.g. `yarn`, `pnpm`) is not probed by
|
|
248
|
-
* covers-purity. Widening this list narrows that residual; it cannot close
|
|
249
|
-
* it completely for a `RegExp`-backed source, whose true match set is not
|
|
250
|
-
* enumerable at all.
|
|
251
|
-
*/
|
|
252
|
-
export const PLAUSIBLE_NON_GATED_HEAD_TOKENS = [
|
|
253
|
-
"docker",
|
|
254
|
-
"kubectl",
|
|
255
|
-
"ls",
|
|
256
|
-
"cat",
|
|
257
|
-
"node",
|
|
258
|
-
"python",
|
|
259
|
-
"make",
|
|
260
|
-
"ssh",
|
|
261
|
-
];
|
|
262
|
-
/**
|
|
263
|
-
* Check every registered set against the live facts. Returns an EMPTY
|
|
264
|
-
* array when clean. `registrations` and `documentedUncovered` default to
|
|
265
|
-
* the real, shipped values but accept fixtures — see
|
|
266
|
-
* `tests/runtime/bash-match-registry.test.ts`'s regression tests for the
|
|
267
|
-
* historical incidents, which pass deliberately-broken fixtures to prove
|
|
268
|
-
* this function catches their exact shape.
|
|
269
|
-
*/
|
|
270
|
-
export function checkRegisteredSets(facts, registrations = REGISTERED_HEAD_TOKEN_SETS, documentedUncovered = DOCUMENTED_UNCOVERED_HEAD_TOKENS) {
|
|
271
|
-
const violations = [];
|
|
272
|
-
// (a) must-not-contain: no registered set with this intent may answer
|
|
273
|
-
// `true` (via `sourceHas`, the ONLY membership test that exists now) for
|
|
274
|
-
// ANY live gated head token — the dbc6d303 CRITICAL shape.
|
|
275
|
-
for (const reg of registrations) {
|
|
276
|
-
if (reg.intent !== "must-not-contain-gated-head-token")
|
|
277
|
-
continue;
|
|
278
|
-
for (const token of facts.gatedHeadTokens) {
|
|
279
|
-
if (sourceHas(reg.source, token)) {
|
|
280
|
-
violations.push({
|
|
281
|
-
setId: reg.id,
|
|
282
|
-
intent: reg.intent,
|
|
283
|
-
token,
|
|
284
|
-
check: "must-not-contain",
|
|
285
|
-
reason: `"${reg.id}" (${reg.module} — ${reg.description}) declares intent "must-not-contain-gated-head-token" but its source contains "${token}", which IS gated by a shipped bash_match policy`,
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
// Is `token` something a "covers" registration is LEGITIMATELY allowed to
|
|
291
|
-
// claim: gated, AND not consciously carved out as documented-uncovered?
|
|
292
|
-
// Point 1 of the module header's six forms lived exactly in the gap this
|
|
293
|
-
// predicate closes — the old design treated "gated" as the only bar to
|
|
294
|
-
// clear, so a covers set claiming ONLY documented-uncovered tokens
|
|
295
|
-
// passed cleanly.
|
|
296
|
-
const isLegitimatelyCoverable = (token) => isHeadTokenGated(facts, token) && !documentedUncovered.has(token);
|
|
297
|
-
// (b) covers-completeness: every gated head token NOT consciously
|
|
298
|
-
// documented as uncovered must be answered `true` by at least one
|
|
299
|
-
// registered "covers" set's `source` — the 432db3d3 HIGH shape.
|
|
300
|
-
for (const token of facts.gatedHeadTokens) {
|
|
301
|
-
if (documentedUncovered.has(token))
|
|
302
|
-
continue;
|
|
303
|
-
const covered = registrations.some((reg) => reg.intent === "covers-gated-head-tokens" && sourceHas(reg.source, token));
|
|
304
|
-
if (!covered) {
|
|
305
|
-
const cls = facts.classify(token);
|
|
306
|
-
violations.push({
|
|
307
|
-
setId: "(none)",
|
|
308
|
-
intent: "covers-gated-head-tokens",
|
|
309
|
-
token,
|
|
310
|
-
check: "covers-completeness",
|
|
311
|
-
reason: `gated head token "${token}" (class: ${cls ?? "unknown"}) is not covered by ANY registered "covers-gated-head-tokens" set, and is not in the documented-uncovered list either`,
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
// (c) covers-empty (task `209e6dc4`, module header point 3, empty half):
|
|
316
|
-
// a covers registration whose `source` matches NONE of the legitimately
|
|
317
|
-
// coverable live gated head tokens contributes zero real coverage — the
|
|
318
|
-
// structural echo of the old `members: []` escape, which type-checked
|
|
319
|
-
// and passed silently because nothing walked an empty declaration back
|
|
320
|
-
// to a finding. There is no `members` field to leave empty any more, but
|
|
321
|
-
// an empty backing `Set`, or a regex that matches nothing in the known
|
|
322
|
-
// vocabulary, is still a value a registrant can write; this check makes
|
|
323
|
-
// that visible instead of silently accepted.
|
|
324
|
-
for (const reg of registrations) {
|
|
325
|
-
if (reg.intent !== "covers-gated-head-tokens")
|
|
326
|
-
continue;
|
|
327
|
-
const coversSomething = [...facts.gatedHeadTokens]
|
|
328
|
-
.filter(isLegitimatelyCoverable)
|
|
329
|
-
.some((token) => sourceHas(reg.source, token));
|
|
330
|
-
if (!coversSomething) {
|
|
331
|
-
violations.push({
|
|
332
|
-
setId: reg.id,
|
|
333
|
-
intent: reg.intent,
|
|
334
|
-
token: "(none)",
|
|
335
|
-
check: "covers-empty",
|
|
336
|
-
reason: `"${reg.id}" (${reg.module} — ${reg.description}) declares intent "covers-gated-head-tokens" but its source matches NONE of the live, legitimately-coverable gated head tokens — an empty or vacuous registration`,
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// (d) covers-purity (task `209e6dc4` redesign, merging the old checks
|
|
341
|
-
// (c) covers-purity, (e) covers-predicate-purity, and closing the
|
|
342
|
-
// previously-unchecked documented-uncovered laundering gap — module
|
|
343
|
-
// header points 1 and 3): probe the registration's ACTUAL `source`
|
|
344
|
-
// directly — never a hand-typed `members` list, there isn't one any
|
|
345
|
-
// more — against every live gated head token PLUS
|
|
346
|
-
// `PLAUSIBLE_NON_GATED_HEAD_TOKENS`. A covers registration must answer
|
|
347
|
-
// `true` ONLY for tokens that are BOTH gated AND not consciously
|
|
348
|
-
// documented-uncovered (i.e. `isLegitimatelyCoverable`). Because coverage
|
|
349
|
-
// is read straight off `source` instead of a separate declared list,
|
|
350
|
-
// "declaring coverage the predicate rejects" and "claiming a
|
|
351
|
-
// documented-uncovered token honestly" collapse into the same probe:
|
|
352
|
-
// there is nothing left to declare independently of what the constant
|
|
353
|
-
// actually does.
|
|
354
|
-
const probeVocabulary = new Set([
|
|
355
|
-
...facts.gatedHeadTokens,
|
|
356
|
-
...PLAUSIBLE_NON_GATED_HEAD_TOKENS,
|
|
357
|
-
]);
|
|
358
|
-
for (const reg of registrations) {
|
|
359
|
-
if (reg.intent !== "covers-gated-head-tokens")
|
|
360
|
-
continue;
|
|
361
|
-
for (const token of probeVocabulary) {
|
|
362
|
-
if (sourceHas(reg.source, token) && !isLegitimatelyCoverable(token)) {
|
|
363
|
-
const reason = documentedUncovered.has(token)
|
|
364
|
-
? `"${reg.id}" (${reg.module} — ${reg.description}) declares intent "covers-gated-head-tokens" and its source answers true for "${token}", but "${token}" IS gated while also being consciously documented-uncovered — a covers set may not claim coverage of a token this codebase has deliberately marked as NOT covered by any engine-side set (the dbc6d303-shape laundering this check exists to close)`
|
|
365
|
-
: `"${reg.id}" (${reg.module} — ${reg.description}) declares intent "covers-gated-head-tokens" and its source answers true for "${token}", but "${token}" is not a live gated head token at all — the source accepts more than it should, reproducing this registry's own defect class (an engine-side constant mirroring manifest content with no coupling) inside the guard itself`;
|
|
366
|
-
violations.push({
|
|
367
|
-
setId: reg.id,
|
|
368
|
-
intent: reg.intent,
|
|
369
|
-
token,
|
|
370
|
-
check: "covers-purity",
|
|
371
|
-
reason,
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
// (e) covers-redundancy: a gated head token answered `true` by MORE THAN
|
|
377
|
-
// ONE registered "covers-gated-head-tokens" set's `source` is a
|
|
378
|
-
// violation UNLESS every one of those covering sets consciously declares
|
|
379
|
-
// that token in its own `intentionalOverlaps` (task `209e6dc4`,
|
|
380
|
-
// resolving module header point 4: a silent new registration re-covering
|
|
381
|
-
// a token an existing set already owns still trips this — only a
|
|
382
|
-
// declaration on BOTH sides clears it).
|
|
383
|
-
const isCoversSet = (reg) => reg.intent === "covers-gated-head-tokens";
|
|
384
|
-
for (const token of facts.gatedHeadTokens) {
|
|
385
|
-
const coveringSets = registrations
|
|
386
|
-
.filter(isCoversSet)
|
|
387
|
-
.filter((reg) => sourceHas(reg.source, token));
|
|
388
|
-
if (coveringSets.length <= 1)
|
|
389
|
-
continue;
|
|
390
|
-
const allAcknowledged = coveringSets.every((reg) => reg.intentionalOverlaps?.has(token));
|
|
391
|
-
if (allAcknowledged)
|
|
392
|
-
continue;
|
|
393
|
-
for (const reg of coveringSets) {
|
|
394
|
-
const others = coveringSets.filter((r) => r.id !== reg.id).map((r) => r.id);
|
|
395
|
-
violations.push({
|
|
396
|
-
setId: reg.id,
|
|
397
|
-
intent: reg.intent,
|
|
398
|
-
token,
|
|
399
|
-
check: "covers-redundancy",
|
|
400
|
-
reason: `"${reg.id}" (${reg.module} — ${reg.description}) declares intent "covers-gated-head-tokens" and answers true for "${token}", but "${token}" is ALSO covered by ${others.length} other registered covers-set(s) (${others.join(", ")}) without every covering set declaring "${token}" in its own intentionalOverlaps — a gated head token must be covered by exactly one registered covers-set unless ALL covering sets consciously declare the overlap`,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
return violations;
|
|
405
|
-
}
|
|
406
|
-
//# sourceMappingURL=bash-match-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bash-match-registry.js","sourceRoot":"","sources":["../../src/runtime/bash-match-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/** Parsed leading-prefix result. */
|
|
2
|
-
export interface BashPrefix {
|
|
3
|
-
/** `VAR -> value` pairs from leading inline-env assignments. Empty when none. */
|
|
4
|
-
inlineEnv: Record<string, string>;
|
|
5
|
-
/** Path argument of a leading `cd <path> &&|;`, or null when none. */
|
|
6
|
-
cdTarget: string | null;
|
|
7
|
-
/**
|
|
8
|
-
* Branch argument of a leading `git [-C <path>] (switch|checkout)
|
|
9
|
-
* <branch> &&|;`, or null when none, including when the branch
|
|
10
|
-
* argument is a `-`-prefixed flag/file-restore form or an
|
|
11
|
-
* unresolvable `$VAR` (see module doc, form 3). Task 341e024b.
|
|
12
|
-
*/
|
|
13
|
-
branchTarget: string | null;
|
|
14
|
-
/**
|
|
15
|
-
* Index into the original `command` string right after the last
|
|
16
|
-
* consumed prefix clause: `command.slice(remainderStart)` is what is
|
|
17
|
-
* left once every recognized leading `VAR=value` / `cd <path> &&` /
|
|
18
|
-
* `git switch <branch> &&` clause has been stripped. `0` when nothing
|
|
19
|
-
* matched. Added (task a7eb1a71) so a caller needing to test the
|
|
20
|
-
* REMAINING command's own head, such as
|
|
21
|
-
* `kubectl-target-parse.ts`'s narrow kubectl-head anchor, can do so
|
|
22
|
-
* without re-implementing this module's prefix grammar.
|
|
23
|
-
*/
|
|
24
|
-
remainderStart: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Parse leading inline-env and `cd <path>` idioms from a Bash command
|
|
28
|
-
* string. Returns an empty `inlineEnv` and `cdTarget:null` when neither
|
|
29
|
-
* idiom matches. Never throws.
|
|
30
|
-
*/
|
|
31
|
-
export declare function parseBashPrefix(command: string): BashPrefix;
|