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,59 @@
|
|
|
1
|
+
import { type ResultEnvelope } from 'peaks-loop-shared/result';
|
|
2
|
+
import type { ProjectMemoryKind } from '../../services/memory/memory-search-service.js';
|
|
3
|
+
export interface MemorySearchCommandOptions {
|
|
4
|
+
query: string;
|
|
5
|
+
kind?: string;
|
|
6
|
+
limit?: number;
|
|
7
|
+
project?: string;
|
|
8
|
+
json?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MemoryListCommandOptions {
|
|
11
|
+
kind?: string;
|
|
12
|
+
pick?: boolean;
|
|
13
|
+
fzfBin?: string;
|
|
14
|
+
project?: string;
|
|
15
|
+
json?: boolean;
|
|
16
|
+
/** Slice B: emit counts + names-of-first-N instead of the full entry array. */
|
|
17
|
+
summary?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface MemoryReindexCommandOptions {
|
|
20
|
+
project?: string;
|
|
21
|
+
dryRun?: boolean;
|
|
22
|
+
apply?: boolean;
|
|
23
|
+
json?: boolean;
|
|
24
|
+
/** Slice B: emit counts + names-of-first-N instead of the full arrays. */
|
|
25
|
+
summary?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface MemoryIngestCommandOptions {
|
|
28
|
+
project?: string;
|
|
29
|
+
sourceDir?: string;
|
|
30
|
+
dryRun?: boolean;
|
|
31
|
+
apply?: boolean;
|
|
32
|
+
json?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface MemoryRotateCommandOptions {
|
|
35
|
+
project?: string;
|
|
36
|
+
dryRun?: boolean;
|
|
37
|
+
apply?: boolean;
|
|
38
|
+
json?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** `--project` canonicalised, else the nearest project root above cwd, else cwd. */
|
|
41
|
+
export declare function resolveMemoryProjectRoot(project?: string): string;
|
|
42
|
+
/** The CLI kind flag, narrowed to the canonical vocabulary; unknown ⇒ no filter. */
|
|
43
|
+
export declare function resolveKindFilter(kind: string | undefined): ProjectMemoryKind | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* The failed envelope for a memory verb: the error's own `code` when it carries
|
|
46
|
+
* one, the verb's `<VERB>_FAILED` otherwise. `byCode` names the one action worth
|
|
47
|
+
* recommending for a specific failure; anything else falls back to
|
|
48
|
+
* `suggestions`, so a caller that has no code-specific advice omits it.
|
|
49
|
+
*/
|
|
50
|
+
export declare function memoryFailure(input: {
|
|
51
|
+
readonly command: string;
|
|
52
|
+
readonly fallbackCode: string;
|
|
53
|
+
readonly error: unknown;
|
|
54
|
+
readonly projectRoot: string;
|
|
55
|
+
readonly suggestions?: readonly string[];
|
|
56
|
+
readonly byCode?: Readonly<Record<string, string>>;
|
|
57
|
+
}): ResultEnvelope<{
|
|
58
|
+
projectRoot: string;
|
|
59
|
+
}>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/cli/commands/memory-command-shared.ts
|
|
2
|
+
//
|
|
3
|
+
// What every `peaks memory` run function shares: the option types the Commander
|
|
4
|
+
// wiring in `core/memory-command.ts` feeds them, the project-root resolution,
|
|
5
|
+
// the kind filter, and the one place a refused run becomes an envelope. Split
|
|
6
|
+
// out of `memory-commands.ts` so each verb can live in its own module.
|
|
7
|
+
//
|
|
8
|
+
// The five run functions used to repeat the same twelve-line catch block, each
|
|
9
|
+
// with its own `(error as { code?: string }).code ?? '<VERB>_FAILED'` and its
|
|
10
|
+
// own suggestion list. `memoryFailure` is that block once; the per-verb
|
|
11
|
+
// fallback code, the code-keyed hints and the default suggestion are the only
|
|
12
|
+
// things that ever differed.
|
|
13
|
+
import { fail, getErrorMessage } from 'peaks-loop-shared/result';
|
|
14
|
+
import { findProjectRoot } from '../../services/config/config-safety.js';
|
|
15
|
+
import { resolveCanonicalProjectRoot } from '../../services/config/config-service.js';
|
|
16
|
+
import { VALID_PROJECT_MEMORY_KINDS } from '../../services/memory/project-memory-service.js';
|
|
17
|
+
/** `--project` canonicalised, else the nearest project root above cwd, else cwd. */
|
|
18
|
+
export function resolveMemoryProjectRoot(project) {
|
|
19
|
+
return project !== undefined
|
|
20
|
+
? resolveCanonicalProjectRoot(project)
|
|
21
|
+
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
22
|
+
}
|
|
23
|
+
/** The CLI kind flag, narrowed to the canonical vocabulary; unknown ⇒ no filter. */
|
|
24
|
+
export function resolveKindFilter(kind) {
|
|
25
|
+
return kind !== undefined && VALID_PROJECT_MEMORY_KINDS.includes(kind)
|
|
26
|
+
? kind
|
|
27
|
+
: undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The failed envelope for a memory verb: the error's own `code` when it carries
|
|
31
|
+
* one, the verb's `<VERB>_FAILED` otherwise. `byCode` names the one action worth
|
|
32
|
+
* recommending for a specific failure; anything else falls back to
|
|
33
|
+
* `suggestions`, so a caller that has no code-specific advice omits it.
|
|
34
|
+
*/
|
|
35
|
+
export function memoryFailure(input) {
|
|
36
|
+
const code = input.error.code ?? input.fallbackCode;
|
|
37
|
+
const hint = input.byCode?.[code];
|
|
38
|
+
return fail(input.command, code, getErrorMessage(input.error), { projectRoot: input.projectRoot }, hint === undefined ? [...(input.suggestions ?? [])] : [hint]);
|
|
39
|
+
}
|
|
@@ -1,79 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
limit?: number;
|
|
8
|
-
project?: string;
|
|
9
|
-
json?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface MemoryListCommandOptions {
|
|
12
|
-
kind?: string;
|
|
13
|
-
pick?: boolean;
|
|
14
|
-
fzfBin?: string;
|
|
15
|
-
project?: string;
|
|
16
|
-
json?: boolean;
|
|
17
|
-
/** Slice B: emit counts + names-of-first-N instead of the full entry array. */
|
|
18
|
-
summary?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface MemoryReindexCommandOptions {
|
|
21
|
-
project?: string;
|
|
22
|
-
dryRun?: boolean;
|
|
23
|
-
apply?: boolean;
|
|
24
|
-
json?: boolean;
|
|
25
|
-
/** Slice B: emit counts + names-of-first-N instead of the full arrays. */
|
|
26
|
-
summary?: boolean;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* `memory reindex`. The full report's arrays stay on disk / in the default
|
|
30
|
-
* envelope; this replaces them with `{count, names}` views (≤ 2 KB).
|
|
31
|
-
*/
|
|
32
|
-
export declare function buildMemoryReindexSummary(report: MemoryReindexReport): Record<string, unknown>;
|
|
33
|
-
/**
|
|
34
|
-
* Slice B: bounded view of `memory list`. `count` is the true total; `names`
|
|
35
|
-
* carries `name (kind)` labels for the first N entries.
|
|
36
|
-
*/
|
|
37
|
-
export declare function buildMemoryListSummary(data: {
|
|
38
|
-
snapshot: MemoryIndexSnapshot;
|
|
39
|
-
entries: readonly MemoryIndexEntry[];
|
|
40
|
-
kindFilter: ProjectMemoryKind | undefined;
|
|
41
|
-
pickedEntries: readonly MemoryIndexEntry[];
|
|
42
|
-
pickedOutputPath: string | null;
|
|
43
|
-
fzfVersion: string | null;
|
|
44
|
-
}): Record<string, unknown>;
|
|
45
|
-
export interface MemoryIngestCommandOptions {
|
|
46
|
-
project?: string;
|
|
47
|
-
sourceDir?: string;
|
|
48
|
-
dryRun?: boolean;
|
|
49
|
-
apply?: boolean;
|
|
50
|
-
json?: boolean;
|
|
51
|
-
}
|
|
52
|
-
export interface MemoryRotateCommandOptions {
|
|
53
|
-
project?: string;
|
|
54
|
-
dryRun?: boolean;
|
|
55
|
-
apply?: boolean;
|
|
56
|
-
json?: boolean;
|
|
57
|
-
}
|
|
58
|
-
export declare function runMemoryList(io: ProgramIO, options: MemoryListCommandOptions): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Run the memory search subcommand. Extracted so unit tests can
|
|
61
|
-
* exercise the full envelope without spawning a subprocess.
|
|
62
|
-
*/
|
|
63
|
-
export declare function runMemorySearch(io: ProgramIO, options: MemorySearchCommandOptions): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* `peaks memory reindex` — rebuild `.peaks/memory/index.json` from disk and
|
|
66
|
-
* regenerate `MEMORY.md`. Dry-run by default; `--apply` writes.
|
|
67
|
-
*/
|
|
68
|
-
export declare function runMemoryReindex(io: ProgramIO, options: MemoryReindexCommandOptions): Promise<void>;
|
|
69
|
-
/**
|
|
70
|
-
* `peaks memory rotate` — tier-driven retention for `.peaks/memory/`.
|
|
71
|
-
* Implements the sediment pruning policy (tier 1: archive, never delete).
|
|
72
|
-
* Dry-run by default; `--apply` moves tier-C candidates into `archived/`.
|
|
73
|
-
*/
|
|
74
|
-
export declare function runMemoryRotate(io: ProgramIO, options: MemoryRotateCommandOptions): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* `peaks memory ingest` — import memories written by the IDE-side agent into
|
|
77
|
-
* `.peaks/memory/`. The IDE-side source is read-only; dry-run by default.
|
|
78
|
-
*/
|
|
79
|
-
export declare function runMemoryIngest(io: ProgramIO, options: MemoryIngestCommandOptions): Promise<void>;
|
|
1
|
+
export type { MemoryIngestCommandOptions, MemoryListCommandOptions, MemoryReindexCommandOptions, MemoryRotateCommandOptions, MemorySearchCommandOptions } from './memory-command-shared.js';
|
|
2
|
+
export { buildMemoryListSummary, runMemoryList } from './memory-list-command.js';
|
|
3
|
+
export { buildMemoryReindexSummary, runMemoryReindex } from './memory-reindex-command.js';
|
|
4
|
+
export { runMemoryIngest } from './memory-ingest-command.js';
|
|
5
|
+
export { runMemoryRotate } from './memory-rotate-command.js';
|
|
6
|
+
export { runMemorySearch } from './memory-search-command.js';
|
|
@@ -1,309 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
apply: report.apply,
|
|
21
|
-
projectRoot: report.projectRoot,
|
|
22
|
-
memoryDir: report.memoryDir,
|
|
23
|
-
indexPath: report.indexPath,
|
|
24
|
-
memoryMdPath: report.memoryMdPath,
|
|
25
|
-
scannedFiles: report.scannedFiles,
|
|
26
|
-
indexed: report.indexed,
|
|
27
|
-
indexedByKind: report.indexedByKind,
|
|
28
|
-
unclassified: boundedNames(report.unclassified.map((u) => `${u.name}${u.rawKind === null ? '' : ` (${u.rawKind})`}`)),
|
|
29
|
-
nameConflicts: boundedNames(report.nameConflicts.map((c) => c.name)),
|
|
30
|
-
orphanIndex: boundedNames(report.orphanIndex.map((o) => o.name)),
|
|
31
|
-
orphanDisk: boundedNames(report.orphanDisk.map((p) => p.split(/[\\/]/).pop() ?? p)),
|
|
32
|
-
memoryMd: report.memoryMd,
|
|
33
|
-
writtenFiles: boundedNames(report.writtenFiles.map((p) => p.split(/[\\/]/).pop() ?? p))
|
|
34
|
-
};
|
|
35
|
-
return fitSummaryToBytes(view);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Slice B: bounded view of `memory list`. `count` is the true total; `names`
|
|
39
|
-
* carries `name (kind)` labels for the first N entries.
|
|
40
|
-
*/
|
|
41
|
-
export function buildMemoryListSummary(data) {
|
|
42
|
-
const label = (e) => `${e.name} (${e.kind})`;
|
|
43
|
-
const view = {
|
|
44
|
-
view: 'summary',
|
|
45
|
-
indexPath: data.snapshot.indexPath,
|
|
46
|
-
version: data.snapshot.version,
|
|
47
|
-
updatedAt: data.snapshot.updatedAt,
|
|
48
|
-
total: data.entries.length,
|
|
49
|
-
kindFilter: data.kindFilter ?? null,
|
|
50
|
-
entries: boundedNames(data.entries.map(label))
|
|
51
|
-
};
|
|
52
|
-
if (data.pickedOutputPath !== null) {
|
|
53
|
-
view.picked = boundedNames(data.pickedEntries.map(label));
|
|
54
|
-
view.pickedOutputPath = data.pickedOutputPath;
|
|
55
|
-
view.fzfVersion = data.fzfVersion;
|
|
56
|
-
}
|
|
57
|
-
return fitSummaryToBytes(view);
|
|
58
|
-
}
|
|
59
|
-
function resolveMemoryProjectRoot(project) {
|
|
60
|
-
return project !== undefined
|
|
61
|
-
? resolveCanonicalProjectRoot(project)
|
|
62
|
-
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
63
|
-
}
|
|
64
|
-
export async function runMemoryList(io, options) {
|
|
65
|
-
const projectRoot = options.project !== undefined
|
|
66
|
-
? resolveCanonicalProjectRoot(options.project)
|
|
67
|
-
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
68
|
-
try {
|
|
69
|
-
const snapshot = loadMemoryIndex(projectRoot);
|
|
70
|
-
const kindFilter = options.kind !== undefined && VALID_KINDS.includes(options.kind)
|
|
71
|
-
? options.kind
|
|
72
|
-
: undefined;
|
|
73
|
-
const entries = kindFilter === undefined
|
|
74
|
-
? snapshot.entries
|
|
75
|
-
: snapshot.entries.filter((e) => e.kind === kindFilter);
|
|
76
|
-
const warnings = [];
|
|
77
|
-
let pickedEntries = entries;
|
|
78
|
-
let pickedOutputPath = null;
|
|
79
|
-
let fzfVersion = null;
|
|
80
|
-
if (options.pick === true) {
|
|
81
|
-
const outputPath = join(projectRoot, '.peaks', 'memory', 'picked.json');
|
|
82
|
-
const byName = new Map(entries.map((e) => [e.name, e]));
|
|
83
|
-
const result = await pickFromList({
|
|
84
|
-
items: entries,
|
|
85
|
-
formatLine: (entry) => `${entry.name} | ${entry.kind} | ${entry.description.slice(0, 60)}`,
|
|
86
|
-
parseLine: (line) => {
|
|
87
|
-
const parts = line.split('|').map((p) => p.trim());
|
|
88
|
-
if (parts.length < 1)
|
|
89
|
-
return null;
|
|
90
|
-
const name = parts[0];
|
|
91
|
-
if (name === undefined || name.length === 0)
|
|
92
|
-
return null;
|
|
93
|
-
return byName.get(name) ?? null;
|
|
94
|
-
},
|
|
95
|
-
outputPath,
|
|
96
|
-
meta: { kindFilter: kindFilter ?? null, totalCandidates: entries.length },
|
|
97
|
-
...(options.fzfBin !== undefined ? { fzfBin: options.fzfBin } : {}),
|
|
98
|
-
projectRoot,
|
|
99
|
-
multi: true,
|
|
100
|
-
prompt: 'memory> '
|
|
101
|
-
});
|
|
102
|
-
pickedEntries = [...result.picked];
|
|
103
|
-
pickedOutputPath = result.outputPath;
|
|
104
|
-
fzfVersion = result.fzfVersion;
|
|
105
|
-
}
|
|
106
|
-
const nextActions = [];
|
|
107
|
-
if (pickedOutputPath !== null) {
|
|
108
|
-
nextActions.push(`Picked ${pickedEntries.length} entr(ies); written to ${pickedOutputPath}`);
|
|
109
|
-
}
|
|
110
|
-
if (entries.length === 0) {
|
|
111
|
-
nextActions.push('No entries match; run `peaks memory extract` to build the index from memory/*.md files.');
|
|
112
|
-
}
|
|
113
|
-
// Slice B: `--summary` swaps the full entry array for a bounded
|
|
114
|
-
// `{count, names}` view. The default (no flag) envelope is byte-identical
|
|
115
|
-
// to before — the flag is strictly opt-in.
|
|
116
|
-
const data = options.summary === true
|
|
117
|
-
? buildMemoryListSummary({
|
|
118
|
-
snapshot,
|
|
119
|
-
entries,
|
|
120
|
-
kindFilter,
|
|
121
|
-
pickedEntries,
|
|
122
|
-
pickedOutputPath,
|
|
123
|
-
fzfVersion
|
|
124
|
-
})
|
|
125
|
-
: {
|
|
126
|
-
indexPath: snapshot.indexPath,
|
|
127
|
-
version: snapshot.version,
|
|
128
|
-
updatedAt: snapshot.updatedAt,
|
|
129
|
-
total: entries.length,
|
|
130
|
-
kindFilter: kindFilter ?? null,
|
|
131
|
-
entries,
|
|
132
|
-
...(options.pick === true
|
|
133
|
-
? { picked: pickedEntries, pickedOutputPath, fzfVersion }
|
|
134
|
-
: {})
|
|
135
|
-
};
|
|
136
|
-
printResult(io, ok('memory.list', data, warnings, nextActions), options.json);
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
const message = getErrorMessage(error);
|
|
140
|
-
const code = error.code ?? 'MEMORY_LIST_FAILED';
|
|
141
|
-
const suggestions = [];
|
|
142
|
-
if (code === 'INDEX_MISSING') {
|
|
143
|
-
suggestions.push('Run `peaks memory extract` to build the index from memory/*.md files');
|
|
144
|
-
}
|
|
145
|
-
printResult(io, fail('memory.list', code, message, { projectRoot }, suggestions), options.json);
|
|
146
|
-
process.exitCode = 1;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Run the memory search subcommand. Extracted so unit tests can
|
|
151
|
-
* exercise the full envelope without spawning a subprocess.
|
|
152
|
-
*/
|
|
153
|
-
export async function runMemorySearch(io, options) {
|
|
154
|
-
const projectRoot = options.project !== undefined
|
|
155
|
-
? resolveCanonicalProjectRoot(options.project)
|
|
156
|
-
: (findProjectRoot(process.cwd()) ?? process.cwd());
|
|
157
|
-
const kindFilter = options.kind !== undefined && VALID_KINDS.includes(options.kind)
|
|
158
|
-
? options.kind
|
|
159
|
-
: undefined;
|
|
160
|
-
try {
|
|
161
|
-
const matches = searchMemory({
|
|
162
|
-
query: options.query,
|
|
163
|
-
projectRoot,
|
|
164
|
-
...(options.limit !== undefined ? { limit: options.limit } : {}),
|
|
165
|
-
...(kindFilter !== undefined ? { kind: kindFilter } : {})
|
|
166
|
-
});
|
|
167
|
-
printResult(io, ok('memory.search', {
|
|
168
|
-
query: options.query,
|
|
169
|
-
total: matches.length,
|
|
170
|
-
matches,
|
|
171
|
-
warnings: []
|
|
172
|
-
}, []), options.json);
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
const message = getErrorMessage(error);
|
|
176
|
-
const code = error.code ?? 'MEMORY_SEARCH_FAILED';
|
|
177
|
-
const suggestions = [];
|
|
178
|
-
if (code === 'INDEX_MISSING') {
|
|
179
|
-
suggestions.push('Run `peaks memory extract --apply` to build the index from memory/*.md files');
|
|
180
|
-
}
|
|
181
|
-
if (code === 'EMPTY_QUERY') {
|
|
182
|
-
suggestions.push('Use `peaks memory index` to list all entries');
|
|
183
|
-
}
|
|
184
|
-
printResult(io, fail('memory.search', code, message, { projectRoot, query: options.query }, suggestions), options.json);
|
|
185
|
-
process.exitCode = 1;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* `peaks memory reindex` — rebuild `.peaks/memory/index.json` from disk and
|
|
190
|
-
* regenerate `MEMORY.md`. Dry-run by default; `--apply` writes.
|
|
191
|
-
*/
|
|
192
|
-
export async function runMemoryReindex(io, options) {
|
|
193
|
-
const projectRoot = resolveMemoryProjectRoot(options.project);
|
|
194
|
-
if (options.dryRun === true && options.apply === true) {
|
|
195
|
-
printResult(io, fail('memory.reindex', 'INVALID_MEMORY_REINDEX_FLAGS', 'Use either --dry-run or --apply, not both', {}, ['Run without --apply to preview the drift report, or pass --apply to rebuild']), options.json);
|
|
196
|
-
process.exitCode = 1;
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
try {
|
|
200
|
-
const report = executeMemoryReindex({ projectRoot, apply: options.apply === true });
|
|
201
|
-
const nextActions = [];
|
|
202
|
-
if (options.apply !== true) {
|
|
203
|
-
nextActions.push('Preview only — re-run with --apply to rebuild index.json and regenerate MEMORY.md.');
|
|
204
|
-
}
|
|
205
|
-
if (report.unclassified.length > 0) {
|
|
206
|
-
nextActions.push(`${report.unclassified.length} file(s) have no resolvable kind; add \`metadata.type\` (or \`kind:\`) to index them.`);
|
|
207
|
-
}
|
|
208
|
-
if (report.orphanIndex.length > 0) {
|
|
209
|
-
nextActions.push(`${report.orphanIndex.length} previous index entry(ies) point at missing files; they are dropped from the rebuilt index.`);
|
|
210
|
-
}
|
|
211
|
-
if (report.nameConflicts.length > 0) {
|
|
212
|
-
nextActions.push(`${report.nameConflicts.length} name collision(s) across files; both entries are kept — rename one file to disambiguate.`);
|
|
213
|
-
}
|
|
214
|
-
// Slice B: `--summary` keeps the scalar drift counts + names-of-first-N;
|
|
215
|
-
// the full report (with every unclassified/orphan path) stays available
|
|
216
|
-
// by omitting the flag. Default shape is unchanged.
|
|
217
|
-
const data = options.summary === true ? buildMemoryReindexSummary(report) : report;
|
|
218
|
-
printResult(io, ok('memory.reindex', data, [], nextActions), options.json);
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
const message = getErrorMessage(error);
|
|
222
|
-
const code = error.code ?? 'MEMORY_REINDEX_FAILED';
|
|
223
|
-
printResult(io, fail('memory.reindex', code, message, { projectRoot }, [
|
|
224
|
-
'Check that the project has a readable .peaks/memory directory'
|
|
225
|
-
]), options.json);
|
|
226
|
-
process.exitCode = 1;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* `peaks memory rotate` — tier-driven retention for `.peaks/memory/`.
|
|
231
|
-
* Implements the sediment pruning policy (tier 1: archive, never delete).
|
|
232
|
-
* Dry-run by default; `--apply` moves tier-C candidates into `archived/`.
|
|
233
|
-
*/
|
|
234
|
-
export async function runMemoryRotate(io, options) {
|
|
235
|
-
const projectRoot = resolveMemoryProjectRoot(options.project);
|
|
236
|
-
if (options.dryRun === true && options.apply === true) {
|
|
237
|
-
printResult(io, fail('memory.rotate', 'INVALID_MEMORY_ROTATE_FLAGS', 'Use either --dry-run or --apply, not both', {}, [
|
|
238
|
-
'Run without --apply to preview the rotation plan, or pass --apply to archive tier-C candidates'
|
|
239
|
-
]), options.json);
|
|
240
|
-
process.exitCode = 1;
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
try {
|
|
244
|
-
const report = executeMemoryRotate({ projectRoot, apply: options.apply === true });
|
|
245
|
-
const nextActions = [];
|
|
246
|
-
if (report.refused) {
|
|
247
|
-
nextActions.push(`Refused to apply: ${report.refusalReasons.join('; ')}`);
|
|
248
|
-
}
|
|
249
|
-
else if (options.apply !== true) {
|
|
250
|
-
nextActions.push('Preview only — re-run with --apply to move the tier-C candidates into archived/.');
|
|
251
|
-
}
|
|
252
|
-
if (report.excluded.length > 0) {
|
|
253
|
-
nextActions.push(`${report.excluded.length} candidate(s) excluded by a safety gate (see \`excluded\`).`);
|
|
254
|
-
}
|
|
255
|
-
const deleteCandidates = report.candidates.filter((candidate) => candidate.action === 'delete-candidate');
|
|
256
|
-
if (deleteCandidates.length > 0) {
|
|
257
|
-
nextActions.push(`${deleteCandidates.length} tier-D file(s) are delete-candidates only; peaks never deletes them — remove by hand if you are sure.`);
|
|
258
|
-
}
|
|
259
|
-
printResult(io, ok('memory.rotate', report, report.warnings, nextActions), options.json);
|
|
260
|
-
if (report.refused)
|
|
261
|
-
process.exitCode = 1;
|
|
262
|
-
}
|
|
263
|
-
catch (error) {
|
|
264
|
-
const message = getErrorMessage(error);
|
|
265
|
-
const code = error.code ?? 'MEMORY_ROTATE_FAILED';
|
|
266
|
-
printResult(io, fail('memory.rotate', code, message, { projectRoot }, [
|
|
267
|
-
'Check that the project has a readable .peaks/memory directory'
|
|
268
|
-
]), options.json);
|
|
269
|
-
process.exitCode = 1;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* `peaks memory ingest` — import memories written by the IDE-side agent into
|
|
274
|
-
* `.peaks/memory/`. The IDE-side source is read-only; dry-run by default.
|
|
275
|
-
*/
|
|
276
|
-
export async function runMemoryIngest(io, options) {
|
|
277
|
-
const projectRoot = resolveMemoryProjectRoot(options.project);
|
|
278
|
-
if (options.dryRun === true && options.apply === true) {
|
|
279
|
-
printResult(io, fail('memory.ingest', 'INVALID_MEMORY_INGEST_FLAGS', 'Use either --dry-run or --apply, not both', {}, ['Run without --apply to preview imports, or pass --apply to write them into .peaks/memory']), options.json);
|
|
280
|
-
process.exitCode = 1;
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
try {
|
|
284
|
-
const report = executeMemoryIngest({
|
|
285
|
-
projectRoot,
|
|
286
|
-
...(options.sourceDir !== undefined ? { sourceDir: options.sourceDir } : {}),
|
|
287
|
-
apply: options.apply === true
|
|
288
|
-
});
|
|
289
|
-
const nextActions = [];
|
|
290
|
-
if (options.apply !== true && report.imported.length > 0) {
|
|
291
|
-
nextActions.push('Preview only — re-run with --apply to write these memories into .peaks/memory.');
|
|
292
|
-
}
|
|
293
|
-
if (report.conflicts.length > 0) {
|
|
294
|
-
nextActions.push(`${report.conflicts.length} conflict(s) left both copies in place; resolve them by hand.`);
|
|
295
|
-
}
|
|
296
|
-
if (report.needsClassification.length > 0) {
|
|
297
|
-
nextActions.push(`${report.needsClassification.length} file(s) could not be classified; add \`metadata.type\` to the source before re-running.`);
|
|
298
|
-
}
|
|
299
|
-
printResult(io, ok('memory.ingest', report, report.warnings, nextActions), options.json);
|
|
300
|
-
}
|
|
301
|
-
catch (error) {
|
|
302
|
-
const message = getErrorMessage(error);
|
|
303
|
-
const code = error.code ?? 'MEMORY_INGEST_FAILED';
|
|
304
|
-
printResult(io, fail('memory.ingest', code, message, { projectRoot }, [
|
|
305
|
-
'Check the --source-dir path and that .peaks/memory is writable'
|
|
306
|
-
]), options.json);
|
|
307
|
-
process.exitCode = 1;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
1
|
+
// src/cli/commands/memory-commands.ts
|
|
2
|
+
//
|
|
3
|
+
// The `peaks memory` run functions, one module per verb:
|
|
4
|
+
//
|
|
5
|
+
// read : `memory-list-command.ts`, `memory-search-command.ts`
|
|
6
|
+
// write : `memory-reindex-command.ts`, `memory-rotate-command.ts`,
|
|
7
|
+
// `memory-ingest-command.ts`
|
|
8
|
+
// shared: `memory-command-shared.ts` (option types, project root, failures)
|
|
9
|
+
//
|
|
10
|
+
// The Commander wiring lives in `core/memory-command.ts`, which reaches these
|
|
11
|
+
// functions by dynamic `import('../memory-commands.js')`; this module is the
|
|
12
|
+
// path it names and keeps re-exporting every symbol it used to define, so
|
|
13
|
+
// `tests/unit/cli/commands/summary-flag.test.ts` and
|
|
14
|
+
// `tests/unit/services/context/summary-view.test.ts` need no edit.
|
|
15
|
+
export { buildMemoryListSummary, runMemoryList } from './memory-list-command.js';
|
|
16
|
+
export { buildMemoryReindexSummary, runMemoryReindex } from './memory-reindex-command.js';
|
|
17
|
+
export { runMemoryIngest } from './memory-ingest-command.js';
|
|
18
|
+
export { runMemoryRotate } from './memory-rotate-command.js';
|
|
19
|
+
export { runMemorySearch } from './memory-search-command.js';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/cli/commands/memory-ingest-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks memory ingest` — import memories written by the IDE-side agent into
|
|
4
|
+
// `.peaks/memory/`. The IDE-side source is read-only; dry-run by default.
|
|
5
|
+
// Extracted from `memory-commands.ts`; the envelope, the flags and the exported
|
|
6
|
+
// symbol name are unchanged.
|
|
7
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
8
|
+
import { executeMemoryIngest } from '../../services/memory/memory-ingest-service.js';
|
|
9
|
+
import { printResult } from '../cli-helpers.js';
|
|
10
|
+
import { memoryFailure, resolveMemoryProjectRoot } from './memory-command-shared.js';
|
|
11
|
+
export async function runMemoryIngest(io, options) {
|
|
12
|
+
const projectRoot = resolveMemoryProjectRoot(options.project);
|
|
13
|
+
if (options.dryRun === true && options.apply === true) {
|
|
14
|
+
printResult(io, fail('memory.ingest', 'INVALID_MEMORY_INGEST_FLAGS', 'Use either --dry-run or --apply, not both', {}, ['Run without --apply to preview imports, or pass --apply to write them into .peaks/memory']), options.json);
|
|
15
|
+
process.exitCode = 1;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const report = executeMemoryIngest({
|
|
20
|
+
projectRoot,
|
|
21
|
+
...(options.sourceDir !== undefined ? { sourceDir: options.sourceDir } : {}),
|
|
22
|
+
apply: options.apply === true
|
|
23
|
+
});
|
|
24
|
+
printResult(io, ok('memory.ingest', report, report.warnings, ingestNextActions(report, options)), options.json);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
printResult(io, memoryFailure({
|
|
28
|
+
command: 'memory.ingest',
|
|
29
|
+
fallbackCode: 'MEMORY_INGEST_FAILED',
|
|
30
|
+
error,
|
|
31
|
+
projectRoot,
|
|
32
|
+
suggestions: ['Check the --source-dir path and that .peaks/memory is writable']
|
|
33
|
+
}), options.json);
|
|
34
|
+
process.exitCode = 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** The preview / conflict / unclassified notices the report earns, in order. */
|
|
38
|
+
function ingestNextActions(report, options) {
|
|
39
|
+
const nextActions = [];
|
|
40
|
+
if (options.apply !== true && report.imported.length > 0) {
|
|
41
|
+
nextActions.push('Preview only — re-run with --apply to write these memories into .peaks/memory.');
|
|
42
|
+
}
|
|
43
|
+
if (report.conflicts.length > 0) {
|
|
44
|
+
nextActions.push(`${report.conflicts.length} conflict(s) left both copies in place; resolve them by hand.`);
|
|
45
|
+
}
|
|
46
|
+
if (report.needsClassification.length > 0) {
|
|
47
|
+
nextActions.push(`${report.needsClassification.length} file(s) could not be classified; add \`metadata.type\` to the source before re-running.`);
|
|
48
|
+
}
|
|
49
|
+
return nextActions;
|
|
50
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type MemoryIndexEntry, type MemoryIndexSnapshot, type ProjectMemoryKind } from '../../services/memory/memory-search-service.js';
|
|
2
|
+
import { type ProgramIO } from '../cli-helpers.js';
|
|
3
|
+
import { type MemoryListCommandOptions } from './memory-command-shared.js';
|
|
4
|
+
/**
|
|
5
|
+
* Slice B: bounded view of `memory list`. `count` is the true total; `names`
|
|
6
|
+
* carries `name (kind)` labels for the first N entries.
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildMemoryListSummary(data: {
|
|
9
|
+
snapshot: MemoryIndexSnapshot;
|
|
10
|
+
entries: readonly MemoryIndexEntry[];
|
|
11
|
+
kindFilter: ProjectMemoryKind | undefined;
|
|
12
|
+
pickedEntries: readonly MemoryIndexEntry[];
|
|
13
|
+
pickedOutputPath: string | null;
|
|
14
|
+
fzfVersion: string | null;
|
|
15
|
+
}): Record<string, unknown>;
|
|
16
|
+
export declare function runMemoryList(io: ProgramIO, options: MemoryListCommandOptions): Promise<void>;
|