@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
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import { EX_FAIL, HarnessExitError } from "../exit-codes.js";
|
|
3
|
+
import { uninstall, UninstallError } from "./index.js";
|
|
4
|
+
export function registerUninstall(program, io) {
|
|
5
|
+
const { stdout, stderr } = io;
|
|
6
|
+
program
|
|
7
|
+
.command("uninstall")
|
|
8
|
+
.description("Clean teardown of a harness installation. Inventories harness-owned " +
|
|
9
|
+
"state (manifest, lock, harness.generated/ and the leftover " +
|
|
10
|
+
".understanding-gate/ of the removed gate under " +
|
|
11
|
+
"the state root; hook groups and mcpServers in ~/.claude/settings.json) " +
|
|
12
|
+
"and prints it. With --apply, backs up settings.json (reversible, with " +
|
|
13
|
+
"a snapshot of what was removed) and then removes the inventory; the " +
|
|
14
|
+
"manifest, lock and generated tree are deleted without a backup. " +
|
|
15
|
+
"settings.json.pre-harness-<TS> backups are listed but never deleted, " +
|
|
16
|
+
"so the operator can hand them to --restore-from <path> (atomic restore " +
|
|
17
|
+
"from that file) or `rm` them manually.")
|
|
18
|
+
.option("--apply", "execute the teardown (default: dry-run listing only)")
|
|
19
|
+
.option("--restore-from <path>", "atomic restore: copy this file over settings.json instead of selective removal (implies --apply)")
|
|
20
|
+
.option("--home <path>", "override ~/.claude/ (settings home; without --state it also overrides the state root, for tests / non-default installs)")
|
|
21
|
+
.option("--state <path>", "override the harness state root (default: ~/.harness/, legacy fallback ~/.claude/)")
|
|
22
|
+
.option("--settings <path>", "override ~/.claude/settings.json")
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
const cliOpts = {};
|
|
25
|
+
if (options.apply)
|
|
26
|
+
cliOpts.apply = true;
|
|
27
|
+
if (options.restoreFrom)
|
|
28
|
+
cliOpts.restoreFrom = options.restoreFrom;
|
|
29
|
+
if (options.home)
|
|
30
|
+
cliOpts.homeDir = options.home;
|
|
31
|
+
if (options.state)
|
|
32
|
+
cliOpts.stateDir = options.state;
|
|
33
|
+
if (options.settings)
|
|
34
|
+
cliOpts.settingsPath = options.settings;
|
|
35
|
+
try {
|
|
36
|
+
const result = await uninstall(cliOpts);
|
|
37
|
+
const inv = result.inventory;
|
|
38
|
+
if (result.mode === "list") {
|
|
39
|
+
const nothing = inv.manifestPath === null &&
|
|
40
|
+
inv.lockPath === null &&
|
|
41
|
+
inv.generatedDir === null &&
|
|
42
|
+
inv.gateStateDir === null &&
|
|
43
|
+
inv.hookGroups.length === 0 &&
|
|
44
|
+
inv.mcpServers.length === 0 &&
|
|
45
|
+
inv.mcpRegistryServers.length === 0 &&
|
|
46
|
+
inv.preHarnessBackups.length === 0;
|
|
47
|
+
const rootsLabel = inv.stateDir === inv.homeDir
|
|
48
|
+
? inv.homeDir
|
|
49
|
+
: `${inv.stateDir} (state) + ${inv.homeDir} (settings)`;
|
|
50
|
+
if (nothing) {
|
|
51
|
+
stdout(`no harness install found under ${rootsLabel}; nothing to do.\n`);
|
|
52
|
+
for (const w of inv.warnings)
|
|
53
|
+
stderr(`warning: ${w}\n`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
stdout(`harness install under ${rootsLabel}:\n`);
|
|
57
|
+
if (inv.manifestPath)
|
|
58
|
+
stdout(` manifest: ${inv.manifestPath}\n`);
|
|
59
|
+
if (inv.lockPath)
|
|
60
|
+
stdout(` lock: ${inv.lockPath}\n`);
|
|
61
|
+
if (inv.generatedDir)
|
|
62
|
+
stdout(` generated: ${inv.generatedDir}/\n`);
|
|
63
|
+
if (inv.gateStateDir)
|
|
64
|
+
stdout(` gate: ${inv.gateStateDir}/ (leftover understanding-gate state)\n`);
|
|
65
|
+
if (inv.hookGroups.length > 0) {
|
|
66
|
+
stdout(` hook groups in ${inv.settingsPath}:\n`);
|
|
67
|
+
for (const g of inv.hookGroups) {
|
|
68
|
+
const matcherLabel = g.matcher === null ? "(no matcher)" : JSON.stringify(g.matcher);
|
|
69
|
+
stdout(` ${g.event}[${g.index}] matcher=${matcherLabel}: ${g.description}\n`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (inv.mcpServers.length > 0) {
|
|
73
|
+
stdout(` mcpServers in ${inv.settingsPath}: ${inv.mcpServers.join(", ")}\n`);
|
|
74
|
+
}
|
|
75
|
+
if (inv.mcpRegistryServers.length > 0) {
|
|
76
|
+
stdout(` mcpServers registered in the claude CLI user-scope registry (${inv.mcpRegistryPath}): ` +
|
|
77
|
+
`${inv.mcpRegistryServers.join(", ")}\n`);
|
|
78
|
+
}
|
|
79
|
+
if (inv.preHarnessBackups.length > 0) {
|
|
80
|
+
stdout(` pre-harness backups:\n`);
|
|
81
|
+
for (const b of inv.preHarnessBackups)
|
|
82
|
+
stdout(` ${b}\n`);
|
|
83
|
+
stdout(`\n Restore from one of these with: harness uninstall --restore-from <path>\n`);
|
|
84
|
+
}
|
|
85
|
+
stdout(`\nPass --apply to remove the above. This is a dry-run.\n`);
|
|
86
|
+
for (const w of inv.warnings)
|
|
87
|
+
stderr(`warning: ${w}\n`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (result.mode === "restore") {
|
|
91
|
+
stdout(`restored ${inv.settingsPath} from ${result.restoredFrom}.\n`);
|
|
92
|
+
stdout(`backup: ${result.backupPath}\n`);
|
|
93
|
+
stdout(`snapshot: ${result.snapshotPath}\n`);
|
|
94
|
+
if (result.removedFiles.length > 0) {
|
|
95
|
+
stdout(`removed:\n`);
|
|
96
|
+
for (const f of result.removedFiles)
|
|
97
|
+
stdout(` ${f}\n`);
|
|
98
|
+
}
|
|
99
|
+
if (result.mcpRegistryRemovals.length > 0) {
|
|
100
|
+
stdout(`claude mcp remove (user scope, ${inv.mcpRegistryPath}):\n`);
|
|
101
|
+
for (const r of result.mcpRegistryRemovals)
|
|
102
|
+
stdout(` ${r.name}: ${r.status}\n`);
|
|
103
|
+
}
|
|
104
|
+
stdout(`\nTo finish: \`npm uninstall -g @lannguyensi/harness\` (uninstall does not touch the npm install).\n`);
|
|
105
|
+
for (const w of inv.warnings)
|
|
106
|
+
stderr(`warning: ${w}\n`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
// apply
|
|
110
|
+
if (result.backupPath !== null && result.snapshotPath !== null) {
|
|
111
|
+
stdout(`mutated ${inv.settingsPath}:\n`);
|
|
112
|
+
if (inv.hookGroups.length > 0) {
|
|
113
|
+
stdout(` removed ${inv.hookGroups.length} hook group(s): `);
|
|
114
|
+
stdout(inv.hookGroups.map((g) => `${g.event}[${g.index}]`).join(", "));
|
|
115
|
+
stdout(`\n`);
|
|
116
|
+
}
|
|
117
|
+
if (inv.mcpServers.length > 0) {
|
|
118
|
+
stdout(` removed mcpServers: ${inv.mcpServers.join(", ")}\n`);
|
|
119
|
+
}
|
|
120
|
+
stdout(`backup: ${result.backupPath}\n`);
|
|
121
|
+
stdout(`snapshot: ${result.snapshotPath}\n`);
|
|
122
|
+
}
|
|
123
|
+
if (result.removedFiles.length > 0) {
|
|
124
|
+
stdout(`removed from disk:\n`);
|
|
125
|
+
for (const f of result.removedFiles)
|
|
126
|
+
stdout(` ${f}\n`);
|
|
127
|
+
// Explicit kept-list: name whatever survives under the state
|
|
128
|
+
// root (machines/ + projects/ override layers are
|
|
129
|
+
// operator-authored; foreign files are not ours to judge) so
|
|
130
|
+
// the operator never has to discover residue by accident.
|
|
131
|
+
try {
|
|
132
|
+
const residue = fs
|
|
133
|
+
.readdirSync(inv.stateDir)
|
|
134
|
+
.filter((name) => !name.startsWith("settings.json"));
|
|
135
|
+
if (residue.length > 0) {
|
|
136
|
+
stdout(`kept under ${inv.stateDir}: ${residue.join(", ")} (not removed; operator-authored or out of scope)\n`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
/* state root itself may be gone or unreadable; nothing to report */
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (result.mcpRegistryRemovals.length > 0) {
|
|
144
|
+
stdout(`claude mcp remove (user scope, ${inv.mcpRegistryPath}):\n`);
|
|
145
|
+
for (const r of result.mcpRegistryRemovals)
|
|
146
|
+
stdout(` ${r.name}: ${r.status}\n`);
|
|
147
|
+
}
|
|
148
|
+
if (result.backupPath === null &&
|
|
149
|
+
result.snapshotPath === null &&
|
|
150
|
+
result.removedFiles.length === 0 &&
|
|
151
|
+
result.mcpRegistryRemovals.length === 0) {
|
|
152
|
+
const rootsLabel = inv.stateDir === inv.homeDir
|
|
153
|
+
? inv.homeDir
|
|
154
|
+
: `${inv.stateDir} (state) + ${inv.homeDir} (settings)`;
|
|
155
|
+
stdout(`no harness install found under ${rootsLabel}; nothing to remove.\n`);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
stdout(`\nTo finish: \`npm uninstall -g @lannguyensi/harness\` (uninstall does not touch the npm install).\n`);
|
|
159
|
+
}
|
|
160
|
+
for (const w of inv.warnings)
|
|
161
|
+
stderr(`warning: ${w}\n`);
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
if (err instanceof UninstallError) {
|
|
165
|
+
throw new HarnessExitError(err.message, EX_FAIL);
|
|
166
|
+
}
|
|
167
|
+
throw err;
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/cli/uninstall/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,21 @@ export interface UninstallSnapshot {
|
|
|
33
33
|
/** Removed mcpServers entries, sorted by name. */
|
|
34
34
|
removedMcpServers: RemovedMcpServer[];
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Top-level keys only the uninstall snapshot writer emits. A settings.json
|
|
38
|
+
* has no use for any of them. Generic keys the record also carries
|
|
39
|
+
* (`version`, `createdAt`, `settingsPath`) are left out on purpose, so a
|
|
40
|
+
* settings backup that has its own `version` key still restores.
|
|
41
|
+
*/
|
|
42
|
+
export declare const SNAPSHOT_MARKER_KEYS: readonly ["removedHookGroups", "removedMcpServers", "settingsBackupPath", "settingsBeforeSha256", "settingsAfterSha256", "restoredFrom"];
|
|
43
|
+
/**
|
|
44
|
+
* True when `value` is an uninstall snapshot record, or a hand-edited or
|
|
45
|
+
* partial one: a top-level object carrying any snapshot marker key in any
|
|
46
|
+
* shape (with or without `version`), or an object whose only key holds a
|
|
47
|
+
* plain object that carries one (one wrapper level, no deeper). A plain
|
|
48
|
+
* settings.json, nested objects included, is not.
|
|
49
|
+
*/
|
|
50
|
+
export declare function looksLikeUninstallSnapshot(value: unknown): boolean;
|
|
36
51
|
export declare function sha256Hex(input: string | Buffer): string;
|
|
37
52
|
/** Build the snapshot file path for `settingsPath` at `now`. */
|
|
38
53
|
export declare function snapshotPath(settingsPath: string, now: Date): string;
|
|
@@ -18,6 +18,44 @@ export const SNAPSHOT_BASENAME_PREFIX = "harness.uninstall.";
|
|
|
18
18
|
export const SNAPSHOT_BASENAME_SUFFIX = ".json";
|
|
19
19
|
export const BACKUP_INFIX = ".bak.uninstall.";
|
|
20
20
|
export const SNAPSHOT_VERSION = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Top-level keys only the uninstall snapshot writer emits. A settings.json
|
|
23
|
+
* has no use for any of them. Generic keys the record also carries
|
|
24
|
+
* (`version`, `createdAt`, `settingsPath`) are left out on purpose, so a
|
|
25
|
+
* settings backup that has its own `version` key still restores.
|
|
26
|
+
*/
|
|
27
|
+
export const SNAPSHOT_MARKER_KEYS = [
|
|
28
|
+
"removedHookGroups",
|
|
29
|
+
"removedMcpServers",
|
|
30
|
+
"settingsBackupPath",
|
|
31
|
+
"settingsBeforeSha256",
|
|
32
|
+
"settingsAfterSha256",
|
|
33
|
+
"restoredFrom",
|
|
34
|
+
];
|
|
35
|
+
function isPlainObject(value) {
|
|
36
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
37
|
+
}
|
|
38
|
+
function hasMarkerKey(value) {
|
|
39
|
+
return SNAPSHOT_MARKER_KEYS.some((k) => Object.prototype.hasOwnProperty.call(value, k));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* True when `value` is an uninstall snapshot record, or a hand-edited or
|
|
43
|
+
* partial one: a top-level object carrying any snapshot marker key in any
|
|
44
|
+
* shape (with or without `version`), or an object whose only key holds a
|
|
45
|
+
* plain object that carries one (one wrapper level, no deeper). A plain
|
|
46
|
+
* settings.json, nested objects included, is not.
|
|
47
|
+
*/
|
|
48
|
+
export function looksLikeUninstallSnapshot(value) {
|
|
49
|
+
if (!isPlainObject(value))
|
|
50
|
+
return false;
|
|
51
|
+
if (hasMarkerKey(value))
|
|
52
|
+
return true;
|
|
53
|
+
const keys = Object.keys(value);
|
|
54
|
+
if (keys.length !== 1)
|
|
55
|
+
return false;
|
|
56
|
+
const inner = value[keys[0]];
|
|
57
|
+
return isPlainObject(inner) && hasMarkerKey(inner);
|
|
58
|
+
}
|
|
21
59
|
export function sha256Hex(input) {
|
|
22
60
|
return crypto.createHash("sha256").update(input).digest("hex");
|
|
23
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/cli/uninstall/snapshot.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,iEAAiE;AACjE,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,sEAAsE;AACtE,oCAAoC;AACpC,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AACvE,yDAAyD;AAEzD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAoC3C,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,YAAoB,EAAE,GAAS;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAC1B,GAAG,wBAAwB,GAAG,KAAK,GAAG,wBAAwB,EAAE,CACjE,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,GAAS;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/cli/uninstall/snapshot.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,iEAAiE;AACjE,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AACxE,sEAAsE;AACtE,oCAAoC;AACpC,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,uEAAuE;AACvE,yDAAyD;AAEzD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,CAAC;AAoC3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;CACN,CAAC;AAEX,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,KAA8B;IAClD,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAW,CAAC,CAAC;IACvC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,YAAoB,EAAE,GAAS;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,IAAI,CACd,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAC1B,GAAG,wBAAwB,GAAG,KAAK,GAAG,wBAAwB,EAAE,CACjE,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,GAAS;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -6,87 +6,10 @@ export interface CheckOptions {
|
|
|
6
6
|
pathEnv?: string;
|
|
7
7
|
builtinRuntimeProbe?: () => string[];
|
|
8
8
|
versionProbe?: (cmd: readonly string[]) => string | null;
|
|
9
|
-
/**
|
|
10
|
-
* Answers "is this repo-relative path git-ignored in the current working
|
|
11
|
-
* directory's repository?". `null` means "cannot tell" (not a git repo,
|
|
12
|
-
* git unavailable) and skips the dependent check. Injectable for tests;
|
|
13
|
-
* defaults to a real `git check-ignore` probe.
|
|
14
|
-
*/
|
|
15
|
-
gitIgnoreProbe?: GitIgnoreProbe;
|
|
16
9
|
}
|
|
17
10
|
declare function isRootedPath(p: string): boolean;
|
|
18
11
|
declare function firstToken(command: string): string;
|
|
19
12
|
declare function resolveOnPath(binary: string, pathEnv: string): string | null;
|
|
20
|
-
export declare function checkPolicyGroundingMcp(manifest: Manifest): Diagnostic[];
|
|
21
|
-
export declare function checkSolutionAcceptanceProducer(manifest: Manifest): Diagnostic[];
|
|
22
|
-
export declare function checkWorkflowGateWiring(manifest: Manifest): Diagnostic[];
|
|
23
|
-
/**
|
|
24
|
-
* F1 (review round 2): a hand-authored policy on the identical trigger
|
|
25
|
-
* surface + ledger_tag as a derived block gate, but weaker than it
|
|
26
|
-
* (`enforcement: "warn"`/`"require_approval"`, or `when:`-scoped), no
|
|
27
|
-
* longer suppresses the derived gate (see `isAtLeastAsStrongAsDerivedGate`
|
|
28
|
-
* in workflow-policies.ts) — both apply. This check surfaces that overlap
|
|
29
|
-
* as a warning so an operator reading the weaker policy does not mistake
|
|
30
|
-
* it for the ONLY gate on the surface.
|
|
31
|
-
*/
|
|
32
|
-
export declare function checkWorkflowGateWeakOverlap(manifest: Manifest): Diagnostic[];
|
|
33
|
-
/**
|
|
34
|
-
* F6 (review round 2): a workflow that declares BOTH a `merge` step and a
|
|
35
|
-
* `review_subagent` step with `spawn: "required"`, but with the review
|
|
36
|
-
* step coming AFTER the merge step, derives no gate at all
|
|
37
|
-
* (`workflowRequiresMergeGate` only looks for review-then-merge). That
|
|
38
|
-
* ordering is likely a mistake (a review that runs after the PR already
|
|
39
|
-
* merged cannot gate it), but step-ordering validation in general is out
|
|
40
|
-
* of scope for this slice (module doc, src/runtime/workflow-policies.ts).
|
|
41
|
-
* This warns instead of silently doing nothing.
|
|
42
|
-
*/
|
|
43
|
-
export declare function checkWorkflowMergeBeforeReview(manifest: Manifest): Diagnostic[];
|
|
44
|
-
/**
|
|
45
|
-
* Review round 3 (99f47307 Slice 1): a hand-authored policy whose name
|
|
46
|
-
* equals a derived policy's name (`workflow:<name>:review-before-merge[-
|
|
47
|
-
* bash]`) is not deduped by name (dedupe keys on surface, not name), so
|
|
48
|
-
* the derived view carries two policies with one name. This fires both
|
|
49
|
-
* when the hand-authored policy sits on a DIFFERENT surface (dedupe never
|
|
50
|
-
* even compares them), and when it sits on the SAME surface but is not
|
|
51
|
-
* `isAtLeastAsStrongAsDerivedGate` (weaker enforcement or a `when:` scope
|
|
52
|
-
* — that case IS a surface match, so `findWeakGatePolicyOverlaps` also
|
|
53
|
-
* reports it as an overlap; the two checks are not mutually exclusive).
|
|
54
|
-
* Either way the runtime evaluates both policies (fail-safe), but every
|
|
55
|
-
* by-name reader (`explain`, `explain-policy`, `audit`, `diff`'s
|
|
56
|
-
* name-keyed policy list) resolves the name to the hand-authored one and
|
|
57
|
-
* silently hides the derived gate. The schema's duplicate-name refinement
|
|
58
|
-
* cannot see this (it runs on the hand-authored view), so it is an error
|
|
59
|
-
* here.
|
|
60
|
-
*/
|
|
61
|
-
export declare function checkWorkflowDerivedNameCollision(manifest: Manifest): Diagnostic[];
|
|
62
|
-
/**
|
|
63
|
-
* Every `workflows[]` check in one list, so `harness validate`
|
|
64
|
-
* (`runAssetChecks`) and `harness doctor`'s Workflows section run the
|
|
65
|
-
* SAME set (review round 3, 99f47307 Slice 1: doctor previously picked
|
|
66
|
-
* two of the three by hand and was missing `checkWorkflowMergeBeforeReview`).
|
|
67
|
-
*/
|
|
68
|
-
export declare function checkWorkflows(manifest: Manifest): Diagnostic[];
|
|
69
|
-
/**
|
|
70
|
-
* Answers "is `relPath` git-ignored here?": `true` / `false`, or `null`
|
|
71
|
-
* when the question has no answer (not a git repository, git not
|
|
72
|
-
* installed). See `createDefaultGitIgnoreProbe` for the real
|
|
73
|
-
* implementation; checks receive the probe so tests stay hermetic.
|
|
74
|
-
*/
|
|
75
|
-
export type GitIgnoreProbe = (relPath: string) => boolean | null;
|
|
76
|
-
/**
|
|
77
|
-
* The orchestrator-workflow knob the grounding-mcp producer reads
|
|
78
|
-
* (`resolveOwKnob`). Repo-relative on purpose: the knob belongs to the
|
|
79
|
-
* repository whose completions the OW arm gates.
|
|
80
|
-
*/
|
|
81
|
-
export declare const OW_KNOB_REL_PATH = ".ai/solution-acceptance.json";
|
|
82
|
-
export declare function createDefaultGitIgnoreProbe(cwd?: string): GitIgnoreProbe;
|
|
83
|
-
export declare function checkSolutionAcceptanceKnobIgnored(manifest: Manifest, probe: GitIgnoreProbe): Diagnostic[];
|
|
84
|
-
export declare function checkPolicySelfAttestation(manifest: Manifest): Diagnostic[];
|
|
85
|
-
export declare function checkPolicyRiskWithoutEnvScope(manifest: Manifest): Diagnostic[];
|
|
86
|
-
export declare function checkSafeDeletionRootsSyntax(manifest: Manifest): Diagnostic[];
|
|
87
|
-
export declare function checkTemplatePolicyDrift(manifest: Manifest): Diagnostic[];
|
|
88
|
-
export declare function checkTriggerBoundaryDrift(manifest: Manifest): Diagnostic[];
|
|
89
|
-
export declare function checkHookBudgetLedgerMargin(manifest: Manifest): Diagnostic[];
|
|
90
13
|
export declare function runAssetChecks(manifest: Manifest, opts?: CheckOptions): Diagnostic[];
|
|
91
14
|
export declare const __testables: {
|
|
92
15
|
expandHome: typeof expandHome;
|