@lannguyensi/harness 0.63.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/README.md +46 -42
- package/dist/cli/add/index.js +17 -21
- package/dist/cli/add/index.js.map +1 -1
- package/dist/cli/adopt/derive.d.ts +2 -2
- package/dist/cli/adopt/derive.js +2 -19
- package/dist/cli/adopt/derive.js.map +1 -1
- package/dist/cli/adopt/index.d.ts +1 -1
- package/dist/cli/adopt/index.js +1 -12
- package/dist/cli/adopt/index.js.map +1 -1
- package/dist/cli/apply/apply.d.ts +20 -35
- package/dist/cli/apply/apply.js +61 -136
- package/dist/cli/apply/apply.js.map +1 -1
- package/dist/cli/apply/generate-codex-config.js +10 -58
- package/dist/cli/apply/generate-codex-config.js.map +1 -1
- package/dist/cli/apply/generate-memory-index.js +1 -2
- package/dist/cli/apply/generate-memory-index.js.map +1 -1
- package/dist/cli/apply/generate-opencode-config.d.ts +2 -10
- package/dist/cli/apply/generate-opencode-config.js +74 -113
- package/dist/cli/apply/generate-opencode-config.js.map +1 -1
- package/dist/cli/apply/generate-settings.d.ts +11 -64
- package/dist/cli/apply/generate-settings.js +27 -132
- package/dist/cli/apply/generate-settings.js.map +1 -1
- package/dist/cli/apply/index.d.ts +1 -1
- package/dist/cli/apply/index.js +1 -1
- package/dist/cli/apply/index.js.map +1 -1
- package/dist/cli/apply/install-codex-config.d.ts +153 -1
- package/dist/cli/apply/install-codex-config.js +445 -70
- package/dist/cli/apply/install-codex-config.js.map +1 -1
- package/dist/cli/apply/next-steps.d.ts +7 -0
- package/dist/cli/apply/next-steps.js +13 -1
- package/dist/cli/apply/next-steps.js.map +1 -1
- package/dist/cli/bounded-stdin.d.ts +0 -23
- package/dist/cli/bounded-stdin.js +2 -49
- package/dist/cli/bounded-stdin.js.map +1 -1
- package/dist/cli/describe.d.ts +1 -1
- package/dist/cli/describe.js +0 -3
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/diff/engine.d.ts +0 -11
- package/dist/cli/diff/engine.js +1 -17
- package/dist/cli/diff/engine.js.map +1 -1
- package/dist/cli/diff/index.js +14 -25
- package/dist/cli/diff/index.js.map +1 -1
- package/dist/cli/doctor/claude-mcp.d.ts +4 -19
- package/dist/cli/doctor/claude-mcp.js +11 -22
- package/dist/cli/doctor/claude-mcp.js.map +1 -1
- package/dist/cli/doctor/codex.d.ts +12 -14
- package/dist/cli/doctor/codex.js +31 -144
- package/dist/cli/doctor/codex.js.map +1 -1
- package/dist/cli/doctor/format.js +23 -338
- package/dist/cli/doctor/format.js.map +1 -1
- package/dist/cli/doctor/hook-liveness.d.ts +56 -0
- package/dist/cli/doctor/hook-liveness.js +455 -0
- package/dist/cli/doctor/hook-liveness.js.map +1 -0
- package/dist/cli/doctor/index.d.ts +13 -87
- package/dist/cli/doctor/index.js +57 -705
- package/dist/cli/doctor/index.js.map +1 -1
- package/dist/cli/doctor/opencode.d.ts +2 -1
- package/dist/cli/doctor/opencode.js.map +1 -1
- package/dist/cli/doctor/types.d.ts +21 -378
- package/dist/cli/doctor/types.js.map +1 -1
- package/dist/cli/drain-stdio.d.ts +31 -0
- package/dist/cli/drain-stdio.js +76 -0
- package/dist/cli/drain-stdio.js.map +1 -0
- package/dist/cli/export.d.ts +3 -1
- package/dist/cli/export.js +7 -16
- package/dist/cli/export.js.map +1 -1
- package/dist/cli/gate/codex-disable.d.ts +29 -0
- package/dist/cli/gate/codex-disable.js +195 -0
- package/dist/cli/gate/codex-disable.js.map +1 -0
- package/dist/cli/gate/codex-enable.d.ts +41 -0
- package/dist/cli/gate/codex-enable.js +127 -0
- package/dist/cli/gate/codex-enable.js.map +1 -0
- package/dist/cli/gate/codex-snapshot.d.ts +208 -0
- package/dist/cli/gate/codex-snapshot.js +402 -0
- package/dist/cli/gate/codex-snapshot.js.map +1 -0
- package/dist/cli/gate/disable.d.ts +9 -0
- package/dist/cli/gate/disable.js +263 -28
- package/dist/cli/gate/disable.js.map +1 -1
- package/dist/cli/gate/enable.d.ts +26 -6
- package/dist/cli/gate/enable.js +152 -80
- package/dist/cli/gate/enable.js.map +1 -1
- package/dist/cli/gate/link-chain.d.ts +53 -0
- package/dist/cli/gate/link-chain.js +122 -0
- package/dist/cli/gate/link-chain.js.map +1 -0
- package/dist/cli/gate/snapshot.d.ts +289 -12
- package/dist/cli/gate/snapshot.js +481 -22
- package/dist/cli/gate/snapshot.js.map +1 -1
- package/dist/cli/index.d.ts +0 -9
- package/dist/cli/index.js +15 -2607
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/composer.d.ts +3 -6
- package/dist/cli/init/composer.js +6 -370
- package/dist/cli/init/composer.js.map +1 -1
- package/dist/cli/init/dependencies.d.ts +1 -2
- package/dist/cli/init/dependencies.js +4 -80
- package/dist/cli/init/dependencies.js.map +1 -1
- package/dist/cli/init/detect.js +5 -4
- package/dist/cli/init/detect.js.map +1 -1
- package/dist/cli/init/interactive.d.ts +1 -23
- package/dist/cli/init/interactive.js +33 -247
- package/dist/cli/init/interactive.js.map +1 -1
- package/dist/cli/init/profiles.d.ts +2 -2
- package/dist/cli/init/profiles.js +51 -243
- package/dist/cli/init/profiles.js.map +1 -1
- package/dist/cli/init/templates.d.ts +2 -37
- package/dist/cli/init/templates.js +25 -1237
- package/dist/cli/init/templates.js.map +1 -1
- package/dist/cli/list.d.ts +1 -1
- package/dist/cli/list.js +1 -38
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/loader.d.ts +15 -1
- package/dist/cli/loader.js +56 -39
- package/dist/cli/loader.js.map +1 -1
- package/dist/cli/main.js +7 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/migrate-home/index.js +2 -2
- package/dist/cli/migrate-home/index.js.map +1 -1
- package/dist/cli/pack/add.js +1 -1
- package/dist/cli/pack/add.js.map +1 -1
- package/dist/cli/pack/hook-bootstrap.d.ts +5 -164
- package/dist/cli/pack/hook-bootstrap.js +15 -291
- package/dist/cli/pack/hook-bootstrap.js.map +1 -1
- package/dist/cli/pack/hook-branch-protection.d.ts +28 -21
- package/dist/cli/pack/hook-branch-protection.js +365 -340
- package/dist/cli/pack/hook-branch-protection.js.map +1 -1
- package/dist/cli/pack/index.d.ts +0 -1
- package/dist/cli/pack/index.js +0 -1
- package/dist/cli/pack/index.js.map +1 -1
- package/dist/cli/pack/list.js +1 -6
- package/dist/cli/pack/list.js.map +1 -1
- package/dist/cli/pack/mutate.d.ts +7 -9
- package/dist/cli/pack/mutate.js +6 -9
- package/dist/cli/pack/mutate.js.map +1 -1
- package/dist/cli/pack/reseed.d.ts +2 -2
- package/dist/cli/pack/reseed.js +16 -22
- package/dist/cli/pack/reseed.js.map +1 -1
- package/dist/cli/register-gate-group.d.ts +5 -0
- package/dist/cli/register-gate-group.js +348 -0
- package/dist/cli/register-gate-group.js.map +1 -0
- package/dist/cli/register-inspect-group.d.ts +6 -0
- package/dist/cli/register-inspect-group.js +189 -0
- package/dist/cli/register-inspect-group.js.map +1 -0
- package/dist/cli/register-operator-lifecycle.d.ts +5 -0
- package/dist/cli/register-operator-lifecycle.js +20 -0
- package/dist/cli/register-operator-lifecycle.js.map +1 -0
- package/dist/cli/register-pack-group.d.ts +5 -0
- package/dist/cli/register-pack-group.js +134 -0
- package/dist/cli/register-pack-group.js.map +1 -0
- package/dist/cli/register-setup-group.d.ts +5 -0
- package/dist/cli/register-setup-group.js +495 -0
- package/dist/cli/register-setup-group.js.map +1 -0
- package/dist/cli/remove/index.d.ts +0 -14
- package/dist/cli/remove/index.js +2 -115
- package/dist/cli/remove/index.js.map +1 -1
- package/dist/cli/remove/mutate.d.ts +0 -2
- package/dist/cli/remove/mutate.js +1 -19
- package/dist/cli/remove/mutate.js.map +1 -1
- package/dist/cli/remove/register.d.ts +5 -0
- package/dist/cli/remove/register.js +25 -0
- package/dist/cli/remove/register.js.map +1 -0
- package/dist/cli/shell-quote.d.ts +7 -0
- package/dist/cli/shell-quote.js +17 -0
- package/dist/cli/shell-quote.js.map +1 -0
- package/dist/cli/uninstall/index.d.ts +4 -2
- package/dist/cli/uninstall/index.js +15 -7
- package/dist/cli/uninstall/index.js.map +1 -1
- package/dist/cli/uninstall/register.d.ts +5 -0
- package/dist/cli/uninstall/register.js +171 -0
- package/dist/cli/uninstall/register.js.map +1 -0
- package/dist/cli/uninstall/snapshot.d.ts +15 -0
- package/dist/cli/uninstall/snapshot.js +38 -0
- package/dist/cli/uninstall/snapshot.js.map +1 -1
- package/dist/cli/validate/checks.d.ts +0 -77
- package/dist/cli/validate/checks.js +3 -1049
- package/dist/cli/validate/checks.js.map +1 -1
- package/dist/cli/validate/index.js +19 -15
- package/dist/cli/validate/index.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/io/claude-mcp.d.ts +1 -1
- package/dist/io/claude-mcp.js +27 -14
- package/dist/io/claude-mcp.js.map +1 -1
- package/dist/io/harness-lock.js +2 -2
- package/dist/io/harness-lock.js.map +1 -1
- package/dist/io/lock.d.ts +0 -26
- package/dist/io/lock.js +10 -27
- package/dist/io/lock.js.map +1 -1
- package/dist/io/merge-settings.js +6 -4
- package/dist/io/merge-settings.js.map +1 -1
- package/dist/io/project-name.d.ts +22 -39
- package/dist/io/project-name.js +25 -42
- package/dist/io/project-name.js.map +1 -1
- package/dist/io/read-regular-file.d.ts +103 -40
- package/dist/io/read-regular-file.js +196 -35
- package/dist/io/read-regular-file.js.map +1 -1
- package/dist/io/restart-hints.js +3 -6
- package/dist/io/restart-hints.js.map +1 -1
- package/dist/io/version-compare.d.ts +1 -3
- package/dist/io/version-compare.js +1 -3
- package/dist/io/version-compare.js.map +1 -1
- package/dist/io/write-regular-file.d.ts +30 -0
- package/dist/io/write-regular-file.js +85 -0
- package/dist/io/write-regular-file.js.map +1 -0
- package/dist/overrides/index.d.ts +1 -0
- package/dist/overrides/index.js +1 -0
- package/dist/overrides/index.js.map +1 -1
- package/dist/overrides/merge-layers.d.ts +43 -0
- package/dist/overrides/merge-layers.js +76 -0
- package/dist/overrides/merge-layers.js.map +1 -0
- package/dist/overrides/merge.d.ts +16 -0
- package/dist/overrides/merge.js +21 -8
- package/dist/overrides/merge.js.map +1 -1
- package/dist/policy-packs/builtin/branch-protection-runtime.d.ts +4 -69
- package/dist/policy-packs/builtin/branch-protection-runtime.js +12 -84
- package/dist/policy-packs/builtin/branch-protection-runtime.js.map +1 -1
- package/dist/policy-packs/builtin/branch-protection.d.ts +7 -30
- package/dist/policy-packs/builtin/branch-protection.js +56 -89
- package/dist/policy-packs/builtin/branch-protection.js.map +1 -1
- package/dist/policy-packs/config-check.d.ts +7 -5
- package/dist/policy-packs/config-check.js +2 -2
- package/dist/policy-packs/config-check.js.map +1 -1
- package/dist/policy-packs/expand.d.ts +1 -3
- package/dist/policy-packs/expand.js +5 -42
- package/dist/policy-packs/expand.js.map +1 -1
- package/dist/policy-packs/index.d.ts +3 -3
- package/dist/policy-packs/index.js +2 -2
- package/dist/policy-packs/index.js.map +1 -1
- package/dist/policy-packs/registry.d.ts +9 -38
- package/dist/policy-packs/registry.js +5 -65
- package/dist/policy-packs/registry.js.map +1 -1
- package/dist/policy-packs/runtime.d.ts +0 -4
- package/dist/policy-packs/runtime.js +9 -22
- package/dist/policy-packs/runtime.js.map +1 -1
- package/dist/policy-packs/types.d.ts +0 -19
- package/dist/policy-packs/ux-compare.d.ts +1 -11
- package/dist/policy-packs/ux-compare.js +6 -42
- package/dist/policy-packs/ux-compare.js.map +1 -1
- package/dist/policy-packs/ux-drift-check.d.ts +5 -5
- package/dist/policy-packs/ux-drift-check.js +17 -22
- package/dist/policy-packs/ux-drift-check.js.map +1 -1
- package/dist/policy-packs/version-check.d.ts +5 -26
- package/dist/policy-packs/version-check.js +19 -74
- package/dist/policy-packs/version-check.js.map +1 -1
- package/dist/probes/memory.d.ts +1 -1
- package/dist/probes/memory.js +1 -1
- package/dist/probes/memory.js.map +1 -1
- package/dist/runtime/agent-facing.d.ts +9 -0
- package/dist/runtime/agent-facing.js +28 -14
- package/dist/runtime/agent-facing.js.map +1 -1
- package/dist/runtime/bounded-text.d.ts +15 -0
- package/dist/runtime/bounded-text.js +27 -0
- package/dist/runtime/bounded-text.js.map +1 -0
- package/dist/runtime/git-branch.d.ts +125 -0
- package/dist/runtime/git-branch.js +381 -0
- package/dist/runtime/git-branch.js.map +1 -0
- package/dist/runtime/hermetic-spawn-guard.d.ts +2 -2
- package/dist/runtime/hermetic-spawn-guard.js +24 -34
- package/dist/runtime/hermetic-spawn-guard.js.map +1 -1
- package/dist/runtime/home-dir.js +3 -2
- package/dist/runtime/home-dir.js.map +1 -1
- package/dist/runtime/tool-name-aliases.d.ts +0 -6
- package/dist/runtime/tool-name-aliases.js +5 -18
- package/dist/runtime/tool-name-aliases.js.map +1 -1
- package/dist/schema/grounding.d.ts +7 -54
- package/dist/schema/grounding.js +10 -12
- package/dist/schema/grounding.js.map +1 -1
- package/dist/schema/hooks.d.ts +39 -136
- package/dist/schema/hooks.js +3 -6
- package/dist/schema/hooks.js.map +1 -1
- package/dist/schema/index.d.ts +114 -3828
- package/dist/schema/index.js +41 -80
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/memory.d.ts +54 -131
- package/dist/schema/memory.js +2 -2
- package/dist/schema/memory.js.map +1 -1
- package/dist/schema/policy-packs.d.ts +3 -45
- package/dist/schema/policy-packs.js +7 -13
- package/dist/schema/policy-packs.js.map +1 -1
- package/dist/schema/policy-ux.d.ts +7 -0
- package/dist/schema/policy-ux.js +18 -0
- package/dist/schema/policy-ux.js.map +1 -0
- package/dist/schema/removed-keys.d.ts +185 -0
- package/dist/schema/removed-keys.js +531 -0
- package/dist/schema/removed-keys.js.map +1 -0
- package/dist/schema/tools.d.ts +30 -268
- package/dist/schema/tools.js +4 -4
- package/dist/schema/tools.js.map +1 -1
- package/package.json +5 -16
- package/dist/cli/approve/branch-protection.d.ts +0 -69
- package/dist/cli/approve/branch-protection.js +0 -144
- package/dist/cli/approve/branch-protection.js.map +0 -1
- package/dist/cli/approve/risk.d.ts +0 -112
- package/dist/cli/approve/risk.js +0 -197
- package/dist/cli/approve/risk.js.map +0 -1
- package/dist/cli/approve/stdin-report.d.ts +0 -57
- package/dist/cli/approve/stdin-report.js +0 -145
- package/dist/cli/approve/stdin-report.js.map +0 -1
- package/dist/cli/approve/understanding.d.ts +0 -410
- package/dist/cli/approve/understanding.js +0 -996
- package/dist/cli/approve/understanding.js.map +0 -1
- package/dist/cli/audit.d.ts +0 -80
- package/dist/cli/audit.js +0 -252
- package/dist/cli/audit.js.map +0 -1
- package/dist/cli/delegate/index.d.ts +0 -76
- package/dist/cli/delegate/index.js +0 -443
- package/dist/cli/delegate/index.js.map +0 -1
- package/dist/cli/doctor/auto-approve-mode.d.ts +0 -37
- package/dist/cli/doctor/auto-approve-mode.js +0 -80
- package/dist/cli/doctor/auto-approve-mode.js.map +0 -1
- package/dist/cli/doctor/bypass-without-auto-approve.d.ts +0 -38
- package/dist/cli/doctor/bypass-without-auto-approve.js +0 -95
- package/dist/cli/doctor/bypass-without-auto-approve.js.map +0 -1
- package/dist/cli/doctor/codex-config-drift.d.ts +0 -28
- package/dist/cli/doctor/codex-config-drift.js +0 -240
- package/dist/cli/doctor/codex-config-drift.js.map +0 -1
- package/dist/cli/doctor/rogue-ledger.d.ts +0 -53
- package/dist/cli/doctor/rogue-ledger.js +0 -153
- package/dist/cli/doctor/rogue-ledger.js.map +0 -1
- package/dist/cli/doctor/session-start-preflight-setup-version.d.ts +0 -83
- package/dist/cli/doctor/session-start-preflight-setup-version.js +0 -114
- package/dist/cli/doctor/session-start-preflight-setup-version.js.map +0 -1
- package/dist/cli/doctor/settings-drift.d.ts +0 -25
- package/dist/cli/doctor/settings-drift.js +0 -213
- package/dist/cli/doctor/settings-drift.js.map +0 -1
- package/dist/cli/doctor/toolchain-parity.d.ts +0 -63
- package/dist/cli/doctor/toolchain-parity.js +0 -154
- package/dist/cli/doctor/toolchain-parity.js.map +0 -1
- package/dist/cli/doctor/ug-auto-approvals.d.ts +0 -40
- package/dist/cli/doctor/ug-auto-approvals.js +0 -91
- package/dist/cli/doctor/ug-auto-approvals.js.map +0 -1
- package/dist/cli/doctor/ug-delegations.d.ts +0 -26
- package/dist/cli/doctor/ug-delegations.js +0 -121
- package/dist/cli/doctor/ug-delegations.js.map +0 -1
- package/dist/cli/doctor/ug-inflight.d.ts +0 -35
- package/dist/cli/doctor/ug-inflight.js +0 -57
- package/dist/cli/doctor/ug-inflight.js.map +0 -1
- package/dist/cli/doctor/understanding-mode-env.d.ts +0 -51
- package/dist/cli/doctor/understanding-mode-env.js +0 -98
- package/dist/cli/doctor/understanding-mode-env.js.map +0 -1
- package/dist/cli/dry-run.d.ts +0 -46
- package/dist/cli/dry-run.js +0 -250
- package/dist/cli/dry-run.js.map +0 -1
- package/dist/cli/event-input.d.ts +0 -28
- package/dist/cli/event-input.js +0 -73
- package/dist/cli/event-input.js.map +0 -1
- package/dist/cli/explain-action.d.ts +0 -20
- package/dist/cli/explain-action.js +0 -27
- package/dist/cli/explain-action.js.map +0 -1
- package/dist/cli/explain-policy.d.ts +0 -135
- package/dist/cli/explain-policy.js +0 -266
- package/dist/cli/explain-policy.js.map +0 -1
- package/dist/cli/explain.d.ts +0 -31
- package/dist/cli/explain.js +0 -159
- package/dist/cli/explain.js.map +0 -1
- package/dist/cli/gc/index.d.ts +0 -63
- package/dist/cli/gc/index.js +0 -566
- package/dist/cli/gc/index.js.map +0 -1
- package/dist/cli/pack/approve-escape.d.ts +0 -19
- package/dist/cli/pack/approve-escape.js +0 -190
- package/dist/cli/pack/approve-escape.js.map +0 -1
- package/dist/cli/pack/auto-approve-path.d.ts +0 -146
- package/dist/cli/pack/auto-approve-path.js +0 -462
- package/dist/cli/pack/auto-approve-path.js.map +0 -1
- package/dist/cli/pack/hook-codex-post-tool-use.d.ts +0 -25
- package/dist/cli/pack/hook-codex-post-tool-use.js +0 -160
- package/dist/cli/pack/hook-codex-post-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-codex-pre-tool-use.d.ts +0 -48
- package/dist/cli/pack/hook-codex-pre-tool-use.js +0 -474
- package/dist/cli/pack/hook-codex-pre-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-codex-stop.d.ts +0 -35
- package/dist/cli/pack/hook-codex-stop.js +0 -329
- package/dist/cli/pack/hook-codex-stop.js.map +0 -1
- package/dist/cli/pack/hook-codex-user-prompt-submit.d.ts +0 -24
- package/dist/cli/pack/hook-codex-user-prompt-submit.js +0 -93
- package/dist/cli/pack/hook-codex-user-prompt-submit.js.map +0 -1
- package/dist/cli/pack/hook-post-merge-gate-record.d.ts +0 -37
- package/dist/cli/pack/hook-post-merge-gate-record.js +0 -190
- package/dist/cli/pack/hook-post-merge-gate-record.js.map +0 -1
- package/dist/cli/pack/hook-post-merge-gate.d.ts +0 -34
- package/dist/cli/pack/hook-post-merge-gate.js +0 -277
- package/dist/cli/pack/hook-post-merge-gate.js.map +0 -1
- package/dist/cli/pack/hook-post-tool-use.d.ts +0 -45
- package/dist/cli/pack/hook-post-tool-use.js +0 -137
- package/dist/cli/pack/hook-post-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-pre-tool-use.d.ts +0 -92
- package/dist/cli/pack/hook-pre-tool-use.js +0 -1328
- package/dist/cli/pack/hook-pre-tool-use.js.map +0 -1
- package/dist/cli/pack/hook-runtime-reality.d.ts +0 -63
- package/dist/cli/pack/hook-runtime-reality.js +0 -210
- package/dist/cli/pack/hook-runtime-reality.js.map +0 -1
- package/dist/cli/pack/hook-solution-acceptance-writeguard.d.ts +0 -32
- package/dist/cli/pack/hook-solution-acceptance-writeguard.js +0 -337
- package/dist/cli/pack/hook-solution-acceptance-writeguard.js.map +0 -1
- package/dist/cli/pack/hook-solution-acceptance.d.ts +0 -157
- package/dist/cli/pack/hook-solution-acceptance.js +0 -530
- package/dist/cli/pack/hook-solution-acceptance.js.map +0 -1
- package/dist/cli/pack/hook-stay-in-scope.d.ts +0 -37
- package/dist/cli/pack/hook-stay-in-scope.js +0 -128
- package/dist/cli/pack/hook-stay-in-scope.js.map +0 -1
- package/dist/cli/pack/hook-subagent-start.d.ts +0 -23
- package/dist/cli/pack/hook-subagent-start.js +0 -88
- package/dist/cli/pack/hook-subagent-start.js.map +0 -1
- package/dist/cli/pack/hook-subagent-stop.d.ts +0 -19
- package/dist/cli/pack/hook-subagent-stop.js +0 -41
- package/dist/cli/pack/hook-subagent-stop.js.map +0 -1
- package/dist/cli/pack/hook-track-active-claim.d.ts +0 -27
- package/dist/cli/pack/hook-track-active-claim.js +0 -275
- package/dist/cli/pack/hook-track-active-claim.js.map +0 -1
- package/dist/cli/pack/transcript-report-scan.d.ts +0 -71
- package/dist/cli/pack/transcript-report-scan.js +0 -359
- package/dist/cli/pack/transcript-report-scan.js.map +0 -1
- package/dist/cli/pack/understanding-report-schema-hint.d.ts +0 -26
- package/dist/cli/pack/understanding-report-schema-hint.js +0 -120
- package/dist/cli/pack/understanding-report-schema-hint.js.map +0 -1
- package/dist/cli/pack/upgrade.d.ts +0 -32
- package/dist/cli/pack/upgrade.js +0 -273
- package/dist/cli/pack/upgrade.js.map +0 -1
- package/dist/cli/pause/index.d.ts +0 -113
- package/dist/cli/pause/index.js +0 -251
- package/dist/cli/pause/index.js.map +0 -1
- package/dist/cli/pause-check.d.ts +0 -22
- package/dist/cli/pause-check.js +0 -54
- package/dist/cli/pause-check.js.map +0 -1
- package/dist/cli/policy/intercept.d.ts +0 -233
- package/dist/cli/policy/intercept.js +0 -1020
- package/dist/cli/policy/intercept.js.map +0 -1
- package/dist/cli/policy/risk-envelope-enrichment.d.ts +0 -40
- package/dist/cli/policy/risk-envelope-enrichment.js +0 -108
- package/dist/cli/policy/risk-envelope-enrichment.js.map +0 -1
- package/dist/cli/record/index.d.ts +0 -81
- package/dist/cli/record/index.js +0 -348
- package/dist/cli/record/index.js.map +0 -1
- package/dist/cli/resolve-env.d.ts +0 -32
- package/dist/cli/resolve-env.js +0 -47
- package/dist/cli/resolve-env.js.map +0 -1
- package/dist/cli/session-export/index.d.ts +0 -46
- package/dist/cli/session-export/index.js +0 -169
- package/dist/cli/session-export/index.js.map +0 -1
- package/dist/cli/session-export/redact.d.ts +0 -22
- package/dist/cli/session-export/redact.js +0 -47
- package/dist/cli/session-export/redact.js.map +0 -1
- package/dist/cli/session-export/transcript.d.ts +0 -24
- package/dist/cli/session-export/transcript.js +0 -164
- package/dist/cli/session-export/transcript.js.map +0 -1
- package/dist/cli/session-start/branch-check.d.ts +0 -18
- package/dist/cli/session-start/branch-check.js +0 -140
- package/dist/cli/session-start/branch-check.js.map +0 -1
- package/dist/cli/session-start/index.d.ts +0 -121
- package/dist/cli/session-start/index.js +0 -591
- package/dist/cli/session-start/index.js.map +0 -1
- package/dist/cli/session-start/shared-options.d.ts +0 -103
- package/dist/cli/session-start/shared-options.js +0 -107
- package/dist/cli/session-start/shared-options.js.map +0 -1
- package/dist/cli/session-start/stale-base-check.d.ts +0 -46
- package/dist/cli/session-start/stale-base-check.js +0 -352
- package/dist/cli/session-start/stale-base-check.js.map +0 -1
- package/dist/cli/session-start/toolchain-parity.d.ts +0 -267
- package/dist/cli/session-start/toolchain-parity.js +0 -797
- package/dist/cli/session-start/toolchain-parity.js.map +0 -1
- package/dist/cli/smoke/assertions.d.ts +0 -46
- package/dist/cli/smoke/assertions.js +0 -170
- package/dist/cli/smoke/assertions.js.map +0 -1
- package/dist/cli/smoke/index.d.ts +0 -76
- package/dist/cli/smoke/index.js +0 -245
- package/dist/cli/smoke/index.js.map +0 -1
- package/dist/cli/smoke/runner.d.ts +0 -55
- package/dist/cli/smoke/runner.js +0 -134
- package/dist/cli/smoke/runner.js.map +0 -1
- package/dist/cli/smoke/stream-parser.d.ts +0 -65
- package/dist/cli/smoke/stream-parser.js +0 -115
- package/dist/cli/smoke/stream-parser.js.map +0 -1
- package/dist/cli/test-risk.d.ts +0 -26
- package/dist/cli/test-risk.js +0 -34
- package/dist/cli/test-risk.js.map +0 -1
- package/dist/io/display-path.d.ts +0 -11
- package/dist/io/display-path.js +0 -29
- package/dist/io/display-path.js.map +0 -1
- package/dist/io/duration.d.ts +0 -5
- package/dist/io/duration.js +0 -50
- package/dist/io/duration.js.map +0 -1
- package/dist/io/extract.d.ts +0 -79
- package/dist/io/extract.js +0 -226
- package/dist/io/extract.js.map +0 -1
- package/dist/io/ledger-record.d.ts +0 -83
- package/dist/io/ledger-record.js +0 -301
- package/dist/io/ledger-record.js.map +0 -1
- package/dist/io/read-json-dir-entries.d.ts +0 -36
- package/dist/io/read-json-dir-entries.js +0 -48
- package/dist/io/read-json-dir-entries.js.map +0 -1
- package/dist/io/safe-json-parse.d.ts +0 -5
- package/dist/io/safe-json-parse.js +0 -21
- package/dist/io/safe-json-parse.js.map +0 -1
- package/dist/policies/index.d.ts +0 -5
- package/dist/policies/index.js +0 -6
- package/dist/policies/index.js.map +0 -1
- package/dist/policies/ledger-client.d.ts +0 -113
- package/dist/policies/ledger-client.js +0 -500
- package/dist/policies/ledger-client.js.map +0 -1
- package/dist/policies/producers.d.ts +0 -12
- package/dist/policies/producers.js +0 -61
- package/dist/policies/producers.js.map +0 -1
- package/dist/policies/requires.d.ts +0 -75
- package/dist/policies/requires.js +0 -240
- package/dist/policies/requires.js.map +0 -1
- package/dist/policies/timestamp.d.ts +0 -14
- package/dist/policies/timestamp.js +0 -36
- package/dist/policies/timestamp.js.map +0 -1
- package/dist/policy-packs/builtin/permission-profiles.d.ts +0 -11
- package/dist/policy-packs/builtin/permission-profiles.js +0 -74
- package/dist/policy-packs/builtin/permission-profiles.js.map +0 -1
- package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +0 -286
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js +0 -397
- package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/post-merge-gate.d.ts +0 -56
- package/dist/policy-packs/builtin/post-merge-gate.js +0 -347
- package/dist/policy-packs/builtin/post-merge-gate.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.d.ts +0 -50
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.js +0 -151
- package/dist/policy-packs/builtin/solution-acceptance-reconnect.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance-runtime.d.ts +0 -323
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js +0 -672
- package/dist/policy-packs/builtin/solution-acceptance-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/solution-acceptance.d.ts +0 -45
- package/dist/policy-packs/builtin/solution-acceptance.js +0 -226
- package/dist/policy-packs/builtin/solution-acceptance.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.d.ts +0 -25
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js +0 -94
- package/dist/policy-packs/builtin/understanding-before-execution/active-claim.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.d.ts +0 -35
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js +0 -86
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve-default.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.d.ts +0 -210
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js +0 -361
- package/dist/policy-packs/builtin/understanding-before-execution/auto-approve.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.d.ts +0 -304
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js +0 -734
- package/dist/policy-packs/builtin/understanding-before-execution/delegation-markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +0 -36
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +0 -73
- package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +0 -19
- package/dist/policy-packs/builtin/understanding-before-execution/index.js +0 -83
- package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.d.ts +0 -135
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js +0 -618
- package/dist/policy-packs/builtin/understanding-before-execution/inflight-records.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.d.ts +0 -25
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.js +0 -56
- package/dist/policy-packs/builtin/understanding-before-execution/ledger.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.d.ts +0 -20
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js +0 -93
- package/dist/policy-packs/builtin/understanding-before-execution/lifecycle.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/markers.d.ts +0 -126
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js +0 -245
- package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.d.ts +0 -29
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js +0 -82
- package/dist/policy-packs/builtin/understanding-before-execution/measured-permission-modes.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.d.ts +0 -71
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js +0 -175
- package/dist/policy-packs/builtin/understanding-before-execution/permission-mode-observations.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +0 -620
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +0 -1047
- package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +0 -128
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +0 -213
- package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.d.ts +0 -129
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js +0 -166
- package/dist/policy-packs/builtin/understanding-before-execution/stay-in-scope-config.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +0 -164
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +0 -275
- package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.d.ts +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js +0 -10
- package/dist/policy-packs/builtin/understanding-before-execution-runtime.js.map +0 -1
- package/dist/policy-packs/builtin/understanding-before-execution.d.ts +0 -526
- package/dist/policy-packs/builtin/understanding-before-execution.js +0 -1074
- package/dist/policy-packs/builtin/understanding-before-execution.js.map +0 -1
- package/dist/policy-packs/permission-translator.d.ts +0 -9
- package/dist/policy-packs/permission-translator.js +0 -76
- package/dist/policy-packs/permission-translator.js.map +0 -1
- package/dist/runtime/action-envelope.d.ts +0 -64
- package/dist/runtime/action-envelope.js +0 -46
- package/dist/runtime/action-envelope.js.map +0 -1
- package/dist/runtime/approval-signing.d.ts +0 -111
- package/dist/runtime/approval-signing.js +0 -384
- package/dist/runtime/approval-signing.js.map +0 -1
- package/dist/runtime/bash-match-facts.d.ts +0 -60
- package/dist/runtime/bash-match-facts.js +0 -196
- package/dist/runtime/bash-match-facts.js.map +0 -1
- package/dist/runtime/bash-match-registry.d.ts +0 -112
- package/dist/runtime/bash-match-registry.js +0 -406
- package/dist/runtime/bash-match-registry.js.map +0 -1
- package/dist/runtime/bash-prefix-parse.d.ts +0 -31
- package/dist/runtime/bash-prefix-parse.js +0 -576
- package/dist/runtime/bash-prefix-parse.js.map +0 -1
- package/dist/runtime/command-normalize.d.ts +0 -658
- package/dist/runtime/command-normalize.js +0 -2410
- package/dist/runtime/command-normalize.js.map +0 -1
- package/dist/runtime/deletion-target-resolve.d.ts +0 -28
- package/dist/runtime/deletion-target-resolve.js +0 -1078
- package/dist/runtime/deletion-target-resolve.js.map +0 -1
- package/dist/runtime/destructive-shell-floor.d.ts +0 -19
- package/dist/runtime/destructive-shell-floor.js +0 -611
- package/dist/runtime/destructive-shell-floor.js.map +0 -1
- package/dist/runtime/environment-resolver.d.ts +0 -36
- package/dist/runtime/environment-resolver.js +0 -138
- package/dist/runtime/environment-resolver.js.map +0 -1
- package/dist/runtime/git-context.d.ts +0 -201
- package/dist/runtime/git-context.js +0 -422
- package/dist/runtime/git-context.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -12
- package/dist/runtime/index.js +0 -13
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/intercept.d.ts +0 -494
- package/dist/runtime/intercept.js +0 -1313
- package/dist/runtime/intercept.js.map +0 -1
- package/dist/runtime/kube-context.d.ts +0 -16
- package/dist/runtime/kube-context.js +0 -63
- package/dist/runtime/kube-context.js.map +0 -1
- package/dist/runtime/kubectl-target-parse.d.ts +0 -31
- package/dist/runtime/kubectl-target-parse.js +0 -249
- package/dist/runtime/kubectl-target-parse.js.map +0 -1
- package/dist/runtime/ledger-add.d.ts +0 -16
- package/dist/runtime/ledger-add.js +0 -150
- package/dist/runtime/ledger-add.js.map +0 -1
- package/dist/runtime/ledger-writer.d.ts +0 -27
- package/dist/runtime/ledger-writer.js +0 -46
- package/dist/runtime/ledger-writer.js.map +0 -1
- package/dist/runtime/pause-sentinel.d.ts +0 -60
- package/dist/runtime/pause-sentinel.js +0 -156
- package/dist/runtime/pause-sentinel.js.map +0 -1
- package/dist/runtime/pending-approval.d.ts +0 -23
- package/dist/runtime/pending-approval.js +0 -67
- package/dist/runtime/pending-approval.js.map +0 -1
- package/dist/runtime/read-only-bash.d.ts +0 -141
- package/dist/runtime/read-only-bash.js +0 -2204
- package/dist/runtime/read-only-bash.js.map +0 -1
- package/dist/runtime/recovery-git-commit.d.ts +0 -22
- package/dist/runtime/recovery-git-commit.js +0 -284
- package/dist/runtime/recovery-git-commit.js.map +0 -1
- package/dist/runtime/reject-malformed-session-id.d.ts +0 -8
- package/dist/runtime/reject-malformed-session-id.js +0 -16
- package/dist/runtime/reject-malformed-session-id.js.map +0 -1
- package/dist/runtime/risk-classifier.d.ts +0 -38
- package/dist/runtime/risk-classifier.js +0 -311
- package/dist/runtime/risk-classifier.js.map +0 -1
- package/dist/runtime/session-id.d.ts +0 -113
- package/dist/runtime/session-id.js +0 -193
- package/dist/runtime/session-id.js.map +0 -1
- package/dist/runtime/shell-word.d.ts +0 -62
- package/dist/runtime/shell-word.js +0 -410
- package/dist/runtime/shell-word.js.map +0 -1
- package/dist/runtime/task-providers/agent-tasks.d.ts +0 -103
- package/dist/runtime/task-providers/agent-tasks.js +0 -245
- package/dist/runtime/task-providers/agent-tasks.js.map +0 -1
- package/dist/runtime/when-eval.d.ts +0 -62
- package/dist/runtime/when-eval.js +0 -212
- package/dist/runtime/when-eval.js.map +0 -1
- package/dist/runtime/workflow-policies.d.ts +0 -207
- package/dist/runtime/workflow-policies.js +0 -596
- package/dist/runtime/workflow-policies.js.map +0 -1
- package/dist/schema/audit.d.ts +0 -71
- package/dist/schema/audit.js +0 -32
- package/dist/schema/audit.js.map +0 -1
- package/dist/schema/doctor.d.ts +0 -25
- package/dist/schema/doctor.js +0 -23
- package/dist/schema/doctor.js.map +0 -1
- package/dist/schema/environments.d.ts +0 -215
- package/dist/schema/environments.js +0 -101
- package/dist/schema/environments.js.map +0 -1
- package/dist/schema/extract.d.ts +0 -9
- package/dist/schema/extract.js +0 -86
- package/dist/schema/extract.js.map +0 -1
- package/dist/schema/permission-profiles.d.ts +0 -2292
- package/dist/schema/permission-profiles.js +0 -60
- package/dist/schema/permission-profiles.js.map +0 -1
- package/dist/schema/policies.d.ts +0 -974
- package/dist/schema/policies.js +0 -298
- package/dist/schema/policies.js.map +0 -1
- package/dist/schema/requires.d.ts +0 -131
- package/dist/schema/requires.js +0 -88
- package/dist/schema/requires.js.map +0 -1
- package/dist/schema/risk.d.ts +0 -144
- package/dist/schema/risk.js +0 -194
- package/dist/schema/risk.js.map +0 -1
- package/dist/schema/session-start-preflight.d.ts +0 -10
- package/dist/schema/session-start-preflight.js +0 -106
- package/dist/schema/session-start-preflight.js.map +0 -1
- package/dist/schema/stale-base-check.d.ts +0 -18
- package/dist/schema/stale-base-check.js +0 -37
- package/dist/schema/stale-base-check.js.map +0 -1
- package/dist/schema/toolchain-parity.d.ts +0 -21
- package/dist/schema/toolchain-parity.js +0 -48
- package/dist/schema/toolchain-parity.js.map +0 -1
- package/dist/schema/workflows.d.ts +0 -519
- package/dist/schema/workflows.js +0 -81
- package/dist/schema/workflows.js.map +0 -1
- package/scripts/runtime-reality-docker-probe.mjs +0 -71
|
@@ -1,84 +1,12 @@
|
|
|
1
1
|
// Shared runtime constants + helpers for the `branch-protection` policy pack.
|
|
2
2
|
//
|
|
3
|
-
// The pack itself (`branch-protection.ts`) only emits
|
|
4
|
-
// audit-copy instructions. The
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
import { checkApprovalMarker, writeApprovalMarker, } from "./understanding-before-execution-runtime.js";
|
|
3
|
+
// The pack itself (`branch-protection.ts`) only emits its hook + the
|
|
4
|
+
// audit-copy instructions. The enforcement lives in `harness pack hook
|
|
5
|
+
// branch-protection` (src/cli/pack/hook-branch-protection.ts), which asks git
|
|
6
|
+
// for the branch through src/runtime/git-branch.ts. This module is the small
|
|
7
|
+
// shared surface both pull from: the pack name, the default protected list,
|
|
8
|
+
// config parsing and the branch-name comparison.
|
|
10
9
|
export const PACK_NAME = "branch-protection";
|
|
11
|
-
/**
|
|
12
|
-
* Ledger tag written by the producer when the current branch is NOT in
|
|
13
|
-
* the operator's protected list. The blocker substring-matches this
|
|
14
|
-
* prefix; the trailing `:<branch>` is informational and keeps the
|
|
15
|
-
* ledger row self-describing for auditors.
|
|
16
|
-
*/
|
|
17
|
-
export const NON_PROTECTED_TAG_PREFIX = "branch:non-protected";
|
|
18
|
-
/**
|
|
19
|
-
* Operator escape-hatch tag, kept as a best-effort AUDIT echo only.
|
|
20
|
-
*
|
|
21
|
-
* SECURITY (audit finding #39): this tag is NO LONGER a trusted override
|
|
22
|
-
* signal. The agent has direct `mcp__grounding-mcp__ledger_add` access,
|
|
23
|
-
* so it could self-write `branch-protection-ack:<anything>` and bless its
|
|
24
|
-
* own protected-branch edit — exactly the self-approval backdoor the
|
|
25
|
-
* understanding gate closed in agent-tasks/88ca4bb3 by moving the
|
|
26
|
-
* canonical approval to a filesystem marker. The blocker now consults the
|
|
27
|
-
* operator-only marker file (see `checkBranchProtectionMarker` below); the
|
|
28
|
-
* `harness approve branch-protection` verb still records this ledger tag
|
|
29
|
-
* so `harness audit` / forensics keep a trail, but its presence alone
|
|
30
|
-
* never satisfies the gate. The trailing `:<reason>` stays free-form.
|
|
31
|
-
*/
|
|
32
|
-
export const ACK_TAG_PREFIX = "branch-protection-ack";
|
|
33
|
-
/**
|
|
34
|
-
* Marker-name namespace for an operator-written branch-protection
|
|
35
|
-
* override. The marker lives in the shared `.approvals/` directory under
|
|
36
|
-
* `harness.generated/` (the same directory the understanding gate uses),
|
|
37
|
-
* prefixed so it can never be confused with an understanding-gate session
|
|
38
|
-
* marker (`.approvals/<sessionId>`) or a task marker (`.approvals/task-<id>`):
|
|
39
|
-
* Claude Code / Codex session ids are UUIDs and never start with this
|
|
40
|
-
* literal, so the three namespaces stay disjoint.
|
|
41
|
-
*
|
|
42
|
-
* Why a marker and not the `branch-protection-ack` ledger tag: only a
|
|
43
|
-
* process the operator launched (their `!`-shell or any un-hooked
|
|
44
|
-
* terminal) can write under `harness.generated/` — Edit / Write / Bash
|
|
45
|
-
* are all gated, and the configured MCP servers expose no filesystem
|
|
46
|
-
* write. So the marker is the canonical override signal; the ledger row
|
|
47
|
-
* is a best-effort audit echo only.
|
|
48
|
-
*/
|
|
49
|
-
export const BRANCH_PROTECTION_MARKER_PREFIX = "branch-protection-";
|
|
50
|
-
/** Marker filename (inside `.approvals/`) for a session's branch-protection override. */
|
|
51
|
-
export function branchProtectionMarkerName(sessionId) {
|
|
52
|
-
return `${BRANCH_PROTECTION_MARKER_PREFIX}${sessionId}`;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Operator-side: write the canonical branch-protection override marker for
|
|
56
|
-
* `sessionId`. Atomic (delegates to `writeApprovalMarker`). Caller is
|
|
57
|
-
* `harness approve branch-protection`, run from the operator's un-hooked
|
|
58
|
-
* shell; if the agent could reach this path the gate's value would
|
|
59
|
-
* collapse, so it lives behind the approve CLI.
|
|
60
|
-
*/
|
|
61
|
-
export function writeBranchProtectionMarker(generatedDir, sessionId, marker) {
|
|
62
|
-
return writeApprovalMarker(generatedDir, branchProtectionMarkerName(sessionId), marker);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Gate-side: is the operator's branch-protection override marker present
|
|
66
|
-
* for `sessionId`? Inherits `checkApprovalMarker`'s contract
|
|
67
|
-
* (signature-verified, symlink rejection, optional freshness via
|
|
68
|
-
* `maxAgeMs` — harness/f9485cc7 replaced the earlier existence-is-enough
|
|
69
|
-
* behaviour with HMAC signature verification); only the namespaced
|
|
70
|
-
* filename differs.
|
|
71
|
-
*/
|
|
72
|
-
export function checkBranchProtectionMarker(generatedDir, sessionId, opts = {}) {
|
|
73
|
-
return checkApprovalMarker(generatedDir, branchProtectionMarkerName(sessionId), opts);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Freshness window for the producer tag. Five minutes lets a single
|
|
77
|
-
* branch-check satisfy a whole edit batch without re-running for every
|
|
78
|
-
* Write; longer than that and a branch switch in the middle of a
|
|
79
|
-
* session would silently keep the gate open against the new HEAD.
|
|
80
|
-
*/
|
|
81
|
-
export const PRODUCER_FRESHNESS_MS = 5 * 60 * 1000;
|
|
82
10
|
/** Branches gated by default when no `config.protected_branches` is set. */
|
|
83
11
|
export const DEFAULT_PROTECTED_BRANCHES = [
|
|
84
12
|
"master",
|
|
@@ -129,13 +57,13 @@ export function resolveProtectedBranches(pack) {
|
|
|
129
57
|
return { branches: ok, warning: null };
|
|
130
58
|
}
|
|
131
59
|
/**
|
|
132
|
-
* True when `branch`
|
|
133
|
-
*
|
|
134
|
-
* the
|
|
60
|
+
* True when `branch` (the name git reports, without `refs/heads/`) matches an
|
|
61
|
+
* entry of the protected list, compared case-insensitively: `Master` and
|
|
62
|
+
* `MAIN` are the same branch as far as this gate is concerned, since a
|
|
63
|
+
* case-insensitive filesystem or a remote can fold them together.
|
|
135
64
|
*/
|
|
136
65
|
export function isProtectedBranch(branch, protectedList) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return protectedList.includes(branch);
|
|
66
|
+
const folded = branch.toLowerCase();
|
|
67
|
+
return protectedList.some((p) => p.toLowerCase() === folded);
|
|
140
68
|
}
|
|
141
69
|
//# sourceMappingURL=branch-protection-runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-protection-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/branch-protection-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"branch-protection-runtime.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/branch-protection-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,iDAAiD;AAIjD,MAAM,CAAC,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAgB;IAIvD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,0BAA0B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,CAAC,GAAG,0BAA0B,CAAC;YACzC,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,kEAAkE,OAAO,GAAG,+BAA+B,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SACvL,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAa,EAAE,CAAC;IACxB,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,QAAQ,EAAE,CAAC,GAAG,0BAA0B,CAAC;YACzC,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,6GAA6G,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SACzL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,gBAAgB,IAAI,CAAC,IAAI,wCAAwC,GAAG,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC,MAAM,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SACvN,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,aAAgC;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -5,42 +5,19 @@ import type { PackContribution } from "../types.js";
|
|
|
5
5
|
import { PACK_NAME } from "./branch-protection-runtime.js";
|
|
6
6
|
export { PACK_NAME };
|
|
7
7
|
/**
|
|
8
|
-
* Zod schema for this pack's `config:` block.
|
|
9
|
-
*
|
|
10
|
-
* by design so typo'd keys fail loud at lint time. `protected_branches`
|
|
8
|
+
* Zod schema for this pack's `config:` block. Strict by design so
|
|
9
|
+
* typo'd keys fail loud at lint time. `protected_branches`
|
|
11
10
|
* is the only operator-tunable key today; new keys land here first,
|
|
12
11
|
* then in `resolveProtectedBranches`.
|
|
13
12
|
*/
|
|
14
13
|
export declare const configSchema: z.ZodObject<{
|
|
15
|
-
protected_branches: z.ZodOptional<z.ZodArray<z.ZodString
|
|
14
|
+
protected_branches: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
16
15
|
ux: z.ZodOptional<z.ZodObject<{
|
|
17
16
|
cannot: z.ZodString;
|
|
18
|
-
required: z.ZodArray<z.ZodString
|
|
19
|
-
run: z.ZodArray<z.ZodString
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
required: string[];
|
|
23
|
-
run: string[];
|
|
24
|
-
}, {
|
|
25
|
-
cannot: string;
|
|
26
|
-
required: string[];
|
|
27
|
-
run: string[];
|
|
28
|
-
}>>;
|
|
29
|
-
}, "strict", z.ZodTypeAny, {
|
|
30
|
-
ux?: {
|
|
31
|
-
cannot: string;
|
|
32
|
-
required: string[];
|
|
33
|
-
run: string[];
|
|
34
|
-
} | undefined;
|
|
35
|
-
protected_branches?: string[] | undefined;
|
|
36
|
-
}, {
|
|
37
|
-
ux?: {
|
|
38
|
-
cannot: string;
|
|
39
|
-
required: string[];
|
|
40
|
-
run: string[];
|
|
41
|
-
} | undefined;
|
|
42
|
-
protected_branches?: string[] | undefined;
|
|
43
|
-
}>;
|
|
17
|
+
required: z.ZodArray<z.ZodString>;
|
|
18
|
+
run: z.ZodArray<z.ZodString>;
|
|
19
|
+
}, z.core.$strict>>;
|
|
20
|
+
}, z.core.$strict>;
|
|
44
21
|
/**
|
|
45
22
|
* Shipped default `config.ux` for this pack (agent-tasks/9806d4f8).
|
|
46
23
|
* Canonical source for the `full` init template and `harness pack
|
|
@@ -1,47 +1,31 @@
|
|
|
1
1
|
// Builtin Policy Pack: `branch-protection`.
|
|
2
2
|
//
|
|
3
3
|
// Blocks Write/Edit (and the codex `apply_patch` equivalent) when the
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// `preflight-before-push` gate which fires at the LAST reversible step.
|
|
4
|
+
// target lives in a repository whose checked-out branch is protected
|
|
5
|
+
// (default: master, main, develop), at the FIRST source mutation.
|
|
7
6
|
//
|
|
8
|
-
// Mechanics,
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// emits a Claude Code deny envelope unless either:
|
|
18
|
-
// - a fresh (<5m) `branch:non-protected` tag exists, OR
|
|
19
|
-
// - the operator-only override marker exists at
|
|
20
|
-
// `harness.generated/.approvals/branch-protection-<sessionId>`,
|
|
21
|
-
// written by `harness approve branch-protection`. The legacy
|
|
22
|
-
// `branch-protection-ack:` ledger tag is no longer trusted as an
|
|
23
|
-
// override (audit finding #39): it is agent-writable via
|
|
24
|
-
// `mcp__grounding-mcp__ledger_add`, so it could self-bless an
|
|
25
|
-
// edit. The marker lives under `harness.generated/`, which Edit /
|
|
26
|
-
// Write / Bash are all gated from writing.
|
|
27
|
-
//
|
|
28
|
-
// The producer is also runnable on-demand from the operator's `!` shell
|
|
29
|
-
// — same CLI verb, no SessionStart event piped on stdin — so an agent
|
|
30
|
-
// that just branched can refresh the gate without restarting the
|
|
31
|
-
// session.
|
|
7
|
+
// Mechanics (task a4d8adc5): one PreToolUse blocker, `harness pack hook
|
|
8
|
+
// branch-protection`. For each directory the tool call writes into it asks
|
|
9
|
+
// git for the branch (`git -C <dir> symbolic-ref -q HEAD`, see
|
|
10
|
+
// src/runtime/git-branch.ts) and refuses when git names a protected branch
|
|
11
|
+
// or cannot answer. A directory with no `.git` entry above it is outside
|
|
12
|
+
// every repository and allowed without spawning git; a detached HEAD is
|
|
13
|
+
// allowed. There is no producer, ledger tag or override marker: the escape
|
|
14
|
+
// for the agent is `git checkout -b <feature>`, and the operator disables
|
|
15
|
+
// the gate from an un-hooked shell (`harness gate disable`).
|
|
32
16
|
//
|
|
33
17
|
// Enabled per-installation via `harness pack add branch-protection`.
|
|
34
|
-
// The `full` init
|
|
35
|
-
// src/cli/init/
|
|
18
|
+
// The `solo`, `team` and `full` init templates wire it with
|
|
19
|
+
// `enabled: true` (src/cli/init/profiles.ts, src/cli/init/templates.ts);
|
|
20
|
+
// `minimal` does not.
|
|
36
21
|
import { z } from "zod";
|
|
37
|
-
import { PolicyUxSchema } from "../../schema/
|
|
22
|
+
import { PolicyUxSchema } from "../../schema/policy-ux.js";
|
|
38
23
|
import { DEFAULT_RUNTIME } from "../runtime.js";
|
|
39
|
-
import {
|
|
24
|
+
import { DEFAULT_PROTECTED_BRANCHES, PACK_NAME, resolveProtectedBranches, } from "./branch-protection-runtime.js";
|
|
40
25
|
export { PACK_NAME };
|
|
41
26
|
/**
|
|
42
|
-
* Zod schema for this pack's `config:` block.
|
|
43
|
-
*
|
|
44
|
-
* by design so typo'd keys fail loud at lint time. `protected_branches`
|
|
27
|
+
* Zod schema for this pack's `config:` block. Strict by design so
|
|
28
|
+
* typo'd keys fail loud at lint time. `protected_branches`
|
|
45
29
|
* is the only operator-tunable key today; new keys land here first,
|
|
46
30
|
* then in `resolveProtectedBranches`.
|
|
47
31
|
*/
|
|
@@ -67,44 +51,35 @@ export function defaultUx() {
|
|
|
67
51
|
required: [
|
|
68
52
|
"a checkout of a non-protected branch (current `${BRANCH}` is protected)",
|
|
69
53
|
],
|
|
70
|
-
run: ["git checkout -b feat/<your-task>"
|
|
54
|
+
run: ["git checkout -b feat/<your-task>"],
|
|
71
55
|
};
|
|
72
56
|
}
|
|
73
57
|
const HOOK_NAME_PREFIX = `policy-pack:${PACK_NAME}`;
|
|
74
58
|
const PRE_TOOL_USE_MATCH_CLAUDE = "Write|Edit";
|
|
75
59
|
const PRE_TOOL_USE_MATCH_CODEX = "apply_patch";
|
|
76
|
-
const PRODUCER_COMMAND = "harness session-start branch-check";
|
|
77
60
|
const BLOCKER_COMMAND = "harness pack hook branch-protection";
|
|
61
|
+
// Codex reads a PreToolUse block as exit 2 with the reason on stderr, not as
|
|
62
|
+
// the JSON envelope Claude Code reads, so the Codex command names its runtime
|
|
63
|
+
// and the hook answers in that runtime's contract.
|
|
64
|
+
const BLOCKER_COMMAND_CODEX = `${BLOCKER_COMMAND} --runtime codex`;
|
|
78
65
|
function buildHooks(runtime) {
|
|
79
66
|
const isCodex = runtime === "codex";
|
|
80
67
|
const blockerMatch = isCodex ? PRE_TOOL_USE_MATCH_CODEX : PRE_TOOL_USE_MATCH_CLAUDE;
|
|
81
68
|
return [
|
|
82
|
-
{
|
|
83
|
-
name: `${HOOK_NAME_PREFIX}:session-start`,
|
|
84
|
-
event: "SessionStart",
|
|
85
|
-
command: PRODUCER_COMMAND,
|
|
86
|
-
blocking: false,
|
|
87
|
-
budget_ms: 5000,
|
|
88
|
-
description: "Producer: write `branch:non-protected:<branch>` to the evidence ledger when the session opens on a non-protected branch. Non-blocking; failures leave the gate closed.",
|
|
89
|
-
},
|
|
90
69
|
{
|
|
91
70
|
name: `${HOOK_NAME_PREFIX}:pre-tool-use`,
|
|
92
71
|
event: "PreToolUse",
|
|
93
72
|
match: blockerMatch,
|
|
94
|
-
command: BLOCKER_COMMAND,
|
|
73
|
+
command: isCodex ? BLOCKER_COMMAND_CODEX : BLOCKER_COMMAND,
|
|
95
74
|
blocking: "hard",
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// as allow. 15000ms gives the query room to complete (or genuinely
|
|
105
|
-
// fail) before the outer timeout can fire first.
|
|
106
|
-
budget_ms: 15000,
|
|
107
|
-
description: `Blocker: deny ${blockerMatch} on protected branches unless a fresh branch:non-protected tag exists in the ledger or the operator-only override marker (harness approve branch-protection) is present.`,
|
|
75
|
+
// 5000 (task a4d8adc5): the hook's slow parts are node start-up, the
|
|
76
|
+
// manifest load and the git reads, and the hook bounds the git reads
|
|
77
|
+
// itself (2000 ms per call, 3000 ms from the hook's start for all
|
|
78
|
+
// target directories, src/cli/pack/hook-branch-protection.ts), so it answers
|
|
79
|
+
// well inside this budget. A hook the runtime kills at its budget is
|
|
80
|
+
// read as an allow, which is why the hook's own bound sits below it.
|
|
81
|
+
budget_ms: 5000,
|
|
82
|
+
description: `Blocker: deny ${blockerMatch} when git names a protected branch for a target directory, or cannot answer.`,
|
|
108
83
|
},
|
|
109
84
|
];
|
|
110
85
|
}
|
|
@@ -116,26 +91,24 @@ function buildInstructions(pack, branches, runtime) {
|
|
|
116
91
|
const settingsArtefact = isCodex
|
|
117
92
|
? "`harness.generated/codex/config.toml`"
|
|
118
93
|
: "harness-managed `settings.json`";
|
|
119
|
-
//
|
|
94
|
+
// Task f34eb233 (a review fix): before this, opencode
|
|
120
95
|
// fell through to the claude-code `else` branch above and the
|
|
121
96
|
// "## Effect" text below claimed hooks were wired into
|
|
122
97
|
// `settings.json` even though opencode has no declarative hook/event
|
|
123
98
|
// field and `harness apply --runtime opencode` never projects
|
|
124
99
|
// `hooks[]` into the generated opencode artefact (see runtime.ts's
|
|
125
|
-
// header).
|
|
126
|
-
// marker.
|
|
100
|
+
// header). Carries the "## Runtime" UNSUPPORTED marker.
|
|
127
101
|
const runtimeUnsupportedNote = isOpencode
|
|
128
102
|
? " (UNSUPPORTED — opencode has no declarative hook/event wiring; this pack's hooks are not projected into any opencode artefact)"
|
|
129
103
|
: "";
|
|
130
104
|
const wiringSentence = isOpencode
|
|
131
105
|
? "This pack's hooks are **not wired** under `--runtime opencode`: opencode has no declarative hook/event field (only a JS/TS plugin API), and `harness apply --runtime opencode` never projects `hooks[]` into the generated opencode artefact. The mechanics below describe the Claude Code / Codex behavior this pack implements; none of it fires today under opencode."
|
|
132
106
|
: `While this pack is enabled, hooks are wired into the ${settingsArtefact}:`;
|
|
133
|
-
const minutes = Math.round(PRODUCER_FRESHNESS_MS / 60000);
|
|
134
107
|
return `# Policy Pack: ${PACK_NAME}
|
|
135
108
|
|
|
136
109
|
> Operator audit copy. This pack blocks source-mutating tool calls when
|
|
137
|
-
> the
|
|
138
|
-
> "edit-on-master" incident pattern.
|
|
110
|
+
> the target lives in a repository checked out on a protected branch,
|
|
111
|
+
> closing the loop on the "edit-on-master" incident pattern.
|
|
139
112
|
|
|
140
113
|
## Runtime
|
|
141
114
|
|
|
@@ -145,41 +118,35 @@ ${runtime}${runtimeUnsupportedNote}
|
|
|
145
118
|
|
|
146
119
|
${branches.map((b) => `- \`${b}\``).join("\n")}
|
|
147
120
|
|
|
148
|
-
Set \`config.protected_branches\` in your manifest to override.
|
|
121
|
+
Set \`config.protected_branches\` in your manifest to override. Names are
|
|
122
|
+
compared case-insensitively.
|
|
149
123
|
|
|
150
124
|
## Effect
|
|
151
125
|
|
|
152
126
|
${wiringSentence}
|
|
153
127
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
128
|
+
\`PreToolUse\` blocker (\`${isCodex ? BLOCKER_COMMAND_CODEX : BLOCKER_COMMAND}\`, blocking: hard) on
|
|
129
|
+
\`${blockerMatch}\`. For each directory the tool call writes into (the
|
|
130
|
+
nearest existing directory of the target path, the paths named by an
|
|
131
|
+
\`apply_patch\` body, or the session cwd for other tools) it asks git:
|
|
132
|
+
\`git -C <dir> symbolic-ref -q HEAD\`, with every \`GIT_*\` variable removed
|
|
133
|
+
from git's environment and a 2000 ms bound per call. Three outcomes:
|
|
134
|
+
|
|
135
|
+
1. git names a protected branch: the call is refused; the agent is told to
|
|
136
|
+
branch off (\`git checkout -b <feature>\`).
|
|
137
|
+
2. git could not answer (an error, a timeout, git missing, an unexpected
|
|
138
|
+
answer): the call is refused, naming git's first stderr line.
|
|
139
|
+
3. No \`.git\` entry above the directory (outside every repository) or a
|
|
140
|
+
detached HEAD: the call is allowed.
|
|
158
141
|
|
|
159
|
-
2.
|
|
160
|
-
|
|
161
|
-
- a \`${NON_PROTECTED_TAG_PREFIX}\` tag exists in the ledger from
|
|
162
|
-
within the last ${minutes} minutes, OR
|
|
163
|
-
- the operator-only override marker exists at
|
|
164
|
-
\`harness.generated/.approvals/branch-protection-<sessionId>\`.
|
|
142
|
+
${isCodex ? "Codex contract: a refusal exits 2 with the reason on stderr." : "Claude Code contract: a refusal is a JSON deny envelope on stdout (exit 0)."}
|
|
143
|
+
A manifest that cannot be loaded refuses every call.
|
|
165
144
|
|
|
166
145
|
## Escape hatches
|
|
167
146
|
|
|
168
|
-
- **
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
a \`harness ...\` invocation that the gate's allowlist accepts.
|
|
172
|
-
|
|
173
|
-
- **Explicit override** (operator only): from an un-hooked shell run
|
|
174
|
-
\`harness approve branch-protection --session <sessionId>\`. This writes
|
|
175
|
-
the canonical approval marker the blocker consults. Use it when you have
|
|
176
|
-
a deliberate reason to edit a protected branch (version bumps, CI
|
|
177
|
-
workflow patches, hotfixes). SECURITY (audit finding #39): a
|
|
178
|
-
\`${ACK_TAG_PREFIX}:<reason>\` ledger tag is NO LONGER sufficient on its
|
|
179
|
-
own — it is agent-writable via \`mcp__grounding-mcp__ledger_add\`, so
|
|
180
|
-
the gate would otherwise be self-approvable. The approve verb still
|
|
181
|
-
records that ledger tag for audit, but only the marker file (which the
|
|
182
|
-
agent cannot write) opens the gate.
|
|
147
|
+
- **Branch off**: \`git checkout -b <feature>\` and retry; the next call
|
|
148
|
+
is judged against the new branch.
|
|
149
|
+
- **Operator only**: ${isCodex ? "disable the gate from an un-hooked shell with \`harness gate disable --runtime codex\` (without \`--matcher\` it only lists the hook units; it empties this unit's \`hooks\` array in place, so Codex keeps the trust of every other hook; \`harness gate enable --runtime codex\` restores it), or set \`enabled: false\` on this pack and re-run \`harness apply --runtime codex --install\`." : "disable the gate from an un-hooked shell with \`harness gate disable\` (without \`--matcher\` it only lists the hook groups; \`harness gate enable\` restores them), or set \`enabled: false\` on this pack and re-run \`harness apply\`."}
|
|
183
150
|
|
|
184
151
|
## Out of scope (v1)
|
|
185
152
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-protection.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/branch-protection.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"branch-protection.js","sourceRoot":"","sources":["../../../src/policy-packs/builtin/branch-protection.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,20 @@ export interface PolicyPackConfigIssue {
|
|
|
4
4
|
packIndex: number;
|
|
5
5
|
packName: string;
|
|
6
6
|
/**
|
|
7
|
-
* Dotted path inside `pack.config`, e.g. `
|
|
8
|
-
* `
|
|
7
|
+
* Dotted path inside `pack.config`, e.g. `protected_branches`, `ux.cannot`,
|
|
8
|
+
* `protected_branches[1]`. Empty string means the issue applies to the
|
|
9
9
|
* config object itself (e.g. a wholly non-object value).
|
|
10
10
|
*/
|
|
11
11
|
configPath: string;
|
|
12
12
|
message: string;
|
|
13
13
|
/**
|
|
14
14
|
* Zod issue code preserved so downstream renderers can group by
|
|
15
|
-
* kind (`
|
|
16
|
-
*
|
|
15
|
+
* kind (`invalid_value` for a bad enum value, `unrecognized_keys`,
|
|
16
|
+
* ...). Zod 4 renamed the enum-value code (`invalid_enum_value` in
|
|
17
|
+
* zod 3.x); no consumer branches on a specific code, only the code
|
|
18
|
+
* string travels to the diagnostics renderer.
|
|
17
19
|
*/
|
|
18
|
-
code: z.
|
|
20
|
+
code: z.core.$ZodIssue["code"];
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Walks `manifest.policy_packs` in declared order. For each enabled
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// `harness doctor`. The top-level `PolicyPackSchema` accepts
|
|
3
3
|
// `config: z.record(string, unknown)` — any key, any value — because
|
|
4
4
|
// each builtin pack owns its own config interpretation. That means a
|
|
5
|
-
// typo like `
|
|
6
|
-
//
|
|
5
|
+
// typo like `protected_brnches` (misspelled key) or
|
|
6
|
+
// `protected_branches: "master"` (a string instead of a list) currently falls through to
|
|
7
7
|
// the runtime fallback and the operator only finds out when the hook
|
|
8
8
|
// finally fires. This helper consults the per-pack `configSchema`
|
|
9
9
|
// exported from each builtin module and surfaces every issue at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../src/policy-packs/config-check.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../src/policy-packs/config-check.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,oDAAoD;AACpD,yFAAyF;AACzF,qEAAqE;AACrE,kEAAkE;AAClE,gEAAgE;AAChE,aAAa;AACb,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AAGpE,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAuB9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAkB;IAElB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO;QAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI;iBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBAClE,IAAI,CAAC,GAAG,CAAC;iBACT,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS;gBACT,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,UAAU;gBACV,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { Manifest } from "../schema/index.js";
|
|
2
|
-
import type { ResolvePackOptions } from "./builtin/understanding-before-execution.js";
|
|
3
2
|
import { type Runtime } from "./runtime.js";
|
|
4
3
|
import type { PackExpansionResult } from "./types.js";
|
|
5
|
-
export
|
|
6
|
-
export declare function expandPolicyPacks(manifest: Manifest, runtime?: Runtime, opts?: ExpandPolicyPacksOptions): PackExpansionResult;
|
|
4
|
+
export declare function expandPolicyPacks(manifest: Manifest, runtime?: Runtime): PackExpansionResult;
|
|
@@ -10,23 +10,20 @@
|
|
|
10
10
|
//
|
|
11
11
|
// Hook-name collision handling: pack hooks are namespaced
|
|
12
12
|
// (`policy-pack:<name>:<role>`) by the builtin definitions, so a user
|
|
13
|
-
// hook with a colliding name is the user's mistake.
|
|
13
|
+
// hook with a colliding name is the user's mistake. Two packs cannot
|
|
14
|
+
// contribute the same name: the schema rejects a duplicate
|
|
15
|
+
// `policy_packs[].name`. We surface that as
|
|
14
16
|
// a warning here rather than blowing up; the schema's duplicate-name
|
|
15
17
|
// superRefine will reject it on the augmented manifest's downstream
|
|
16
18
|
// re-parse if a caller re-validates.
|
|
17
19
|
import { resolveBuiltin } from "./registry.js";
|
|
18
20
|
import { DEFAULT_RUNTIME } from "./runtime.js";
|
|
19
21
|
import { parsePackSource } from "./source.js";
|
|
20
|
-
export function expandPolicyPacks(manifest, runtime = DEFAULT_RUNTIME
|
|
22
|
+
export function expandPolicyPacks(manifest, runtime = DEFAULT_RUNTIME) {
|
|
21
23
|
const out = { hooks: [], files: [], warnings: [], skipped: [] };
|
|
22
24
|
if (manifest.policy_packs.length === 0)
|
|
23
25
|
return out;
|
|
24
26
|
const existingHookNames = new Set(manifest.hooks.map((h) => h.name));
|
|
25
|
-
const seenPackHookNames = new Set();
|
|
26
|
-
const allowSet = new Set();
|
|
27
|
-
const askSet = new Set();
|
|
28
|
-
const denySet = new Set();
|
|
29
|
-
let anyPermissions = false;
|
|
30
27
|
for (const pack of manifest.policy_packs) {
|
|
31
28
|
if (!pack.enabled) {
|
|
32
29
|
out.skipped.push(pack.name);
|
|
@@ -37,7 +34,7 @@ export function expandPolicyPacks(manifest, runtime = DEFAULT_RUNTIME, opts = {}
|
|
|
37
34
|
out.warnings.push(`policy_packs[${pack.name}]: source ${JSON.stringify(pack.source)} is not recognised in v1 (only "builtin" resolves); skipping.`);
|
|
38
35
|
continue;
|
|
39
36
|
}
|
|
40
|
-
const resolved = resolveBuiltin(pack, runtime
|
|
37
|
+
const resolved = resolveBuiltin(pack, runtime);
|
|
41
38
|
if (!resolved) {
|
|
42
39
|
out.warnings.push(`policy_packs[${pack.name}]: not a known builtin pack; skipping. See docs/policy-packs/ for supported names.`);
|
|
43
40
|
continue;
|
|
@@ -48,43 +45,9 @@ export function expandPolicyPacks(manifest, runtime = DEFAULT_RUNTIME, opts = {}
|
|
|
48
45
|
out.warnings.push(`policy_packs[${pack.name}]: hook name "${hook.name}" collides with a manifest hooks[] entry; pack contribution dropped to avoid a duplicate-name failure.`);
|
|
49
46
|
continue;
|
|
50
47
|
}
|
|
51
|
-
if (seenPackHookNames.has(hook.name)) {
|
|
52
|
-
out.warnings.push(`policy_packs[${pack.name}]: hook name "${hook.name}" was already contributed by an earlier pack; second copy dropped.`);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
seenPackHookNames.add(hook.name);
|
|
56
48
|
out.hooks.push(hook);
|
|
57
49
|
}
|
|
58
50
|
out.files.push(...resolved.contribution.files);
|
|
59
|
-
if (resolved.contribution.permissions) {
|
|
60
|
-
anyPermissions = true;
|
|
61
|
-
for (const p of resolved.contribution.permissions.allow)
|
|
62
|
-
allowSet.add(p);
|
|
63
|
-
for (const p of resolved.contribution.permissions.ask)
|
|
64
|
-
askSet.add(p);
|
|
65
|
-
for (const p of resolved.contribution.permissions.deny)
|
|
66
|
-
denySet.add(p);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (anyPermissions) {
|
|
70
|
-
// Deny wins over ask wins over allow at merge time: a stricter
|
|
71
|
-
// intent from any pack should not be silently relaxed by a more
|
|
72
|
-
// permissive sibling. Concretely, a pattern present in deny is
|
|
73
|
-
// stripped from ask + allow; a pattern present in ask is stripped
|
|
74
|
-
// from allow.
|
|
75
|
-
for (const p of denySet) {
|
|
76
|
-
askSet.delete(p);
|
|
77
|
-
allowSet.delete(p);
|
|
78
|
-
}
|
|
79
|
-
for (const p of askSet) {
|
|
80
|
-
allowSet.delete(p);
|
|
81
|
-
}
|
|
82
|
-
const permissions = {
|
|
83
|
-
allow: [...allowSet].sort(),
|
|
84
|
-
ask: [...askSet].sort(),
|
|
85
|
-
deny: [...denySet].sort(),
|
|
86
|
-
};
|
|
87
|
-
out.permissions = permissions;
|
|
88
51
|
}
|
|
89
52
|
return out;
|
|
90
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/policy-packs/expand.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,8DAA8D;AAC9D,EAAE;AACF,0DAA0D;AAC1D,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/policy-packs/expand.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,8DAA8D;AAC9D,EAAE;AACF,0DAA0D;AAC1D,sEAAsE;AACtE,qEAAqE;AACrE,2DAA2D;AAC3D,4CAA4C;AAC5C,qEAAqE;AACrE,oEAAoE;AACpE,qCAAqC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,UAAmB,eAAe;IAElC,MAAM,GAAG,GAAwB,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrF,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpC,GAAG,CAAC,QAAQ,CAAC,IAAI,CACf,gBAAgB,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,SAAS,CAClD,IAAI,CAAC,MAAM,CACZ,+DAA+D,CACjE,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,QAAQ,CAAC,IAAI,CACf,gBAAgB,IAAI,CAAC,IAAI,oFAAoF,CAC9G,CAAC;YACF,SAAS;QACX,CAAC;QACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,QAAQ,CAAC,IAAI,CACf,gBAAgB,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,IAAI,wGAAwG,CAC5J,CAAC;gBACF,SAAS;YACX,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { expandPolicyPacks
|
|
2
|
-
export { KNOWN_BUILTIN_PACKS, isBuiltinPackName, resolveBuiltin, resolveBuiltinConfigSchema,
|
|
1
|
+
export { expandPolicyPacks } from "./expand.js";
|
|
2
|
+
export { KNOWN_BUILTIN_PACKS, isBuiltinPackName, resolveBuiltin, resolveBuiltinConfigSchema, type BuiltinPackName, type ResolveBuiltinResult, } from "./registry.js";
|
|
3
3
|
export { checkPolicyPackConfigs, type PolicyPackConfigIssue, } from "./config-check.js";
|
|
4
4
|
export { checkPolicyPackVersions, type PolicyPackVersionGap, type PolicyPackVersionGapKind, } from "./version-check.js";
|
|
5
|
-
export { KNOWN_RUNTIMES, DEFAULT_RUNTIME, isRuntime,
|
|
5
|
+
export { KNOWN_RUNTIMES, DEFAULT_RUNTIME, isRuntime, type Runtime, } from "./runtime.js";
|
|
6
6
|
export { parsePackSource, type PackSourceKind, type PackSourceParseResult } from "./source.js";
|
|
7
7
|
export { checkPolicyPackSources, type PolicyPackSourceIssue, type PolicyPackSourceIssueKind, } from "./source-check.js";
|
|
8
8
|
export type { PackContribution, PackContributionFile, PackExpansionResult, } from "./types.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { expandPolicyPacks } from "./expand.js";
|
|
2
|
-
export { KNOWN_BUILTIN_PACKS, isBuiltinPackName, resolveBuiltin, resolveBuiltinConfigSchema,
|
|
2
|
+
export { KNOWN_BUILTIN_PACKS, isBuiltinPackName, resolveBuiltin, resolveBuiltinConfigSchema, } from "./registry.js";
|
|
3
3
|
export { checkPolicyPackConfigs, } from "./config-check.js";
|
|
4
4
|
export { checkPolicyPackVersions, } from "./version-check.js";
|
|
5
|
-
export { KNOWN_RUNTIMES, DEFAULT_RUNTIME, isRuntime,
|
|
5
|
+
export { KNOWN_RUNTIMES, DEFAULT_RUNTIME, isRuntime, } from "./runtime.js";
|
|
6
6
|
export { parsePackSource } from "./source.js";
|
|
7
7
|
export { checkPolicyPackSources, } from "./source-check.js";
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy-packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAG3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,GAGxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,eAAe,EACf,SAAS,GAEV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAmD,MAAM,aAAa,CAAC;AAC/F,OAAO,EACL,sBAAsB,GAGvB,MAAM,mBAAmB,CAAC"}
|