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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// src/cli/commands/project-context-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks project context` — generate or read the persistent project context.
|
|
4
|
+
// Split out of `project-commands.ts`; the verb name, its options, the
|
|
5
|
+
// `exists` / `content` envelope keys and the read-vs-generate branch are
|
|
6
|
+
// unchanged.
|
|
7
|
+
import { generateProjectContext, readProjectContext } from '../../services/memory/project-context-service.js';
|
|
8
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
9
|
+
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
10
|
+
/** The read branch's envelope data, present or absent. */
|
|
11
|
+
function readContextData(project) {
|
|
12
|
+
const content = readProjectContext(project);
|
|
13
|
+
const path = `${project}/.peaks/PROJECT.md`;
|
|
14
|
+
return content === null ? { exists: false, path } : { exists: true, path, content };
|
|
15
|
+
}
|
|
16
|
+
async function runProjectContext(io, options) {
|
|
17
|
+
try {
|
|
18
|
+
if (options.read) {
|
|
19
|
+
printResult(io, ok('project.context', readContextData(options.project)), options.json);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const result = await generateProjectContext(options.project);
|
|
23
|
+
printResult(io, ok('project.context', {
|
|
24
|
+
path: result.path,
|
|
25
|
+
sessionCount: result.sessionCount,
|
|
26
|
+
content: result.content,
|
|
27
|
+
// context command also bootstraps the project-scan tree.
|
|
28
|
+
// The envelope surfaces write counts + duration so the LLM
|
|
29
|
+
// (and the user) see what landed.
|
|
30
|
+
projectScan: result.projectScan
|
|
31
|
+
}), options.json);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
printResult(io, fail('project.context', 'PROJECT_CONTEXT_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Check the project path and .peaks directory']), options.json);
|
|
35
|
+
process.exitCode = 1;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function registerProjectContextCommand(project, io) {
|
|
39
|
+
addJsonOption(project
|
|
40
|
+
.command('context')
|
|
41
|
+
.description('Generate or read persistent project context for cross-session Peaks understanding. Generates BOTH `.peaks/PROJECT.md` (session history) AND `.peaks/project-scan/project-scan.md` (tech stack + archetypes) — see `peaks workspace init` for the full 5-template boot (G4b/AC9).')
|
|
42
|
+
.requiredOption('--project <path>', 'target project root')
|
|
43
|
+
.option('--read', 'read existing PROJECT.md without regenerating')).action((options) => runProjectContext(io, options));
|
|
44
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/cli/commands/project-dashboard-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks project dashboard` — one-call snapshot of doctor / MCP / OpenSpec /
|
|
4
|
+
// requests / capabilities for a project. Split out of `project-commands.ts`;
|
|
5
|
+
// the verb name, its options, the gate order and the envelope shape are
|
|
6
|
+
// unchanged.
|
|
7
|
+
import { loadProjectDashboard } from '../../services/dashboard/project-dashboard-service.js';
|
|
8
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
9
|
+
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
10
|
+
/** The runbook repairs the envelope names — only the ones that apply. */
|
|
11
|
+
function runbookSuggestions(health) {
|
|
12
|
+
return [
|
|
13
|
+
health.missingRunbook.length > 0
|
|
14
|
+
? `Add a ## Default runbook section to: ${health.missingRunbook.join(', ')}`
|
|
15
|
+
: null,
|
|
16
|
+
health.applyNoteFailed.length > 0
|
|
17
|
+
? `Add authorization/--dry-run notes next to destructive --apply lines in: ${health.applyNoteFailed.join(', ')}`
|
|
18
|
+
: null
|
|
19
|
+
].filter((line) => line !== null);
|
|
20
|
+
}
|
|
21
|
+
/** Runbook health — the first gate. */
|
|
22
|
+
function runbookRefusal(dashboard) {
|
|
23
|
+
const health = dashboard.runbookHealth;
|
|
24
|
+
if (health.ok)
|
|
25
|
+
return null;
|
|
26
|
+
return fail('project.dashboard', 'PROJECT_DASHBOARD_RUNBOOK_UNHEALTHY', `Skill runbook health failing: ${health.healthy}/${health.required} healthy`, dashboard, runbookSuggestions(health));
|
|
27
|
+
}
|
|
28
|
+
/** A stale active skill presence — the second gate. */
|
|
29
|
+
function skillPresenceRefusal(dashboard) {
|
|
30
|
+
const presence = dashboard.skillPresence;
|
|
31
|
+
if (!presence.active || presence.fresh)
|
|
32
|
+
return null;
|
|
33
|
+
return fail('project.dashboard', 'PROJECT_DASHBOARD_STALE_SKILL_PRESENCE', `Active Peaks skill presence ${presence.skill ?? '<unknown>'} is stale (set ${presence.setAt ?? '<unknown>'})`, dashboard, [
|
|
34
|
+
'Run `peaks skill presence:clear` if the role has ended, or `peaks skill presence:set <skill>` to refresh it'
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
/** The doctor aggregate under `--strict` — the third gate. */
|
|
38
|
+
function doctorRefusal(dashboard, strict) {
|
|
39
|
+
if (dashboard.doctor.ok || !strict)
|
|
40
|
+
return null;
|
|
41
|
+
return fail('project.dashboard', 'PROJECT_DASHBOARD_DOCTOR_STRICT_FAIL', `Doctor reports ${dashboard.doctor.failed} failed check(s) (${dashboard.doctor.passed} passed) — --strict mode requires the doctor aggregate to pass`, dashboard, [
|
|
42
|
+
'Run `peaks doctor --json` and resolve the failing checks, or drop --strict to use the workspace-only policy'
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
45
|
+
/** The first gate that refuses, in the declared order: runbook → presence → doctor. */
|
|
46
|
+
function dashboardRefusal(dashboard, strict) {
|
|
47
|
+
return (runbookRefusal(dashboard) ?? skillPresenceRefusal(dashboard) ?? doctorRefusal(dashboard, strict));
|
|
48
|
+
}
|
|
49
|
+
async function runProjectDashboard(io, options) {
|
|
50
|
+
try {
|
|
51
|
+
const dashboard = await loadProjectDashboard({
|
|
52
|
+
projectRoot: options.project,
|
|
53
|
+
okPolicy: options.strict === true ? 'strict' : 'workspace-only'
|
|
54
|
+
});
|
|
55
|
+
const refusal = dashboardRefusal(dashboard, options.strict === true);
|
|
56
|
+
if (refusal !== null) {
|
|
57
|
+
printResult(io, refusal, options.json);
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
printResult(io, ok('project.dashboard', dashboard), options.json);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
printResult(io, fail('project.dashboard', 'PROJECT_DASHBOARD_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Check the project path before retrying']), options.json);
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export function registerProjectDashboardCommand(project, io) {
|
|
69
|
+
addJsonOption(project
|
|
70
|
+
.command('dashboard')
|
|
71
|
+
.description('One-call snapshot of doctor / MCP / OpenSpec / requests / capabilities for a project')
|
|
72
|
+
.requiredOption('--project <path>', 'target project root')
|
|
73
|
+
.option('--strict', 'ok follows the doctor aggregate (legacy semantics). Default: workspace-only (ok tracks the runbook health)', false)).action((options) => runProjectDashboard(io, options));
|
|
74
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// src/cli/commands/project-knowledge-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks project knowledge` — read the schema-sedimented business-knowledge
|
|
4
|
+
// concept table. Split out of `project-commands.ts`; the verb name, its
|
|
5
|
+
// options, the `--filter` substring semantics and every envelope key are
|
|
6
|
+
// unchanged.
|
|
7
|
+
import { readBusinessKnowledge } from '../../services/prd/project-scan-reader.js';
|
|
8
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
9
|
+
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
10
|
+
/** The `exists: true` payload, with the case-insensitive concept filter applied. */
|
|
11
|
+
function knowledgeData(knowledge, filter) {
|
|
12
|
+
const concepts = filter
|
|
13
|
+
? knowledge.concepts.filter((c) => c.concept.toLowerCase().includes(filter.toLowerCase()))
|
|
14
|
+
: knowledge.concepts;
|
|
15
|
+
return {
|
|
16
|
+
exists: true,
|
|
17
|
+
schemaVersion: knowledge.schemaVersion,
|
|
18
|
+
total: knowledge.concepts.length,
|
|
19
|
+
matched: concepts.length,
|
|
20
|
+
filter: filter ?? null,
|
|
21
|
+
concepts
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async function runProjectKnowledge(io, options) {
|
|
25
|
+
try {
|
|
26
|
+
const knowledge = await readBusinessKnowledge(options.project);
|
|
27
|
+
if (knowledge === null) {
|
|
28
|
+
printResult(io, ok('project.knowledge', {
|
|
29
|
+
exists: false,
|
|
30
|
+
projectRoot: options.project,
|
|
31
|
+
path: `${options.project}/.peaks/project-scan/business-knowledge.md`
|
|
32
|
+
}), options.json);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
printResult(io, ok('project.knowledge', knowledgeData(knowledge, options.filter)), options.json);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
printResult(io, fail('project.knowledge', 'PROJECT_KNOWLEDGE_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Check the project path and .peaks/project-scan directory']), options.json);
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function registerProjectKnowledgeCommand(project, io) {
|
|
43
|
+
addJsonOption(project
|
|
44
|
+
.command('knowledge')
|
|
45
|
+
.description('Read .peaks/project-scan/business-knowledge.md (the schema-sedimented concept table). LLM-consumable; use --filter for a concept substring.')
|
|
46
|
+
.requiredOption('--project <path>', 'target project root')
|
|
47
|
+
.option('--filter <glob>', 'substring filter on the concept name (case-insensitive)')).action((options) => runProjectKnowledge(io, options));
|
|
48
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// src/cli/commands/project-memories-show-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks project memories:show <name>` — one memory body, compact by default.
|
|
4
|
+
// Split out of `project-commands.ts`; the verb name, its options, the stale
|
|
5
|
+
// threshold rules (R3/R4) and every envelope key are unchanged.
|
|
6
|
+
import { readProjectMemoryBody } from '../../services/memory/project-memory-service.js';
|
|
7
|
+
import { applyStalePolicy, DEFAULT_STALE_DAYS } from '../../shared/stale-policy.js';
|
|
8
|
+
import { formatMdCompact } from '../../shared/format-md-compact.js';
|
|
9
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
10
|
+
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
11
|
+
/** R4: the stale decision is computed at CLI load time only; the `.md` is never modified. */
|
|
12
|
+
function memoryStalePolicy(memory, thresholdDays, includeStale) {
|
|
13
|
+
return applyStalePolicy([{ name: memory.name, updatedAt: memory.updatedAt }], {
|
|
14
|
+
thresholdDays,
|
|
15
|
+
includeStale
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/** `--stale-days <n>` must be a finite positive number; anything else keeps the 30-day default. */
|
|
19
|
+
function staleThresholdDays(options) {
|
|
20
|
+
const days = options.staleDays;
|
|
21
|
+
return days !== undefined && Number.isFinite(days) && days > 0 ? days : DEFAULT_STALE_DAYS;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The age the `MEMORY_STALE` refusal reports. The first policy call dropped the
|
|
25
|
+
* entry, so it cannot report the age — this second one keeps it (`includeStale`)
|
|
26
|
+
* purely to read `ageDays` back out.
|
|
27
|
+
*/
|
|
28
|
+
function staleRefusalAgeDays(memory, thresholdDays, droppedCount) {
|
|
29
|
+
return droppedCount > 0
|
|
30
|
+
? (memoryStalePolicy(memory, thresholdDays, true).entries[0]?.ageDays ?? 0)
|
|
31
|
+
: 0;
|
|
32
|
+
}
|
|
33
|
+
/** The `ok` payload: the default `compact` body unless `--pretty` overrides it. */
|
|
34
|
+
function memoriesShowData(memory, entry, options) {
|
|
35
|
+
const format = options.pretty === true ? 'pretty' : 'compact';
|
|
36
|
+
const body = format === 'pretty' ? memory.body : formatMdCompact(memory.body);
|
|
37
|
+
return {
|
|
38
|
+
name: memory.name,
|
|
39
|
+
title: memory.title,
|
|
40
|
+
kind: memory.kind,
|
|
41
|
+
sourcePath: memory.filePath,
|
|
42
|
+
updatedAt: memory.updatedAt,
|
|
43
|
+
ageDays: entry?.ageDays ?? 0,
|
|
44
|
+
stale: entry?.stale ?? false,
|
|
45
|
+
body,
|
|
46
|
+
format,
|
|
47
|
+
bodyBytes: Buffer.byteLength(body, 'utf8')
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function memoryNotFound(name, project) {
|
|
51
|
+
return fail('project.memories:show', 'MEMORY_NOT_FOUND', `memory ${name} not found in .peaks/memory`, { name, projectRoot: project }, ['Run `peaks project memories --json` to see available names']);
|
|
52
|
+
}
|
|
53
|
+
function staleMemoryRefusal(name, project, ageDays, thresholdDays) {
|
|
54
|
+
return fail('project.memories:show', 'MEMORY_STALE', `memory ${name} is stale (age ${ageDays} days > ${thresholdDays} day threshold); pass --include-stale to override`, { name, ageDays, thresholdDays }, ['Pass --include-stale to load stale memories; pass --stale-days <N> to override the threshold']);
|
|
55
|
+
}
|
|
56
|
+
function runProjectMemoriesShow(io, name, options) {
|
|
57
|
+
try {
|
|
58
|
+
const memory = readProjectMemoryBody(options.project, name);
|
|
59
|
+
if (memory === null) {
|
|
60
|
+
printResult(io, memoryNotFound(name, options.project), options.json);
|
|
61
|
+
process.exitCode = 1;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const thresholdDays = staleThresholdDays(options);
|
|
65
|
+
const policy = memoryStalePolicy(memory, thresholdDays, options.includeStale === true);
|
|
66
|
+
if (policy.entries.length === 0) {
|
|
67
|
+
const ageDays = staleRefusalAgeDays(memory, thresholdDays, policy.droppedCount);
|
|
68
|
+
printResult(io, staleMemoryRefusal(name, options.project, ageDays, thresholdDays), options.json);
|
|
69
|
+
process.exitCode = 1;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
printResult(io, ok('project.memories:show', memoriesShowData(memory, policy.entries[0], options)), options.json);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
printResult(io, fail('project.memories:show', 'PROJECT_MEMORY_SHOW_FAILED', getErrorMessage(error), { name, projectRoot: options.project }, ['Check the project path and .peaks/memory directory']), options.json);
|
|
76
|
+
process.exitCode = 1;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export function registerProjectMemoriesShowCommand(project, io) {
|
|
80
|
+
addJsonOption(project
|
|
81
|
+
.command('memories:show <name>')
|
|
82
|
+
.description('Show one project memory body by name. Default format is `compact` (LLM-primary); pass --pretty for the disk verbatim. Stale entries (default ≥30 days) are excluded; pass --include-stale or --stale-days <N> to override.')
|
|
83
|
+
.requiredOption('--project <path>', 'target project root')
|
|
84
|
+
.option('--pretty', 'return the on-disk body verbatim; overrides the compact default')
|
|
85
|
+
.option('--include-stale', 'include stale entries (the default excludes them)')
|
|
86
|
+
.option('--stale-days <n>', 'override the 30-day stale threshold (must be > 0)', (value) => Number(value))).action((name, options) => runProjectMemoriesShow(io, name, options));
|
|
87
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/cli/commands/project-memory-index-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks project memory-index` — the lightweight hot/warm memory index read.
|
|
4
|
+
// Split out of `project-commands.ts`; the verb name, its options and the
|
|
5
|
+
// `exists` / `index` envelope shape are unchanged.
|
|
6
|
+
import { readMemoryIndex } from '../../services/memory/project-memory-service.js';
|
|
7
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
8
|
+
import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
|
|
9
|
+
function runProjectMemoryIndex(io, options) {
|
|
10
|
+
try {
|
|
11
|
+
const index = readMemoryIndex(options.project);
|
|
12
|
+
if (!index) {
|
|
13
|
+
printResult(io, ok('project.memory-index', {
|
|
14
|
+
exists: false,
|
|
15
|
+
message: 'No memory index found. Run `peaks project memories:extract` first.'
|
|
16
|
+
}), options.json);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
printResult(io, ok('project.memory-index', { exists: true, index }), options.json);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
printResult(io, fail('project.memory-index', 'MEMORY_INDEX_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Check the project path and .peaks/memory directory']), options.json);
|
|
23
|
+
process.exitCode = 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function registerProjectMemoryIndexCommand(project, io) {
|
|
27
|
+
addJsonOption(project
|
|
28
|
+
.command('memory-index')
|
|
29
|
+
.description('Read the memory index — lightweight hot/warm分层 view of all project memories')
|
|
30
|
+
.requiredOption('--project <path>', 'target project root')).action((options) => runProjectMemoryIndex(io, options));
|
|
31
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/cli/commands/qa-archive-screenshots-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks qa archive-screenshots` — the remediation for peaks-qa SKILL.md
|
|
4
|
+
// "Hard contracts for browser validation" Contract 1: every Playwright
|
|
5
|
+
// `browser_take_screenshot` MUST land under
|
|
6
|
+
// `.peaks/_runtime/<sessionId>/qa/screenshots/`, not at the project root. When
|
|
7
|
+
// the LLM forgets to pass `filename`, Playwright MCP scatters `.png` files at
|
|
8
|
+
// the repo top level; this verb scans `--source` (default: project root) and
|
|
9
|
+
// moves strays into the session directory. Extracted from `qa-commands.ts`; the
|
|
10
|
+
// registered name, options, envelope and exit codes are unchanged.
|
|
11
|
+
import { join, resolve } from 'node:path';
|
|
12
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
13
|
+
import { archiveScreenshots } from '../../services/qa/screenshot-archive-service.js';
|
|
14
|
+
import { getSessionId } from '../../services/session/session-manager.js';
|
|
15
|
+
import { isUnsafePathInput } from '../../shared/path-safety.js';
|
|
16
|
+
import { addJsonOption, printResult } from '../cli-helpers.js';
|
|
17
|
+
export function registerQaArchiveScreenshotsCommand(qa, io) {
|
|
18
|
+
addJsonOption(qa
|
|
19
|
+
.command('archive-screenshots')
|
|
20
|
+
.description('Move stray Playwright screenshots (.png/.jpg/.jpeg) from the ' +
|
|
21
|
+
'project root into .peaks/_runtime/<session-id>/qa/screenshots/. ' +
|
|
22
|
+
'Enforces peaks-qa SKILL.md Contract 1.')
|
|
23
|
+
.option('--source <dir>', 'directory to scan for stray screenshots (default: project root)', '.')
|
|
24
|
+
.option('--project <path>', 'project root (default: cwd)', '.')
|
|
25
|
+
.option('--session-id <sid>', 'target session id; defaults to the active session', '')).action((options) => {
|
|
26
|
+
try {
|
|
27
|
+
const projectRoot = resolve(options.project);
|
|
28
|
+
const sid = options.sessionId?.trim() || getSessionId(projectRoot) || 'ad-hoc';
|
|
29
|
+
// Sid axis. Guarded after resolution so the flag value and the session
|
|
30
|
+
// binding are both covered. `archiveScreenshots` cannot do this itself:
|
|
31
|
+
// it only ever sees a fully-resolved `targetDir`.
|
|
32
|
+
if (isUnsafePathInput(sid)) {
|
|
33
|
+
throw new Error(`Invalid session id: ${sid} (must be a single path segment)`);
|
|
34
|
+
}
|
|
35
|
+
const targetDir = join(projectRoot, '.peaks', '_runtime', sid, 'qa', 'screenshots');
|
|
36
|
+
const envelope = archiveScreenshots({ sourceDir: options.source, targetDir });
|
|
37
|
+
printResult(io, ok('qa.archive-screenshots', envelope, [], archiveNextActions(envelope)), options.json);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
process.exitCode = 1;
|
|
41
|
+
printResult(io, fail('qa.archive-screenshots', 'ARCHIVE_FAILED', error instanceof Error ? error.message : 'Unknown error', { project: options.project, source: options.source }, ['Verify the source dir exists and is readable']), options.json);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** The move notice, or the all-clear — never both. */
|
|
46
|
+
function archiveNextActions(envelope) {
|
|
47
|
+
return envelope.moved.length === 0
|
|
48
|
+
? ['No stray screenshots found in ' + envelope.scannedSource]
|
|
49
|
+
: [
|
|
50
|
+
`Moved ${envelope.moved.length} file(s) to ${envelope.targetDir}`,
|
|
51
|
+
'Re-run peaks qa run to verify the gate passes'
|
|
52
|
+
];
|
|
53
|
+
}
|
|
@@ -1,93 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* `peaks qa run` — the peaks-qa slice surface, and `peaks qa archive-screenshots`
|
|
3
|
+
* — the Contract 1 remediation. The verbs live beside this file:
|
|
2
4
|
*
|
|
3
|
-
*
|
|
5
|
+
* `qa-run-command.ts` the slice action (I/O + envelope)
|
|
6
|
+
* `qa-run-slice.ts` the pure gate list it drives
|
|
7
|
+
* `qa-run-options.ts` the `--no-X` flag contract
|
|
8
|
+
* `qa-context-prestep.ts` Plan 1 / Task 9 context build
|
|
9
|
+
* `qa-archive-screenshots-command.ts` the stray-screenshot sweep
|
|
4
10
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* specifically is what the restart-loop detector guards. The
|
|
8
|
-
* detector is wired into the slice here:
|
|
9
|
-
*
|
|
10
|
-
* 1. We construct a `BrowserRestartDetector` (configurable via
|
|
11
|
-
* `--max-browser-restarts` / `--no-restart-detector`).
|
|
12
|
-
* 2. We construct a `BrowserEventLogger` that writes the
|
|
13
|
-
* per-slice JSONL log to
|
|
14
|
-
* `.peaks/_runtime/<session-id>/qa/browser-events.jsonl`.
|
|
15
|
-
* 3. The slice entry exposes `runQaSlice` so tests can
|
|
16
|
-
* feed a synthetic event log and assert the diagnostic.
|
|
17
|
-
*
|
|
18
|
-
* CLI surface (PRD G5 + AC4/AC5/AC6):
|
|
19
|
-
* peaks qa run --project <X> [--no-browser] [--max-browser-restarts N]
|
|
20
|
-
* [--no-restart-detector] [--session-id <sid>] [--json]
|
|
21
|
-
*
|
|
22
|
-
* `--no-browser` (G5) skips the browser E2E gate entirely. The
|
|
23
|
-
* resulting gate list marks the browser gate as `status: skipped`
|
|
24
|
-
* with reason `--no-browser`. This is a slice-level opt-out for
|
|
25
|
-
* backend-only or already-covered-by-unit-tests work.
|
|
11
|
+
* This module owns only the `qa` parent (hidden) and the registrar order, and
|
|
12
|
+
* re-exports every symbol it used to define so existing importers need no edit.
|
|
26
13
|
*/
|
|
27
14
|
import type { Command } from 'commander';
|
|
28
|
-
import {
|
|
29
|
-
import { type BrowserEvent } from '../../services/qa/browser-restart-detector.js';
|
|
30
|
-
import { type MutReportJson } from 'peaks-loop-mut';
|
|
31
|
-
export type QaRunOptions = {
|
|
32
|
-
project: string;
|
|
33
|
-
browser?: boolean;
|
|
34
|
-
restartDetector?: boolean;
|
|
35
|
-
maxBrowserRestarts?: string;
|
|
36
|
-
sessionId?: string;
|
|
37
|
-
json?: boolean;
|
|
38
|
-
mutation?: boolean;
|
|
39
|
-
};
|
|
40
|
-
export type QaGateStatus = {
|
|
41
|
-
readonly name: string;
|
|
42
|
-
readonly status: 'passed' | 'skipped' | 'failed';
|
|
43
|
-
readonly reason?: string;
|
|
44
|
-
/**
|
|
45
|
-
* Plan 2 / Task 8 — when the gate consumes an artifact with a
|
|
46
|
-
* deterministic signature, this field carries that signature for
|
|
47
|
-
* downstream audit-trail consumers. Currently set only on the
|
|
48
|
-
* `mutation` gate to MUT.sig (the `sha256` of mut-report.json).
|
|
49
|
-
*/
|
|
50
|
-
readonly mutSig?: string;
|
|
51
|
-
};
|
|
52
|
-
export type QaRunResult = {
|
|
53
|
-
readonly sessionId: string;
|
|
54
|
-
readonly project: string;
|
|
55
|
-
readonly browserEnabled: boolean;
|
|
56
|
-
readonly gates: readonly QaGateStatus[];
|
|
57
|
-
readonly detectorTriggered: boolean;
|
|
58
|
-
readonly diagnostic?: string;
|
|
59
|
-
readonly subAgentPromptHint: string;
|
|
60
|
-
/**
|
|
61
|
-
* Plan 2 / Task 8 — MUT.sig when peaks-mut ran in this session.
|
|
62
|
-
* Undefined when peaks-mut was not run (no mut-report.json) or
|
|
63
|
-
* the user passed --no-mutation.
|
|
64
|
-
*/
|
|
65
|
-
readonly mutSig?: string;
|
|
66
|
-
};
|
|
67
|
-
export declare const DEFAULT_MAX_BROWSER_RESTARTS = 3;
|
|
68
|
-
export type RunQaSliceInput = {
|
|
69
|
-
readonly project: string;
|
|
70
|
-
readonly sessionId: string;
|
|
71
|
-
readonly browserEnabled: boolean;
|
|
72
|
-
readonly maxRestarts: number;
|
|
73
|
-
readonly detectorEnabled: boolean;
|
|
74
|
-
readonly events: readonly BrowserEvent[];
|
|
75
|
-
readonly mutationReport: MutReportJson | null;
|
|
76
|
-
readonly mutationEnabled: boolean;
|
|
77
|
-
};
|
|
78
|
-
export declare function runQaSlice(input: RunQaSliceInput): QaRunResult;
|
|
79
|
-
/**
|
|
80
|
-
* Commander 12.x sets `options.X = false` for `--no-X` (POSITIVE form),
|
|
81
|
-
* not `options.noX = true`. Reads use the positive form; the default is
|
|
82
|
-
* `true` and the boolean form is `false` only when the user passes `--no-X`.
|
|
83
|
-
*
|
|
84
|
-
* Exported for unit testing the parser contract in isolation from
|
|
85
|
-
* the rest of the action handler.
|
|
86
|
-
*/
|
|
87
|
-
export declare function readQaRunOptions(options: QaRunOptions): {
|
|
88
|
-
readonly browserEnabled: boolean;
|
|
89
|
-
readonly detectorEnabled: boolean;
|
|
90
|
-
readonly maxRestarts: number;
|
|
91
|
-
readonly mutationEnabled: boolean;
|
|
92
|
-
};
|
|
15
|
+
import type { ProgramIO } from '../cli-helpers.js';
|
|
93
16
|
export declare function registerQaCommands(program: Command, io: ProgramIO): void;
|
|
17
|
+
export { readQaRunOptions } from './qa-run-options.js';
|
|
18
|
+
export type { QaRunOptions } from './qa-run-options.js';
|
|
19
|
+
export { DEFAULT_MAX_BROWSER_RESTARTS, runQaSlice } from './qa-run-slice.js';
|
|
20
|
+
export type { QaGateStatus, QaRunResult, RunQaSliceInput } from './qa-run-slice.js';
|