peaks-loop 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -0
- package/README-en.md +4 -4
- package/README.md +25 -4
- package/bin/node-floor.mjs +59 -0
- package/bin/peaks.js +13 -0
- package/config/eslint/tsconfig.lint.json +2 -1
- package/dist/cli/cli-helpers.d.ts +0 -1
- package/dist/cli/cli-helpers.js +0 -1
- package/dist/cli/commands/_cli-error-envelope.js +0 -3
- package/dist/cli/commands/_register.js +2 -2
- package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
- package/dist/cli/commands/adapter-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.d.ts +0 -1
- package/dist/cli/commands/api-diff-commands.js +0 -1
- package/dist/cli/commands/audit-commands.js +21 -24
- package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
- package/dist/cli/commands/bee-commands.d.ts +0 -2
- package/dist/cli/commands/bee-commands.js +0 -2
- package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
- package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
- package/dist/cli/commands/changeset-commands.d.ts +0 -2
- package/dist/cli/commands/changeset-commands.js +0 -2
- package/dist/cli/commands/code-commands.d.ts +0 -3
- package/dist/cli/commands/code-commands.js +0 -3
- package/dist/cli/commands/code-gate-command.d.ts +0 -1
- package/dist/cli/commands/code-gate-command.js +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
- package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
- package/dist/cli/commands/code-job-shape-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
- package/dist/cli/commands/code-mode-gate-commands.js +0 -3
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
- package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
- package/dist/cli/commands/code-mode-status-command.js +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
- package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
- package/dist/cli/commands/code-run-command.js +0 -1
- package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
- package/dist/cli/commands/code-runtime-commands.js +0 -15
- package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
- package/dist/cli/commands/codegraph-command-runtime.js +19 -7
- package/dist/cli/commands/codegraph-commands.js +20 -193
- package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
- package/dist/cli/commands/codegraph-init-command.js +162 -0
- package/dist/cli/commands/codegraph-status-command.js +5 -6
- package/dist/cli/commands/comments-commands.d.ts +14 -0
- package/dist/cli/commands/comments-commands.js +96 -0
- package/dist/cli/commands/compact-command.d.ts +0 -1
- package/dist/cli/commands/compact-command.js +0 -4
- package/dist/cli/commands/container-commands.d.ts +0 -1
- package/dist/cli/commands/container-commands.js +0 -1
- package/dist/cli/commands/context-commands.d.ts +0 -1
- package/dist/cli/commands/context-commands.js +0 -1
- package/dist/cli/commands/core/doctor-command.d.ts +0 -1
- package/dist/cli/commands/core/doctor-command.js +0 -9
- package/dist/cli/commands/core/memory-command.js +10 -1
- package/dist/cli/commands/core/session-command.js +0 -14
- package/dist/cli/commands/core/skill-command.js +1 -10
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
- package/dist/cli/commands/core-artifact-commands.js +0 -1
- package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
- package/dist/cli/commands/cron-commands-actions.js +0 -2
- package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
- package/dist/cli/commands/cron-commands-schedule.js +0 -1
- package/dist/cli/commands/cron-commands.d.ts +0 -1
- package/dist/cli/commands/cron-commands.js +0 -2
- package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
- package/dist/cli/commands/cron-scheduler-commands.js +0 -1
- package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
- package/dist/cli/commands/cron-scheduler-persist.js +0 -5
- package/dist/cli/commands/dashboard-summary.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.d.ts +0 -1
- package/dist/cli/commands/dispatch-commands.js +10 -37
- package/dist/cli/commands/dispatch-from-dag.js +0 -4
- package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
- package/dist/cli/commands/e2e-verify.d.ts +0 -1
- package/dist/cli/commands/ecc-commands.d.ts +16 -22
- package/dist/cli/commands/ecc-commands.js +38 -26
- package/dist/cli/commands/evolution-commands.d.ts +0 -1
- package/dist/cli/commands/evolution-commands.js +0 -1
- package/dist/cli/commands/feedback-commands.d.ts +0 -1
- package/dist/cli/commands/feedback-commands.js +0 -2
- package/dist/cli/commands/fixture-commands.d.ts +0 -2
- package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
- package/dist/cli/commands/gate-commands-enforce.js +0 -4
- package/dist/cli/commands/gate-commands.js +0 -2
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
- package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
- package/dist/cli/commands/heartbeat-commands-action.js +0 -6
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
- package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
- package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
- package/dist/cli/commands/heartbeat-commands.js +0 -1
- package/dist/cli/commands/hooks-commands.js +0 -11
- package/dist/cli/commands/ide-commands.d.ts +0 -1
- package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
- package/dist/cli/commands/job-add-slice-command.js +0 -2
- package/dist/cli/commands/job-commands.js +0 -4
- package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
- package/dist/cli/commands/lease-metrics-commands.js +0 -1
- package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
- package/dist/cli/commands/lease-stats-commands.js +0 -1
- package/dist/cli/commands/log-commands.d.ts +0 -2
- package/dist/cli/commands/log-commands.js +0 -3
- package/dist/cli/commands/loop-eval-commands.js +0 -3
- package/dist/cli/commands/memory-commands.d.ts +0 -1
- package/dist/cli/commands/memory-commands.js +0 -1
- package/dist/cli/commands/observability-commands.d.ts +0 -6
- package/dist/cli/commands/observability-commands.js +0 -6
- package/dist/cli/commands/outer-cache-commands.js +0 -2
- package/dist/cli/commands/playwright-commands.d.ts +0 -1
- package/dist/cli/commands/playwright-commands.js +0 -1
- package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.d.ts +0 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +0 -2
- package/dist/cli/commands/primer-command.d.ts +0 -1
- package/dist/cli/commands/primer-command.js +0 -1
- package/dist/cli/commands/project-commands.js +0 -1
- package/dist/cli/commands/qa-commands.d.ts +0 -1
- package/dist/cli/commands/qa-commands.js +0 -2
- package/dist/cli/commands/release-commands.js +0 -9
- package/dist/cli/commands/request-commands.d.ts +0 -1
- package/dist/cli/commands/request-commands.js +0 -10
- package/dist/cli/commands/request-format-helpers.d.ts +0 -1
- package/dist/cli/commands/request-format-helpers.js +0 -2
- package/dist/cli/commands/runtime-commands.d.ts +0 -1
- package/dist/cli/commands/sc-commands.js +0 -1
- package/dist/cli/commands/session-24h-mode.d.ts +0 -1
- package/dist/cli/commands/session-24h-mode.js +0 -2
- package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
- package/dist/cli/commands/session-checkpoint-command.js +0 -1
- package/dist/cli/commands/session-resume-command.d.ts +0 -1
- package/dist/cli/commands/session-resume-command.js +0 -1
- package/dist/cli/commands/shadcn-commands.js +0 -2
- package/dist/cli/commands/share-commands.d.ts +0 -3
- package/dist/cli/commands/share-commands.js +0 -13
- package/dist/cli/commands/skill-search-commands.d.ts +0 -2
- package/dist/cli/commands/slice-commands.js +0 -2
- package/dist/cli/commands/slice-integrate-commands.js +0 -1
- package/dist/cli/commands/spill-demo-command.d.ts +0 -1
- package/dist/cli/commands/statusline-commands.js +0 -4
- package/dist/cli/commands/sub-agent/detached.js +0 -2
- package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
- package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
- package/dist/cli/commands/sub-agent-shared.js +0 -5
- package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
- package/dist/cli/commands/tech-commands.d.ts +0 -4
- package/dist/cli/commands/tech-commands.js +0 -4
- package/dist/cli/commands/vendor-detect.d.ts +0 -3
- package/dist/cli/commands/vendor-detect.js +0 -2
- package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
- package/dist/cli/commands/verdict-aggregate-command.js +0 -7
- package/dist/cli/commands/vm-commands.d.ts +0 -1
- package/dist/cli/commands/vm-commands.js +5 -29
- package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
- package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
- package/dist/cli/commands/vm-status-command.d.ts +3 -0
- package/dist/cli/commands/vm-status-command.js +50 -0
- package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
- package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
- package/dist/cli/commands/workflow-commands.js +0 -14
- package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
- package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
- package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
- package/dist/cli/commands/workspace/clean-command.js +0 -1
- package/dist/cli/commands/workspace/helpers.d.ts +0 -1
- package/dist/cli/commands/workspace/helpers.js +0 -1
- package/dist/cli/commands/workspace/init-command.d.ts +0 -6
- package/dist/cli/commands/workspace/init-command.js +0 -17
- package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
- package/dist/cli/commands/workspace/migrate-command.js +0 -2
- package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
- package/dist/cli/commands/workspace/reconcile-command.js +0 -3
- package/dist/cli/commands/workspace-commands.d.ts +0 -2
- package/dist/cli/commands/workspace-commands.js +0 -4
- package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-commands.js +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
- package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
- package/dist/cli/commands/worktree-lease-commands.js +0 -1
- package/dist/cli/program.js +4 -16
- package/dist/reporters/bdd-reporter.js +0 -1
- package/dist/services/24h-mode/auto-engage.d.ts +0 -1
- package/dist/services/24h-mode/auto-engage.js +0 -1
- package/dist/services/24h-mode/decider.d.ts +0 -3
- package/dist/services/24h-mode/decider.js +0 -3
- package/dist/services/24h-mode/index.d.ts +0 -2
- package/dist/services/24h-mode/index.js +0 -2
- package/dist/services/24h-mode/state.d.ts +0 -1
- package/dist/services/24h-mode/state.js +0 -1
- package/dist/services/24h-mode/store.d.ts +0 -1
- package/dist/services/24h-mode/store.js +0 -1
- package/dist/services/adapter/adapter-registry.js +0 -1
- package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
- package/dist/services/artifacts/artifact-prerequisites.js +0 -19
- package/dist/services/artifacts/artifact-templates.d.ts +0 -1
- package/dist/services/artifacts/artifact-templates.js +0 -1
- package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
- package/dist/services/artifacts/request-artifact-service.js +0 -12
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
- package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
- package/dist/services/audit/artifact-writer.d.ts +0 -1
- package/dist/services/audit/artifact-writer.js +0 -1
- package/dist/services/audit/decision-writer.js +3 -1
- package/dist/services/audit/enforcer-liveness.js +0 -1
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
- package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
- package/dist/services/audit/red-line-audit-input.d.ts +11 -0
- package/dist/services/audit/red-line-audit-input.js +103 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
- package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
- package/dist/services/audit/types.d.ts +0 -2
- package/dist/services/audit/types.js +0 -2
- package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
- package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
- package/dist/services/audit-independent/security-audit-service.js +0 -2
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
- package/dist/services/best-practice/language-detector.js +0 -1
- package/dist/services/best-practice/output-formatter.d.ts +0 -1
- package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
- package/dist/services/capability-audit-service/types.d.ts +1 -3
- package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
- package/dist/services/changeset/changeset-check-service.d.ts +0 -3
- package/dist/services/changeset/changeset-check-service.js +0 -3
- package/dist/services/classify/classify-service.d.ts +0 -1
- package/dist/services/classify/classify-service.js +0 -1
- package/dist/services/classify/classify-types.d.ts +0 -1
- package/dist/services/classify/classify-types.js +0 -1
- package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
- package/dist/services/code/auto-compact-lifecycle.js +0 -10
- package/dist/services/code/auto-compact-modes.d.ts +0 -3
- package/dist/services/code/auto-compact-modes.js +0 -3
- package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
- package/dist/services/code/auto-compact-orchestrator.js +0 -29
- package/dist/services/code/batch-heartbeat-poller.js +0 -1
- package/dist/services/code/compact-event-settle.js +0 -1
- package/dist/services/code/dag-orchestrator.d.ts +0 -1
- package/dist/services/code/dag-orchestrator.js +0 -1
- package/dist/services/code/mode-gate-types.d.ts +1 -3
- package/dist/services/code/mode-gate-types.js +0 -2
- package/dist/services/code/mode-gate.d.ts +0 -5
- package/dist/services/code/mode-gate.js +1 -14
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
- package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
- package/dist/services/code/orchestrator-can-do.d.ts +0 -4
- package/dist/services/code/orchestrator-can-do.js +0 -3
- package/dist/services/code/status-line-renderer.js +0 -1
- package/dist/services/code/user-touchpoint-classifier.js +0 -7
- package/dist/services/code-review/ecc-bridge.d.ts +6 -7
- package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
- package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
- package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
- package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
- package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
- package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
- package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
- package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
- package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
- package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
- package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
- package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
- package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
- package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
- package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
- package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
- package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
- package/dist/services/codegraph/codegraph-project-config.js +90 -0
- package/dist/services/codegraph/codegraph-service.d.ts +1 -2
- package/dist/services/codegraph/codegraph-service.js +11 -11
- package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
- package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
- package/dist/services/comments/citation-rules.d.ts +154 -0
- package/dist/services/comments/citation-rules.js +241 -0
- package/dist/services/comments/comment-audit.d.ts +68 -0
- package/dist/services/comments/comment-audit.js +121 -0
- package/dist/services/comments/comment-citations.d.ts +66 -0
- package/dist/services/comments/comment-citations.js +184 -0
- package/dist/services/comments/comment-hygiene.d.ts +105 -0
- package/dist/services/comments/comment-hygiene.js +170 -0
- package/dist/services/comments/comment-prune.d.ts +88 -0
- package/dist/services/comments/comment-prune.js +196 -0
- package/dist/services/comments/comment-spans.d.ts +30 -0
- package/dist/services/comments/comment-spans.js +266 -0
- package/dist/services/comments/prune-apply.d.ts +82 -0
- package/dist/services/comments/prune-apply.js +217 -0
- package/dist/services/comments/repo-path-probe.d.ts +43 -0
- package/dist/services/comments/repo-path-probe.js +78 -0
- package/dist/services/compact/decision-tables.d.ts +0 -2
- package/dist/services/compact/decision-tables.js +0 -2
- package/dist/services/compact/request-transition-hook.js +0 -2
- package/dist/services/compact-history/compact-history-service.d.ts +0 -2
- package/dist/services/compact-history/compact-history-service.js +0 -1
- package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
- package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
- package/dist/services/config/config-rollback.js +0 -1
- package/dist/services/config/config-safety.d.ts +0 -1
- package/dist/services/config/config-safety.js +0 -1
- package/dist/services/config/config-service.d.ts +0 -1
- package/dist/services/config/config-service.js +0 -1
- package/dist/services/config/model-routing.d.ts +0 -3
- package/dist/services/config/model-routing.js +0 -5
- package/dist/services/container/container-lease.d.ts +0 -1
- package/dist/services/container/container-lease.js +0 -1
- package/dist/services/context/artifact-meta.js +0 -1
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
- package/dist/services/context/auto-compact-dispatcher.js +0 -14
- package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
- package/dist/services/context/auto-compact-reader.d.ts +0 -2
- package/dist/services/context/auto-compact-reader.js +0 -7
- package/dist/services/context/auto-compact-types.d.ts +0 -11
- package/dist/services/context/auto-compact-types.js +0 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
- package/dist/services/context/build-dispatch-system-prompt.js +8 -27
- package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
- package/dist/services/context/codegraph-unavailable-block.js +77 -0
- package/dist/services/context/context-audit-hint.d.ts +0 -1
- package/dist/services/context/context-audit-hint.js +0 -1
- package/dist/services/context/context-audit.d.ts +0 -1
- package/dist/services/context/context-audit.js +0 -1
- package/dist/services/context/harness-window-config.d.ts +0 -4
- package/dist/services/context/harness-window-config.js +0 -4
- package/dist/services/context/main-session-monitor.d.ts +0 -2
- package/dist/services/context/main-session-monitor.js +0 -2
- package/dist/services/context/memory-index-reader.d.ts +0 -2
- package/dist/services/context/memory-index-reader.js +0 -1
- package/dist/services/context/memory-preflight-config.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.d.ts +0 -1
- package/dist/services/context/memory-preflight-service.js +0 -3
- package/dist/services/context/memory-preflight-support.d.ts +0 -5
- package/dist/services/context/post-compact-reinjection.d.ts +0 -1
- package/dist/services/context/post-compact-reinjection.js +0 -1
- package/dist/services/context/summary-view.d.ts +0 -1
- package/dist/services/context/summary-view.js +0 -1
- package/dist/services/crystallization/crystallization-service.d.ts +5 -11
- package/dist/services/crystallization/crystallization-service.js +3 -11
- package/dist/services/crystallization/crystallization-store.d.ts +6 -6
- package/dist/services/dispatch/await-batch-helpers.js +0 -3
- package/dist/services/dispatch/await-batch.d.ts +0 -1
- package/dist/services/dispatch/await-batch.js +0 -4
- package/dist/services/dispatch/batch-counter.js +0 -1
- package/dist/services/dispatch/conflict-replay.d.ts +0 -1
- package/dist/services/dispatch/conflict-replay.js +0 -1
- package/dist/services/dispatch/contract-store.d.ts +0 -2
- package/dist/services/dispatch/contract-store.js +0 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
- package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
- package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
- package/dist/services/dispatch/dispatch-record-writer.js +0 -21
- package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
- package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
- package/dist/services/dispatch/e2e-fixtures.js +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
- package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
- package/dist/services/dispatch/isolation-lease.d.ts +0 -2
- package/dist/services/dispatch/isolation-lease.js +0 -2
- package/dist/services/dispatch/service-shutdown.js +0 -1
- package/dist/services/dispatch/session-capsule.js +0 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
- package/dist/services/dispatch/slice-dag.js +0 -2
- package/dist/services/dispatch/stage-enum.d.ts +0 -1
- package/dist/services/dispatch/stage-enum.js +0 -1
- package/dist/services/dispatch/startup-timeout.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
- package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
- package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
- package/dist/services/dispatch/test-tool-detection.js +0 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
- package/dist/services/doctor/doctor-service/index.d.ts +0 -1
- package/dist/services/doctor/doctor-service/index.js +0 -1
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
- package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
- package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
- package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
- package/dist/services/doctor/doctor-service/types.d.ts +0 -5
- package/dist/services/doctor/doctor-service/types.js +0 -1
- package/dist/services/doctor/doctor-service.d.ts +0 -1
- package/dist/services/doctor/doctor-service.js +0 -2
- package/dist/services/env/shell-probe.js +0 -1
- package/dist/services/evidence/evidence-generator.js +0 -8
- package/dist/services/evolution/evolution-constraints.d.ts +0 -2
- package/dist/services/evolution/evolution-constraints.js +0 -2
- package/dist/services/evolution/evolution-service.d.ts +2 -12
- package/dist/services/evolution/evolution-service.js +0 -9
- package/dist/services/evolution/evolution-store.d.ts +6 -8
- package/dist/services/evolution/evolution-store.js +1 -3
- package/dist/services/evolution/evolution-types.d.ts +0 -2
- package/dist/services/evolution/evolution-types.js +0 -6
- package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
- package/dist/services/evolution/independent-evaluator-runner.js +0 -1
- package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
- package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
- package/dist/services/feedback/feedback-promotion-service.js +0 -10
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
- package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
- package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
- package/dist/services/final-review/final-review-evidence-budget.js +0 -5
- package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
- package/dist/services/final-review/final-review-evidence-sources.js +0 -1
- package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
- package/dist/services/final-review/final-review-output-budget.js +0 -3
- package/dist/services/final-review/final-review-service.d.ts +0 -1
- package/dist/services/final-review/final-review-service.js +0 -1
- package/dist/services/fixture/fixture-capture-service.js +0 -1
- package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
- package/dist/services/fixture/fixture-sanitize-service.js +0 -3
- package/dist/services/fresh-context/config.js +0 -1
- package/dist/services/fresh-context/fresh-context-block.js +0 -1
- package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
- package/dist/services/fresh-context/trigger-scan.js +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
- package/dist/services/handoff/handoff-parser.d.ts +0 -1
- package/dist/services/handoff/handoff-parser.js +0 -1
- package/dist/services/handoff/handoff-types.d.ts +0 -1
- package/dist/services/handoff/handoff-types.js +0 -1
- package/dist/services/handoff/handoff-writer.d.ts +0 -1
- package/dist/services/handoff/handoff-writer.js +0 -1
- package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
- package/dist/services/hooks/auto-compact-hook-install.js +0 -1
- package/dist/services/hooks/output.d.ts +0 -1
- package/dist/services/hooks/output.js +0 -1
- package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
- package/dist/services/hooks/pre-tool-code-gate.js +0 -1
- package/dist/services/hooks/presence-marker-detector.js +0 -1
- package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
- package/dist/services/hooks/worktree-authorization-gate.js +0 -1
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
- package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
- package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/qoder-adapter.js +0 -5
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
- package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
- package/dist/services/ide/adapters/trae-adapter.js +3 -6
- package/dist/services/ide/adapters/zcode-adapter.js +0 -2
- package/dist/services/ide/current-model-detector.js +0 -1
- package/dist/services/ide/hook-protocol.d.ts +0 -2
- package/dist/services/ide/hook-protocol.js +0 -2
- package/dist/services/ide/ide-compact-types.d.ts +0 -7
- package/dist/services/ide/ide-types.d.ts +0 -12
- package/dist/services/ide/resource-profile.d.ts +0 -1
- package/dist/services/job/job-commit-verification.d.ts +0 -2
- package/dist/services/job/job-commit-verification.js +0 -2
- package/dist/services/job/job-orchestrator.d.ts +0 -1
- package/dist/services/job/job-orchestrator.js +0 -1
- package/dist/services/job/job-progress-store.d.ts +0 -2
- package/dist/services/job/job-progress-store.js +0 -3
- package/dist/services/job/job-types.js +0 -1
- package/dist/services/job-snapshot/snapshot.js +0 -1
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
- package/dist/services/legacy/legacy-detector.js +0 -1
- package/dist/services/log/log-commands-service.d.ts +0 -2
- package/dist/services/log/log-commands-service.js +0 -2
- package/dist/services/log/logger.d.ts +0 -1
- package/dist/services/log/logger.js +0 -1
- package/dist/services/log/redact.d.ts +0 -1
- package/dist/services/log/redact.js +0 -1
- package/dist/services/log/retention.d.ts +0 -17
- package/dist/services/log/retention.js +0 -18
- package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-service.js +14 -13
- package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
- package/dist/services/loop/loop-bee-relation-store.js +1 -2
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +1 -1
- package/dist/services/loop/loop-release-service.d.ts +3 -3
- package/dist/services/loop/loop-release-service.js +1 -1
- package/dist/services/loop/loop-release-store.d.ts +6 -7
- package/dist/services/loop/loop-release-store.js +0 -1
- package/dist/services/loop/monotonic-guard.d.ts +0 -1
- package/dist/services/loop/monotonic-guard.js +0 -1
- package/dist/services/memory/memory-ingest-service.js +0 -1
- package/dist/services/memory/project-context-service.d.ts +0 -1
- package/dist/services/memory/project-context-service.js +0 -1
- package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
- package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
- package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
- package/dist/services/memory/project-memory-service/index/search.js +0 -1
- package/dist/services/memory/project-memory-service/index.d.ts +1 -1
- package/dist/services/memory/project-memory-service/index.js +1 -1
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
- package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
- package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
- package/dist/services/memory/project-memory-service.js +0 -1
- package/dist/services/mode/mode-enforcement.js +0 -1
- package/dist/services/mode/mode-status-service.d.ts +0 -2
- package/dist/services/mode/mode-status-service.js +0 -2
- package/dist/services/observability/aggregation.d.ts +0 -4
- package/dist/services/observability/aggregation.js +0 -6
- package/dist/services/observability/observability-schema.js +0 -1
- package/dist/services/observability/observability-service.d.ts +0 -5
- package/dist/services/observability/observability-service.js +0 -4
- package/dist/services/observability/report-formatter.d.ts +0 -2
- package/dist/services/observability/report-formatter.js +0 -2
- package/dist/services/openspec/artifact-boundary.d.ts +0 -4
- package/dist/services/openspec/artifact-boundary.js +0 -4
- package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
- package/dist/services/openspec/coverage-evidence-reader.js +0 -1
- package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
- package/dist/services/polyrepo/polyrepo-service.js +0 -1
- package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
- package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
- package/dist/services/prd/best-practice-auto-trigger.js +0 -2
- package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
- package/dist/services/prd/gate-evidence-derivation.js +0 -5
- package/dist/services/prd/handoff-auto-regen.js +0 -5
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
- package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
- package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
- package/dist/services/prd/handoff-frontmatter.js +61 -2
- package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
- package/dist/services/prd/handoff-gate-evidence.js +12 -12
- package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
- package/dist/services/prd/handoff-path-resolution.js +0 -10
- package/dist/services/prd/handoff-service.d.ts +11 -3
- package/dist/services/prd/handoff-service.js +11 -3
- package/dist/services/prd/handoff-types.d.ts +33 -3
- package/dist/services/prd/handoff-types.js +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
- package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
- package/dist/services/prd/project-scan-types.d.ts +0 -1
- package/dist/services/prd/project-scan-types.js +0 -1
- package/dist/services/preferences/preferences-service.d.ts +0 -1
- package/dist/services/preferences/preferences-service.js +0 -5
- package/dist/services/preferences/preferences-types.d.ts +0 -14
- package/dist/services/preferences/preferences-types.js +0 -4
- package/dist/services/progress/progress-service.js +0 -1
- package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
- package/dist/services/qa/bdd-test-style-verifier.js +0 -1
- package/dist/services/qa/browser-event-logger.d.ts +0 -1
- package/dist/services/qa/browser-event-logger.js +0 -1
- package/dist/services/qa/browser-restart-detector.d.ts +0 -1
- package/dist/services/qa/browser-restart-detector.js +0 -1
- package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
- package/dist/services/qa/browser-reuse-hint.js +0 -1
- package/dist/services/qa/qa-business-review-state.js +0 -2
- package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
- package/dist/services/qa/screenshot-archive-service.js +0 -1
- package/dist/services/rd/impl.js +0 -1
- package/dist/services/rd/rd-service.d.ts +0 -5
- package/dist/services/rd/rd-service.js +0 -5
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
- package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
- package/dist/services/rd/standards-diagnostic.js +0 -1
- package/dist/services/rd/tactical-stage.js +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
- package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
- package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
- package/dist/services/recommendations/installed-capability-detector.js +11 -11
- package/dist/services/release/version-precheck-service.d.ts +0 -2
- package/dist/services/release/version-precheck-service.js +0 -3
- package/dist/services/retrospective/retrospective-index.d.ts +0 -1
- package/dist/services/retrospective/retrospective-index.js +0 -1
- package/dist/services/retrospective/retrospective-show.d.ts +0 -1
- package/dist/services/retrospective/retrospective-show.js +0 -1
- package/dist/services/reviewer/model-family.js +0 -1
- package/dist/services/reviewer/reviewer-config.js +0 -1
- package/dist/services/reviewer/reviewer-service.d.ts +0 -1
- package/dist/services/reviewer/reviewer-service.js +0 -3
- package/dist/services/reviewer/selection-strategies.js +0 -1
- package/dist/services/runtime/runtime-detector.js +0 -1
- package/dist/services/runtime/runtime-service.d.ts +0 -2
- package/dist/services/runtime/vendor-adapter.d.ts +0 -7
- package/dist/services/runtime/vendors/claude-code.js +0 -1
- package/dist/services/runtime/vendors/codex.js +0 -1
- package/dist/services/runtime/vendors/copilot.js +0 -1
- package/dist/services/sc/sc-service.js +0 -6
- package/dist/services/scan/acceptance-coverage-service.js +0 -2
- package/dist/services/scan/api-diff-recorded.d.ts +0 -1
- package/dist/services/scan/api-diff-recorded.js +0 -1
- package/dist/services/scan/api-diff-service.d.ts +0 -1
- package/dist/services/scan/api-diff-service.js +0 -1
- package/dist/services/scan/api-diff-types.d.ts +0 -1
- package/dist/services/scan/api-diff-types.js +0 -1
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +175 -2
- package/dist/services/scan/archetype-service.js +36 -23
- package/dist/services/scan/file-size-policy.d.ts +0 -1
- package/dist/services/scan/file-size-policy.js +0 -5
- package/dist/services/scan/file-size-scan.d.ts +0 -1
- package/dist/services/scan/scan-types.d.ts +9 -0
- package/dist/services/security/safe-settings-path.js +0 -1
- package/dist/services/session/binding-store.d.ts +0 -4
- package/dist/services/session/binding-store.js +0 -7
- package/dist/services/session/caller-binding-service.d.ts +0 -6
- package/dist/services/session/caller-binding-service.js +0 -4
- package/dist/services/session/caller-id-types.d.ts +0 -3
- package/dist/services/session/caller-id-types.js +0 -2
- package/dist/services/session/getSessionDir.js +0 -1
- package/dist/services/session/index.js +0 -1
- package/dist/services/session/platform-fallbacks.d.ts +0 -3
- package/dist/services/session/platform-fallbacks.js +0 -3
- package/dist/services/session/resolve-caller-id.d.ts +0 -2
- package/dist/services/session/resolve-caller-id.js +0 -2
- package/dist/services/session/session-binding-bridge.d.ts +0 -2
- package/dist/services/session/session-binding-bridge.js +0 -15
- package/dist/services/session/session-checkpoint-service.d.ts +0 -1
- package/dist/services/session/session-checkpoint-service.js +0 -1
- package/dist/services/session/session-manager.d.ts +0 -8
- package/dist/services/session/session-manager.js +0 -19
- package/dist/services/session/session-resume-service.d.ts +0 -1
- package/dist/services/session/session-resume-service.js +0 -1
- package/dist/services/share/bundle-reader.d.ts +2 -5
- package/dist/services/share/bundle-reader.js +6 -8
- package/dist/services/share/bundle-writer.d.ts +2 -2
- package/dist/services/skill/resume-detector.js +0 -3
- package/dist/services/skill/skill-scheduler.d.ts +0 -1
- package/dist/services/skill/skill-scheduler.js +0 -1
- package/dist/services/skill/skill-search-service.d.ts +0 -2
- package/dist/services/skill/skill-search-service.js +0 -2
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +2 -1
- package/dist/services/skillhub/release-retain.d.ts +2 -2
- package/dist/services/skillhub/release-retain.js +2 -1
- package/dist/services/skillhub/sqlite-store.d.ts +3 -3
- package/dist/services/skillhub/sqlite-store.js +4 -5
- package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
- package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
- package/dist/services/skills/hooks-settings-service.d.ts +0 -2
- package/dist/services/skills/hooks-settings-service.js +0 -6
- package/dist/services/skills/presence-lease-service.d.ts +0 -1
- package/dist/services/skills/presence-lease-service.js +0 -1
- package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
- package/dist/services/skills/session-start-hook-constants.js +0 -4
- package/dist/services/skills/skill-presence-service.d.ts +0 -8
- package/dist/services/skills/skill-presence-service.js +0 -13
- package/dist/services/skills/skill-statusline-model.d.ts +0 -6
- package/dist/services/skills/skill-statusline-model.js +1 -4
- package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
- package/dist/services/skills/skill-statusline-renderer.js +0 -12
- package/dist/services/skills/skill-statusline-service.js +0 -6
- package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
- package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
- package/dist/services/skills/statusline-palette.d.ts +0 -2
- package/dist/services/skills/statusline-palette.js +0 -3
- package/dist/services/slice/slice-archive-service.js +0 -1
- package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
- package/dist/services/slice/slice-benchmark-service.js +0 -1
- package/dist/services/slice/slice-check-service.js +0 -6
- package/dist/services/slice/slice-check-types.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.d.ts +0 -1
- package/dist/services/slice/slice-pick-service.js +0 -1
- package/dist/services/slice/slice-review-state.js +0 -2
- package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
- package/dist/services/sqlite/sqlite-driver.js +159 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
- package/dist/services/standards/ide-aware-standards-service.js +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
- package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
- package/dist/services/standards/migrate-claude-rules-service.js +0 -3
- package/dist/services/standards/migrate-service.d.ts +0 -1
- package/dist/services/standards/migrate-service.js +0 -1
- package/dist/services/standards/missing-standards-detector.d.ts +0 -2
- package/dist/services/standards/missing-standards-detector.js +0 -3
- package/dist/services/standards/project-standards-service.d.ts +0 -1
- package/dist/services/standards/project-standards-service.js +0 -1
- package/dist/services/standards/standards-render.d.ts +0 -1
- package/dist/services/standards/standards-render.js +0 -1
- package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
- package/dist/services/standards/ui-library-dispatch-block.js +0 -1
- package/dist/services/tech/tech-change-id-service.d.ts +0 -7
- package/dist/services/tech/tech-change-id-service.js +0 -7
- package/dist/services/tech/tech-service.js +0 -5
- package/dist/services/verdict/envelope-parsers.d.ts +0 -2
- package/dist/services/verdict/envelope-parsers.js +0 -2
- package/dist/services/verdict/envelopes.d.ts +0 -1
- package/dist/services/vm/vm-lease.js +0 -1
- package/dist/services/web/aria-node.d.ts +0 -1
- package/dist/services/web/bounded-output.d.ts +0 -1
- package/dist/services/web/bounded-output.js +0 -1
- package/dist/services/web/browser-acquire.js +0 -1
- package/dist/services/web/browser-cache-probe.js +0 -1
- package/dist/services/web/browser-session-manager.js +0 -1
- package/dist/services/web/daemon-entry.js +0 -1
- package/dist/services/web/daemon-registry.js +0 -1
- package/dist/services/web/daemon-supervisor.d.ts +4 -3
- package/dist/services/web/daemon-supervisor.js +4 -4
- package/dist/services/web/playwright-loader.js +0 -1
- package/dist/services/web/playwright-types.d.ts +0 -1
- package/dist/services/web/snapshot-pruner.js +0 -1
- package/dist/services/web/untrusted-envelope.d.ts +0 -1
- package/dist/services/web/web-artifact-paths.js +0 -1
- package/dist/services/web/web-client.d.ts +0 -1
- package/dist/services/web/web-daemon-service.js +0 -1
- package/dist/services/web/web-fallback.d.ts +0 -1
- package/dist/services/web/web-fallback.js +0 -1
- package/dist/services/web/web-install-service.js +0 -1
- package/dist/services/web/web-login-profile.js +0 -1
- package/dist/services/web/web-protocol.d.ts +0 -1
- package/dist/services/web/web-protocol.js +0 -1
- package/dist/services/web/web-status-report.js +0 -1
- package/dist/services/workflow/artifact-paths.js +0 -3
- package/dist/services/workflow/autonomous-resume-writer.js +0 -2
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
- package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
- package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
- package/dist/services/workflow/pipeline-verify-service.js +0 -15
- package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
- package/dist/services/workflow/pipeline-verify-types.js +0 -2
- package/dist/services/workflow/plan-reader.d.ts +0 -1
- package/dist/services/workflow/plan-reader.js +0 -5
- package/dist/services/workflow/plan-refresher.js +0 -2
- package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
- package/dist/services/workflow/plan-trigger-detector.js +0 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
- package/dist/services/workflow/workflow-autonomous-service.js +0 -2
- package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
- package/dist/services/workflow/workflow-autonomous-types.js +0 -2
- package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
- package/dist/services/workflow/workflow-graph-types.js +0 -1
- package/dist/services/workflow/workflow-router-service.js +0 -4
- package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
- package/dist/services/workflow/workflow-skip-service.js +0 -1
- package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-lint.js +0 -2
- package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
- package/dist/services/workflow/workflow-spec-types.js +0 -1
- package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
- package/dist/services/workflow/workflow-spec-yaml.js +0 -2
- package/dist/services/workflow/workflow-spec.js +0 -1
- package/dist/services/workflow/workflow-state-store.js +0 -1
- package/dist/services/workspace/claude-settings-template.d.ts +0 -4
- package/dist/services/workspace/claude-settings-template.js +0 -4
- package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
- package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
- package/dist/services/workspace/migrate-service.js +0 -8
- package/dist/services/workspace/migrate-types.d.ts +0 -4
- package/dist/services/workspace/migrate-types.js +0 -1
- package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
- package/dist/services/workspace/reconcile-migrate.js +0 -5
- package/dist/services/workspace/reconcile-service.d.ts +0 -3
- package/dist/services/workspace/reconcile-service.js +0 -7
- package/dist/services/workspace/reconcile-types.d.ts +0 -5
- package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
- package/dist/services/workspace/sid-naming-guard.js +0 -1
- package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
- package/dist/services/workspace/templates/project-scan/index.js +0 -3
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
- package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
- package/dist/services/workspace/workspace-service.d.ts +0 -7
- package/dist/services/workspace/workspace-service.js +1 -17
- package/dist/services/worktree/playwright-profile.js +0 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
- package/dist/services/worktree/worktree-lease-types.js +0 -1
- package/dist/services/worktree/worktree-lease.d.ts +0 -2
- package/dist/services/worktree/worktree-lease.js +0 -2
- package/dist/shared/format-md-compact.d.ts +0 -2
- package/dist/shared/format-md-compact.js +0 -2
- package/dist/shared/incrementing-number.d.ts +0 -1
- package/dist/shared/incrementing-number.js +0 -1
- package/dist/shared/path-utils.d.ts +0 -1
- package/dist/shared/path-utils.js +0 -1
- package/dist/shared/runtime-root.d.ts +0 -1
- package/dist/shared/runtime-root.js +0 -1
- package/dist/shared/stale-policy.d.ts +0 -1
- package/dist/shared/stale-policy.js +0 -1
- package/package.json +12 -10
- package/scripts/canonical-store-link.mjs +296 -0
- package/scripts/canonical-store-prune.mjs +131 -0
- package/scripts/canonical-store.mjs +298 -0
- package/scripts/install-skills.mjs +175 -560
- package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
- package/skills/peaks-audit/SKILL.md +3 -3
- package/skills/peaks-code/references/frontend-only-mode.md +2 -2
- package/skills/peaks-code/references/startup-sequence.md +0 -4
- package/dist/cli/commands/upgrade-commands.d.ts +0 -25
- package/dist/cli/commands/upgrade-commands.js +0 -154
- package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
- package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
- package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/services/upgrade/1x-detector-service.js +0 -96
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/services/upgrade/upgrade-service.js +0 -428
- package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
|
@@ -8,11 +8,8 @@ import { isUnsafePathInput } from '../../shared/path-safety.js';
|
|
|
8
8
|
import { DEFAULT_REQUEST_TYPE } from '../../services/artifacts/artifact-prerequisites.js';
|
|
9
9
|
import { REQUEST_ID_PATTERN } from '../../services/artifacts/request-artifact-service.js';
|
|
10
10
|
import { contractEvidencePaths } from '../../services/workflow/pipeline-verify-gate-support.js';
|
|
11
|
-
// Slice `2026-09-14-audit-artifact-rid-scoping`: the audit/review evidence
|
|
12
11
|
// filenames carry the rid. The ridless names are the pre-rid locations and
|
|
13
|
-
// stay readable during the back-compat window. `mut/` is NOT rid-scoped —
|
|
14
12
|
// see `MUT_REPORT` in `artifact-prerequisites.ts`: no producer in the repo
|
|
15
|
-
// can write a rid-scoped mut report, so probing a templated name here would
|
|
16
13
|
// look for a file that no writer can create.
|
|
17
14
|
//
|
|
18
15
|
// The candidate lists are read FROM the contract — the same
|
|
@@ -27,7 +24,6 @@ const MUT_REL = 'mut/mut-report.json';
|
|
|
27
24
|
const QA_REL = 'qa/test-reports';
|
|
28
25
|
/**
|
|
29
26
|
* The declared tiers for one artifact name, primary first. Probed by the name
|
|
30
|
-
* this command used before the rid-scoping (the table matches it as either
|
|
31
27
|
* the primary or a legacy tier), so the lookup survives the primary moving.
|
|
32
28
|
* `verdict aggregate` is request-type-agnostic and every fanout-trigger type
|
|
33
29
|
* declares these artifacts identically, so the default type's list is the
|
|
@@ -94,7 +90,6 @@ export function registerVerdictAggregateCommands(program, io) {
|
|
|
94
90
|
}
|
|
95
91
|
try {
|
|
96
92
|
const sources = {
|
|
97
|
-
// v2.13.3 AC-1: use the canonical markdown-aware parser from
|
|
98
93
|
// envelopes.ts. The old inline `parseSecurityFromMarkdown`
|
|
99
94
|
// only understood shape A (`- [SEV] dim @ file:line — hint`),
|
|
100
95
|
// so real dogfood fixtures using shape B (`- HIGH: hint in file:line`)
|
|
@@ -157,7 +152,6 @@ export function registerVerdictAggregateCommands(program, io) {
|
|
|
157
152
|
});
|
|
158
153
|
}
|
|
159
154
|
function readAudit(projectRoot, sid, rid, rels, parse) {
|
|
160
|
-
// Canonical rid-scoped location first, then the pre-rid locations.
|
|
161
155
|
for (const rel of rels) {
|
|
162
156
|
const path = join(projectRoot, '.peaks', '_runtime', sid, rel.replace('<rid>', rid));
|
|
163
157
|
if (existsSync(path))
|
|
@@ -195,7 +189,6 @@ function readQa(projectRoot, sid, rid) {
|
|
|
195
189
|
function parseMutJson(json) {
|
|
196
190
|
return parseMutEnvelope(json);
|
|
197
191
|
}
|
|
198
|
-
// v2.13.3 AC-1: removed inline `parseSecurityFromMarkdown` /
|
|
199
192
|
// `parsePerfFromMarkdown` (only handled shape A). The canonical
|
|
200
193
|
// `parseSecurityEnvelope` / `parsePerfEnvelope` in envelopes.ts now
|
|
201
194
|
// own the markdown parse + JSON back-compat fallback.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks vm spawn | release` — slice 2026-07-29-worktree-l2-extended Part 35.
|
|
3
2
|
*
|
|
4
3
|
* L4 VM isolation runtime. Parallels the design of
|
|
5
4
|
* `container-commands.ts` (Part 12, docker) and
|
|
@@ -34,6 +33,8 @@ import { findProjectRoot } from '../../services/config/config-safety.js';
|
|
|
34
33
|
import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
|
|
35
34
|
import { atomicWriteJson } from '../../services/ide/shared/atomic-json.js';
|
|
36
35
|
import { DEFAULT_VM_IMAGE, deserializeVmLease, finalizeVmLease, generateVmLeaseId, markVmReleased, ttlForVmRole, vmLeaseFilePath } from '../../services/vm/vm-lease.js';
|
|
36
|
+
import { detectHypervisor } from './vm-hypervisor-probe.js';
|
|
37
|
+
import { registerVmStatusCommand } from './vm-status-command.js';
|
|
37
38
|
function joinPathSession(projectRoot, sessionId) {
|
|
38
39
|
return `${projectRoot.replace(/[\\/]+$/, '')}/.peaks/_runtime/${sessionId}`;
|
|
39
40
|
}
|
|
@@ -45,34 +46,6 @@ function resolveTtlMs(raw, role) {
|
|
|
45
46
|
return ttlForVmRole(role);
|
|
46
47
|
return parsed;
|
|
47
48
|
}
|
|
48
|
-
function detectHypervisor(requested) {
|
|
49
|
-
let binary;
|
|
50
|
-
switch (requested) {
|
|
51
|
-
case 'kvm':
|
|
52
|
-
binary = 'virsh';
|
|
53
|
-
break;
|
|
54
|
-
case 'hyperkit':
|
|
55
|
-
binary = 'hvftool';
|
|
56
|
-
break;
|
|
57
|
-
case 'hyperv':
|
|
58
|
-
binary = 'hvc';
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
const v = execSync(`${binary} --version`, {
|
|
63
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
64
|
-
encoding: 'utf8',
|
|
65
|
-
windowsHide: true
|
|
66
|
-
});
|
|
67
|
-
if (requested === 'kvm' && !existsSync('/dev/kvm')) {
|
|
68
|
-
return { ok: false, stderr: 'KVM kernel module not loaded (/dev/kvm absent)' };
|
|
69
|
-
}
|
|
70
|
-
return { ok: true, binary: `${binary} (${v.trim().split('\n')[0] ?? ''})` };
|
|
71
|
-
}
|
|
72
|
-
catch (err) {
|
|
73
|
-
return { ok: false, stderr: err.message };
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
49
|
function spawnVmWithHypervisor(args) {
|
|
77
50
|
if (args.hypervisor === 'kvm') {
|
|
78
51
|
// virsh create expects a domain XML file. We emit a minimal
|
|
@@ -134,6 +107,9 @@ export function registerVmCommand(program, io) {
|
|
|
134
107
|
const cmd = program
|
|
135
108
|
.command('vm')
|
|
136
109
|
.description('L4 VM isolation: spawn/release VM leases via kvm | hyperkit | hyperv (Part 35; pairs with --isolation vm on dispatch).');
|
|
110
|
+
// The host probe rides on the same parent, so `peaks vm status`
|
|
111
|
+
// can say which prerequisite is missing before a spawn fails.
|
|
112
|
+
registerVmStatusCommand(cmd, io);
|
|
137
113
|
addJsonOption(cmd
|
|
138
114
|
.command('spawn')
|
|
139
115
|
.description('Spawn a VM via the requested hypervisor (kvm | hyperkit | hyperv) and write a VM lease. ' +
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { VmHypervisor } from '../../services/vm/vm-lease.js';
|
|
2
|
+
export type HypervisorProbeRow = {
|
|
3
|
+
readonly hypervisor: VmHypervisor;
|
|
4
|
+
readonly binary: string;
|
|
5
|
+
readonly available: boolean;
|
|
6
|
+
/** The version line when available; why not when it is not. */
|
|
7
|
+
readonly detail: string;
|
|
8
|
+
};
|
|
9
|
+
/** Every hypervisor the CLI can dispatch to, and the binary it shells out to. */
|
|
10
|
+
export declare const VM_HYPERVISOR_BINARIES: ReadonlyArray<{
|
|
11
|
+
hypervisor: VmHypervisor;
|
|
12
|
+
binary: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function binaryForHypervisor(requested: VmHypervisor): string;
|
|
15
|
+
/**
|
|
16
|
+
* Is this hypervisor usable here right now? `kvm` needs both the libvirt CLI
|
|
17
|
+
* and the kernel device node; the others need their binary to answer.
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectHypervisor(requested: VmHypervisor): {
|
|
20
|
+
ok: true;
|
|
21
|
+
binary: string;
|
|
22
|
+
} | {
|
|
23
|
+
ok: false;
|
|
24
|
+
stderr: string;
|
|
25
|
+
};
|
|
26
|
+
/** Probe every dispatchable hypervisor, in the order the CLI lists them. */
|
|
27
|
+
export declare function probeHypervisors(): HypervisorProbeRow[];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// src/cli/commands/vm-hypervisor-probe.ts
|
|
2
|
+
//
|
|
3
|
+
// The host-side question every `peaks vm` path has to answer: is there a
|
|
4
|
+
// hypervisor on this machine that a VM could actually be created with?
|
|
5
|
+
//
|
|
6
|
+
// Split out of `vm-commands.ts` because two consumers need it — `vm spawn`
|
|
7
|
+
// (fail-fast before leasing) and `vm status` (report every hypervisor,
|
|
8
|
+
// including the ones that are absent) — and because a command file that both
|
|
9
|
+
// registers commands and answers host questions is the shape this repo keeps
|
|
10
|
+
// paying for in `max-lines` findings.
|
|
11
|
+
//
|
|
12
|
+
// Detection is a real probe, not a platform guess: the binary must answer
|
|
13
|
+
// `--version`, and for KVM the kernel device node must exist. That means the
|
|
14
|
+
// answer can change between two calls (an operator installs libvirt mid-run),
|
|
15
|
+
// which is exactly why `vm status` reports it instead of caching it.
|
|
16
|
+
import { execSync } from 'node:child_process';
|
|
17
|
+
import { existsSync } from 'node:fs';
|
|
18
|
+
/** Every hypervisor the CLI can dispatch to, and the binary it shells out to. */
|
|
19
|
+
export const VM_HYPERVISOR_BINARIES = [
|
|
20
|
+
{ hypervisor: 'kvm', binary: 'virsh' },
|
|
21
|
+
{ hypervisor: 'hyperkit', binary: 'hvftool' },
|
|
22
|
+
{ hypervisor: 'hyperv', binary: 'hvc' }
|
|
23
|
+
];
|
|
24
|
+
export function binaryForHypervisor(requested) {
|
|
25
|
+
const entry = VM_HYPERVISOR_BINARIES.find((row) => row.hypervisor === requested);
|
|
26
|
+
if (entry === undefined) {
|
|
27
|
+
throw new Error(`unknown hypervisor: ${requested}`);
|
|
28
|
+
}
|
|
29
|
+
return entry.binary;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Is this hypervisor usable here right now? `kvm` needs both the libvirt CLI
|
|
33
|
+
* and the kernel device node; the others need their binary to answer.
|
|
34
|
+
*/
|
|
35
|
+
export function detectHypervisor(requested) {
|
|
36
|
+
const binary = binaryForHypervisor(requested);
|
|
37
|
+
try {
|
|
38
|
+
const version = execSync(`${binary} --version`, {
|
|
39
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
40
|
+
encoding: 'utf8',
|
|
41
|
+
windowsHide: true
|
|
42
|
+
});
|
|
43
|
+
if (requested === 'kvm' && !existsSync('/dev/kvm')) {
|
|
44
|
+
return { ok: false, stderr: 'KVM kernel module not loaded (/dev/kvm absent)' };
|
|
45
|
+
}
|
|
46
|
+
return { ok: true, binary: `${binary} (${version.trim().split('\n')[0] ?? ''})` };
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
const message = error.message;
|
|
50
|
+
// A binary that is not installed fails at exec time, and on Windows that
|
|
51
|
+
// error arrives in the console codepage — it renders as mojibake in the
|
|
52
|
+
// terminal. Name the cause instead of quoting it.
|
|
53
|
+
const absent = /not recognized|not found|ENOENT|Command failed/i.test(message);
|
|
54
|
+
return {
|
|
55
|
+
ok: false,
|
|
56
|
+
stderr: absent ? `${binary} is not on PATH` : (message.split('\n')[0] ?? '')
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Probe every dispatchable hypervisor, in the order the CLI lists them. */
|
|
61
|
+
export function probeHypervisors() {
|
|
62
|
+
return VM_HYPERVISOR_BINARIES.map((entry) => {
|
|
63
|
+
const detected = detectHypervisor(entry.hypervisor);
|
|
64
|
+
return detected.ok
|
|
65
|
+
? {
|
|
66
|
+
hypervisor: entry.hypervisor,
|
|
67
|
+
binary: entry.binary,
|
|
68
|
+
available: true,
|
|
69
|
+
detail: detected.binary
|
|
70
|
+
}
|
|
71
|
+
: {
|
|
72
|
+
hypervisor: entry.hypervisor,
|
|
73
|
+
binary: entry.binary,
|
|
74
|
+
available: false,
|
|
75
|
+
detail: detected.stderr
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/cli/commands/vm-status-command.ts
|
|
2
|
+
//
|
|
3
|
+
// `peaks vm status` — the read-only host probe that rides on the `vm` parent.
|
|
4
|
+
//
|
|
5
|
+
// `peaks vm spawn` refuses with VM_RUNTIME_UNAVAILABLE and
|
|
6
|
+
// `peaks sub-agent dispatch --isolation vm` refuses with
|
|
7
|
+
// ISOLATION_VM_NOT_YET_IMPLEMENTED, but neither said WHICH prerequisite is
|
|
8
|
+
// missing on the machine actually running the command: the hypervisor binary,
|
|
9
|
+
// the KVM device node, or a host with no hypervisor at all. The only way to
|
|
10
|
+
// find out was to attempt a spawn that was going to fail.
|
|
11
|
+
//
|
|
12
|
+
// This reports it, and it does not pretend the runtime exists: a probe that
|
|
13
|
+
// finds libvirt on PATH still leaves `--isolation vm` refused, because the
|
|
14
|
+
// missing piece is peaks' VM runtime (image, `vm exec`, per-OS bindings), not
|
|
15
|
+
// the hypervisor. The envelope says so rather than letting a green probe read
|
|
16
|
+
// as "vm works now".
|
|
17
|
+
//
|
|
18
|
+
import { probeHypervisors } from './vm-hypervisor-probe.js';
|
|
19
|
+
import { addJsonOption, printResult } from '../cli-helpers.js';
|
|
20
|
+
import { fail, ok } from 'peaks-loop-shared/result';
|
|
21
|
+
export function registerVmStatusCommand(vm, io) {
|
|
22
|
+
addJsonOption(vm
|
|
23
|
+
.command('status')
|
|
24
|
+
.description('Report which VM hypervisor this host offers (read-only probe; the peaks VM runtime is a separate rid)')).action((options) => {
|
|
25
|
+
const rows = probeHypervisors();
|
|
26
|
+
const anyAvailable = rows.some((row) => row.available);
|
|
27
|
+
const data = {
|
|
28
|
+
platform: process.platform,
|
|
29
|
+
hypervisors: rows,
|
|
30
|
+
anyAvailable,
|
|
31
|
+
// The runtime statement, kept next to the probe result so the two can
|
|
32
|
+
// never be read apart.
|
|
33
|
+
dispatchIsolationVm: 'not implemented'
|
|
34
|
+
};
|
|
35
|
+
for (const row of rows) {
|
|
36
|
+
io.stdout(`${row.hypervisor} ${row.available ? 'present' : 'absent'} ${row.binary}: ${row.detail}`);
|
|
37
|
+
}
|
|
38
|
+
io.stdout(`platform: ${process.platform}`);
|
|
39
|
+
const nextActions = [
|
|
40
|
+
'The peaks VM runtime (image build, `peaks vm exec`, Hyper-V/HyperKit bindings) is not implemented yet: `peaks sub-agent dispatch --isolation vm` stays refused even when a hypervisor is present.',
|
|
41
|
+
'For isolation today use --isolation worktree (L2, production) or --isolation container (L4, docker/podman).'
|
|
42
|
+
];
|
|
43
|
+
if (!anyAvailable) {
|
|
44
|
+
printResult(io, fail('vm.status', 'VM_RUNTIME_UNAVAILABLE', `no VM hypervisor is usable on ${process.platform}: install one of virsh (KVM/libvirt, Linux), hvftool (HyperKit, macOS) or hvc (Hyper-V, Windows) — and on Linux the /dev/kvm device node — or drop --isolation and use worktree/container.`, data, nextActions), options.json);
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
printResult(io, ok('vm.status', data, [], nextActions), options.json);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `peaks web status|stop|install|login` — the daemon-lifecycle, acquisition and
|
|
3
|
-
* persistent-login verbs (slice S2, file 13; S3 adds `install`; S4 adds `login`).
|
|
4
3
|
*
|
|
5
4
|
* Attaches to the `web` parent handed in by `web-commands.ts` rather than
|
|
6
5
|
* looking it up: the lookup needs a fallback branch for "parent not registered
|
|
@@ -15,18 +15,14 @@ import { verifyPipeline } from '../../services/workflow/pipeline-verify-service.
|
|
|
15
15
|
import { applySkip, detectCallerKind } from '../../services/workflow/workflow-skip-service.js';
|
|
16
16
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
17
17
|
import { addJsonOption, failUnsupportedNonDryRun, getErrorMessage, isRecommendationWorkflow, printResult } from '../cli-helpers.js';
|
|
18
|
-
// Slice 015 — typed error → envelope code routing. Used by the four
|
|
19
18
|
// catch sites below (tech.plan / workflow.route / workflow.autonomous /
|
|
20
19
|
// swarm.plan) so provider-config errors surface as `INVALID_PROVIDERS`
|
|
21
20
|
// instead of being silently re-labelled `INVALID_GOAL`.
|
|
22
21
|
import { mapServiceError } from './_cli-error-envelope.js';
|
|
23
|
-
// Slice rid-012 — change-id-axis tech subcommands (`peaks tech plan-change-id` /
|
|
24
22
|
// `peaks tech status-change-id`). Additive; the existing session-axis
|
|
25
23
|
// `peaks tech plan` / `peaks tech status` registrations are untouched.
|
|
26
24
|
import { registerTechCommands } from './tech-commands.js';
|
|
27
25
|
import { registerSwarmCommands } from './swarm-commands.js';
|
|
28
|
-
// Slice rid-014 — autonomous RD swarm planner (`peaks workflow autonomous`).
|
|
29
|
-
// Additive; the existing rid-013 `registerSwarmCommands` and rid-012
|
|
30
26
|
// `registerTechCommands` registrations are byte-for-byte untouched.
|
|
31
27
|
import { registerAutonomousSwarmCommands } from './autonomous-swarm-commands.js';
|
|
32
28
|
// Slice 4.0.8 — workflow lifecycle (init / graph show / graph list / node
|
|
@@ -133,7 +129,6 @@ function runTechPlan(io, options) {
|
|
|
133
129
|
try {
|
|
134
130
|
validatePlanningInput(options.goal);
|
|
135
131
|
const workspaceContext = getCurrentWorkspaceContext();
|
|
136
|
-
// Slice 2026-06-29-change-id-root-removal: the change-id axis is
|
|
137
132
|
// gone. The planner derives scope from the active session; the
|
|
138
133
|
// legacy `sessionId` field is passed as empty string for back-compat
|
|
139
134
|
// with the existing service signature.
|
|
@@ -274,7 +269,6 @@ async function runSwarmPlan(io, options) {
|
|
|
274
269
|
...(options.strictStandards ? { strictStandards: true } : {}),
|
|
275
270
|
...workspaceContext
|
|
276
271
|
});
|
|
277
|
-
// Slice 2026-06-16-peaks-rd-no-gates — wire the strict-mode exit code.
|
|
278
272
|
// The service-layer stamps `standardsErrorCode` onto the envelope; the
|
|
279
273
|
// CLI is responsible for translating it into a non-zero exit.
|
|
280
274
|
if (plan.gateStatus.standardsErrorCode === 'EPEAKS_NO_STANDARDS') {
|
|
@@ -293,7 +287,6 @@ async function runAutonomousResumeInit(io, options) {
|
|
|
293
287
|
if (!options.project || !options.project.trim()) {
|
|
294
288
|
throw new Error('Project path must be non-empty');
|
|
295
289
|
}
|
|
296
|
-
// Slice 2026-06-29-change-id-root-removal: the change-id axis is
|
|
297
290
|
// gone. The CLI surfaces a deterministic placeholder
|
|
298
291
|
// (`session-default`) when the user does not pass a change-id, so
|
|
299
292
|
// the on-disk session-dir join via `getSessionDir` succeeds (the
|
|
@@ -387,7 +380,6 @@ export function registerWorkflowCommands(program, io) {
|
|
|
387
380
|
addTechStatusOptions(tech.command('status')).action((options) => runTechStatus(io, options));
|
|
388
381
|
addTechPlanOptions(program.command('tech-plan')).action((options) => runTechPlan(io, options));
|
|
389
382
|
addTechStatusOptions(program.command('tech-status')).action((options) => runTechStatus(io, options));
|
|
390
|
-
// Slice rid-012 — add the change-id-axis tech subcommands
|
|
391
383
|
// (`peaks tech plan-change-id` / `peaks tech status-change-id`).
|
|
392
384
|
// Additive; the session-axis registrations above are byte-for-byte untouched.
|
|
393
385
|
registerTechCommands(program, io);
|
|
@@ -429,11 +421,9 @@ export function registerWorkflowCommands(program, io) {
|
|
|
429
421
|
process.exitCode = 1;
|
|
430
422
|
}
|
|
431
423
|
});
|
|
432
|
-
// Slice 2026-06-13-peaks-workflow-skip — `peaks workflow skip`.
|
|
433
424
|
// Mark gates as bypassed for a specific rid, so the next
|
|
434
425
|
// `verify-pipeline` reports them as `status: 'skipped'` instead of
|
|
435
426
|
// missing-evidence violations. See RD
|
|
436
|
-
// `.peaks/_runtime/<sid>/rd/requests/001-2026-06-13-peaks-workflow-skip.md`
|
|
437
427
|
// for the three-rule classifier (type allowlist, one-time
|
|
438
428
|
// semantics, role-based auth).
|
|
439
429
|
addJsonOption(workflow
|
|
@@ -493,11 +483,9 @@ export function registerWorkflowCommands(program, io) {
|
|
|
493
483
|
process.exitCode = 1;
|
|
494
484
|
}
|
|
495
485
|
});
|
|
496
|
-
// Slice rid-013 — `peaks swarm plan-change-id` is delegated to
|
|
497
486
|
// `registerSwarmCommands` (a thin wrapper around the new
|
|
498
487
|
// `planRdSwarmGraph` service). The legacy `peaks swarm plan` /
|
|
499
488
|
// `peaks swarm-plan` registrations above stay in-place for back-compat
|
|
500
|
-
// with the existing test suite (`tests/unit/cli-program.workflow.test.ts`).
|
|
501
489
|
const swarm = program.command('swarm').description('Plan RD swarm dry-run graphs');
|
|
502
490
|
addSwarmPlanOptions(swarm.command('plan'), true).action(async (options) => {
|
|
503
491
|
await runSwarmPlan(io, options);
|
|
@@ -506,8 +494,6 @@ export function registerWorkflowCommands(program, io) {
|
|
|
506
494
|
await runSwarmPlan(io, options);
|
|
507
495
|
});
|
|
508
496
|
registerSwarmCommands(program, io);
|
|
509
|
-
// Slice rid-014 — autonomous RD swarm planner. Additive; the rid-013
|
|
510
|
-
// `registerSwarmCommands` and rid-012 `registerTechCommands` calls
|
|
511
497
|
// above are byte-for-byte untouched.
|
|
512
498
|
registerAutonomousSwarmCommands(program, io);
|
|
513
499
|
// Slice 4.0.8 — workflow lifecycle CLI (init / graph show / graph list /
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Action handlers for the `peaks workflow plan` subcommands (slice 025).
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `workflow-plan-commands.ts` (strict-remediation c1). The
|
|
5
4
|
* command registration re-exports these as its programmatic test entry points.
|
|
@@ -14,7 +13,6 @@ import { refreshPlan } from '../../services/workflow/plan-refresher.js';
|
|
|
14
13
|
import { detectTrigger } from '../../services/workflow/plan-trigger-detector.js';
|
|
15
14
|
import { resolveProjectRoot, resolveSessionId } from './workflow-plan-commands-session.js';
|
|
16
15
|
const VALID_TYPES = ['security', 'perf'];
|
|
17
|
-
// F-1 (slice 025 security): reject rids that contain path separators,
|
|
18
16
|
// null bytes, or traversal sequences.
|
|
19
17
|
const REQUEST_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
20
18
|
function isPlanType(value) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared session-id / project-root resolution for the `peaks workflow plan`
|
|
3
|
-
* command family (slice 025).
|
|
4
3
|
*
|
|
5
4
|
* Extracted from `workflow-plan-commands.ts` (strict-remediation c1) so one
|
|
6
5
|
* implementation backs every plan subcommand instead of the per-command copies
|
|
@@ -12,7 +11,6 @@ import { fail } from 'peaks-loop-shared/result';
|
|
|
12
11
|
import { printResult } from '../cli-helpers.js';
|
|
13
12
|
import { getSessionId } from '../../services/session/session-manager.js';
|
|
14
13
|
import { findProjectRoot } from '../../services/config/config-safety.js';
|
|
15
|
-
// F-1 (slice 025 security): reject session ids that look like path
|
|
16
14
|
// traversal payloads. Canonical pattern is YYYY-MM-DD-<slug>.
|
|
17
15
|
const SESSION_ID_PATTERN = /^\d{4}-\d{2}-\d{2}-[a-z][a-z0-9-]*[a-z0-9]$/;
|
|
18
16
|
export function isValidSessionId(value) {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Shared helpers for `peaks workspace <sub-command>` implementations.
|
|
3
3
|
*
|
|
4
4
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) so multiple sub-command files can
|
|
6
5
|
* reuse the same hooks-decision marker + prompt logic. Pure helpers
|
|
7
6
|
* only — no commander / no service calls. Keeping these here means the
|
|
8
7
|
* per-subcommand files stay focused on their command wiring and option
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Shared helpers for `peaks workspace <sub-command>` implementations.
|
|
3
3
|
*
|
|
4
4
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) so multiple sub-command files can
|
|
6
5
|
* reuse the same hooks-decision marker + prompt logic. Pure helpers
|
|
7
6
|
* only — no commander / no service calls. Keeping these here means the
|
|
8
7
|
* per-subcommand files stay focused on their command wiring and option
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace init` — slice 006 + 007 + 014 + 018 + 2026-06-16-peaks-code-auto-scaffold.
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Owns:
|
|
7
5
|
* - commander option wiring (`--project`, `--session-id`, `--change-id`, etc.)
|
|
8
6
|
* - canonical project-root resolution
|
|
@@ -21,7 +19,6 @@ export type WorkspaceInitOptions = {
|
|
|
21
19
|
json?: boolean;
|
|
22
20
|
allowSessionRebind?: boolean;
|
|
23
21
|
/**
|
|
24
|
-
* Slice 018 opt-out, commander-convention form. The user-facing
|
|
25
22
|
* flag is `--no-rotate-on-outer-mismatch`; commander strips the
|
|
26
23
|
* `--no-` prefix and assigns the boolean to this property (default
|
|
27
24
|
* `true`, set to `false` when the flag is passed). The wrapper
|
|
@@ -49,7 +46,6 @@ export type WorkspaceInitOptions = {
|
|
|
49
46
|
*/
|
|
50
47
|
claudeHooks?: boolean;
|
|
51
48
|
/**
|
|
52
|
-
* Slice 2026-06-16-peaks-code-auto-scaffold (RD#7): opt-in flag to
|
|
53
49
|
* auto-scaffold `.claude/rules/{common,<language>}/` when missing.
|
|
54
50
|
* Default `false` — the diagnostic fires but no write happens.
|
|
55
51
|
* Set to `true` (via `--init-standards`) to also run
|
|
@@ -57,7 +53,6 @@ export type WorkspaceInitOptions = {
|
|
|
57
53
|
*/
|
|
58
54
|
initStandards?: boolean;
|
|
59
55
|
/**
|
|
60
|
-
* Slice 2026-07-15-project-scan-bootstrap (G2 / G4b / AC9 / AC10):
|
|
61
56
|
* commander-style `--no-project-scan-bootstrap` opt-out. Default
|
|
62
57
|
* (no flag) leaves this `undefined` (treated as `true`). Pass the
|
|
63
58
|
* flag to set `options.projectScanBootstrap === false`, which the
|
|
@@ -65,7 +60,6 @@ export type WorkspaceInitOptions = {
|
|
|
65
60
|
*/
|
|
66
61
|
projectScanBootstrap?: boolean;
|
|
67
62
|
/**
|
|
68
|
-
* Slice 2026-07-15-project-scan-bootstrap (G2 / G4b / AC10):
|
|
69
63
|
* `--force-project-scan-templates` flag. Default (no flag)
|
|
70
64
|
* leaves this `undefined`. Pass the flag to set
|
|
71
65
|
* `options.forceProjectScanTemplates === true`, which forces the
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace init` — slice 006 + 007 + 014 + 018 + 2026-06-16-peaks-code-auto-scaffold.
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Owns:
|
|
7
5
|
* - commander option wiring (`--project`, `--session-id`, `--change-id`, etc.)
|
|
8
6
|
* - canonical project-root resolution
|
|
@@ -13,7 +11,6 @@
|
|
|
13
11
|
* Imports the shared hooks-decision marker helpers from `./helpers.ts`.
|
|
14
12
|
*/
|
|
15
13
|
import { initWorkspace, InvalidSessionIdError, ConflictingSessionError, LegacyChangeIdSiblingError } from '../../../services/workspace/workspace-service.js';
|
|
16
|
-
// Slice 2026-06-29-change-id-root-removal: `LegacyChangeIdBindingError`
|
|
17
14
|
// was removed with the change-id axis. The legacy symlink-detection
|
|
18
15
|
// branch below no longer fires — the binding file at
|
|
19
16
|
// `.peaks/_runtime/current-change` is no longer written by init
|
|
@@ -75,7 +72,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
75
72
|
// a guard placed after it would leave a `.peaks/_runtime/` tree in the
|
|
76
73
|
// user's home even though the init was refused.
|
|
77
74
|
const projectRoot = resolveWritableProjectRoot(options.project);
|
|
78
|
-
// Slice 018: outer-session-mismatch auto-rotation. When the
|
|
79
75
|
// user did NOT pass --session-id explicitly, run
|
|
80
76
|
// `ensureSessionWithRotation` so the binding is rotated on
|
|
81
77
|
// outer-mismatch before `initWorkspace` is called. The
|
|
@@ -121,13 +117,11 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
121
117
|
// `false`, so the default is "install hooks" (the bypass is
|
|
122
118
|
// on). Pass `--no-claude-hooks` to opt out.
|
|
123
119
|
noClaudeHooks: options.claudeHooks === false,
|
|
124
|
-
// Slice 2026-06-16-peaks-code-auto-scaffold (RD#7): opt-in
|
|
125
120
|
// auto-apply for the missing-standards scaffold. Default false
|
|
126
121
|
// — only the diagnostic is emitted. Pass --init-standards to
|
|
127
122
|
// also run `executeProjectStandardsInit({ apply: true })`.
|
|
128
123
|
initStandards: options.initStandards === true
|
|
129
124
|
});
|
|
130
|
-
// Slice 2026-07-15-project-scan-bootstrap (G2 / G4b / AC9):
|
|
131
125
|
// After the workspace dir is initialized, also bootstrap the
|
|
132
126
|
// `.peaks/project-scan/` artifact tree (project-scan.md + 4
|
|
133
127
|
// bundled audit/business templates). Idempotent — when the user
|
|
@@ -176,7 +170,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
176
170
|
nextActions.push(`Auto-rotated session binding: outer session id changed (was "${rotation.previousSessionId}"). ` +
|
|
177
171
|
`New binding is "${sessionId}". The previous session dir is preserved at .peaks/_runtime/${rotation.previousSessionId}/. ` +
|
|
178
172
|
`Re-run with --no-rotate-on-outer-mismatch to suppress this rotation.`);
|
|
179
|
-
// Slice 002 (v2.15.0) AC-1: a presence marker stamped by the
|
|
180
173
|
// OLD outer session is now stale (defect A from the PRD).
|
|
181
174
|
// peaks-code Step 1 would otherwise pick up the old `mode`
|
|
182
175
|
// field and silently lock the new session into a mode the
|
|
@@ -229,7 +222,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
229
222
|
'again without --no-claude-hooks, or drop the contents of ' +
|
|
230
223
|
'`.peaks/.claude-settings-template.json` into `.claude/settings.local.json` manually.');
|
|
231
224
|
}
|
|
232
|
-
// Slice 2026-06-13-selfheal-claude-settings-template: surface
|
|
233
225
|
// the self-heal outcome for the offline
|
|
234
226
|
// `.peaks/.claude-settings-template.json` copy. When the offline
|
|
235
227
|
// file was refreshed (i.e. the previous peaks-loop release left
|
|
@@ -257,7 +249,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
257
249
|
nextActions.push(`Wrote .peaks/.claude-settings-template.json (action: written) — ` +
|
|
258
250
|
'the offline recovery anchor is now in place for future manual recoveries.');
|
|
259
251
|
}
|
|
260
|
-
// Slice 2026-07-15-project-scan-bootstrap (G2): surface the
|
|
261
252
|
// bootstrap outcome. The envelope carries the write counts and
|
|
262
253
|
// duration so the LLM (and the human) see what landed. The
|
|
263
254
|
// nextAction only fires when the project-scan tree is fresh —
|
|
@@ -283,7 +274,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
283
274
|
else if (hooksOutcome.action === 'first-decision' && hooksOutcome.decision === 'skipped') {
|
|
284
275
|
nextActions.push('Skipped peaks-managed hook install for this project. Re-run with --install-hooks=auto (or peaks hooks install) to install later.');
|
|
285
276
|
}
|
|
286
|
-
// Slice 2026-06-16-peaks-code-auto-scaffold (RD#7):
|
|
287
277
|
// - When the consumer project's `.claude/rules/` is missing or
|
|
288
278
|
// empty, emit the copy-pasteable diagnostic to stderr (via
|
|
289
279
|
// the JSON envelope `warnings` array) AND surface the
|
|
@@ -324,7 +314,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
324
314
|
`wrote ${report.standardsApplied.writtenFiles.length} file(s), ` +
|
|
325
315
|
`kept ${report.standardsApplied.skippedFiles.length} existing file(s).`);
|
|
326
316
|
}
|
|
327
|
-
// Slice 2026-07-15-project-scan-bootstrap (G2): surface the
|
|
328
317
|
// bootstrap outcome. The envelope carries the write counts and
|
|
329
318
|
// duration so the LLM (and the human) see what landed. The
|
|
330
319
|
// nextAction only fires when the project-scan tree is fresh —
|
|
@@ -344,9 +333,7 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
344
333
|
if (report.standardsMissing.missing) {
|
|
345
334
|
markStandardsChecked(projectRoot, sessionId);
|
|
346
335
|
}
|
|
347
|
-
// rid-CG-001 (revised): auto-stake a peaks-loop-managed `.codegraph/`
|
|
348
336
|
// directory after a successful workspace init. Calls the conflict
|
|
349
|
-
// guard (rid-CG-006) BEFORE writing so a foreign schema is never
|
|
350
337
|
// silently overwritten. We now run a REAL upstream `codegraph init`
|
|
351
338
|
// (not just mkdir + marker) so the schema actually has a
|
|
352
339
|
// `codegraph.db`, which is what post-slice auto-refresh and the
|
|
@@ -389,7 +376,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
389
376
|
}
|
|
390
377
|
printResult(io, ok('workspace.init', {
|
|
391
378
|
...report,
|
|
392
|
-
// Slice 018: surface outer-session-mismatch rotation in the
|
|
393
379
|
// JSON envelope so the LLM and the human both see the swap.
|
|
394
380
|
// Field is omitted (not null) when no rotation fired.
|
|
395
381
|
...(rotation.previousSessionId !== null && rotation.reason !== null
|
|
@@ -406,9 +392,7 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
406
392
|
scope: hooksOutcome.scope,
|
|
407
393
|
...(hooksOutcome.reason !== undefined ? { reason: hooksOutcome.reason } : {})
|
|
408
394
|
},
|
|
409
|
-
// rid-CG-001: surface codegraph auto-stake outcome.
|
|
410
395
|
...(codegraphAutoOutcome !== null ? { codegraphAutoStake: codegraphAutoOutcome } : {}),
|
|
411
|
-
// Slice 2026-07-15-project-scan-bootstrap (G2): envelope
|
|
412
396
|
// for the .peaks/project-scan/ bootstrap. Always present
|
|
413
397
|
// (even when skipped / errored) so downstream readers can
|
|
414
398
|
// rely on the shape.
|
|
@@ -476,7 +460,6 @@ export function registerWorkspaceInitCommand(workspace, io) {
|
|
|
476
460
|
process.exitCode = 1;
|
|
477
461
|
return;
|
|
478
462
|
}
|
|
479
|
-
// Slice 2026-06-29-change-id-root-removal: the
|
|
480
463
|
// `LegacyChangeIdBindingError` catch branch is gone — the change-id
|
|
481
464
|
// binding file at `.peaks/_runtime/current-change` is no longer
|
|
482
465
|
// written by init, so there is no legacy binding to detect.
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace migrate` — slice 003 (--to-runtime).
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Migrates legacy `.peaks/_runtime/<sid>/<role>/<file>`
|
|
7
5
|
* into the new `.peaks/retrospective/<change-id>/<role>/<file>` layout.
|
|
8
6
|
*/
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace migrate` — slice 003 (--to-runtime).
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Migrates legacy `.peaks/_runtime/<sid>/<role>/<file>`
|
|
7
5
|
* into the new `.peaks/retrospective/<change-id>/<role>/<file>` layout.
|
|
8
6
|
*/
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace reconcile` — slice 006 + slice 0.5.
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Scans the legacy 2026-MM-DD-session dirs and
|
|
7
5
|
* consolidates the runtime state.
|
|
8
6
|
*
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `peaks workspace reconcile` — slice 006 + slice 0.5.
|
|
3
2
|
*
|
|
4
3
|
* Extracted from `src/cli/commands/workspace-commands.ts` (slice
|
|
5
|
-
* 2026-06-16-workspace-commands-split) to keep that entry file under the
|
|
6
4
|
* 800-line Karpathy cap. Scans the legacy 2026-MM-DD-session dirs and
|
|
7
5
|
* consolidates the runtime state.
|
|
8
6
|
*
|
|
@@ -14,7 +12,6 @@ import { resolveCanonicalProjectRoot } from '../../../services/config/config-ser
|
|
|
14
12
|
import { fail, ok } from 'peaks-loop-shared/result';
|
|
15
13
|
import { addJsonOption, getErrorMessage, printResult } from '../../cli-helpers.js';
|
|
16
14
|
// Inlined from the original 925-line workspace-commands.ts; the import
|
|
17
|
-
// path '../../../shared/duration.js' did not exist and the constants
|
|
18
15
|
// were used as bare identifiers in the legacy file. Future refactor:
|
|
19
16
|
// move to a shared module.
|
|
20
17
|
const DEFAULT_RECONCILE_AGE_DAYS = 7;
|