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,115 @@
|
|
|
1
|
+
// Split out of `request-commands.ts`: the two
|
|
2
|
+
// best-effort hooks attached to a completed `peaks request transition` — the
|
|
3
|
+
// rd→qa pre-compact checkpoint + codegraph refresh, and the prd→handed-off
|
|
4
|
+
// handoff auto-regen envelope.
|
|
5
|
+
import { ok } from 'peaks-loop-shared/result';
|
|
6
|
+
import { codegraphRefreshNotice, refreshCodegraphAfterSlice } from '../../services/codegraph/codegraph-autorefresh.js';
|
|
7
|
+
import { triggerBestPracticeScan } from '../../services/prd/best-practice-auto-trigger.js';
|
|
8
|
+
const NO_HOOKS = {
|
|
9
|
+
preCompact: null,
|
|
10
|
+
codegraphRefresh: null,
|
|
11
|
+
codegraphWarning: null
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The RD → QA slice-complete boundary. Set only for rd:qa-handoff; null
|
|
15
|
+
* otherwise. Best-effort and fail-silent — never blocks the transition.
|
|
16
|
+
*
|
|
17
|
+
* When transitioning across the RD → QA boundary (rd:qa-handoff), check the
|
|
18
|
+
* active session's context-fill ratio. If it is in the 0.85–0.95 pre-compact
|
|
19
|
+
* zone, write a checkpoint BEFORE the transition completes and attach
|
|
20
|
+
* `preCompactCheckpoint: true` to the response envelope. The LLM remains the
|
|
21
|
+
* decision-maker; this hook only surfaces the signal. At ratio ≥ 0.95 the
|
|
22
|
+
* auto-compact orchestrator ASKS the harness to compact and reports that it is
|
|
23
|
+
* waiting; it does not refuse anything, because peaks-loop has no executor for
|
|
24
|
+
* a running session and a refusal it cannot enforce only deadlocked the runner.
|
|
25
|
+
*
|
|
26
|
+
* A2 (2026-09-17): never BLOCKING is kept; never VISIBLE is not. A non-refresh
|
|
27
|
+
* while a codegraph store is in use becomes a warning line beside the
|
|
28
|
+
* transition's own notes. See `codegraphRefreshNotice` for why
|
|
29
|
+
* `no-codegraph-dir` stays silent.
|
|
30
|
+
*/
|
|
31
|
+
export async function collectQaHandoffHooks(role, newState, sessionId, project) {
|
|
32
|
+
if (role !== 'rd' || newState !== 'qa-handoff')
|
|
33
|
+
return NO_HOOKS;
|
|
34
|
+
let preCompact = null;
|
|
35
|
+
let codegraphRefresh = null;
|
|
36
|
+
try {
|
|
37
|
+
const { maybePreCompactCheckpoint } = await import('../../services/compact/request-transition-hook.js');
|
|
38
|
+
const hook = maybePreCompactCheckpoint({
|
|
39
|
+
projectRoot: project,
|
|
40
|
+
sessionId,
|
|
41
|
+
transitionKey: `${role}:${newState}`
|
|
42
|
+
});
|
|
43
|
+
preCompact = hook.triggered ? ok('request.transition.preCompact', hook) : null;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// The hook is best-effort; never block the transition.
|
|
47
|
+
preCompact = null;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
codegraphRefresh = await refreshCodegraphAfterSlice(project);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// The refresh is best-effort; never block the transition.
|
|
54
|
+
codegraphRefresh = {
|
|
55
|
+
refreshed: false,
|
|
56
|
+
reason: 'unavailable',
|
|
57
|
+
note: 'auto codegraph refresh failed after transition'
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
preCompact,
|
|
62
|
+
codegraphRefresh,
|
|
63
|
+
codegraphWarning: codegraphRefreshNotice(codegraphRefresh)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Only fires when the handoff is missing; existing handoffs are not
|
|
68
|
+
* overwritten. Post-step after peaks-prd's businessGoal artifact transitions to
|
|
69
|
+
* `handed-off` (the canonical "complete" state in the prd state machine). The
|
|
70
|
+
* trigger is fire-and-forget: failure NEVER blocks the transition.
|
|
71
|
+
*/
|
|
72
|
+
export async function buildPrdHandoffResult(ctx) {
|
|
73
|
+
const { role, newState, requestId, options, result } = ctx;
|
|
74
|
+
if (role !== 'prd' || newState !== 'handed-off' || options.sessionId === undefined) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const { autoRegenPrdHandoff } = await import('../../services/prd/handoff-auto-regen.js');
|
|
78
|
+
const regen = await autoRegenPrdHandoff({
|
|
79
|
+
projectRoot: options.project,
|
|
80
|
+
sessionId: result.sessionId,
|
|
81
|
+
requestId,
|
|
82
|
+
role: 'prd'
|
|
83
|
+
});
|
|
84
|
+
const bpsTrigger = await triggerBestPracticeScan({
|
|
85
|
+
projectRoot: options.project,
|
|
86
|
+
sessionId: result.sessionId,
|
|
87
|
+
requestId
|
|
88
|
+
});
|
|
89
|
+
const handoffAutoRegen = regen.status === 'created'
|
|
90
|
+
? { status: 'created', path: regen.path, sha256: regen.sha256 }
|
|
91
|
+
: regen.status === 'skipped-exists'
|
|
92
|
+
? { status: 'skipped-exists', path: regen.path }
|
|
93
|
+
: { status: 'failed', reason: regen.reason };
|
|
94
|
+
const notes = [];
|
|
95
|
+
if (regen.status === 'failed') {
|
|
96
|
+
notes.push(`prd handoff auto-regen failed: ${regen.reason}`);
|
|
97
|
+
}
|
|
98
|
+
if (bpsTrigger.status === 'failed') {
|
|
99
|
+
notes.push(`best-practice-scan auto-trigger failed: ${bpsTrigger.reason ?? 'unknown'}`);
|
|
100
|
+
}
|
|
101
|
+
return ok('request.transition', { ...result, handoffAutoRegen, bestPracticeScanTrigger: bpsTrigger }, notes);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The pre-compact signal rendered into the final envelope's `nextActions`.
|
|
105
|
+
* `null` when the hook did not trigger (zone is not pre-compact OR the
|
|
106
|
+
* transition is not a slice boundary).
|
|
107
|
+
*/
|
|
108
|
+
export function preCompactNote(preCompact) {
|
|
109
|
+
if (preCompact === null)
|
|
110
|
+
return null;
|
|
111
|
+
const ratio = typeof preCompact.data === 'object' && preCompact.data !== null && 'ratio' in preCompact.data
|
|
112
|
+
? String(preCompact.data.ratio)
|
|
113
|
+
: 'unknown';
|
|
114
|
+
return `Pre-compact checkpoint written at ratio=${ratio} (zone=pre-compact)`;
|
|
115
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
2
|
+
import { type RequestArtifactRole } from '../../services/artifacts/request-artifact-service.js';
|
|
3
|
+
import type { RequestTransitionOptions } from './request-command-options.js';
|
|
4
|
+
export type TransitionPreflight = {
|
|
5
|
+
proceed: true;
|
|
6
|
+
resolvedSessionId: string | undefined;
|
|
7
|
+
} | {
|
|
8
|
+
proceed: false;
|
|
9
|
+
};
|
|
10
|
+
export declare function runTransitionPreflight(io: ProgramIO, requestId: string, role: RequestArtifactRole, options: RequestTransitionOptions): Promise<TransitionPreflight>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// Split out of `request-commands.ts`: the
|
|
2
|
+
// pre-transition refusals `peaks request transition` runs before it touches an
|
|
3
|
+
// artifact — session-id resolution, the `--allow-incomplete` reason rule, and
|
|
4
|
+
// the assisted/strict-mode bypass gate.
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { fail } from 'peaks-loop-shared/result';
|
|
7
|
+
import { isUnsafePathInput } from '../../shared/path-safety.js';
|
|
8
|
+
import { printResult } from '../cli-helpers.js';
|
|
9
|
+
import { isBypassLimitReached, recordBypass, MAX_BYPASSES_PER_SESSION } from '../../services/mode/bypass-tracker.js';
|
|
10
|
+
import { showRequestArtifact } from '../../services/artifacts/request-artifact-service.js';
|
|
11
|
+
function refuseInvalidSession(io, options, resolvedSessionId) {
|
|
12
|
+
printResult(io, fail('request.transition', 'INVALID_SESSION_ID', `Invalid session id: ${resolvedSessionId} (must be a single path segment)`, { provided: resolvedSessionId }, ['Pass a session id that is a single path segment']), options.json);
|
|
13
|
+
process.exitCode = 1;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the artifact's real session up front. Falling back to a literal
|
|
17
|
+
* 'default' (the previous behavior) points the bypass counter at a
|
|
18
|
+
* non-existent .peaks/default/ dir and crashes with ENOENT, so when
|
|
19
|
+
* --session-id is omitted we look the artifact up to find its session.
|
|
20
|
+
* Returns `null` when a refusal was printed.
|
|
21
|
+
*/
|
|
22
|
+
async function resolveTransitionSessionId(io, requestId, role, options) {
|
|
23
|
+
let resolvedSessionId = options.sessionId;
|
|
24
|
+
// Sid axis: either arm of `resolvedSessionId` can be a caller-supplied
|
|
25
|
+
// `--session-id`, and it is joined into the bypass-counter root below.
|
|
26
|
+
if (resolvedSessionId !== undefined && isUnsafePathInput(resolvedSessionId)) {
|
|
27
|
+
refuseInvalidSession(io, options, resolvedSessionId);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
if (resolvedSessionId === undefined) {
|
|
31
|
+
const located = await showRequestArtifact({ projectRoot: options.project, role, requestId });
|
|
32
|
+
if (located !== null) {
|
|
33
|
+
resolvedSessionId = located.sessionId;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return resolvedSessionId;
|
|
37
|
+
}
|
|
38
|
+
function refuseBypassReasonRequired(io, ctx) {
|
|
39
|
+
printResult(io, fail('request.transition', 'BYPASS_REASON_REQUIRED', '--allow-incomplete requires --reason explaining why prerequisites are skipped', { role: ctx.role, requestId: ctx.requestId }, [
|
|
40
|
+
'Add --reason "<short justification>" or remove --allow-incomplete and produce the missing artifacts'
|
|
41
|
+
]), ctx.options.json);
|
|
42
|
+
process.exitCode = 1;
|
|
43
|
+
}
|
|
44
|
+
function refuseAllowIncompleteRestricted(io, ctx, mode) {
|
|
45
|
+
printResult(io, fail('request.transition', 'ALLOW_INCOMPLETE_RESTRICTED', `--allow-incomplete requires --confirm in ${mode} mode`, { role: ctx.role, requestId: ctx.requestId, mode }, [
|
|
46
|
+
'Ask the user via AskUserQuestion whether to proceed, then re-run with --confirm if they approve.'
|
|
47
|
+
]), ctx.options.json);
|
|
48
|
+
process.exitCode = 1;
|
|
49
|
+
}
|
|
50
|
+
function refuseBypassLimitReached(io, ctx) {
|
|
51
|
+
printResult(io, fail('request.transition', 'BYPASS_LIMIT_REACHED', `--allow-incomplete limit reached (${MAX_BYPASSES_PER_SESSION} per session)`, { role: ctx.role, requestId: ctx.requestId, limit: MAX_BYPASSES_PER_SESSION }, ['Produce the missing artifacts instead of bypassing.']), ctx.options.json);
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Restrict --allow-incomplete in assisted/strict modes: require --confirm,
|
|
56
|
+
* then count the bypass under the canonical session home
|
|
57
|
+
* `.peaks/_runtime/<sid>/`, NOT `.peaks/_runtime/<sid>/`. The legacy path
|
|
58
|
+
* landed `.bypass-count.json` at the project root and was ignored only by
|
|
59
|
+
* `.gitignore`, not by the runtime — a back-compat reader on the root would
|
|
60
|
+
* never see it. The canonical home is the same one `peaks session info
|
|
61
|
+
* --active` resolves from `_runtime/session.json`, so all session-scoped state
|
|
62
|
+
* (artifacts + bypass counter) now lives in one tree.
|
|
63
|
+
*/
|
|
64
|
+
async function applyRestrictedBypassGate(io, ctx) {
|
|
65
|
+
const { options, resolvedSessionId } = ctx;
|
|
66
|
+
const { getSkillPresence } = await import('../../services/skills/skill-presence-service.js');
|
|
67
|
+
const presence = getSkillPresence(options.project);
|
|
68
|
+
if (!(presence?.mode === 'assisted' || presence?.mode === 'strict'))
|
|
69
|
+
return true;
|
|
70
|
+
if (options.confirm !== true) {
|
|
71
|
+
refuseAllowIncompleteRestricted(io, ctx, presence.mode);
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const sessionRoot = join(options.project, '.peaks', '_runtime', resolvedSessionId ?? 'default');
|
|
75
|
+
if (isBypassLimitReached(sessionRoot)) {
|
|
76
|
+
refuseBypassLimitReached(io, ctx);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
recordBypass(sessionRoot);
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
async function checkBypassPreconditions(io, ctx) {
|
|
83
|
+
const { options } = ctx;
|
|
84
|
+
if (options.allowIncomplete === true &&
|
|
85
|
+
(options.reason === undefined || options.reason.trim().length === 0)) {
|
|
86
|
+
refuseBypassReasonRequired(io, ctx);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
if (options.allowIncomplete === true && options.forceConfirm !== true) {
|
|
90
|
+
return applyRestrictedBypassGate(io, ctx);
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
export async function runTransitionPreflight(io, requestId, role, options) {
|
|
95
|
+
const resolvedSessionId = await resolveTransitionSessionId(io, requestId, role, options);
|
|
96
|
+
if (resolvedSessionId === null)
|
|
97
|
+
return { proceed: false };
|
|
98
|
+
const allowed = await checkBypassPreconditions(io, {
|
|
99
|
+
requestId,
|
|
100
|
+
role,
|
|
101
|
+
options,
|
|
102
|
+
resolvedSessionId
|
|
103
|
+
});
|
|
104
|
+
if (!allowed)
|
|
105
|
+
return { proceed: false };
|
|
106
|
+
return { proceed: true, resolvedSessionId };
|
|
107
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type RequestType } from '../../services/artifacts/artifact-prerequisites.js';
|
|
2
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
3
|
+
export type ArchetypeOptions = {
|
|
4
|
+
project: string;
|
|
5
|
+
json?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type ExistingSystemOptions = {
|
|
8
|
+
project: string;
|
|
9
|
+
maxTokens?: string;
|
|
10
|
+
maxSamples?: string;
|
|
11
|
+
json?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type RequestTypeSanityOptions = {
|
|
14
|
+
project: string;
|
|
15
|
+
type: RequestType;
|
|
16
|
+
baseRef?: string;
|
|
17
|
+
json?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type FileSizeScanOptions = {
|
|
20
|
+
project: string;
|
|
21
|
+
baseRef?: string;
|
|
22
|
+
threshold?: string;
|
|
23
|
+
json?: boolean;
|
|
24
|
+
};
|
|
25
|
+
export type ScanLibrariesOptions = {
|
|
26
|
+
project: string;
|
|
27
|
+
json?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type AcceptanceCoverageOptions = {
|
|
30
|
+
rid: string;
|
|
31
|
+
project: string;
|
|
32
|
+
sessionId?: string;
|
|
33
|
+
json?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export type DiffVsScopeOptions = {
|
|
36
|
+
rid: string;
|
|
37
|
+
project: string;
|
|
38
|
+
sessionId?: string;
|
|
39
|
+
baseRef?: string;
|
|
40
|
+
json?: boolean;
|
|
41
|
+
};
|
|
42
|
+
/** `--format` accepts exactly these two values across the report subcommands. */
|
|
43
|
+
export type ScanOutputFormat = 'md' | 'json';
|
|
44
|
+
export type ApiSurfaceOptions = {
|
|
45
|
+
project: string;
|
|
46
|
+
format?: ScanOutputFormat;
|
|
47
|
+
includeDirs?: string;
|
|
48
|
+
maxPerKind?: number;
|
|
49
|
+
json?: boolean;
|
|
50
|
+
};
|
|
51
|
+
export type OrphanScope = 'working-tree' | 'git-diff' | 'all';
|
|
52
|
+
export type OrphanOptions = {
|
|
53
|
+
project: string;
|
|
54
|
+
format?: ScanOutputFormat;
|
|
55
|
+
scope?: OrphanScope;
|
|
56
|
+
strict?: boolean;
|
|
57
|
+
json?: boolean;
|
|
58
|
+
};
|
|
59
|
+
export type KarpathyScope = 'working-tree' | 'all';
|
|
60
|
+
export type KarpathyOptions = {
|
|
61
|
+
project: string;
|
|
62
|
+
format?: ScanOutputFormat;
|
|
63
|
+
scope?: KarpathyScope;
|
|
64
|
+
json?: boolean;
|
|
65
|
+
};
|
|
66
|
+
export declare function parsePositiveInt(value: string | undefined, fallback: number): number;
|
|
67
|
+
export declare function parseOptionalNonNegativeInt(value: string | undefined): number | undefined;
|
|
68
|
+
export declare function parseRequestType(value: string): RequestType;
|
|
69
|
+
export declare function parseScanOutputFormat(value: string): ScanOutputFormat;
|
|
70
|
+
export declare function parseNonNegativeIntOption(value: string): number;
|
|
71
|
+
export declare function parseOrphanScope(value: string): OrphanScope;
|
|
72
|
+
export declare function parseKarpathyScope(value: string): KarpathyScope;
|
|
73
|
+
/**
|
|
74
|
+
* Everything `emitScanReport` needs. `renderMarkdown` is a thunk because the
|
|
75
|
+
* original callbacks built the markdown at this exact point in the flow — after
|
|
76
|
+
* the `--format json` branches have returned — and it must stay lazy so a
|
|
77
|
+
* `--format json` run never renders markdown it would throw away.
|
|
78
|
+
*/
|
|
79
|
+
export type ScanReportOutput = {
|
|
80
|
+
command: string;
|
|
81
|
+
format?: ScanOutputFormat | undefined;
|
|
82
|
+
json?: boolean | undefined;
|
|
83
|
+
report: unknown;
|
|
84
|
+
nextActions: string[];
|
|
85
|
+
renderMarkdown: () => string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* The output contract shared by `scan api-surface`, `scan orphan` and
|
|
89
|
+
* `scan karpathy`:
|
|
90
|
+
* - `--format json` without `--json` writes the bare report (no envelope);
|
|
91
|
+
* - `--format json` with `--json` writes the ok/data/code envelope;
|
|
92
|
+
* - otherwise markdown goes to stdout, and `--json` wraps it as
|
|
93
|
+
* `{ markdown, report }` while the human path prints "Next actions:" to
|
|
94
|
+
* stderr only when there is at least one.
|
|
95
|
+
*/
|
|
96
|
+
export declare function emitScanReport(io: ProgramIO, output: ScanReportOutput): void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// Shared plumbing for the `peaks scan` subcommands, extracted from
|
|
2
|
+
// scan-commands.ts so that no single file (or function) has to carry ten
|
|
3
|
+
// subcommands at once. Everything here is parameter-in / value-out: the option
|
|
4
|
+
// shapes each runner receives, the parsers the command definitions hand to
|
|
5
|
+
// Commander as option-processing callbacks, and the two output shapes the
|
|
6
|
+
// report commands share (the format-aware envelope / markdown / raw-JSON
|
|
7
|
+
// writer and its "Next actions:" tail).
|
|
8
|
+
//
|
|
9
|
+
// Dependency direction is one-way: this module never imports scan-commands.ts.
|
|
10
|
+
import { InvalidArgumentError } from 'commander';
|
|
11
|
+
import { ok } from 'peaks-loop-shared/result';
|
|
12
|
+
import { isRequestType, VALID_REQUEST_TYPES } from '../../services/artifacts/artifact-prerequisites.js';
|
|
13
|
+
import { printResult } from '../cli-helpers.js';
|
|
14
|
+
export function parsePositiveInt(value, fallback) {
|
|
15
|
+
if (value === undefined)
|
|
16
|
+
return fallback;
|
|
17
|
+
if (!/^\d+$/.test(value))
|
|
18
|
+
return fallback;
|
|
19
|
+
const parsed = Number(value);
|
|
20
|
+
return Number.isSafeInteger(parsed) && parsed > 0 ? parsed : fallback;
|
|
21
|
+
}
|
|
22
|
+
export function parseOptionalNonNegativeInt(value) {
|
|
23
|
+
return value !== undefined && /^\d+$/.test(value) ? Number(value) : undefined;
|
|
24
|
+
}
|
|
25
|
+
export function parseRequestType(value) {
|
|
26
|
+
if (!isRequestType(value)) {
|
|
27
|
+
throw new InvalidArgumentError(`must be one of ${VALID_REQUEST_TYPES.join(', ')}`);
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
export function parseScanOutputFormat(value) {
|
|
32
|
+
if (value !== 'md' && value !== 'json') {
|
|
33
|
+
throw new InvalidArgumentError('must be md or json');
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
export function parseNonNegativeIntOption(value) {
|
|
38
|
+
if (!/^\d+$/.test(value)) {
|
|
39
|
+
throw new InvalidArgumentError('must be a non-negative integer');
|
|
40
|
+
}
|
|
41
|
+
return Number(value);
|
|
42
|
+
}
|
|
43
|
+
export function parseOrphanScope(value) {
|
|
44
|
+
if (value !== 'working-tree' && value !== 'git-diff' && value !== 'all') {
|
|
45
|
+
throw new InvalidArgumentError('must be working-tree, git-diff, or all');
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
export function parseKarpathyScope(value) {
|
|
50
|
+
if (value !== 'working-tree' && value !== 'all') {
|
|
51
|
+
throw new InvalidArgumentError('must be working-tree or all');
|
|
52
|
+
}
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The output contract shared by `scan api-surface`, `scan orphan` and
|
|
57
|
+
* `scan karpathy`:
|
|
58
|
+
* - `--format json` without `--json` writes the bare report (no envelope);
|
|
59
|
+
* - `--format json` with `--json` writes the ok/data/code envelope;
|
|
60
|
+
* - otherwise markdown goes to stdout, and `--json` wraps it as
|
|
61
|
+
* `{ markdown, report }` while the human path prints "Next actions:" to
|
|
62
|
+
* stderr only when there is at least one.
|
|
63
|
+
*/
|
|
64
|
+
export function emitScanReport(io, output) {
|
|
65
|
+
if (output.format === 'json' && !output.json) {
|
|
66
|
+
// Raw JSON without the ok/data/code envelope.
|
|
67
|
+
process.stdout.write(JSON.stringify(output.report, null, 2) + '\n');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (output.format === 'json') {
|
|
71
|
+
printResult(io, ok(output.command, output.report, [], output.nextActions), output.json);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const md = output.renderMarkdown();
|
|
75
|
+
if (output.json) {
|
|
76
|
+
printResult(io, ok(output.command, { markdown: md, report: output.report }, [], output.nextActions), output.json);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
process.stdout.write(md + '\n');
|
|
80
|
+
if (output.nextActions.length > 0) {
|
|
81
|
+
process.stderr.write('\nNext actions:\n' + output.nextActions.map((a) => ' - ' + a).join('\n') + '\n');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import {
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { ProgramIO } from '../cli-helpers.js';
|
|
3
|
+
export type { AcceptanceCoverageOptions, ApiSurfaceOptions, ArchetypeOptions, DiffVsScopeOptions, ExistingSystemOptions, FileSizeScanOptions, KarpathyOptions, KarpathyScope, OrphanOptions, OrphanScope, RequestTypeSanityOptions, ScanLibrariesOptions, ScanOutputFormat, ScanReportOutput } from './scan-command-shared.js';
|
|
3
4
|
export declare function registerScanCommands(program: Command, io: ProgramIO): void;
|