peaks-loop 4.1.2 → 4.1.4
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/.claude-plugin/marketplace.json +136 -47
- package/CHANGELOG.md +112 -0
- package/README-en.md +1 -1
- package/README.md +1 -1
- package/contracts/readonly-argv-whitelist.json +211 -0
- package/dist/cli/commands/asset-command-shared.d.ts +12 -0
- package/dist/cli/commands/asset-command-shared.js +45 -0
- package/dist/cli/commands/asset-commands.d.ts +6 -1
- package/dist/cli/commands/asset-commands.js +11 -372
- package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
- package/dist/cli/commands/asset-crystallize-command.js +60 -0
- package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
- package/dist/cli/commands/asset-crystallize-payload.js +85 -0
- package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
- package/dist/cli/commands/asset-crystallize-runner.js +133 -0
- package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
- package/dist/cli/commands/asset-dispose-command.js +99 -0
- package/dist/cli/commands/asset-status-command.d.ts +3 -0
- package/dist/cli/commands/asset-status-command.js +100 -0
- package/dist/cli/commands/audit-artifact-runners.d.ts +16 -0
- package/dist/cli/commands/audit-artifact-runners.js +170 -0
- package/dist/cli/commands/audit-command-shared.d.ts +97 -0
- package/dist/cli/commands/audit-command-shared.js +60 -0
- package/dist/cli/commands/audit-commands.d.ts +7 -31
- package/dist/cli/commands/audit-commands.js +64 -473
- package/dist/cli/commands/audit-goal-runners.d.ts +17 -0
- package/dist/cli/commands/audit-goal-runners.js +114 -0
- package/dist/cli/commands/audit-red-lines-runners.d.ts +11 -0
- package/dist/cli/commands/audit-red-lines-runners.js +43 -0
- package/dist/cli/commands/audit-refusal-data.d.ts +23 -0
- package/dist/cli/commands/audit-refusal-data.js +69 -0
- package/dist/cli/commands/audit-static-runners.d.ts +13 -0
- package/dist/cli/commands/audit-static-runners.js +139 -0
- package/dist/cli/commands/await-runners.d.ts +11 -0
- package/dist/cli/commands/await-runners.js +148 -0
- package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
- package/dist/cli/commands/baseline-audit-command.js +64 -0
- package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
- package/dist/cli/commands/baseline-command-shared.js +39 -0
- package/dist/cli/commands/baseline-commands.js +33 -313
- package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
- package/dist/cli/commands/baseline-freeze-commands.js +81 -0
- package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
- package/dist/cli/commands/baseline-guard-command.js +52 -0
- package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
- package/dist/cli/commands/baseline-read-commands.js +72 -0
- package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
- package/dist/cli/commands/baseline-rollback-commands.js +88 -0
- package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
- package/dist/cli/commands/classify-downgrade-command.js +21 -0
- package/dist/cli/commands/classify-run-command.d.ts +9 -0
- package/dist/cli/commands/classify-run-command.js +73 -0
- package/dist/cli/commands/classify-signals.d.ts +5 -0
- package/dist/cli/commands/classify-signals.js +104 -0
- package/dist/cli/commands/code-auto-compact-command.d.ts +3 -0
- package/dist/cli/commands/code-auto-compact-command.js +124 -0
- package/dist/cli/commands/code-auto-compact-envelope.d.ts +22 -0
- package/dist/cli/commands/code-auto-compact-envelope.js +39 -0
- package/dist/cli/commands/code-context-audit-command.d.ts +3 -0
- package/dist/cli/commands/code-context-audit-command.js +68 -0
- package/dist/cli/commands/code-context-now-command.d.ts +3 -0
- package/dist/cli/commands/code-context-now-command.js +124 -0
- package/dist/cli/commands/code-context-now-envelope.d.ts +66 -0
- package/dist/cli/commands/code-context-now-envelope.js +136 -0
- package/dist/cli/commands/code-context-now-mapping.d.ts +27 -0
- package/dist/cli/commands/code-context-now-mapping.js +43 -0
- package/dist/cli/commands/code-emit-handoff-command.d.ts +3 -0
- package/dist/cli/commands/code-emit-handoff-command.js +136 -0
- package/dist/cli/commands/code-gate-step-08-command.d.ts +3 -0
- package/dist/cli/commands/code-gate-step-08-command.js +155 -0
- package/dist/cli/commands/code-post-compact-detect-command.d.ts +3 -0
- package/dist/cli/commands/code-post-compact-detect-command.js +50 -0
- package/dist/cli/commands/code-runtime-commands.d.ts +9 -43
- package/dist/cli/commands/code-runtime-commands.js +20 -672
- package/dist/cli/commands/code-runtime-session.d.ts +1 -0
- package/dist/cli/commands/code-runtime-session.js +15 -0
- package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
- package/dist/cli/commands/codegraph-command-options.js +22 -0
- package/dist/cli/commands/codegraph-commands.d.ts +2 -2
- package/dist/cli/commands/codegraph-commands.js +14 -397
- package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
- package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
- package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
- package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
- package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
- package/dist/cli/commands/codegraph-repair-commands.js +94 -0
- package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
- package/dist/cli/commands/codegraph-status-command.js +27 -214
- package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
- package/dist/cli/commands/codegraph-status-integrity.js +121 -0
- package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
- package/dist/cli/commands/codegraph-status-json.js +127 -0
- package/dist/cli/commands/compact-command.d.ts +6 -2
- package/dist/cli/commands/compact-command.js +12 -559
- package/dist/cli/commands/compact-dry-run-command.d.ts +3 -0
- package/dist/cli/commands/compact-dry-run-command.js +87 -0
- package/dist/cli/commands/compact-force-command.d.ts +3 -0
- package/dist/cli/commands/compact-force-command.js +98 -0
- package/dist/cli/commands/compact-harness-window-command.d.ts +3 -0
- package/dist/cli/commands/compact-harness-window-command.js +174 -0
- package/dist/cli/commands/compact-history-command.d.ts +3 -0
- package/dist/cli/commands/compact-history-command.js +89 -0
- package/dist/cli/commands/compact-read-commands.d.ts +3 -0
- package/dist/cli/commands/compact-read-commands.js +123 -0
- package/dist/cli/commands/compact-settle-command.d.ts +3 -0
- package/dist/cli/commands/compact-settle-command.js +130 -0
- package/dist/cli/commands/compact-shared.d.ts +9 -0
- package/dist/cli/commands/compact-shared.js +26 -0
- package/dist/cli/commands/container-command-shared.d.ts +60 -0
- package/dist/cli/commands/container-command-shared.js +52 -0
- package/dist/cli/commands/container-commands.d.ts +1 -1
- package/dist/cli/commands/container-commands.js +4 -216
- package/dist/cli/commands/container-release-command.d.ts +3 -0
- package/dist/cli/commands/container-release-command.js +105 -0
- package/dist/cli/commands/container-spawn-command.d.ts +3 -0
- package/dist/cli/commands/container-spawn-command.js +148 -0
- package/dist/cli/commands/context-check-command.d.ts +3 -0
- package/dist/cli/commands/context-check-command.js +81 -0
- package/dist/cli/commands/context-commands.d.ts +2 -7
- package/dist/cli/commands/context-commands.js +6 -276
- package/dist/cli/commands/context-layer-command.d.ts +3 -0
- package/dist/cli/commands/context-layer-command.js +34 -0
- package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
- package/dist/cli/commands/context-layer-fetchers.js +162 -0
- package/dist/cli/commands/context-status-command.d.ts +17 -0
- package/dist/cli/commands/context-status-command.js +41 -0
- package/dist/cli/commands/contract-write-command.d.ts +3 -0
- package/dist/cli/commands/contract-write-command.js +144 -0
- package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
- package/dist/cli/commands/core/doctor-bindings.js +30 -0
- package/dist/cli/commands/core/doctor-command.d.ts +4 -18
- package/dist/cli/commands/core/doctor-command.js +2 -323
- package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
- package/dist/cli/commands/core/doctor-logs.js +32 -0
- package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
- package/dist/cli/commands/core/doctor-probes.js +55 -0
- package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
- package/dist/cli/commands/core/doctor-run-command.js +172 -0
- package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
- package/dist/cli/commands/core/doctor-summary.js +39 -0
- package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
- package/dist/cli/commands/core/memory-command-shared.js +20 -0
- package/dist/cli/commands/core/memory-command.d.ts +1 -1
- package/dist/cli/commands/core/memory-command.js +6 -227
- package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
- package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
- package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-extract-command.js +90 -0
- package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-sync-command.js +38 -0
- package/dist/cli/commands/core/session-command.d.ts +1 -1
- package/dist/cli/commands/core/session-command.js +12 -206
- package/dist/cli/commands/core/session-info-command.d.ts +3 -0
- package/dist/cli/commands/core/session-info-command.js +142 -0
- package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
- package/dist/cli/commands/core/session-verb-commands.js +58 -0
- package/dist/cli/commands/core/skill-command.d.ts +1 -44
- package/dist/cli/commands/core/skill-command.js +13 -541
- package/dist/cli/commands/core/skill-context-verdict.d.ts +38 -0
- package/dist/cli/commands/core/skill-context-verdict.js +63 -0
- package/dist/cli/commands/core/skill-generated-config-notice.d.ts +41 -0
- package/dist/cli/commands/core/skill-generated-config-notice.js +75 -0
- package/dist/cli/commands/core/skill-heartbeat-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-heartbeat-commands.js +50 -0
- package/dist/cli/commands/core/skill-presence-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-presence-commands.js +123 -0
- package/dist/cli/commands/core/skill-presence-housekeeping-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-presence-housekeeping-commands.js +165 -0
- package/dist/cli/commands/core/skill-registry-commands.d.ts +3 -0
- package/dist/cli/commands/core/skill-registry-commands.js +117 -0
- package/dist/cli/commands/core/skill-runbook-command.d.ts +3 -0
- package/dist/cli/commands/core/skill-runbook-command.js +29 -0
- package/dist/cli/commands/core/standards-command.d.ts +1 -24
- package/dist/cli/commands/core/standards-command.js +33 -201
- package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-init-command.js +87 -0
- package/dist/cli/commands/core/standards-lint.d.ts +24 -0
- package/dist/cli/commands/core/standards-lint.js +57 -0
- package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-migrate-command.js +57 -0
- package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
- package/dist/cli/commands/cron-scheduler-commands.js +36 -206
- package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
- package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
- package/dist/cli/commands/cron-scheduler-shared.js +48 -0
- package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
- package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
- package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
- package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
- package/dist/cli/commands/dispatch-command-spec.d.ts +2 -0
- package/dist/cli/commands/dispatch-command-spec.js +62 -0
- package/dist/cli/commands/dispatch-commands.js +159 -775
- package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
- package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
- package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
- package/dist/cli/commands/dispatch-dag-failure.js +16 -0
- package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
- package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
- package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
- package/dist/cli/commands/dispatch-dag-runners.js +73 -0
- package/dist/cli/commands/dispatch-detached-branch.d.ts +3 -0
- package/dist/cli/commands/dispatch-detached-branch.js +58 -0
- package/dist/cli/commands/dispatch-envelope.d.ts +36 -0
- package/dist/cli/commands/dispatch-envelope.js +104 -0
- package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
- package/dist/cli/commands/dispatch-from-dag.js +87 -257
- package/dist/cli/commands/dispatch-isolation-lease.d.ts +17 -0
- package/dist/cli/commands/dispatch-isolation-lease.js +149 -0
- package/dist/cli/commands/dispatch-preflight.d.ts +7 -0
- package/dist/cli/commands/dispatch-preflight.js +105 -0
- package/dist/cli/commands/dispatch-prompt-blocks.d.ts +10 -0
- package/dist/cli/commands/dispatch-prompt-blocks.js +56 -0
- package/dist/cli/commands/dispatch-prompt-composition.d.ts +30 -0
- package/dist/cli/commands/dispatch-prompt-composition.js +171 -0
- package/dist/cli/commands/dispatch-record-write.d.ts +24 -0
- package/dist/cli/commands/dispatch-record-write.js +96 -0
- package/dist/cli/commands/dispatch-tool-call.d.ts +15 -0
- package/dist/cli/commands/dispatch-tool-call.js +128 -0
- package/dist/cli/commands/evolution-command-shared.d.ts +78 -0
- package/dist/cli/commands/evolution-command-shared.js +107 -0
- package/dist/cli/commands/evolution-commands.d.ts +11 -1
- package/dist/cli/commands/evolution-commands.js +19 -350
- package/dist/cli/commands/evolution-evaluate-command.d.ts +24 -0
- package/dist/cli/commands/evolution-evaluate-command.js +138 -0
- package/dist/cli/commands/evolution-propose-command.d.ts +23 -0
- package/dist/cli/commands/evolution-propose-command.js +145 -0
- package/dist/cli/commands/evolution-status-command.d.ts +17 -0
- package/dist/cli/commands/evolution-status-command.js +41 -0
- package/dist/cli/commands/evolution-verdict-commands.d.ts +30 -0
- package/dist/cli/commands/evolution-verdict-commands.js +100 -0
- package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
- package/dist/cli/commands/final-review-command-envelopes.js +100 -0
- package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
- package/dist/cli/commands/final-review-command-shared.js +35 -0
- package/dist/cli/commands/final-review-commands.d.ts +7 -27
- package/dist/cli/commands/final-review-commands.js +13 -240
- package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
- package/dist/cli/commands/final-review-prepare-command.js +200 -0
- package/dist/cli/commands/finalize-accumulator.d.ts +44 -0
- package/dist/cli/commands/finalize-accumulator.js +55 -0
- package/dist/cli/commands/finalize-branches.d.ts +34 -0
- package/dist/cli/commands/finalize-branches.js +119 -0
- package/dist/cli/commands/finalize-runners.d.ts +3 -0
- package/dist/cli/commands/finalize-runners.js +92 -0
- package/dist/cli/commands/finalize-selection.d.ts +65 -0
- package/dist/cli/commands/finalize-selection.js +35 -0
- package/dist/cli/commands/gate-commands.js +26 -8
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
- package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
- package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
- package/dist/cli/commands/hooks-command-shared.js +32 -0
- package/dist/cli/commands/hooks-commands.d.ts +20 -0
- package/dist/cli/commands/hooks-commands.js +75 -309
- package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
- package/dist/cli/commands/hooks-install-envelopes.js +144 -0
- package/dist/cli/commands/hooks-status-command.d.ts +3 -0
- package/dist/cli/commands/hooks-status-command.js +93 -0
- package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
- package/dist/cli/commands/hooks-uninstall-command.js +43 -0
- package/dist/cli/commands/job-checkpoint-commands.d.ts +3 -0
- package/dist/cli/commands/job-checkpoint-commands.js +157 -0
- package/dist/cli/commands/job-command-shared.d.ts +109 -0
- package/dist/cli/commands/job-command-shared.js +72 -0
- package/dist/cli/commands/job-commands.d.ts +4 -64
- package/dist/cli/commands/job-commands.js +42 -552
- package/dist/cli/commands/job-cost-check-command.d.ts +3 -0
- package/dist/cli/commands/job-cost-check-command.js +41 -0
- package/dist/cli/commands/job-init-status-commands.d.ts +3 -0
- package/dist/cli/commands/job-init-status-commands.js +149 -0
- package/dist/cli/commands/job-run-commands.d.ts +3 -0
- package/dist/cli/commands/job-run-commands.js +97 -0
- package/dist/cli/commands/job-state-root.d.ts +35 -0
- package/dist/cli/commands/job-state-root.js +76 -0
- package/dist/cli/commands/loop-command-shared.d.ts +31 -0
- package/dist/cli/commands/loop-command-shared.js +15 -0
- package/dist/cli/commands/loop-commands.d.ts +12 -17
- package/dist/cli/commands/loop-commands.js +56 -238
- package/dist/cli/commands/loop-eval-capture-index.d.ts +4 -0
- package/dist/cli/commands/loop-eval-capture-index.js +44 -0
- package/dist/cli/commands/loop-eval-commands.d.ts +8 -5
- package/dist/cli/commands/loop-eval-commands.js +12 -626
- package/dist/cli/commands/loop-eval-eval-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-eval-command.js +168 -0
- package/dist/cli/commands/loop-eval-monotonic-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-monotonic-command.js +90 -0
- package/dist/cli/commands/loop-eval-parents.d.ts +7 -0
- package/dist/cli/commands/loop-eval-parents.js +20 -0
- package/dist/cli/commands/loop-eval-run-code.d.ts +7 -0
- package/dist/cli/commands/loop-eval-run-code.js +40 -0
- package/dist/cli/commands/loop-eval-run-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-run-command.js +113 -0
- package/dist/cli/commands/loop-eval-spec-commands.d.ts +3 -0
- package/dist/cli/commands/loop-eval-spec-commands.js +165 -0
- package/dist/cli/commands/loop-eval-spec-lint-command.d.ts +3 -0
- package/dist/cli/commands/loop-eval-spec-lint-command.js +42 -0
- package/dist/cli/commands/loop-eval-workflow-commands.d.ts +3 -0
- package/dist/cli/commands/loop-eval-workflow-commands.js +141 -0
- package/dist/cli/commands/loop-export-command.d.ts +3 -0
- package/dist/cli/commands/loop-export-command.js +73 -0
- package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
- package/dist/cli/commands/loop-goal-compose-command.js +36 -0
- package/dist/cli/commands/loop-import-command.d.ts +3 -0
- package/dist/cli/commands/loop-import-command.js +86 -0
- package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
- package/dist/cli/commands/loop-placeholder-commands.js +52 -0
- package/dist/cli/commands/mcp-commands.d.ts +10 -0
- package/dist/cli/commands/mcp-commands.js +157 -0
- package/dist/cli/commands/memory-command-shared.d.ts +59 -0
- package/dist/cli/commands/memory-command-shared.js +39 -0
- package/dist/cli/commands/memory-commands.d.ts +6 -79
- package/dist/cli/commands/memory-commands.js +19 -309
- package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
- package/dist/cli/commands/memory-ingest-command.js +50 -0
- package/dist/cli/commands/memory-list-command.d.ts +16 -0
- package/dist/cli/commands/memory-list-command.js +129 -0
- package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
- package/dist/cli/commands/memory-reindex-command.js +78 -0
- package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
- package/dist/cli/commands/memory-rotate-command.js +55 -0
- package/dist/cli/commands/memory-search-command.d.ts +7 -0
- package/dist/cli/commands/memory-search-command.js +46 -0
- package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
- package/dist/cli/commands/openspec-archive-command.js +55 -0
- package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
- package/dist/cli/commands/openspec-command-shared.js +135 -0
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +33 -306
- package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
- package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
- package/dist/cli/commands/openspec-init-command.d.ts +3 -0
- package/dist/cli/commands/openspec-init-command.js +49 -0
- package/dist/cli/commands/openspec-list-command.d.ts +3 -0
- package/dist/cli/commands/openspec-list-command.js +27 -0
- package/dist/cli/commands/openspec-render-command.d.ts +3 -0
- package/dist/cli/commands/openspec-render-command.js +33 -0
- package/dist/cli/commands/openspec-show-command.d.ts +3 -0
- package/dist/cli/commands/openspec-show-command.js +33 -0
- package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
- package/dist/cli/commands/openspec-to-rd-command.js +33 -0
- package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
- package/dist/cli/commands/openspec-validate-command.js +45 -0
- package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
- package/dist/cli/commands/playwright-browser-command.js +61 -0
- package/dist/cli/commands/playwright-commands.d.ts +10 -62
- package/dist/cli/commands/playwright-commands.js +77 -400
- package/dist/cli/commands/playwright-envelope.d.ts +8 -0
- package/dist/cli/commands/playwright-envelope.js +29 -0
- package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
- package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
- package/dist/cli/commands/playwright-session-store.d.ts +65 -0
- package/dist/cli/commands/playwright-session-store.js +189 -0
- package/dist/cli/commands/project-commands.d.ts +19 -0
- package/dist/cli/commands/project-commands.js +98 -259
- package/dist/cli/commands/project-context-command.d.ts +3 -0
- package/dist/cli/commands/project-context-command.js +44 -0
- package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
- package/dist/cli/commands/project-dashboard-command.js +74 -0
- package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
- package/dist/cli/commands/project-knowledge-command.js +48 -0
- package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
- package/dist/cli/commands/project-memories-show-command.js +87 -0
- package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
- package/dist/cli/commands/project-memory-index-command.js +31 -0
- package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
- package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
- package/dist/cli/commands/qa-commands.d.ts +14 -87
- package/dist/cli/commands/qa-commands.js +17 -315
- package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
- package/dist/cli/commands/qa-context-prestep.js +34 -0
- package/dist/cli/commands/qa-run-command.d.ts +3 -0
- package/dist/cli/commands/qa-run-command.js +105 -0
- package/dist/cli/commands/qa-run-options.d.ts +23 -0
- package/dist/cli/commands/qa-run-options.js +31 -0
- package/dist/cli/commands/qa-run-slice.d.ts +41 -0
- package/dist/cli/commands/qa-run-slice.js +145 -0
- package/dist/cli/commands/release-canary-command.d.ts +28 -0
- package/dist/cli/commands/release-canary-command.js +129 -0
- package/dist/cli/commands/release-command-shared.d.ts +13 -0
- package/dist/cli/commands/release-command-shared.js +18 -0
- package/dist/cli/commands/release-commands.d.ts +10 -18
- package/dist/cli/commands/release-commands.js +25 -298
- package/dist/cli/commands/release-done-command.d.ts +3 -0
- package/dist/cli/commands/release-done-command.js +64 -0
- package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
- package/dist/cli/commands/release-hotfix-command.js +50 -0
- package/dist/cli/commands/release-plan-command.d.ts +3 -0
- package/dist/cli/commands/release-plan-command.js +33 -0
- package/dist/cli/commands/release-precheck-command.d.ts +3 -0
- package/dist/cli/commands/release-precheck-command.js +28 -0
- package/dist/cli/commands/release-promote-command.d.ts +3 -0
- package/dist/cli/commands/release-promote-command.js +34 -0
- package/dist/cli/commands/release-rollback-command.d.ts +3 -0
- package/dist/cli/commands/release-rollback-command.js +33 -0
- package/dist/cli/commands/release-watch-command.d.ts +3 -0
- package/dist/cli/commands/release-watch-command.js +44 -0
- package/dist/cli/commands/request-command-options.d.ts +49 -0
- package/dist/cli/commands/request-command-options.js +1 -0
- package/dist/cli/commands/request-commands.d.ts +3 -9
- package/dist/cli/commands/request-commands.js +17 -522
- package/dist/cli/commands/request-init-command.d.ts +3 -0
- package/dist/cli/commands/request-init-command.js +100 -0
- package/dist/cli/commands/request-lint-command.d.ts +3 -0
- package/dist/cli/commands/request-lint-command.js +50 -0
- package/dist/cli/commands/request-list-command.d.ts +10 -0
- package/dist/cli/commands/request-list-command.js +53 -0
- package/dist/cli/commands/request-repair-status-command.d.ts +3 -0
- package/dist/cli/commands/request-repair-status-command.js +61 -0
- package/dist/cli/commands/request-show-command.d.ts +3 -0
- package/dist/cli/commands/request-show-command.js +56 -0
- package/dist/cli/commands/request-transition-command.d.ts +3 -0
- package/dist/cli/commands/request-transition-command.js +122 -0
- package/dist/cli/commands/request-transition-failures.d.ts +8 -0
- package/dist/cli/commands/request-transition-failures.js +90 -0
- package/dist/cli/commands/request-transition-hooks.d.ts +50 -0
- package/dist/cli/commands/request-transition-hooks.js +115 -0
- package/dist/cli/commands/request-transition-preflight.d.ts +10 -0
- package/dist/cli/commands/request-transition-preflight.js +107 -0
- package/dist/cli/commands/scan-command-shared.d.ts +96 -0
- package/dist/cli/commands/scan-command-shared.js +83 -0
- package/dist/cli/commands/scan-commands.d.ts +3 -2
- package/dist/cli/commands/scan-commands.js +23 -463
- package/dist/cli/commands/scan-inventory-commands.d.ts +3 -0
- package/dist/cli/commands/scan-inventory-commands.js +96 -0
- package/dist/cli/commands/scan-project-commands.d.ts +3 -0
- package/dist/cli/commands/scan-project-commands.js +65 -0
- package/dist/cli/commands/scan-scope-commands.d.ts +3 -0
- package/dist/cli/commands/scan-scope-commands.js +149 -0
- package/dist/cli/commands/scan-scope-helpers.d.ts +8 -0
- package/dist/cli/commands/scan-scope-helpers.js +54 -0
- package/dist/cli/commands/scan-structural-commands.d.ts +3 -0
- package/dist/cli/commands/scan-structural-commands.js +113 -0
- package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
- package/dist/cli/commands/sediment-argv-flags.js +116 -0
- package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
- package/dist/cli/commands/sediment-command-shared.js +5 -0
- package/dist/cli/commands/sediment-commands.d.ts +35 -59
- package/dist/cli/commands/sediment-commands.js +36 -590
- package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
- package/dist/cli/commands/sediment-pool-commands.js +185 -0
- package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
- package/dist/cli/commands/sediment-query-commands.js +94 -0
- package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
- package/dist/cli/commands/sediment-release-commands.js +232 -0
- package/dist/cli/commands/share-commands.d.ts +12 -68
- package/dist/cli/commands/share-commands.js +47 -556
- package/dist/cli/commands/share-error-hints.d.ts +14 -0
- package/dist/cli/commands/share-error-hints.js +38 -0
- package/dist/cli/commands/share-identity.d.ts +13 -0
- package/dist/cli/commands/share-identity.js +22 -0
- package/dist/cli/commands/share-record-paths.d.ts +37 -0
- package/dist/cli/commands/share-record-paths.js +68 -0
- package/dist/cli/commands/share-runners.d.ts +3 -0
- package/dist/cli/commands/share-runners.js +158 -0
- package/dist/cli/commands/shared-read-runners.d.ts +3 -0
- package/dist/cli/commands/shared-read-runners.js +51 -0
- package/dist/cli/commands/slice-check-command.d.ts +3 -0
- package/dist/cli/commands/slice-check-command.js +54 -0
- package/dist/cli/commands/slice-commands.d.ts +2 -22
- package/dist/cli/commands/slice-commands.js +18 -517
- package/dist/cli/commands/slice-decompose-artifacts.d.ts +18 -0
- package/dist/cli/commands/slice-decompose-artifacts.js +79 -0
- package/dist/cli/commands/slice-decompose-command.d.ts +3 -0
- package/dist/cli/commands/slice-decompose-command.js +123 -0
- package/dist/cli/commands/slice-list-commands.d.ts +3 -0
- package/dist/cli/commands/slice-list-commands.js +182 -0
- package/dist/cli/commands/slice-pick-command.d.ts +3 -0
- package/dist/cli/commands/slice-pick-command.js +60 -0
- package/dist/cli/commands/slice-plan-command.d.ts +24 -0
- package/dist/cli/commands/slice-plan-command.js +111 -0
- package/dist/cli/commands/sop-advance-command.d.ts +3 -0
- package/dist/cli/commands/sop-advance-command.js +160 -0
- package/dist/cli/commands/sop-check-command.d.ts +3 -0
- package/dist/cli/commands/sop-check-command.js +44 -0
- package/dist/cli/commands/sop-command-shared.d.ts +23 -0
- package/dist/cli/commands/sop-command-shared.js +18 -0
- package/dist/cli/commands/sop-commands.d.ts +15 -1
- package/dist/cli/commands/sop-commands.js +26 -240
- package/dist/cli/commands/sop-init-command.d.ts +3 -0
- package/dist/cli/commands/sop-init-command.js +51 -0
- package/dist/cli/commands/sop-lint-command.d.ts +3 -0
- package/dist/cli/commands/sop-lint-command.js +64 -0
- package/dist/cli/commands/sop-register-command.d.ts +3 -0
- package/dist/cli/commands/sop-register-command.js +48 -0
- package/dist/cli/commands/sop-registry-command.d.ts +3 -0
- package/dist/cli/commands/sop-registry-command.js +30 -0
- package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
- package/dist/cli/commands/statusline-command-shared.js +90 -0
- package/dist/cli/commands/statusline-commands.d.ts +1 -19
- package/dist/cli/commands/statusline-commands.js +48 -287
- package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
- package/dist/cli/commands/statusline-compact-command.js +54 -0
- package/dist/cli/commands/statusline-install-command.d.ts +3 -0
- package/dist/cli/commands/statusline-install-command.js +48 -0
- package/dist/cli/commands/statusline-render-command.d.ts +9 -0
- package/dist/cli/commands/statusline-render-command.js +55 -0
- package/dist/cli/commands/statusline-status-command.d.ts +3 -0
- package/dist/cli/commands/statusline-status-command.js +23 -0
- package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
- package/dist/cli/commands/statusline-uninstall-command.js +23 -0
- package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
- package/dist/cli/commands/test-command-run-helpers.js +73 -0
- package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
- package/dist/cli/commands/test-command-runner-resolution.js +183 -0
- package/dist/cli/commands/test-commands.d.ts +8 -56
- package/dist/cli/commands/test-commands.js +26 -249
- package/dist/cli/commands/vm-command-shared.d.ts +23 -0
- package/dist/cli/commands/vm-command-shared.js +23 -0
- package/dist/cli/commands/vm-commands.d.ts +1 -28
- package/dist/cli/commands/vm-commands.js +36 -270
- package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
- package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
- package/dist/cli/commands/vm-release-command.d.ts +5 -0
- package/dist/cli/commands/vm-release-command.js +101 -0
- package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
- package/dist/cli/commands/vm-spawn-command.js +177 -0
- package/dist/cli/commands/web-command-shared.d.ts +12 -0
- package/dist/cli/commands/web-command-shared.js +30 -0
- package/dist/cli/commands/web-commands.d.ts +7 -14
- package/dist/cli/commands/web-commands.js +6 -314
- package/dist/cli/commands/web-install-command.d.ts +10 -0
- package/dist/cli/commands/web-install-command.js +116 -0
- package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
- package/dist/cli/commands/web-lifecycle-commands.js +14 -322
- package/dist/cli/commands/web-login-command.d.ts +14 -0
- package/dist/cli/commands/web-login-command.js +189 -0
- package/dist/cli/commands/web-op-payload.d.ts +22 -0
- package/dist/cli/commands/web-op-payload.js +89 -0
- package/dist/cli/commands/web-op-refusals.d.ts +37 -0
- package/dist/cli/commands/web-op-refusals.js +73 -0
- package/dist/cli/commands/web-op-runner.d.ts +14 -0
- package/dist/cli/commands/web-op-runner.js +166 -0
- package/dist/cli/commands/web-status-command.d.ts +4 -0
- package/dist/cli/commands/web-status-command.js +32 -0
- package/dist/cli/commands/web-stop-command.d.ts +10 -0
- package/dist/cli/commands/web-stop-command.js +59 -0
- package/dist/cli/commands/web-verb-specs.d.ts +18 -0
- package/dist/cli/commands/web-verb-specs.js +66 -0
- package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
- package/dist/cli/commands/workflow-command-shared.js +74 -0
- package/dist/cli/commands/workflow-commands.d.ts +10 -1
- package/dist/cli/commands/workflow-commands.js +6 -594
- package/dist/cli/commands/workflow-gate-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-gate-commands.js +116 -0
- package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-graph-commands.js +73 -0
- package/dist/cli/commands/workflow-init-command.d.ts +3 -0
- package/dist/cli/commands/workflow-init-command.js +68 -0
- package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
- package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
- package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-node-commands.js +154 -0
- package/dist/cli/commands/workflow-plan-helpers.d.ts +48 -0
- package/dist/cli/commands/workflow-plan-helpers.js +103 -0
- package/dist/cli/commands/workflow-planning-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-planning-commands.js +56 -0
- package/dist/cli/commands/workflow-swarm-actions.d.ts +7 -0
- package/dist/cli/commands/workflow-swarm-actions.js +109 -0
- package/dist/cli/commands/workflow-swarm-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-swarm-commands.js +138 -0
- package/dist/cli/commands/workflow-tech-actions.d.ts +10 -0
- package/dist/cli/commands/workflow-tech-actions.js +150 -0
- package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
- package/dist/cli/commands/workflow-terminalize-command.js +56 -0
- package/dist/cli/commands/workspace/init-actions.d.ts +10 -0
- package/dist/cli/commands/workspace/init-actions.js +199 -0
- package/dist/cli/commands/workspace/init-codegraph-stake.d.ts +10 -0
- package/dist/cli/commands/workspace/init-codegraph-stake.js +54 -0
- package/dist/cli/commands/workspace/init-command.d.ts +8 -124
- package/dist/cli/commands/workspace/init-command.js +59 -623
- package/dist/cli/commands/workspace/init-context.d.ts +58 -0
- package/dist/cli/commands/workspace/init-context.js +121 -0
- package/dist/cli/commands/workspace/init-envelope.d.ts +3 -0
- package/dist/cli/commands/workspace/init-envelope.js +34 -0
- package/dist/cli/commands/workspace/init-failures.d.ts +3 -0
- package/dist/cli/commands/workspace/init-failures.js +84 -0
- package/dist/cli/commands/workspace/init-hooks-decision.d.ts +24 -0
- package/dist/cli/commands/workspace/init-hooks-decision.js +189 -0
- package/dist/cli/commands/workspace/init-options.d.ts +102 -0
- package/dist/cli/commands/workspace/init-options.js +1 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +10 -6
- package/dist/cli/commands/worktree-lease-commands.js +42 -512
- package/dist/cli/commands/worktree-lease-gc-command.d.ts +12 -0
- package/dist/cli/commands/worktree-lease-gc-command.js +117 -0
- package/dist/cli/commands/worktree-lease-git.d.ts +22 -0
- package/dist/cli/commands/worktree-lease-git.js +48 -0
- package/dist/cli/commands/worktree-lease-list-command.d.ts +12 -0
- package/dist/cli/commands/worktree-lease-list-command.js +100 -0
- package/dist/cli/commands/worktree-lease-load.d.ts +37 -0
- package/dist/cli/commands/worktree-lease-load.js +28 -0
- package/dist/cli/commands/worktree-lease-release-command.d.ts +13 -0
- package/dist/cli/commands/worktree-lease-release-command.js +105 -0
- package/dist/cli/commands/worktree-lease-renew-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-renew-command.js +99 -0
- package/dist/cli/commands/worktree-lease-session.d.ts +22 -0
- package/dist/cli/commands/worktree-lease-session.js +29 -0
- package/dist/cli/commands/worktree-lease-spawn-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-spawn-command.js +119 -0
- package/dist/cli/commands/worktree-lease-status-command.d.ts +11 -0
- package/dist/cli/commands/worktree-lease-status-command.js +86 -0
- package/dist/cli/commands/worktree-lease-store.d.ts +19 -0
- package/dist/cli/commands/worktree-lease-store.js +24 -0
- package/dist/cli/program.js +5 -0
- package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
- package/dist/services/code/auto-compact-artifacts.js +135 -0
- package/dist/services/code/auto-compact-attempt.d.ts +46 -0
- package/dist/services/code/auto-compact-attempt.js +88 -0
- package/dist/services/code/auto-compact-decision.d.ts +74 -0
- package/dist/services/code/auto-compact-decision.js +149 -0
- package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
- package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
- package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
- package/dist/services/code/auto-compact-envelopes.js +134 -0
- package/dist/services/code/auto-compact-history.d.ts +46 -0
- package/dist/services/code/auto-compact-history.js +17 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
- package/dist/services/code/auto-compact-orchestrator.js +165 -686
- package/dist/services/code/auto-compact-run-types.d.ts +123 -0
- package/dist/services/code/auto-compact-run-types.js +1 -0
- package/dist/services/code/emit-handoff.d.ts +35 -1
- package/dist/services/code/emit-handoff.js +128 -7
- package/dist/services/code/step-08-gate.d.ts +28 -19
- package/dist/services/code/step-08-gate.js +92 -35
- package/dist/services/config/config-coercion.d.ts +7 -0
- package/dist/services/config/config-coercion.js +156 -0
- package/dist/services/config/config-file-io.d.ts +11 -0
- package/dist/services/config/config-file-io.js +61 -0
- package/dist/services/config/config-get.d.ts +2 -0
- package/dist/services/config/config-get.js +36 -0
- package/dist/services/config/config-global-loader.d.ts +15 -0
- package/dist/services/config/config-global-loader.js +111 -0
- package/dist/services/config/config-nested-path.d.ts +3 -0
- package/dist/services/config/config-nested-path.js +53 -0
- package/dist/services/config/config-primitives.d.ts +16 -0
- package/dist/services/config/config-primitives.js +24 -0
- package/dist/services/config/config-service.d.ts +9 -33
- package/dist/services/config/config-service.js +16 -665
- package/dist/services/config/config-validation.d.ts +19 -0
- package/dist/services/config/config-validation.js +152 -0
- package/dist/services/config/config-workspace.d.ts +10 -0
- package/dist/services/config/config-workspace.js +158 -0
- package/dist/services/distribution/mcp-install-runner.d.ts +21 -0
- package/dist/services/distribution/mcp-install-runner.js +59 -0
- package/dist/services/distribution/mcp-install.d.ts +95 -0
- package/dist/services/distribution/mcp-install.js +179 -0
- package/dist/services/distribution/plugin-manifest.d.ts +97 -0
- package/dist/services/distribution/plugin-manifest.js +126 -0
- package/dist/services/hooks/mcp-surface-gate.d.ts +19 -0
- package/dist/services/hooks/mcp-surface-gate.js +87 -0
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +4 -35
- package/dist/services/ide/adapters/claude-code-adapter.js +48 -171
- package/dist/services/ide/adapters/claude-code-local-state.d.ts +28 -0
- package/dist/services/ide/adapters/claude-code-local-state.js +112 -0
- package/dist/services/ide/adapters/claude-code-model-window.d.ts +37 -0
- package/dist/services/ide/adapters/claude-code-model-window.js +113 -0
- package/dist/services/ide/ide-mcp-install-types.d.ts +78 -0
- package/dist/services/ide/ide-mcp-install-types.js +104 -0
- package/dist/services/ide/ide-types.d.ts +45 -1
- package/dist/services/ide/mcp-tool-matcher.d.ts +34 -0
- package/dist/services/ide/mcp-tool-matcher.js +84 -0
- package/dist/services/lint/npx-resolver.js +7 -0
- package/dist/services/mcp/cli-executor.d.ts +36 -0
- package/dist/services/mcp/cli-executor.js +97 -0
- package/dist/services/mcp/json-rpc.d.ts +81 -0
- package/dist/services/mcp/json-rpc.js +116 -0
- package/dist/services/mcp/memory-tool.d.ts +3 -0
- package/dist/services/mcp/memory-tool.js +62 -0
- package/dist/services/mcp/server-main.d.ts +1 -0
- package/dist/services/mcp/server-main.js +66 -0
- package/dist/services/mcp/server.d.ts +22 -0
- package/dist/services/mcp/server.js +152 -0
- package/dist/services/mcp/surface.d.ts +62 -0
- package/dist/services/mcp/surface.js +198 -0
- package/dist/services/mcp/tool-core.d.ts +42 -0
- package/dist/services/mcp/tool-core.js +137 -0
- package/dist/services/mcp/tools.d.ts +13 -0
- package/dist/services/mcp/tools.js +58 -0
- package/dist/services/readonly-surface/argv-guard.d.ts +32 -0
- package/dist/services/readonly-surface/argv-guard.js +164 -0
- package/dist/services/readonly-surface/readonly-whitelist.d.ts +147 -0
- package/dist/services/readonly-surface/readonly-whitelist.js +107 -0
- package/dist/services/readonly-surface/whitelist-generator.d.ts +64 -0
- package/dist/services/readonly-surface/whitelist-generator.js +212 -0
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +1 -0
- package/dist/services/skills/hooks-codegate-superpowers.js +26 -0
- package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
- package/dist/services/skills/hooks-settings-deny-list.js +173 -0
- package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
- package/dist/services/skills/hooks-settings-envelopes.js +79 -0
- package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
- package/dist/services/skills/hooks-settings-file-shape.js +207 -0
- package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
- package/dist/services/skills/hooks-settings-paths.js +75 -0
- package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
- package/dist/services/skills/hooks-settings-read-installed.js +60 -0
- package/dist/services/skills/hooks-settings-service.d.ts +12 -212
- package/dist/services/skills/hooks-settings-service.js +71 -649
- package/dist/services/skills/hooks-settings-types.d.ts +139 -0
- package/dist/services/skills/hooks-settings-types.js +1 -0
- package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
- package/dist/services/workspace/claude-settings-template-merge.js +243 -0
- package/dist/services/workspace/claude-settings-template.d.ts +29 -87
- package/dist/services/workspace/claude-settings-template.js +81 -236
- package/package.json +17 -6
- package/scripts/install-skills-bundles.mjs +233 -0
- package/scripts/install-skills-fs.mjs +148 -0
- package/scripts/install-skills-ide.mjs +279 -0
- package/scripts/install-skills-output-style-default.mjs +196 -0
- package/scripts/install-skills-output-styles.mjs +121 -0
- package/scripts/install-skills-report.mjs +42 -0
- package/scripts/install-skills-user-config.mjs +198 -0
- package/scripts/install-skills.mjs +36 -1066
- package/scripts/watch-tree.mjs +140 -0
- package/scripts/watch.mjs +4 -126
- package/skills/peaks-status/SKILL.md +31 -13
|
@@ -1,504 +1,95 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* peaks audit * CLI surface — Slice L2.1 + L2.3 P2-a.
|
|
3
3
|
*
|
|
4
|
-
* Registers the
|
|
5
|
-
* `
|
|
4
|
+
* Registers the `peaks audit` top-level command with the `red-lines` (L2.1),
|
|
5
|
+
* `static` (L2.3 P2-a), `prose-ratio`, `goal` and `artifact` subcommands.
|
|
6
6
|
* Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first.md`
|
|
7
7
|
* we verified that no `peaks audit` top-level exists; this is the only
|
|
8
8
|
* file that owns the registration.
|
|
9
|
+
*
|
|
10
|
+
* The action bodies live in `audit-<responsibility>-runners.ts` siblings; this
|
|
11
|
+
* file only wires the commands and delegates. Each delegate preserves the
|
|
12
|
+
* original callback's declared arity.
|
|
9
13
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
import { fail, ok } from 'peaks-loop-shared/result';
|
|
19
|
-
import { writeAuditDecision } from '../../services/audit/decision-writer.js';
|
|
20
|
-
import { computeProseRatio } from '../../services/audit/prose-ratio-calculator.js';
|
|
21
|
-
import { writeMachineOutput, writeNarrative, writePrompt, writeDecision } from '../../services/audit/artifact-writer.js';
|
|
22
|
-
import { parseRedLineAuditInput, RedLineAuditInputError } from '../../services/audit/red-line-audit-input.js';
|
|
23
|
-
const SUPPORTED_ARTIFACT_KINDS = [
|
|
24
|
-
'decision',
|
|
25
|
-
'prompt',
|
|
26
|
-
'machine-output',
|
|
27
|
-
'narrative'
|
|
28
|
-
];
|
|
29
|
-
function isSupportedArtifactKind(value) {
|
|
30
|
-
return SUPPORTED_ARTIFACT_KINDS.includes(value);
|
|
31
|
-
}
|
|
32
|
-
/** Whitelist of supported `--llm-provider` values for `peaks audit goal`. */
|
|
33
|
-
const SUPPORTED_LLM_PROVIDERS = ['anthropic', 'stub'];
|
|
34
|
-
/**
|
|
35
|
-
* The real provider is the default: `peaks audit goal` is the entry gate for
|
|
36
|
-
* every peaks-* workflow, so it must audit by default and only scaffold when
|
|
37
|
-
* a caller explicitly asks for `stub`.
|
|
38
|
-
*/
|
|
39
|
-
const DEFAULT_LLM_PROVIDER = 'anthropic';
|
|
40
|
-
function isSupportedLlmProvider(value) {
|
|
41
|
-
return SUPPORTED_LLM_PROVIDERS.includes(value);
|
|
42
|
-
}
|
|
43
|
-
function validateProjectRoot(projectArg) {
|
|
44
|
-
const projectRoot = resolve(projectArg);
|
|
45
|
-
if (!existsSync(projectRoot)) {
|
|
46
|
-
return {
|
|
47
|
-
ok: false,
|
|
48
|
-
code: 'PROJECT_NOT_FOUND',
|
|
49
|
-
message: `project path does not exist: ${projectArg}`
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
let stat;
|
|
53
|
-
try {
|
|
54
|
-
stat = statSync(projectRoot);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
return { ok: false, code: 'INVALID_PROJECT', message: getErrorMessage(error) };
|
|
58
|
-
}
|
|
59
|
-
if (!stat.isDirectory()) {
|
|
60
|
-
return {
|
|
61
|
-
ok: false,
|
|
62
|
-
code: 'INVALID_PROJECT',
|
|
63
|
-
message: `project path is not a directory: ${projectArg}`
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return { ok: true, projectRoot };
|
|
67
|
-
}
|
|
68
|
-
export function registerAuditCommands(program, io) {
|
|
69
|
-
const audit = program
|
|
70
|
-
.command('audit', { hidden: true })
|
|
71
|
-
.description('Audit a project for compliance with peaks-loop red lines (P0 / P1 / P2 tiers)');
|
|
14
|
+
import { addJsonOption } from '../cli-helpers.js';
|
|
15
|
+
import { DEFAULT_LLM_PROVIDER, SUPPORTED_ARTIFACT_KINDS, SUPPORTED_LLM_PROVIDERS } from './audit-command-shared.js';
|
|
16
|
+
import { RED_LINES_DESCRIPTION, runRedLines } from './audit-red-lines-runners.js';
|
|
17
|
+
import { PROSE_RATIO_DESCRIPTION, STATIC_AUDIT_DESCRIPTION, runProseRatio, runStaticAuditCommand } from './audit-static-runners.js';
|
|
18
|
+
import { AUDIT_GOAL_DESCRIPTION, runAuditGoal } from './audit-goal-runners.js';
|
|
19
|
+
import { ARTIFACT_GROUP_DESCRIPTION, ARTIFACT_WRITE_DESCRIPTION, runArtifactWrite } from './audit-artifact-runners.js';
|
|
20
|
+
const AUDIT_DESCRIPTION = 'Audit a project for compliance with peaks-loop red lines (P0 / P1 / P2 tiers)';
|
|
21
|
+
function registerRedLinesCommand(audit, io) {
|
|
72
22
|
addJsonOption(audit
|
|
73
23
|
.command('red-lines')
|
|
74
|
-
.description(
|
|
75
|
-
.requiredOption('--project <path>', 'target project root')).action((options) =>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const result = runRedLinesAudit({ projectRoot: validation.projectRoot });
|
|
91
|
-
const nextActions = [];
|
|
92
|
-
if (result.audit.proseOnly > 0) {
|
|
93
|
-
nextActions.push(`${result.audit.proseOnly} prose-only red lines remain. Plan P1/P2 enforcers in L2.2-L2.4.`);
|
|
94
|
-
}
|
|
95
|
-
if (result.audit.cliBacked > 0) {
|
|
96
|
-
nextActions.push(`${result.audit.cliBacked} red lines are now cli-backed. Re-run after each enforcer lands to track the prose-only ratio.`);
|
|
97
|
-
}
|
|
98
|
-
const envelope = ok('audit.red-lines', result.audit, result.warnings.map((w) => `${w.file}: ${w.message}`), nextActions);
|
|
99
|
-
printResult(io, envelope, options.json);
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
printResult(io, fail('audit.red-lines', 'SCANNER_FAILED', getErrorMessage(error), {
|
|
103
|
-
totalRedLines: 0,
|
|
104
|
-
cliBacked: 0,
|
|
105
|
-
partial: 0,
|
|
106
|
-
proseOnly: 0,
|
|
107
|
-
audit: [],
|
|
108
|
-
enforcerFindings: []
|
|
109
|
-
}, ['Inspect scanner logs and re-run with the same --project path']), options.json);
|
|
110
|
-
process.exitCode = 1;
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
// Slice K1 (2.8.0): `--record` persists the audit snapshot as a
|
|
114
|
-
// project-memory decision at `.peaks/memory/audit-decisions/<slug>.md`.
|
|
115
|
-
// `--rid <id>` is an optional disambiguator for multiple audits on
|
|
116
|
-
// the same day (slug becomes `audit-decision-<date>-<rid>`).
|
|
117
|
-
// Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first`
|
|
118
|
-
// and the dev-preference red line "Default-no on new CLI commands",
|
|
119
|
-
// we extend the existing command rather than register a new subcommand.
|
|
120
|
-
//
|
|
121
|
-
// `--enable-agent-shield` / `--disable-agent-shield` flags were removed.
|
|
122
|
-
// `runStaticAudit`'s agentShield state is a frozen "always disabled" stub
|
|
123
|
-
// (Slice 3 of 4.0.0-beta.11 removed the subprocess), so the flags had no
|
|
124
|
-
// effect and the ECC opt-in prose misled users on every run.
|
|
24
|
+
.description(RED_LINES_DESCRIPTION)
|
|
25
|
+
.requiredOption('--project <path>', 'target project root')).action((options) => runRedLines(options, io));
|
|
26
|
+
}
|
|
27
|
+
// Slice K1 (2.8.0): `--record` persists the audit snapshot as a
|
|
28
|
+
// project-memory decision at `.peaks/memory/audit-decisions/<slug>.md`.
|
|
29
|
+
// `--rid <id>` is an optional disambiguator for multiple audits on
|
|
30
|
+
// the same day (slug becomes `audit-decision-<date>-<rid>`).
|
|
31
|
+
// Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first`
|
|
32
|
+
// and the dev-preference red line "Default-no on new CLI commands",
|
|
33
|
+
// we extend the existing command rather than register a new subcommand.
|
|
34
|
+
//
|
|
35
|
+
// `--enable-agent-shield` / `--disable-agent-shield` flags were removed.
|
|
36
|
+
// `runStaticAudit`'s agentShield state is a frozen "always disabled" stub
|
|
37
|
+
// (Slice 3 of 4.0.0-beta.11 removed the subprocess), so the flags had no
|
|
38
|
+
// effect and the ECC opt-in prose misled users on every run.
|
|
39
|
+
function registerStaticCommand(audit, io) {
|
|
125
40
|
addJsonOption(audit
|
|
126
41
|
.command('static')
|
|
127
|
-
.description(
|
|
42
|
+
.description(STATIC_AUDIT_DESCRIPTION)
|
|
128
43
|
.requiredOption('--project <path>', 'target project root')
|
|
129
44
|
.option('--record', 'persist the audit snapshot to .peaks/memory/audit-decisions/ as a project-memory decision')
|
|
130
|
-
.option('--rid <rid>', 'disambiguator for the decision record slug (used with --record; pairs multiple audits on the same day)')).action((options) =>
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// when the user passes `--rid` without `--record` so the CLI fails
|
|
139
|
-
// loudly rather than silently ignoring the request id.
|
|
140
|
-
if (options.rid && !options.record) {
|
|
141
|
-
printResult(io, fail('audit.static', 'FLAGS_CONFLICT', '`--rid` requires `--record` (decision slug disambiguator has no effect without persistence)', emptyStaticAuditData(), ['Pass `--record` together with `--rid <id>`, or omit `--rid`']), options.json);
|
|
142
|
-
process.exitCode = 1;
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
try {
|
|
146
|
-
const result = runStaticAudit({
|
|
147
|
-
projectRoot: validation.projectRoot
|
|
148
|
-
});
|
|
149
|
-
// Persist the decision record when `--record` is set. The writer is
|
|
150
|
-
// idempotent at the slug level (same date+rid → same file); repeated
|
|
151
|
-
// runs overwrite. Failures here are surfaced as warnings so the
|
|
152
|
-
// primary audit JSON still reaches the caller.
|
|
153
|
-
let decision;
|
|
154
|
-
let recordWarning;
|
|
155
|
-
if (options.record) {
|
|
156
|
-
try {
|
|
157
|
-
decision = writeAuditDecision(result.audit, {
|
|
158
|
-
projectRoot: validation.projectRoot,
|
|
159
|
-
...(options.rid ? { rid: options.rid } : {})
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
catch (writeError) {
|
|
163
|
-
recordWarning = `Failed to write decision record: ${getErrorMessage(writeError)}`;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
const data = {
|
|
167
|
-
audit: result.audit,
|
|
168
|
-
agentShield: result.agentShield,
|
|
169
|
-
...(decision ? { decision } : {})
|
|
170
|
-
};
|
|
171
|
-
const nextActions = [];
|
|
172
|
-
// nextActions block was removed. `agentShield.installed` is a frozen
|
|
173
|
-
// `false`, so the block printed on every run and pointed users at a
|
|
174
|
-
// removed subprocess, removed flags, and a dead preference.
|
|
175
|
-
if (decision) {
|
|
176
|
-
nextActions.push(`Decision record written: ${decision.filePath}`);
|
|
177
|
-
nextActions.push(`Index synced: ${decision.indexSynced ? 'yes' : 'no'} (memory hot.decision[] now includes this audit)`);
|
|
178
|
-
}
|
|
179
|
-
const warnings = recordWarning ? [...result.warnings, recordWarning] : [...result.warnings];
|
|
180
|
-
const envelope = ok('audit.static', data, warnings, nextActions);
|
|
181
|
-
printResult(io, envelope, options.json);
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
printResult(io, fail('audit.static', 'SCANNER_FAILED', getErrorMessage(error), emptyStaticAuditData(), ['Inspect scanner logs and re-run with the same --project path']), options.json);
|
|
185
|
-
process.exitCode = 1;
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
// v2.14.0 Slice C Group G3: `peaks audit prose-ratio` — CI gate.
|
|
189
|
-
// Calls `peaks audit static --json` internally, parses the prose-only
|
|
190
|
-
// ratio, exits 1 if the ratio exceeds the target (default 5%).
|
|
191
|
-
// Rationale: a single CLI primitive for the CI gate; the underlying
|
|
192
|
-
// ratio lives in static-service.ts (computed via prose-ratio-calculator).
|
|
45
|
+
.option('--rid <rid>', 'disambiguator for the decision record slug (used with --record; pairs multiple audits on the same day)')).action((options) => runStaticAuditCommand(options, io));
|
|
46
|
+
}
|
|
47
|
+
// v2.14.0 Slice C Group G3: `peaks audit prose-ratio` — CI gate.
|
|
48
|
+
// Calls `peaks audit static --json` internally, parses the prose-only
|
|
49
|
+
// ratio, exits 1 if the ratio exceeds the target (default 5%).
|
|
50
|
+
// Rationale: a single CLI primitive for the CI gate; the underlying
|
|
51
|
+
// ratio lives in static-service.ts (computed via prose-ratio-calculator).
|
|
52
|
+
function registerProseRatioCommand(audit, io) {
|
|
193
53
|
addJsonOption(audit
|
|
194
54
|
.command('prose-ratio')
|
|
195
|
-
.description(
|
|
55
|
+
.description(PROSE_RATIO_DESCRIPTION)
|
|
196
56
|
.requiredOption('--project <path>', 'target project root')
|
|
197
|
-
.option('--target <n>', 'maximum prose-only ratio (0-1, default 0.05)', '0.05')).action((options) =>
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (!Number.isFinite(target) || target < 0 || target > 1) {
|
|
206
|
-
printResult(io, fail('audit.prose-ratio', 'INVALID_TARGET', `--target must be a number between 0 and 1 (got "${options.target}")`, emptyProseRatioResult(), ['Pass --target 0.05 (default) or another number in [0, 1]']), options.json);
|
|
207
|
-
process.exitCode = 1;
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
try {
|
|
211
|
-
const result = runStaticAudit({ projectRoot: validation.projectRoot });
|
|
212
|
-
const ratio = computeProseRatio(result.audit.audit, { target });
|
|
213
|
-
const envelope = ok('audit.prose-ratio', ratio, [], [
|
|
214
|
-
ratio.exceeds
|
|
215
|
-
? `Prose-only ratio ${(ratio.ratio * 100).toFixed(2)}% exceeds target ${(ratio.target * 100).toFixed(2)}% (${ratio.proseOnly}/${ratio.totalRedLines})`
|
|
216
|
-
: `Prose-only ratio ${(ratio.ratio * 100).toFixed(2)}% within target ${(ratio.target * 100).toFixed(2)}% (${ratio.proseOnly}/${ratio.totalRedLines})`
|
|
217
|
-
]);
|
|
218
|
-
printResult(io, envelope, options.json);
|
|
219
|
-
if (ratio.exceeds) {
|
|
220
|
-
process.exitCode = 1;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
printResult(io, fail('audit.prose-ratio', 'SCANNER_FAILED', getErrorMessage(error), emptyProseRatioResult(), ['Inspect scanner logs and re-run with the same --project path']), options.json);
|
|
225
|
-
process.exitCode = 1;
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
// gate it advertises. `auditGoal()` was already correct (one `LlmRunner`
|
|
229
|
-
// call, 6-dimension validation, `IncompleteAuditError` on a partial audit);
|
|
230
|
-
// what was missing was a provider binding, so the command answered with a
|
|
231
|
-
// fixed `scaffold-only` envelope no matter what it was asked.
|
|
232
|
-
//
|
|
233
|
-
// `anthropic` is now the default and reads the session's own environment
|
|
234
|
-
// (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
|
|
235
|
-
// reported as a scaffold, and a missing credential fails loudly — a silent
|
|
236
|
-
// fall back to the scaffold envelope would leave the gate exactly as fake
|
|
237
|
-
// as it was before this slice.
|
|
57
|
+
.option('--target <n>', 'maximum prose-only ratio (0-1, default 0.05)', '0.05')).action((options) => runProseRatio(options, io));
|
|
58
|
+
}
|
|
59
|
+
// `anthropic` is now the default and reads the session's own environment
|
|
60
|
+
// (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
|
|
61
|
+
// reported as a scaffold, and a missing credential fails loudly — a silent
|
|
62
|
+
// fall back to the scaffold envelope would leave the gate exactly as fake
|
|
63
|
+
// as it was before this slice.
|
|
64
|
+
function registerGoalCommand(audit, io) {
|
|
238
65
|
addJsonOption(audit
|
|
239
66
|
.command('goal')
|
|
240
|
-
.description(
|
|
67
|
+
.description(AUDIT_GOAL_DESCRIPTION)
|
|
241
68
|
.requiredOption('--project <path>', 'target project root')
|
|
242
69
|
.requiredOption('--need <text>', 'the human need to audit (becomes input.need for auditGoal())')
|
|
243
|
-
.option('--llm-provider <name>', `LLM provider (${SUPPORTED_LLM_PROVIDERS.join(' | ')}); stub performs no audit`, DEFAULT_LLM_PROVIDER)).action(
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
printResult(io, fail('audit.goal', validation.code, validation.message, auditGoalFailureData(options.need, options.project), ['Verify the project path exists and is a directory']), options.json);
|
|
247
|
-
process.exitCode = 1;
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
const provider = options.llmProvider ?? DEFAULT_LLM_PROVIDER;
|
|
251
|
-
if (!isSupportedLlmProvider(provider)) {
|
|
252
|
-
printResult(io, fail('audit.goal', 'LLM_PROVIDER_NOT_IMPLEMENTED', `LLM provider "${provider}" is not implemented. Supported providers: ${SUPPORTED_LLM_PROVIDERS.join(', ')}.`, auditGoalFailureData(options.need, validation.projectRoot), [
|
|
253
|
-
`Re-run with \`--llm-provider ${DEFAULT_LLM_PROVIDER}\` for a real audit, or \`--llm-provider stub\` for an offline scaffold.`
|
|
254
|
-
]), options.json);
|
|
255
|
-
process.exitCode = 1;
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
const isStub = provider === 'stub';
|
|
259
|
-
const providerBinding = isStub
|
|
260
|
-
? 'stub'
|
|
261
|
-
: 'anthropic-messages-api';
|
|
262
|
-
try {
|
|
263
|
-
let model;
|
|
264
|
-
let llmRunner;
|
|
265
|
-
if (isStub) {
|
|
266
|
-
llmRunner = createStubRunner();
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
const config = resolveAnthropicConfig();
|
|
270
|
-
model = config.model;
|
|
271
|
-
llmRunner = createAnthropicRunner(config);
|
|
272
|
-
}
|
|
273
|
-
const result = await auditGoal({ need: options.need }, llmRunner);
|
|
274
|
-
const data = {
|
|
275
|
-
status: isStub ? 'scaffold-only' : 'audit-complete',
|
|
276
|
-
providerBinding,
|
|
277
|
-
need: options.need,
|
|
278
|
-
projectRoot: validation.projectRoot,
|
|
279
|
-
result,
|
|
280
|
-
...(model === undefined ? {} : { model })
|
|
281
|
-
};
|
|
282
|
-
const envelope = ok('audit.goal', data, [], isStub
|
|
283
|
-
? [
|
|
284
|
-
`Stub provider: the 6 dimensions below are placeholders, not findings. Re-run with \`--llm-provider ${DEFAULT_LLM_PROVIDER}\` for a real audit.`
|
|
285
|
-
]
|
|
286
|
-
: [
|
|
287
|
-
`Audit produced by ${providerBinding}${model === undefined ? '' : ` (model: ${model})`}.`
|
|
288
|
-
]);
|
|
289
|
-
printResult(io, envelope, options.json);
|
|
290
|
-
}
|
|
291
|
-
catch (error) {
|
|
292
|
-
const code = auditGoalErrorCode(error);
|
|
293
|
-
printResult(io, fail('audit.goal', code, getErrorMessage(error), auditGoalFailureData(options.need, validation.projectRoot, providerBinding, error instanceof LlmBindingError ? error.missingEnv : undefined), auditGoalNextActions(code)), options.json);
|
|
294
|
-
process.exitCode = 1;
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
// ---------------------------------------------------------------------------
|
|
298
|
-
//
|
|
299
|
-
// First-class CLI surface for the 4 audit artifact types. Replaces the
|
|
300
|
-
// 2026-06-22 "hand `git add` into .peaks/memory/" anti-pattern that left
|
|
301
|
-
// 4 orphan files. Each kind routes to exactly one writer in
|
|
302
|
-
// artifact-writer.ts; the writer enforces canonical frontmatter, so the
|
|
303
|
-
// memory-shape guard never fires for new writes.
|
|
304
|
-
// ---------------------------------------------------------------------------
|
|
305
|
-
const artifact = audit
|
|
306
|
-
.command('artifact')
|
|
307
|
-
.description('Manage audit artifacts (decision / prompt / machine-output / narrative) under .peaks/memory/');
|
|
70
|
+
.option('--llm-provider <name>', `LLM provider (${SUPPORTED_LLM_PROVIDERS.join(' | ')}); stub performs no audit`, DEFAULT_LLM_PROVIDER)).action((options) => runAuditGoal(options, io));
|
|
71
|
+
}
|
|
72
|
+
function registerArtifactWriteCommand(artifact, io) {
|
|
308
73
|
addJsonOption(artifact
|
|
309
74
|
.command('write')
|
|
310
|
-
.description(
|
|
75
|
+
.description(ARTIFACT_WRITE_DESCRIPTION)
|
|
311
76
|
.requiredOption('--project <path>', 'target project root')
|
|
312
77
|
.requiredOption('--kind <kind>', `artifact kind (${SUPPORTED_ARTIFACT_KINDS.join(' | ')})`)
|
|
313
78
|
.requiredOption('--input <path>', 'path to source file (markdown for prompt/narrative; JSON for machine-output and decision)')
|
|
314
79
|
.option('--name <name>', 'display name (H1 in body); defaults to file basename')
|
|
315
80
|
.option('--description <text>', 'description field for frontmatter; defaults to a generic placeholder')
|
|
316
81
|
.option('--rid <id>', 'optional request id to disambiguate multiple writes on the same day')
|
|
317
|
-
.option('--dry-run', 'render the markdown but do not write to disk', false)).action((options) =>
|
|
318
|
-
const validation = validateProjectRoot(options.project);
|
|
319
|
-
if (!validation.ok) {
|
|
320
|
-
printResult(io, fail('audit.artifact.write', validation.code, validation.message, {
|
|
321
|
-
kind: 'narrative',
|
|
322
|
-
slug: '',
|
|
323
|
-
title: '',
|
|
324
|
-
date: '',
|
|
325
|
-
filePath: '',
|
|
326
|
-
memoryDir: '',
|
|
327
|
-
indexPath: '',
|
|
328
|
-
indexSynced: false
|
|
329
|
-
}, ['Verify the project path exists and is a directory']), options.json);
|
|
330
|
-
process.exitCode = 1;
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
if (!isSupportedArtifactKind(options.kind)) {
|
|
334
|
-
printResult(io, fail('audit.artifact.write', 'INVALID_KIND', `Unknown --kind "${options.kind}". Supported: ${SUPPORTED_ARTIFACT_KINDS.join(', ')}.`, {
|
|
335
|
-
kind: 'narrative',
|
|
336
|
-
slug: '',
|
|
337
|
-
title: '',
|
|
338
|
-
date: '',
|
|
339
|
-
filePath: '',
|
|
340
|
-
memoryDir: '',
|
|
341
|
-
indexPath: '',
|
|
342
|
-
indexSynced: false
|
|
343
|
-
}, [
|
|
344
|
-
`Re-run with --kind <one of ${SUPPORTED_ARTIFACT_KINDS.join(' | ')}>`,
|
|
345
|
-
'See .peaks/memory/audit-artifact-convention.md for the 4 artifact types.'
|
|
346
|
-
]), options.json);
|
|
347
|
-
process.exitCode = 1;
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
const inputAbs = resolve(options.input);
|
|
351
|
-
if (!existsSync(inputAbs)) {
|
|
352
|
-
printResult(io, fail('audit.artifact.write', 'INPUT_NOT_FOUND', `--input file not found: ${options.input}`, {
|
|
353
|
-
kind: options.kind,
|
|
354
|
-
slug: '',
|
|
355
|
-
title: '',
|
|
356
|
-
date: '',
|
|
357
|
-
filePath: '',
|
|
358
|
-
memoryDir: '',
|
|
359
|
-
indexPath: '',
|
|
360
|
-
indexSynced: false
|
|
361
|
-
}, ['Verify the --input path is correct (relative paths resolve against cwd)']), options.json);
|
|
362
|
-
process.exitCode = 1;
|
|
363
|
-
return;
|
|
364
|
-
}
|
|
365
|
-
const baseName = options.name ?? options.input.split(/[\\/]/).pop() ?? 'untitled';
|
|
366
|
-
const description = options.description ??
|
|
367
|
-
`Audit artifact (${options.kind}) archived via peaks audit artifact write on ${new Date().toISOString().slice(0, 10)}.`;
|
|
368
|
-
const writeOpts = {
|
|
369
|
-
projectRoot: validation.projectRoot,
|
|
370
|
-
dryRun: options.dryRun === true,
|
|
371
|
-
...(options.rid ? { rid: options.rid } : {})
|
|
372
|
-
};
|
|
373
|
-
let record;
|
|
374
|
-
try {
|
|
375
|
-
switch (options.kind) {
|
|
376
|
-
case 'prompt': {
|
|
377
|
-
const body = readFileSync(inputAbs, 'utf8');
|
|
378
|
-
record = writePrompt({ name: baseName, description, body }, writeOpts);
|
|
379
|
-
break;
|
|
380
|
-
}
|
|
381
|
-
case 'machine-output': {
|
|
382
|
-
const json = readFileSync(inputAbs, 'utf8');
|
|
383
|
-
record = writeMachineOutput({ name: baseName, description, json }, writeOpts);
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
case 'narrative': {
|
|
387
|
-
const body = readFileSync(inputAbs, 'utf8');
|
|
388
|
-
record = writeNarrative({ name: baseName, description, body }, writeOpts);
|
|
389
|
-
break;
|
|
390
|
-
}
|
|
391
|
-
case 'decision': {
|
|
392
|
-
// `--input` is a RedLineAudit JSON document — typically
|
|
393
|
-
// an archived `peaks audit static` result — validated field by field
|
|
394
|
-
// before it reaches the writer, because the writer renders whatever
|
|
395
|
-
// it is given into a memory record with no further checks.
|
|
396
|
-
// `--name` and `--description` do not apply: the decision slug and
|
|
397
|
-
// title come from the scan date (and `--rid`), exactly as
|
|
398
|
-
// `peaks audit static --record` derives them.
|
|
399
|
-
const audit = parseRedLineAuditInput(readFileSync(inputAbs, 'utf8'));
|
|
400
|
-
record = writeDecision(audit, writeOpts);
|
|
401
|
-
break;
|
|
402
|
-
}
|
|
403
|
-
default: {
|
|
404
|
-
// Unreachable: isSupportedArtifactKind already filtered.
|
|
405
|
-
throw new Error(`unreachable: kind=${options.kind}`);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
catch (err) {
|
|
410
|
-
// A malformed decision input is the caller's document, not a write
|
|
411
|
-
// failure: name it as input so the remedy reads as "fix the JSON field".
|
|
412
|
-
printResult(io, fail('audit.artifact.write', err instanceof RedLineAuditInputError ? 'AUDIT_ARTIFACT_INPUT_INVALID' : 'WRITE_FAILED', getErrorMessage(err), {
|
|
413
|
-
kind: options.kind,
|
|
414
|
-
slug: '',
|
|
415
|
-
title: '',
|
|
416
|
-
date: '',
|
|
417
|
-
filePath: '',
|
|
418
|
-
memoryDir: '',
|
|
419
|
-
indexPath: '',
|
|
420
|
-
indexSynced: false
|
|
421
|
-
}, err instanceof RedLineAuditInputError
|
|
422
|
-
? [
|
|
423
|
-
'Inspect the named field; --kind decision takes the JSON shape `peaks audit static --json` prints.'
|
|
424
|
-
]
|
|
425
|
-
: ['Inspect the error message; for --kind machine-output ensure --input is valid JSON']), options.json);
|
|
426
|
-
process.exitCode = 1;
|
|
427
|
-
return;
|
|
428
|
-
}
|
|
429
|
-
printResult(io, ok('audit.artifact.write', record, [], [
|
|
430
|
-
`Artifact written via ${record.kind} writer.`,
|
|
431
|
-
record.indexSynced
|
|
432
|
-
? 'Memory index regenerated; entry will appear in `peaks project memories` on next read.'
|
|
433
|
-
: 'Memory index NOT regenerated; run `peaks project memories --project <root>` to refresh.'
|
|
434
|
-
]), options.json);
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
function emptyStaticAuditData() {
|
|
438
|
-
return {
|
|
439
|
-
audit: {
|
|
440
|
-
totalRedLines: 0,
|
|
441
|
-
cliBacked: 0,
|
|
442
|
-
partial: 0,
|
|
443
|
-
proseOnly: 0,
|
|
444
|
-
audit: [],
|
|
445
|
-
enforcerFindings: []
|
|
446
|
-
},
|
|
447
|
-
agentShield: {
|
|
448
|
-
spawned: false,
|
|
449
|
-
installed: false,
|
|
450
|
-
reason: 'flag-disabled',
|
|
451
|
-
findings: []
|
|
452
|
-
}
|
|
453
|
-
};
|
|
82
|
+
.option('--dry-run', 'render the markdown but do not write to disk', false)).action((options) => runArtifactWrite(options, io));
|
|
454
83
|
}
|
|
455
|
-
function
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
providerBinding,
|
|
459
|
-
need,
|
|
460
|
-
projectRoot,
|
|
461
|
-
...(missingEnv === undefined ? {} : { missingEnv })
|
|
462
|
-
};
|
|
84
|
+
function registerArtifactCommands(audit, io) {
|
|
85
|
+
const artifact = audit.command('artifact').description(ARTIFACT_GROUP_DESCRIPTION);
|
|
86
|
+
registerArtifactWriteCommand(artifact, io);
|
|
463
87
|
}
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
return 'AUDIT_GOAL_FAILED';
|
|
472
|
-
}
|
|
473
|
-
function auditGoalNextActions(code) {
|
|
474
|
-
switch (code) {
|
|
475
|
-
case 'LLM_CREDENTIAL_MISSING':
|
|
476
|
-
return [
|
|
477
|
-
'Export ANTHROPIC_AUTH_TOKEN (or ANTHROPIC_API_KEY) in the environment that launches peaks, then re-run.',
|
|
478
|
-
'For an offline scaffold instead of an audit, re-run with `--llm-provider stub` — it performs NO audit.'
|
|
479
|
-
];
|
|
480
|
-
case 'LLM_MODEL_MISSING':
|
|
481
|
-
return [
|
|
482
|
-
'Export ANTHROPIC_MODEL (or CLAUDE_CODE_SUBAGENT_MODEL) in the environment that launches peaks, then re-run.'
|
|
483
|
-
];
|
|
484
|
-
case 'INCOMPLETE_AUDIT':
|
|
485
|
-
return [
|
|
486
|
-
'The LLM reply omitted a required dimension; re-run so autonomous work never proceeds on a partial audit.'
|
|
487
|
-
];
|
|
488
|
-
default:
|
|
489
|
-
return ['Inspect the failure above, then re-run with the same --need.'];
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
function emptyProseRatioResult() {
|
|
493
|
-
return {
|
|
494
|
-
totalRedLines: 0,
|
|
495
|
-
cliBacked: 0,
|
|
496
|
-
partial: 0,
|
|
497
|
-
proseOnly: 0,
|
|
498
|
-
discoveredProseOnly: 0,
|
|
499
|
-
informational: 0,
|
|
500
|
-
ratio: 0,
|
|
501
|
-
target: 0.05,
|
|
502
|
-
exceeds: false
|
|
503
|
-
};
|
|
88
|
+
export function registerAuditCommands(program, io) {
|
|
89
|
+
const audit = program.command('audit', { hidden: true }).description(AUDIT_DESCRIPTION);
|
|
90
|
+
registerRedLinesCommand(audit, io);
|
|
91
|
+
registerStaticCommand(audit, io);
|
|
92
|
+
registerProseRatioCommand(audit, io);
|
|
93
|
+
registerGoalCommand(audit, io);
|
|
94
|
+
registerArtifactCommands(audit, io);
|
|
504
95
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `peaks audit goal` runner — the peaks-audit entry gate.
|
|
3
|
+
*
|
|
4
|
+
* The action body moved out of `audit-commands.ts` verbatim; the registrar now
|
|
5
|
+
* only wires the command and delegates. This is the one action whose delegate
|
|
6
|
+
* returns a promise, so the runner stays `async` (it awaits `auditGoal()`).
|
|
7
|
+
*
|
|
8
|
+
* `anthropic` is the default and reads the session's own environment
|
|
9
|
+
* (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
|
|
10
|
+
* reported as a scaffold, and a missing credential fails loudly — a silent
|
|
11
|
+
* fall back to the scaffold envelope would leave the gate exactly as fake
|
|
12
|
+
* as it was before this slice.
|
|
13
|
+
*/
|
|
14
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
15
|
+
import { type AuditGoalOptions } from './audit-command-shared.js';
|
|
16
|
+
export declare const AUDIT_GOAL_DESCRIPTION = "Audit a human need across 6 dimensions and propose a goal (peaks-audit primitive)";
|
|
17
|
+
export declare function runAuditGoal(options: AuditGoalOptions, io: ProgramIO): Promise<void>;
|