@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,37 +1,69 @@
|
|
|
1
1
|
export declare const SNAPSHOT_BASENAME_PREFIX = "harness.gate-disable.";
|
|
2
2
|
export declare const SNAPSHOT_BASENAME_SUFFIX = ".json";
|
|
3
|
-
|
|
3
|
+
/** Written by this version. Adds `step` on every removed group and `merges`. */
|
|
4
|
+
export declare const SNAPSHOT_VERSION: 2;
|
|
5
|
+
/** Written by releases before a second disable merged into the live snapshot; still restorable. */
|
|
6
|
+
export declare const LEGACY_SNAPSHOT_VERSION: 1;
|
|
7
|
+
/** A retired snapshot keeps its name with this suffix instead of plain `.json`. */
|
|
8
|
+
export declare const RETIRED_SNAPSHOT_SUFFIX = ".restored.json";
|
|
9
|
+
/** A snapshot whose groups were carried into a snapshot at another place keeps its name with this suffix. */
|
|
10
|
+
export declare const SUPERSEDED_SNAPSHOT_SUFFIX = ".superseded.json";
|
|
4
11
|
export interface RemovedGroup {
|
|
5
12
|
/** Hook event the group lived under, e.g. "PreToolUse". */
|
|
6
13
|
event: string;
|
|
7
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Position of the group inside `hooks[event][]` just before the removal
|
|
16
|
+
* step that took it out (a later merged disable records positions in the
|
|
17
|
+
* already-reduced array). Restore therefore undoes the steps newest first.
|
|
18
|
+
*/
|
|
8
19
|
index: number;
|
|
20
|
+
/** Which disable call removed it: 0 for the first, 1 for the next merged one, and so on. Absent in version 1 snapshots (read as 0). */
|
|
21
|
+
step?: number;
|
|
9
22
|
/** The literal JSON value of the removed group; preserved verbatim. */
|
|
10
23
|
group: unknown;
|
|
11
24
|
}
|
|
25
|
+
/** A later `gate disable` that was merged into a live snapshot. */
|
|
26
|
+
export interface SnapshotMerge {
|
|
27
|
+
step: number;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
matcher: string;
|
|
30
|
+
settingsBackupPath: string;
|
|
31
|
+
}
|
|
12
32
|
export interface GateDisableSnapshot {
|
|
13
|
-
version: typeof SNAPSHOT_VERSION;
|
|
33
|
+
version: typeof SNAPSHOT_VERSION | typeof LEGACY_SNAPSHOT_VERSION;
|
|
14
34
|
/** ISO-8601 UTC timestamp of the disable call. */
|
|
15
35
|
createdAt: string;
|
|
16
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Absolute path to the settings.json that was mutated (snapshots written
|
|
38
|
+
* by earlier releases may hold the path as it was typed, relative to a
|
|
39
|
+
* working directory that is gone). Only its basename is used to tell which
|
|
40
|
+
* file a snapshot belongs to (snapshots always sit beside their file): the
|
|
41
|
+
* target must name that directory entry, see `listLiveSnapshots`.
|
|
42
|
+
*/
|
|
17
43
|
settingsPath: string;
|
|
18
44
|
/** Absolute path the pre-mutation copy was written to. */
|
|
19
45
|
settingsBackupPath: string;
|
|
20
46
|
/**
|
|
21
|
-
* SHA-256 of `settings.json` content BEFORE the removal.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
47
|
+
* SHA-256 of `settings.json` content BEFORE the first removal. When the
|
|
48
|
+
* live file already has this sha there is nothing to restore (the snapshot
|
|
49
|
+
* is retired).
|
|
24
50
|
*/
|
|
25
51
|
settingsBeforeSha256: string;
|
|
26
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* SHA-256 of `settings.json` content AFTER the latest removal. `gate
|
|
54
|
+
* enable` compares the live settings.json sha against this to detect
|
|
55
|
+
* operator edits since the disable; a mismatch refuses unless `--force`.
|
|
56
|
+
*/
|
|
27
57
|
settingsAfterSha256: string;
|
|
28
|
-
/** The filter the
|
|
58
|
+
/** The filter of the first disable, recorded for the audit trail. */
|
|
29
59
|
filter: {
|
|
30
60
|
matcher?: string;
|
|
31
61
|
event?: string;
|
|
32
62
|
};
|
|
33
|
-
/** Groups removed, in
|
|
63
|
+
/** Groups removed by every step, in the order they were taken out. */
|
|
34
64
|
removed: RemovedGroup[];
|
|
65
|
+
/** Later disables merged into this snapshot, oldest first (absent when there were none). */
|
|
66
|
+
merges?: SnapshotMerge[];
|
|
35
67
|
}
|
|
36
68
|
export declare function sha256Hex(input: string | Buffer): string;
|
|
37
69
|
/**
|
|
@@ -46,9 +78,17 @@ export declare function backupPath(settingsPath: string, now: Date): string;
|
|
|
46
78
|
* Return all gate-disable snapshot paths in `settingsDir`, newest-first
|
|
47
79
|
* by mtime. Missing directory returns []. Any file that isn't a valid
|
|
48
80
|
* snapshot is silently skipped — `gate enable` re-parses the candidates
|
|
49
|
-
* and surfaces format errors at that point.
|
|
81
|
+
* and surfaces format errors at that point. `prefix` selects the snapshot
|
|
82
|
+
* family: the Claude settings snapshots by default, the Codex ones when the
|
|
83
|
+
* Codex gate passes its own prefix (`codex-snapshot.ts`).
|
|
84
|
+
*/
|
|
85
|
+
export declare function listSnapshots(settingsDir: string, prefix?: string): string[];
|
|
86
|
+
/**
|
|
87
|
+
* The reason a parsed snapshot lacks one of the required string fields or
|
|
88
|
+
* its `filter` object, or null when it has them all. Shared by the Claude
|
|
89
|
+
* and Codex snapshot readers so the two cannot drift apart.
|
|
50
90
|
*/
|
|
51
|
-
export declare function
|
|
91
|
+
export declare function snapshotFieldProblem(filePath: string, obj: Record<string, unknown>, stringFields: string[]): string | null;
|
|
52
92
|
export interface SnapshotReadOk {
|
|
53
93
|
ok: true;
|
|
54
94
|
snapshot: GateDisableSnapshot;
|
|
@@ -63,3 +103,240 @@ export interface SnapshotReadErr {
|
|
|
63
103
|
* settings.json) and not re-validated against a hook schema.
|
|
64
104
|
*/
|
|
65
105
|
export declare function readSnapshot(filePath: string): SnapshotReadOk | SnapshotReadErr;
|
|
106
|
+
/** The name a snapshot is renamed to once retired. The file stays for audit. */
|
|
107
|
+
export declare function retiredSnapshotPath(snapPath: string): string;
|
|
108
|
+
/**
|
|
109
|
+
* Retire `snapPath` as superseded (rename it, keep it for audit) and return
|
|
110
|
+
* the new path: its groups were merged into a snapshot beside the file they
|
|
111
|
+
* were removed from, so it is not restored and never offered again.
|
|
112
|
+
*/
|
|
113
|
+
export declare function supersedeSnapshot(snapPath: string): string;
|
|
114
|
+
/** Retire `snapPath` (rename it, keep it for audit) and return the new path. */
|
|
115
|
+
export declare function retireSnapshot(snapPath: string): string;
|
|
116
|
+
export interface LiveSnapshot {
|
|
117
|
+
path: string;
|
|
118
|
+
snapshot: GateDisableSnapshot;
|
|
119
|
+
}
|
|
120
|
+
/** A live snapshot beside the target that was taken for another settings file. */
|
|
121
|
+
export interface ForeignSnapshot {
|
|
122
|
+
/** The snapshot file. */
|
|
123
|
+
path: string;
|
|
124
|
+
/** The file it was taken for: its recorded basename in the target's directory. */
|
|
125
|
+
settingsPath: string;
|
|
126
|
+
/** Whether a file is at `settingsPath` now (a settings file renamed since the disable is not). */
|
|
127
|
+
settingsExists: boolean;
|
|
128
|
+
/** The backup its first disable wrote: the pre-disable copy of that file, the way back when the file is gone. */
|
|
129
|
+
settingsBackupPath: string;
|
|
130
|
+
}
|
|
131
|
+
export type LiveSnapshotsResult = {
|
|
132
|
+
ok: true;
|
|
133
|
+
live: LiveSnapshot[];
|
|
134
|
+
/** Live snapshots beside the file that name another settings file; never read as this one's. */
|
|
135
|
+
skippedForeign: ForeignSnapshot[];
|
|
136
|
+
} | {
|
|
137
|
+
ok: false;
|
|
138
|
+
reason: string;
|
|
139
|
+
/** The live snapshot file that could not be read. */
|
|
140
|
+
path: string;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Whether `recordedName`, in `dir`, is the directory entry `targetName`
|
|
144
|
+
* names. The same spelling is, by definition: snapshots sit beside their
|
|
145
|
+
* file and record its basename, so the name is the identity. A spelling that
|
|
146
|
+
* differs only in letter case or normalization is the same entry only on a
|
|
147
|
+
* filesystem that folds those (APFS by default), which `lstat` tells: both
|
|
148
|
+
* names must resolve to one regular file (neither a symlink) whose link
|
|
149
|
+
* count is 1, so no second name of that inode could be the one that matched.
|
|
150
|
+
* Every other name is another entry (a hard link, a symlink, a renamed file):
|
|
151
|
+
* restoring through it would write a new file at that name and leave the
|
|
152
|
+
* recorded file as the disable left it.
|
|
153
|
+
*
|
|
154
|
+
* `symlinks` lets the entry be a symlink itself (a symlinked Codex config,
|
|
155
|
+
* which the gate edits at its resolved target): two spellings then name one
|
|
156
|
+
* entry when `lstat` gives both the same device and inode and a link count of
|
|
157
|
+
* 1, as for a regular file. The Claude gate never sets it.
|
|
158
|
+
*/
|
|
159
|
+
export declare function namesSameEntry(dir: string, recordedName: string, targetName: string, opts?: {
|
|
160
|
+
symlinks?: boolean;
|
|
161
|
+
}): boolean;
|
|
162
|
+
/**
|
|
163
|
+
* The spelling of `settingsPath` the gate builds every other path from: the
|
|
164
|
+
* backup, the snapshot, the listing beside it, and the atomic write's temp
|
|
165
|
+
* file. A spelling with a `..` segment is replaced by its directory as the
|
|
166
|
+
* kernel resolves it (`kernelEntry`, which the Codex gate uses as well), so
|
|
167
|
+
* no path built from it is folded into another directory; every other
|
|
168
|
+
* spelling is kept as given and the paths the gate prints read the way they
|
|
169
|
+
* were written.
|
|
170
|
+
*/
|
|
171
|
+
export declare function settingsOwnEntry(settingsPath: string): string;
|
|
172
|
+
/**
|
|
173
|
+
* The file `gate disable` and `gate enable` read and write for `settingsPath`.
|
|
174
|
+
* That is the path itself unless its last component is a symlink (a dotfiles
|
|
175
|
+
* setup): then it is the entry the link leads to, which may sit in another
|
|
176
|
+
* directory. Writing through the resolved entry keeps the link a link, and
|
|
177
|
+
* the snapshots sit beside the file itself, so a disable through either
|
|
178
|
+
* spelling is found by an enable through the other. Every hop of the chain is
|
|
179
|
+
* resolved the way the kernel resolves it (`walkLinkChain`, the walker the
|
|
180
|
+
* Codex gate uses too), so the file is the one reading through the path
|
|
181
|
+
* gives, `..` in a link text included. A link whose file is gone resolves to
|
|
182
|
+
* where the file would be, so the snapshots taken for it are still found; a
|
|
183
|
+
* link whose text passes through a directory that is gone resolves to that
|
|
184
|
+
* text as written (nothing can sit beside it). A path that is no link, and a
|
|
185
|
+
* loop, resolve to the path's own entry (`settingsOwnEntry`).
|
|
186
|
+
*/
|
|
187
|
+
export declare function resolveSettingsEntry(settingsPath: string): string;
|
|
188
|
+
/**
|
|
189
|
+
* The live (not retired) snapshots that were taken for `settingsPath`,
|
|
190
|
+
* newest first by `createdAt`. Snapshots always sit beside their file, so
|
|
191
|
+
* only the basename of the recorded settings path counts, never how the
|
|
192
|
+
* directory was spelled when it was written (relative to some other working
|
|
193
|
+
* directory, or through a symlink): a snapshot belongs to the file when the
|
|
194
|
+
* target names the directory entry that basename names (`namesSameEntry`:
|
|
195
|
+
* the same spelling, or another spelling of the one entry on a
|
|
196
|
+
* case-insensitive filesystem). When `settingsPath` is itself a symlink
|
|
197
|
+
* (`resolveSettingsEntry`), the directory of the file it leads to is searched
|
|
198
|
+
* too, with the resolved entry as the target there: the snapshot of a disable
|
|
199
|
+
* made through the other spelling sits beside that file. A hard link to the
|
|
200
|
+
* file, a renamed file, or a snapshot found beside the file a symlink leads
|
|
201
|
+
* to but recorded under the symlink's own name is another entry, so a
|
|
202
|
+
* snapshot recorded for one is foreign to the other, whether or not the files
|
|
203
|
+
* exist. A snapshot for another settings file in the same directory is
|
|
204
|
+
* listed in `skippedForeign`, never dropped silently. A live snapshot that
|
|
205
|
+
* cannot be read, or records no target, is an error: its target cannot be
|
|
206
|
+
* told, so neither disable nor enable may go on as if it did not exist.
|
|
207
|
+
*/
|
|
208
|
+
export declare function listLiveSnapshots(settingsPath: string): LiveSnapshotsResult;
|
|
209
|
+
/** Whether a write failed because the directory or filesystem does not allow it to be written. */
|
|
210
|
+
export declare function isReadOnlyWriteError(err: unknown): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* What a gate refusal says first when the file a settings symlink leads to
|
|
213
|
+
* cannot be written where it sits: what the link is and what refuses. EACCES
|
|
214
|
+
* and EROFS come from the directory (the gate writes a temp file beside the
|
|
215
|
+
* file and renames it into place); EPERM can come from the file or from the
|
|
216
|
+
* directory (an immutable flag, a sticky directory), so it names both without
|
|
217
|
+
* saying which. Each verb adds its own way out.
|
|
218
|
+
*/
|
|
219
|
+
export declare function readOnlyLinkTargetText(settingsPath: string, entry: string, err: unknown): string;
|
|
220
|
+
/** What a read-only refusal tells the operator to make writable: the directory, and for EPERM the file too. */
|
|
221
|
+
export declare function readOnlyWritablePlace(entry: string, err: unknown): string;
|
|
222
|
+
/** The command that puts a copy of the file a symlink leads to in place of the link. */
|
|
223
|
+
export declare function copyOverLinkCommand(settingsPath: string, entry: string): string;
|
|
224
|
+
/**
|
|
225
|
+
* How a command prints a `--settings` target so that it works as printed: a
|
|
226
|
+
* path with a character the shell would act on (a space, a quote, `~`, `=`,
|
|
227
|
+
* `%`, `$`) is single-quoted by the one quoting helper the gate shares.
|
|
228
|
+
*/
|
|
229
|
+
export declare function settingsFlag(settingsPath: string): string;
|
|
230
|
+
/** `PreToolUse matcher="Bash"`: how a message names a removed group. */
|
|
231
|
+
export declare function groupLabel(event: string, group: unknown): string;
|
|
232
|
+
/** The `command` strings of a hook group's hooks, in order; empty for a malformed group. */
|
|
233
|
+
export declare function groupCommands(group: unknown): string[];
|
|
234
|
+
/**
|
|
235
|
+
* How a refusal names a removed group that is still missing: its event and
|
|
236
|
+
* matcher plus its commands, so that when another group shares the matcher
|
|
237
|
+
* the operator can tell which one is out of the file.
|
|
238
|
+
*/
|
|
239
|
+
export declare function missingLabel(entry: RemovedGroup): string;
|
|
240
|
+
/** A snapshot entry and the group of the file with its event and matcher but other content. */
|
|
241
|
+
export interface ChangedGroup {
|
|
242
|
+
entry: RemovedGroup;
|
|
243
|
+
/** The group the file holds in its place. */
|
|
244
|
+
current: unknown;
|
|
245
|
+
}
|
|
246
|
+
/** Names a changed group and the commands of both versions, so the operator can tell whether it is the gate's. */
|
|
247
|
+
export declare function changedLabel(changed: ChangedGroup): string;
|
|
248
|
+
export interface RestorePlan {
|
|
249
|
+
/** The hooks block with the groups that were still missing spliced back in; the input is not modified. */
|
|
250
|
+
hooks: Record<string, unknown[]>;
|
|
251
|
+
/** Entries spliced back in. */
|
|
252
|
+
restored: RemovedGroup[];
|
|
253
|
+
/**
|
|
254
|
+
* Entries the file already holds unchanged (deep-equal, put back by hand
|
|
255
|
+
* or by an apply). Left alone, never spliced in a second time.
|
|
256
|
+
*/
|
|
257
|
+
alreadyBack: RemovedGroup[];
|
|
258
|
+
/**
|
|
259
|
+
* Entries the file holds no unchanged copy of, but a group with the same
|
|
260
|
+
* event and matcher and other content. That group may be the gate's,
|
|
261
|
+
* re-rendered, or another hook that happens to share the matcher, so it is
|
|
262
|
+
* never taken for the entry on its own: `gate enable` and `gate disable`
|
|
263
|
+
* refuse while there is one, and only `gate enable --force` accepts it as
|
|
264
|
+
* back. Never spliced in.
|
|
265
|
+
*/
|
|
266
|
+
changed: ChangedGroup[];
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* What putting a snapshot's removed groups back into `current` would do. The
|
|
270
|
+
* entries are paired with the groups of the file one to one: first every
|
|
271
|
+
* entry with a deep-equal group of the same event (`alreadyBack`), then each
|
|
272
|
+
* entry left over, in the order the snapshot recorded them, with the first
|
|
273
|
+
* group still unpaired that has its event and matcher (`changed`). The rest
|
|
274
|
+
* are spliced in at their recorded positions: each removal step recorded its
|
|
275
|
+
* indices against the array as it stood just before that step, so the steps
|
|
276
|
+
* are undone newest first, and inside a step by event and ascending index (an
|
|
277
|
+
* earlier insertion never shifts a later insertion's target index past the
|
|
278
|
+
* array end).
|
|
279
|
+
*/
|
|
280
|
+
export declare function planRestore(current: Record<string, unknown[]>, snapshot: GateDisableSnapshot): RestorePlan;
|
|
281
|
+
/**
|
|
282
|
+
* The settings text `gate enable` writes when it puts `plan`'s groups back
|
|
283
|
+
* into the parsed settings file `obj`: `obj` with its `hooks` key replaced by
|
|
284
|
+
* `plan.hooks` (and removed when the plan holds no group at all).
|
|
285
|
+
*/
|
|
286
|
+
export declare function restoredSettingsText(obj: Record<string, unknown>, hooks: Record<string, unknown[]>): string;
|
|
287
|
+
/** Why `harness gate enable` needs `--force` for a snapshot; see `claudeEnableRefusal`. */
|
|
288
|
+
export type ClaudeEnableRefusal = "changed-group" | "edited-settings";
|
|
289
|
+
/**
|
|
290
|
+
* The one decision of why `harness gate enable` refuses a snapshot against
|
|
291
|
+
* the current settings.json unless it was called with `--force`, or null when
|
|
292
|
+
* it restores or retires it without one:
|
|
293
|
+
* - `"changed-group"`: the file holds a group with the event and matcher of a
|
|
294
|
+
* removed one but other content, which may be another hook sharing the
|
|
295
|
+
* matcher, so it never counts as back on its own;
|
|
296
|
+
* - `"edited-settings"`: the file is not the state the snapshot left and the
|
|
297
|
+
* groups that are still missing do not add up to the pre-disable file, so
|
|
298
|
+
* a restore would write over an operator edit.
|
|
299
|
+
* The current file already matching the pre-disable state, and a snapshot
|
|
300
|
+
* whose every group is back, never refuse: nothing is put back. A changed
|
|
301
|
+
* group wins when both hold, as `gate enable` refuses for it before it
|
|
302
|
+
* reaches the edit check. `gate enable` throws on it, and `harness doctor`
|
|
303
|
+
* calls it to decide whether its warning for a gate-disabled hook must name
|
|
304
|
+
* `--force`; the two callers never re-implement the conditions.
|
|
305
|
+
*/
|
|
306
|
+
export declare function claudeEnableRefusal(currentSha: string, currentObj: Record<string, unknown>, plan: RestorePlan, snapshot: GateDisableSnapshot): ClaudeEnableRefusal | null;
|
|
307
|
+
/**
|
|
308
|
+
* The live snapshots a plain `harness gate enable` applies on its next call,
|
|
309
|
+
* in the order it applies them, from `listLiveSnapshots`' newest-first list.
|
|
310
|
+
* `gate enable` restores ONE snapshot per call and retires it, so today it is
|
|
311
|
+
* the newest alone: an older snapshot waits until that restore changed the
|
|
312
|
+
* file, which is exactly why its own refusal against the CURRENT file is not
|
|
313
|
+
* what the next plain enable will decide. `harness doctor` asks this question
|
|
314
|
+
* before it words the warning for a gate-disabled hook, and `gate enable` takes
|
|
315
|
+
* its snapshot through it too, so the two cannot drift apart on which one
|
|
316
|
+
* decides.
|
|
317
|
+
*/
|
|
318
|
+
export declare function nextEnableSnapshots(live: readonly LiveSnapshot[]): readonly LiveSnapshot[];
|
|
319
|
+
export type SettingsHooksParse = {
|
|
320
|
+
ok: true;
|
|
321
|
+
hooks: Record<string, unknown[]>;
|
|
322
|
+
} | {
|
|
323
|
+
ok: false;
|
|
324
|
+
reason: "hooks-not-object";
|
|
325
|
+
} | {
|
|
326
|
+
ok: false;
|
|
327
|
+
reason: "event-not-array";
|
|
328
|
+
event: string;
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* The `hooks` of a parsed settings.json as the gate reads them: an array of
|
|
332
|
+
* groups per event, each array copied, so a caller never mutates the parsed
|
|
333
|
+
* document. A `hooks` key that is absent reads as no groups at all; any other
|
|
334
|
+
* shape the gate refuses to read is a failure reason, not a guess:
|
|
335
|
+
* `hooks-not-object` when the field itself is not an object, and
|
|
336
|
+
* `event-not-array` naming the first event whose value is not an array.
|
|
337
|
+
* `gate enable` turns the two reasons into its two refusal messages, and
|
|
338
|
+
* `harness doctor` reads them the same way when it asks the gate what a
|
|
339
|
+
* plain `gate enable` would do with the file it compares; the two never
|
|
340
|
+
* re-implement the walk.
|
|
341
|
+
*/
|
|
342
|
+
export declare function parseSettingsHooks(doc: Record<string, unknown>): SettingsHooksParse;
|