peaks-loop 4.0.0-beta.9 → 4.0.3
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 +572 -234
- package/README-en.md +67 -30
- package/README.md +67 -30
- package/agents/karpathy-reviewer.md +33 -0
- package/bin/peaks.js +0 -0
- package/dist/cli/cli-helpers.d.ts +31 -6
- package/dist/cli/cli-helpers.js +48 -25
- package/dist/cli/commands/_register.d.ts +3 -0
- package/dist/cli/commands/_register.js +139 -0
- package/dist/cli/commands/_super.d.ts +10 -0
- package/dist/cli/commands/_super.js +97 -0
- package/dist/cli/commands/adapter-commands-s2a.js +1 -1
- package/dist/cli/commands/asset-commands.js +33 -16
- package/dist/cli/commands/audit-commands.js +2 -2
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
- package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
- package/dist/cli/commands/bee-commands.js +1 -1
- package/dist/cli/commands/capability-commands.js +1 -1
- package/dist/cli/commands/capability-worker-config-sc-commands.js +0 -2
- package/dist/cli/commands/changeset-commands.d.ts +13 -0
- package/dist/cli/commands/changeset-commands.js +46 -0
- package/dist/cli/commands/code-commands.d.ts +11 -1
- package/dist/cli/commands/code-commands.js +19 -699
- package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
- package/dist/cli/commands/code-job-shape-commands.js +164 -0
- package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
- package/dist/cli/commands/code-mode-gate-commands.js +223 -0
- package/dist/cli/commands/code-review-commands.js +2 -2
- package/dist/cli/commands/code-run-command.d.ts +12 -0
- package/dist/cli/commands/code-run-command.js +68 -0
- package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
- package/dist/cli/commands/code-runtime-commands.js +391 -0
- package/dist/cli/commands/codegraph-commands.js +1 -1
- package/dist/cli/commands/compact-command.js +53 -1
- package/dist/cli/commands/complexity-commands.js +1 -1
- package/dist/cli/commands/config-commands.js +4 -75
- package/dist/cli/commands/container-commands.d.ts +28 -0
- package/dist/cli/commands/container-commands.js +221 -0
- package/dist/cli/commands/context-commands.js +3 -2
- package/dist/cli/commands/core/artifacts-command.js +1 -1
- package/dist/cli/commands/core/binding-commands.js +1 -1
- package/dist/cli/commands/core/doctor-command.js +63 -3
- package/dist/cli/commands/core/memory-command.js +1 -1
- package/dist/cli/commands/core/profile-command.js +1 -1
- package/dist/cli/commands/core/proxy-command.js +1 -1
- package/dist/cli/commands/core/session-command.js +9 -7
- package/dist/cli/commands/core/skill-command.js +7 -4
- package/dist/cli/commands/core/standards-command.js +1 -1
- package/dist/cli/commands/cron-commands.d.ts +57 -0
- package/dist/cli/commands/cron-commands.js +257 -0
- package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
- package/dist/cli/commands/cron-scheduler-commands.js +284 -0
- package/dist/cli/commands/dashboard-commands.d.ts +4 -0
- package/dist/cli/commands/dashboard-commands.js +10 -0
- package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
- package/dist/cli/commands/dashboard-long-run.js +122 -0
- package/dist/cli/commands/dashboard-summary.d.ts +12 -0
- package/dist/cli/commands/dashboard-summary.js +58 -0
- package/dist/cli/commands/dispatch-commands.d.ts +0 -7
- package/dist/cli/commands/dispatch-commands.js +372 -8
- package/dist/cli/commands/dispatch-from-dag.js +4 -1
- package/dist/cli/commands/doc-commands.js +1 -1
- package/dist/cli/commands/ecc-commands.d.ts +30 -0
- package/dist/cli/commands/ecc-commands.js +119 -0
- package/dist/cli/commands/evolution-commands.js +1 -1
- package/dist/cli/commands/feedback-commands.js +1 -1
- package/dist/cli/commands/final-review-commands.js +1 -1
- package/dist/cli/commands/fixture-commands.js +1 -1
- package/dist/cli/commands/fork-commands.js +1 -1
- package/dist/cli/commands/gate-commands.js +128 -6
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
- package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
- package/dist/cli/commands/heartbeat-commands.js +76 -5
- package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
- package/dist/cli/commands/heartbeat-watch-command.js +146 -0
- package/dist/cli/commands/hook-handle.js +1 -1
- package/dist/cli/commands/hooks-commands.js +126 -10
- package/dist/cli/commands/ide-commands.js +1 -1
- package/dist/cli/commands/impact-commands.js +1 -1
- package/dist/cli/commands/job-commands.js +34 -1
- package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
- package/dist/cli/commands/lease-metrics-commands.js +231 -0
- package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
- package/dist/cli/commands/lease-stats-commands.js +107 -0
- package/dist/cli/commands/legacy-commands.js +1 -1
- package/dist/cli/commands/log-commands.js +1 -1
- package/dist/cli/commands/loop-commands.js +1 -1
- package/dist/cli/commands/loop-eval-commands.js +1 -1
- package/dist/cli/commands/memory-commands.js +1 -1
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +1 -1
- package/dist/cli/commands/mut-commands.d.ts +1 -1
- package/dist/cli/commands/mut-commands.js +1 -5
- package/dist/cli/commands/observability-commands.js +1 -1
- package/dist/cli/commands/openspec-commands.js +65 -4
- package/dist/cli/commands/perf-audit-commands.js +3 -3
- package/dist/cli/commands/perf-commands.js +1 -1
- package/dist/cli/commands/polyrepo-commands.js +1 -1
- package/dist/cli/commands/prd-blocks-commands.js +1 -1
- package/dist/cli/commands/prd-commands.js +4 -2
- package/dist/cli/commands/preferences-commands.js +23 -3
- package/dist/cli/commands/project-commands.js +1 -1
- package/dist/cli/commands/qa-business-review-commands.js +1 -1
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +39 -3
- package/dist/cli/commands/release-commands.d.ts +15 -0
- package/dist/cli/commands/release-commands.js +113 -21
- package/dist/cli/commands/request-commands.js +1 -1
- package/dist/cli/commands/retrospective-commands.js +1 -1
- package/dist/cli/commands/reviewer-commands.js +1 -1
- package/dist/cli/commands/role-commands.js +1 -1
- package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
- package/dist/cli/commands/runtime-commands-helpers.js +24 -0
- package/dist/cli/commands/runtime-commands.js +1 -2
- package/dist/cli/commands/sc-commands.js +4 -2
- package/dist/cli/commands/scan-commands.js +1 -1
- package/dist/cli/commands/security-audit-commands.js +3 -3
- package/dist/cli/commands/sediment-commands.js +10 -1
- package/dist/cli/commands/session-24h-mode.d.ts +26 -0
- package/dist/cli/commands/session-24h-mode.js +196 -0
- package/dist/cli/commands/share-commands.d.ts +19 -0
- package/dist/cli/commands/share-commands.js +121 -2
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +1 -1
- package/dist/cli/commands/skill-search-commands.js +4 -1
- package/dist/cli/commands/slice-commands.js +1 -1
- package/dist/cli/commands/slice-integrate-commands.js +1 -1
- package/dist/cli/commands/slice-review-commands.js +1 -1
- package/dist/cli/commands/smoke-commands.js +1 -1
- package/dist/cli/commands/sop-commands.js +1 -1
- package/dist/cli/commands/spill-demo-command.d.ts +7 -0
- package/dist/cli/commands/spill-demo-command.js +29 -0
- package/dist/cli/commands/statusline-commands.d.ts +12 -0
- package/dist/cli/commands/statusline-commands.js +79 -17
- package/dist/cli/commands/sub-agent-commands.js +2 -1
- package/dist/cli/commands/sub-agent-shared.d.ts +10 -0
- package/dist/cli/commands/sub-agent-shared.js +24 -1
- package/dist/cli/commands/swarm-commands.d.ts +13 -0
- package/dist/cli/commands/swarm-commands.js +77 -0
- package/dist/cli/commands/tech-commands.d.ts +64 -0
- package/dist/cli/commands/tech-commands.js +195 -0
- package/dist/cli/commands/understand-commands.js +1 -1
- package/dist/cli/commands/upgrade-commands.d.ts +2 -0
- package/dist/cli/commands/upgrade-commands.js +40 -5
- package/dist/cli/commands/user-touchpoint-commands.js +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +1 -1
- package/dist/cli/commands/vm-commands.d.ts +31 -0
- package/dist/cli/commands/vm-commands.js +274 -0
- package/dist/cli/commands/workflow-commands.js +24 -1
- package/dist/cli/commands/workflow-plan-commands.js +1 -1
- package/dist/cli/commands/workspace/init-command.js +1 -1
- package/dist/cli/commands/workspace/migrate-command.js +1 -1
- package/dist/cli/commands/workspace/reconcile-command.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
- package/dist/cli/commands/worktree-auth-commands.js +652 -0
- package/dist/cli/index.js +58 -13
- package/dist/cli/program.d.ts +2 -2
- package/dist/cli/program.js +86 -281
- package/dist/services/24h-mode/decider.d.ts +103 -0
- package/dist/services/24h-mode/decider.js +144 -0
- package/dist/services/24h-mode/index.d.ts +12 -0
- package/dist/services/24h-mode/index.js +12 -0
- package/dist/services/24h-mode/state.d.ts +48 -0
- package/dist/services/24h-mode/state.js +51 -0
- package/dist/services/24h-mode/store.d.ts +27 -0
- package/dist/services/24h-mode/store.js +119 -0
- package/dist/services/artifacts/artifact-prerequisites.js +1 -1
- package/dist/services/artifacts/request-artifact-service.js +1 -1
- package/dist/services/artifacts/workspace-service.js +1 -1
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
- package/dist/services/audit/red-line-catalog-p2-a.d.ts +0 -6
- package/dist/services/audit/red-line-catalog-p2-a.js +230 -1
- package/dist/services/audit/static-service.d.ts +32 -25
- package/dist/services/audit/static-service.js +30 -109
- package/dist/services/audit-independent/index.d.ts +2 -0
- package/dist/services/audit-independent/index.js +2 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
- package/dist/services/changeset/changeset-check-service.d.ts +22 -0
- package/dist/services/changeset/changeset-check-service.js +47 -0
- package/dist/services/code/auto-compact-modes.d.ts +30 -0
- package/dist/services/code/auto-compact-modes.js +38 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +43 -5
- package/dist/services/code/auto-compact-orchestrator.js +101 -21
- package/dist/services/code/dag-orchestrator.d.ts +30 -1
- package/dist/services/code/dag-orchestrator.js +106 -1
- package/dist/services/code/status-line-renderer.d.ts +2 -0
- package/dist/services/code/status-line-renderer.js +21 -3
- package/dist/services/code-review/ocr-service.d.ts +1 -1
- package/dist/services/code-review/ocr-service.js +6 -3
- package/dist/services/compact-history/compact-history-service.d.ts +41 -0
- package/dist/services/compact-history/compact-history-service.js +62 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
- package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
- package/dist/services/config/config-service.d.ts +1 -12
- package/dist/services/config/config-service.js +3 -72
- package/dist/services/config/config-types.d.ts +2 -4
- package/dist/services/config/config-types.js +1 -1
- package/dist/services/container/container-lease.d.ts +67 -0
- package/dist/services/container/container-lease.js +135 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +40 -5
- package/dist/services/context/auto-compact-dispatcher.js +32 -102
- package/dist/services/context/auto-compact-reader.js +1 -1
- package/dist/services/context/auto-compact-types.d.ts +27 -2
- package/dist/services/context/auto-compact-types.js +8 -1
- package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
- package/dist/services/context/build-dispatch-system-prompt.js +117 -0
- package/dist/services/context/collector.d.ts +2 -2
- package/dist/services/context/context-builder.d.ts +4 -4
- package/dist/services/context/context-schema.d.ts +48 -48
- package/dist/services/context/ide-detect.d.ts +4 -0
- package/dist/services/context/ide-detect.js +24 -0
- package/dist/services/context/main-session-monitor.d.ts +1 -4
- package/dist/services/context/main-session-monitor.js +1 -24
- package/dist/services/context/memory-index-reader.d.ts +8 -0
- package/dist/services/context/memory-index-reader.js +57 -0
- package/dist/services/context/memory-lru-cache.d.ts +12 -0
- package/dist/services/context/memory-lru-cache.js +60 -0
- package/dist/services/context/memory-preflight-config.d.ts +19 -0
- package/dist/services/context/memory-preflight-config.js +25 -0
- package/dist/services/context/memory-preflight-service.d.ts +19 -0
- package/dist/services/context/memory-preflight-service.js +120 -0
- package/dist/services/context/spillover-store.d.ts +23 -0
- package/dist/services/context/spillover-store.js +155 -0
- package/dist/services/context/spillover-types.d.ts +18 -0
- package/dist/services/context/spillover-types.js +1 -0
- package/dist/services/crystallization/crystallization-service.d.ts +22 -5
- package/dist/services/crystallization/crystallization-service.js +8 -14
- package/dist/services/crystallization/crystallization-types.d.ts +6 -6
- package/dist/services/crystallization/evidence-brief-builder.d.ts +1 -1
- package/dist/services/crystallization/index.d.ts +13 -0
- package/dist/services/crystallization/index.js +13 -0
- package/dist/services/dashboard/project-dashboard-service.js +2 -2
- package/dist/services/dispatch/await-batch.d.ts +70 -0
- package/dist/services/dispatch/await-batch.js +272 -0
- package/dist/services/dispatch/batch-counter.js +1 -1
- package/dist/services/dispatch/dispatch-record-writer.d.ts +126 -4
- package/dist/services/dispatch/dispatch-record-writer.js +239 -9
- package/dist/services/dispatch/slice-dag.d.ts +46 -0
- package/dist/services/dispatch/slice-dag.js +6 -0
- package/dist/services/dispatch/stage-enum.d.ts +27 -0
- package/dist/services/dispatch/stage-enum.js +48 -0
- package/dist/services/dispatch/startup-timeout.d.ts +86 -0
- package/dist/services/dispatch/startup-timeout.js +97 -0
- package/dist/services/dispatch/sub-agent-dispatcher.js +40 -89
- package/dist/services/dispatch/test-tool-detection.d.ts +25 -1
- package/dist/services/dispatch/test-tool-detection.js +80 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
- package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
- package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
- package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
- package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
- package/dist/services/doctor/doctor-service/index.d.ts +48 -0
- package/dist/services/doctor/doctor-service/index.js +254 -0
- package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
- package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
- package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
- package/dist/services/doctor/doctor-service/types.d.ts +245 -0
- package/dist/services/doctor/doctor-service/types.js +15 -0
- package/dist/services/doctor/doctor-service.d.ts +15 -146
- package/dist/services/doctor/doctor-service.js +22 -926
- package/dist/services/doctor/index.d.ts +22 -0
- package/dist/services/doctor/index.js +22 -0
- package/dist/services/env/shell-probe.d.ts +71 -0
- package/dist/services/env/shell-probe.js +161 -0
- package/dist/services/evolution/evolution-types.d.ts +39 -39
- package/dist/services/final-review/final-review-service.d.ts +11 -1
- package/dist/services/final-review/index.d.ts +2 -0
- package/dist/services/final-review/index.js +1 -0
- package/dist/services/hooks/auto-compact-hook-install.d.ts +4 -5
- package/dist/services/hooks/auto-compact-hook-install.js +4 -5
- package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
- package/dist/services/hooks/worktree-authorization-gate.js +492 -0
- package/dist/services/ide/adapters/claude-code-adapter.js +2 -2
- package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
- package/dist/services/ide/adapters/qoder-adapter.js +57 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
- package/dist/services/ide/ide-registry.js +6 -0
- package/dist/services/ide/ide-types.d.ts +1 -1
- package/dist/services/job/job-types.d.ts +56 -56
- package/dist/services/job-snapshot/index.d.ts +8 -0
- package/dist/services/job-snapshot/index.js +7 -0
- package/dist/services/{job/job-resource-snapshot.d.ts → job-snapshot/snapshot.d.ts} +1 -1
- package/dist/services/job-snapshot/types.d.ts +7 -0
- package/dist/services/job-snapshot/types.js +1 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
- package/dist/services/log/retention.d.ts +16 -0
- package/dist/services/log/retention.js +17 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +6 -6
- package/dist/services/loop/loop-release-types.d.ts +24 -24
- package/dist/services/loop/monotonic-runner.d.ts +17 -11
- package/dist/services/loop/monotonic-runner.js +118 -79
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
- package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
- package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
- package/dist/services/memory/project-memory-service/index/search.js +194 -0
- package/dist/services/memory/project-memory-service/index.d.ts +9 -0
- package/dist/services/memory/project-memory-service/index.js +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
- package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
- package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
- package/dist/services/memory/project-memory-service/store/paths.js +116 -0
- package/dist/services/memory/project-memory-service/types.d.ts +128 -0
- package/dist/services/memory/project-memory-service/types.js +9 -0
- package/dist/services/memory/project-memory-service.d.ts +1 -167
- package/dist/services/memory/project-memory-service.js +19 -816
- package/dist/services/migrate-skill-name/schema.d.ts +2 -2
- package/dist/services/observability/aggregation.d.ts +27 -0
- package/dist/services/observability/aggregation.js +72 -0
- package/dist/services/observability/observability-service.d.ts +73 -7
- package/dist/services/observability/observability-service.js +87 -1
- package/dist/services/openspec/artifact-boundary.d.ts +138 -0
- package/dist/services/openspec/artifact-boundary.js +150 -0
- package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
- package/dist/services/openspec/coverage-evidence-reader.js +386 -0
- package/dist/services/openspec/openspec-archive-service.d.ts +70 -0
- package/dist/services/openspec/openspec-archive-service.js +320 -8
- package/dist/services/openspec/openspec-bridge-service.js +1 -1
- package/dist/services/openspec/openspec-init-service.js +1 -1
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-render-service.js +7 -4
- package/dist/services/openspec/openspec-scan-service.js +1 -1
- package/dist/services/openspec/openspec-validate-service.js +5 -4
- package/dist/services/preferences/preferences-service.js +10 -0
- package/dist/services/preferences/preferences-types.d.ts +13 -0
- package/dist/services/preferences/preferences-types.js +11 -0
- package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
- package/dist/services/qa/screenshot-archive-service.js +134 -0
- package/dist/services/rd/rd-service.js +10 -11
- package/dist/services/rd/types.d.ts +32 -32
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
- package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
- package/dist/services/recommendations/capability-seed-items.js +0 -1
- package/dist/services/recommendations/capability-seed-mappings.js +0 -1
- package/dist/services/recommendations/capability-seed-sources.js +0 -1
- package/dist/services/release/version-precheck-service.d.ts +51 -0
- package/dist/services/release/version-precheck-service.js +257 -0
- package/dist/services/scan/acceptance-coverage-service.js +1 -1
- package/dist/services/scan/archetype-service.js +1 -1
- package/dist/services/scan/existing-system-service.js +1 -1
- package/dist/services/scan/libraries-service.js +1 -1
- package/dist/services/sediment/json-schema.d.ts +40 -40
- package/dist/services/share/bundle-types.d.ts +12 -12
- package/dist/services/share/run-state-contract.d.ts +2 -2
- package/dist/services/skill/skill-search-service.d.ts +12 -7
- package/dist/services/skill/skill-search-service.js +8 -4
- package/dist/services/skillhub/migrations/001-initial.sql +71 -0
- package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
- package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
- package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
- package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
- package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
- package/dist/services/skills/hooks-settings-service.d.ts +75 -0
- package/dist/services/skills/hooks-settings-service.js +230 -2
- package/dist/services/skills/skill-registry.d.ts +1 -0
- package/dist/services/skills/skill-registry.js +6 -4
- package/dist/services/skills/skill-runbook-service.js +1 -1
- package/dist/services/slice/slice-check-service.js +1 -1
- package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
- package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
- package/dist/services/standards/missing-standards-detector.d.ts +25 -0
- package/dist/services/standards/missing-standards-detector.js +43 -12
- package/dist/services/tech/tech-change-id-service.d.ts +82 -0
- package/dist/services/tech/tech-change-id-service.js +117 -0
- package/dist/services/understand/understand-hybrid-service.js +1 -1
- package/dist/services/understand/understand-scan-service.js +2 -2
- package/dist/services/upgrade/upgrade-service.js +4 -3
- package/dist/services/verdict/envelopes.d.ts +2 -2
- package/dist/services/verdict/envelopes.js +2 -2
- package/dist/services/verdict/verdict-aggregator.d.ts +3 -3
- package/dist/services/vm/vm-lease.d.ts +40 -0
- package/dist/services/vm/vm-lease.js +137 -0
- package/dist/services/workflow/autonomous-resume-writer.js +1 -1
- package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
- package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +17 -81
- package/dist/services/workflow/pipeline-verify-service.js +42 -218
- package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-types.js +10 -0
- package/dist/services/workflow/plan-reader.d.ts +1 -1
- package/dist/services/workflow/plan-reader.js +1 -1
- package/dist/services/workflow/plan-refresher.d.ts +1 -1
- package/dist/services/workflow/plan-refresher.js +1 -1
- package/dist/services/workflow/plan-trigger-detector.d.ts +1 -1
- package/dist/services/workflow/plan-trigger-detector.js +1 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +1 -1
- package/dist/services/workflow/workflow-autonomous-service.d.ts +2 -98
- package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
- package/dist/services/workflow/workflow-autonomous-types.js +21 -0
- package/dist/services/workflow/workflow-router-service.js +18 -16
- package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
- package/dist/services/workflow/workflow-spec-lint.js +75 -0
- package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
- package/dist/services/workflow/workflow-spec-types.js +13 -0
- package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
- package/dist/services/workflow/workflow-spec-yaml.js +88 -0
- package/dist/services/workflow/workflow-spec.d.ts +11 -91
- package/dist/services/workflow/workflow-spec.js +16 -145
- package/dist/services/workspace/migrate-service.js +1 -1
- package/dist/services/workspace/workspace-service.js +1 -1
- package/dist/services/worktree/worktree-lease.d.ts +170 -0
- package/dist/services/worktree/worktree-lease.js +242 -0
- package/package.json +91 -51
- package/scripts/clean-dist.mjs +31 -1
- package/scripts/copy-templates.mjs +16 -0
- package/scripts/sync-version.mjs +53 -2
- package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
- package/skills/bee/peaks-prd/SKILL.md +16 -0
- package/skills/bee/peaks-prd/test-prompts.json +12 -0
- package/skills/bee/peaks-qa/SKILL.md +16 -1
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
- package/skills/bee/peaks-qa/test-prompts.json +12 -0
- package/skills/bee/peaks-rd/SKILL.md +29 -20
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
- package/skills/bee/peaks-rd/test-prompts.json +12 -0
- package/skills/bee/peaks-reviewer/SKILL.md +17 -0
- package/skills/bee/peaks-sc/SKILL.md +16 -0
- package/skills/bee/peaks-security-audit/SKILL.md +17 -0
- package/skills/bee/peaks-txt/SKILL.md +16 -0
- package/skills/bee/peaks-txt/test-prompts.json +12 -0
- package/skills/bee/peaks-ui/SKILL.md +49 -43
- package/skills/bee/peaks-ui/test-prompts.json +12 -0
- package/skills/peaks-code/SKILL.md +54 -109
- package/skills/peaks-code/references/boundaries.md +15 -1
- package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
- package/skills/peaks-code/references/external-skill-invocation.md +27 -0
- package/skills/peaks-code/references/lease-dashboard.html +224 -0
- package/skills/peaks-code/references/lease-stats.sample.json +26 -0
- package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
- package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
- package/skills/peaks-code/references/runbook.md +63 -1
- package/skills/peaks-code/references/startup-sequence.md +110 -0
- package/skills/peaks-code/references/step-0-8-gate.md +1 -1
- package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
- package/skills/peaks-code/references/worktree-governance.md +123 -0
- package/skills/peaks-code/test-prompts.json +12 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-solo/SKILL.md +21 -0
- package/skills/peaks-solo/references/triage-decision-table.md +6 -0
- package/skills/peaks-sop/test-prompts.json +17 -0
- package/dist/cli/commands/agent-commands.d.ts +0 -20
- package/dist/cli/commands/agent-commands.js +0 -48
- package/dist/cli/commands/classify-classify-commands.d.ts +0 -19
- package/dist/cli/commands/classify-classify-commands.js +0 -151
- package/dist/cli/commands/contract-commands.d.ts +0 -26
- package/dist/cli/commands/contract-commands.js +0 -114
- package/dist/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
- package/dist/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/cli/commands/worker-commands.d.ts +0 -3
- package/dist/cli/commands/worker-commands.js +0 -52
- package/dist/services/agent/ecc-agent-service.d.ts +0 -47
- package/dist/services/agent/ecc-agent-service.js +0 -143
- package/dist/services/config/provider-service.d.ts +0 -48
- package/dist/services/config/provider-service.js +0 -143
- package/dist/services/context/dispatch-context-guard.d.ts +0 -27
- package/dist/services/context/dispatch-context-guard.js +0 -192
- package/dist/services/context/shared-channel.d.ts +0 -93
- package/dist/services/context/shared-channel.js +0 -308
- package/dist/services/filesystem/file-lock.d.ts +0 -11
- package/dist/services/filesystem/file-lock.js +0 -152
- package/dist/services/mut/assert-scanner.d.ts +0 -6
- package/dist/services/mut/assert-scanner.js +0 -116
- package/dist/services/mut/index.d.ts +0 -8
- package/dist/services/mut/index.js +0 -7
- package/dist/services/mut/mut-runner.d.ts +0 -39
- package/dist/services/mut/mut-runner.js +0 -29
- package/dist/services/mut/production-stryker.d.ts +0 -2
- package/dist/services/mut/production-stryker.js +0 -75
- package/dist/services/mut/report-builder.d.ts +0 -11
- package/dist/services/mut/report-builder.js +0 -110
- package/dist/services/mut/report-loader.d.ts +0 -31
- package/dist/services/mut/report-loader.js +0 -78
- package/dist/services/mut/thresholds.d.ts +0 -21
- package/dist/services/mut/thresholds.js +0 -22
- package/dist/services/mut/types.d.ts +0 -336
- package/dist/services/mut/types.js +0 -59
- package/dist/services/providers/minimax-provider-service.d.ts +0 -24
- package/dist/services/providers/minimax-provider-service.js +0 -143
- package/dist/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/services/providers/minimax-worker-service.js +0 -83
- package/dist/shared/fs.d.ts +0 -4
- package/dist/shared/fs.js +0 -26
- package/dist/shared/paths.d.ts +0 -6
- package/dist/shared/paths.js +0 -50
- package/dist/shared/result.d.ts +0 -22
- package/dist/shared/result.js +0 -46
- package/dist/shared/version.d.ts +0 -1
- package/dist/shared/version.js +0 -1
- package/examples/video-demo/README.md +0 -142
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- /package/dist/services/{job/job-resource-snapshot.js → job-snapshot/snapshot.js} +0 -0
package/dist/cli/index.js
CHANGED
|
@@ -1,30 +1,75 @@
|
|
|
1
1
|
import { CommanderError } from 'commander';
|
|
2
2
|
import { createProgram } from './program.js';
|
|
3
|
-
import { getErrorMessage } from '
|
|
3
|
+
import { getErrorMessage } from 'peaks-loop-shared/result';
|
|
4
|
+
import { printErrorEnvelope } from './cli-helpers.js';
|
|
5
|
+
const defaultIo = {
|
|
6
|
+
stdout: (text) => process.stdout.write(`${text}\n`),
|
|
7
|
+
stderr: (text) => process.stderr.write(`${text}\n`)
|
|
8
|
+
};
|
|
9
|
+
// D-013 wrapper exit-code fix (PART 2): Commander's `--help` short-circuit
|
|
10
|
+
// fires BEFORE `commander.unknownCommand` is raised, so `peaks xxx --help`
|
|
11
|
+
// (where `xxx` is not a registered command) prints the help banner and
|
|
12
|
+
// exits 0 instead of 1. Detect this case BEFORE Commander runs by scanning
|
|
13
|
+
// `process.argv` for a non-option positional token. If present AND
|
|
14
|
+
// `--help` is also present, the user asked for help on an unknown command
|
|
15
|
+
// — emit `COMMAND_NOT_FOUND` envelope + exit 1.
|
|
16
|
+
//
|
|
17
|
+
// This pre-check is intentionally conservative: only fires when BOTH a
|
|
18
|
+
// positional token AND `--help`/`-h` are present. Bare `--help` (no
|
|
19
|
+
// positional) is legitimate help → exit 0. Positional without `--help`
|
|
20
|
+
// is handled by the root `.action()` in `program.ts`.
|
|
21
|
+
//
|
|
22
|
+
// Fix-5 (2026-07-26): skip the pre-check when the first positional token
|
|
23
|
+
// matches a REGISTERED subcommand. `peaks slice --help` is legitimate
|
|
24
|
+
// help on a registered command (slice IS in the program.commands list) —
|
|
25
|
+
// the prior blind pre-check was a false positive that printed
|
|
26
|
+
// `COMMAND_NOT_FOUND` + exit 1 alongside the slice help banner. We
|
|
27
|
+
// still catch true unknowns (`peaks unknown-cmd --help`): `firstPositional`
|
|
28
|
+
// won't be in the registered set, so the pre-check fires and exits 1.
|
|
29
|
+
const argv = process.argv.slice(2);
|
|
30
|
+
const hasHelp = argv.some((arg) => arg === '--help' || arg === '-h');
|
|
31
|
+
const firstPositional = argv.find((arg) => !arg.startsWith('-'));
|
|
32
|
+
if (hasHelp && firstPositional !== undefined) {
|
|
33
|
+
const program = createProgram();
|
|
34
|
+
const registered = new Set(program.commands.map((c) => c.name()));
|
|
35
|
+
if (!registered.has(firstPositional)) {
|
|
36
|
+
// Defer the check by 0ms so Commander's own help handler runs first
|
|
37
|
+
// (it will print help text + try to exit 0). We then override.
|
|
38
|
+
setImmediate(() => {
|
|
39
|
+
printErrorEnvelope(defaultIo, 'cli', 'COMMAND_NOT_FOUND', `Unknown command: ${firstPositional}. Run \`peaks --help\` for available commands.`, { argv: firstPositional, combinedWithHelp: true }, ['Run `peaks --help` to list available commands.']);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
4
44
|
createProgram().parseAsync(process.argv).catch((error) => {
|
|
5
45
|
if (error instanceof CommanderError && error.code === 'commander.version') {
|
|
6
46
|
return;
|
|
7
47
|
}
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// (
|
|
48
|
+
// D-013 wrapper exit-code fix: distinguish "bare `peaks --help` /
|
|
49
|
+
// `peaks help <cmd>`" (legitimate help, exit 0) from
|
|
50
|
+
// "`peaks <unknown> --help`" (user typed a non-existent command,
|
|
51
|
+
// even if they added --help, the command itself is invalid → exit 1).
|
|
52
|
+
// Commander only emits `commander.helpDisplayed` for the LEGITIMATE
|
|
53
|
+
// help path (bare `--help` or a registered subcommand's help). For
|
|
54
|
+
// unknown commands, Commander throws `commander.unknownCommand`
|
|
55
|
+
// BEFORE the help text is rendered, so we route that case to the
|
|
56
|
+
// unknownCommand branch below. This preserves the historical behavior
|
|
57
|
+
// for valid help while fixing the unknown-command exit code.
|
|
11
58
|
if (error instanceof CommanderError) {
|
|
12
59
|
if (error.code === 'commander.help' || error.code === 'commander.helpDisplayed') {
|
|
13
60
|
return;
|
|
14
61
|
}
|
|
15
62
|
if (error.code === 'commander.missingArgument' || error.code === 'commander.unknownCommand' || error.code === 'commander.unknownOption') {
|
|
63
|
+
// Emit a `COMMAND_NOT_FOUND` JSON envelope for the unknown-command
|
|
64
|
+
// path. The error text already went to stderr via Commander's
|
|
65
|
+
// default handler; we add a structured envelope for LLM-side
|
|
66
|
+
// consumers (Human-NL-Choice-Only: don't tell the human to type
|
|
67
|
+
// a CLI verb — say what the LLM can coordinate).
|
|
68
|
+
printErrorEnvelope(defaultIo, 'cli', 'COMMAND_NOT_FOUND', getErrorMessage(error), {}, ['Run `peaks --help` to list available commands.']);
|
|
16
69
|
process.exitCode = 1;
|
|
17
70
|
return;
|
|
18
71
|
}
|
|
19
72
|
}
|
|
20
|
-
|
|
21
|
-
ok: false,
|
|
22
|
-
command: 'cli',
|
|
23
|
-
code: 'UNHANDLED_ERROR',
|
|
24
|
-
message: getErrorMessage(error),
|
|
25
|
-
data: {},
|
|
26
|
-
warnings: [],
|
|
27
|
-
nextActions: []
|
|
28
|
-
}, null, 2));
|
|
73
|
+
printErrorEnvelope(defaultIo, 'cli', 'UNHANDLED_ERROR', getErrorMessage(error), {}, []);
|
|
29
74
|
process.exitCode = 1;
|
|
30
75
|
});
|
package/dist/cli/program.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import type
|
|
3
|
-
export { printResult, type ProgramIO } from './cli-helpers.js';
|
|
2
|
+
import { type ProgramIO } from './cli-helpers.js';
|
|
3
|
+
export { printErrorEnvelope, printResult, type ProgramIO } from './cli-helpers.js';
|
|
4
4
|
export declare function __resetBootstrapForTests(): void;
|
|
5
5
|
export declare function createProgram(io?: ProgramIO): Command;
|
package/dist/cli/program.js
CHANGED
|
@@ -1,107 +1,41 @@
|
|
|
1
|
-
import { readdirSync, existsSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
1
|
import { Command } from 'commander';
|
|
4
|
-
import {
|
|
5
|
-
import { CLI_VERSION } from '
|
|
2
|
+
import { repoRoot } from 'peaks-loop-shared/paths';
|
|
3
|
+
import { CLI_VERSION } from 'peaks-loop-shared/version';
|
|
4
|
+
import { autoRegisterAllCommands } from './commands/_register.js';
|
|
5
|
+
import { registerSuperCommands } from './commands/_super.js';
|
|
6
6
|
import { registerCoreAndArtifactCommands } from './commands/core-artifact-commands.js';
|
|
7
7
|
import { registerWorkflowCommands } from './commands/workflow-commands.js';
|
|
8
8
|
import { registerCapabilityWorkerConfigAndSCCommands } from './commands/capability-worker-config-sc-commands.js';
|
|
9
|
-
import { registerCodegraphCommands } from './commands/codegraph-commands.js';
|
|
10
|
-
import { registerOpenSpecCommands } from './commands/openspec-commands.js';
|
|
11
|
-
import { registerPerfCommands } from './commands/perf-commands.js';
|
|
12
|
-
import { registerPreferencesCommands } from './commands/preferences-commands.js';
|
|
13
|
-
// Slice #014: peaks progress * CLI surface deleted (replaced by sub-agent
|
|
14
|
-
// dispatch + heartbeat, slice #009 + #010). Sub-agent progress is
|
|
15
|
-
// surfaced via `peaks sub-agent dispatch|heartbeat|share`.
|
|
16
|
-
import { registerProjectCommands } from './commands/project-commands.js';
|
|
17
|
-
import { registerPrdCommands } from './commands/prd-commands.js';
|
|
18
|
-
import { registerRequestCommands } from './commands/request-commands.js';
|
|
19
|
-
import { registerRetrospectiveCommands } from './commands/retrospective-commands.js';
|
|
20
|
-
import { registerScanCommands } from './commands/scan-commands.js';
|
|
21
|
-
import { registerSliceCommands } from './commands/slice-commands.js';
|
|
22
|
-
import { registerSopCommands } from './commands/sop-commands.js';
|
|
23
|
-
// v2.15.0 slice 002 AC-3: feedback-promotion CLI (`peaks feedback promote`
|
|
24
|
-
// + `peaks feedback check-unpromoted`). See
|
|
25
|
-
// `sops/feedback-promotion-sop.md`.
|
|
26
|
-
import { registerFeedbackCommands } from './commands/feedback-commands.js';
|
|
27
|
-
import { registerForkCommands } from './commands/fork-commands.js';
|
|
28
|
-
import { registerImpactCommands } from './commands/impact-commands.js';
|
|
29
|
-
import { registerSmokeCommands } from './commands/smoke-commands.js';
|
|
30
|
-
import { registerReleaseCommands } from './commands/release-commands.js';
|
|
31
|
-
import { registerPrdBlocksCommands } from './commands/prd-blocks-commands.js';
|
|
32
|
-
import { registerUserTouchpointCommands } from './commands/user-touchpoint-commands.js';
|
|
33
|
-
import { registerSliceReviewCommands } from './commands/slice-review-commands.js';
|
|
34
|
-
import { registerQaBusinessReviewCommands } from './commands/qa-business-review-commands.js';
|
|
35
|
-
import { registerSliceIntegrateCommands } from './commands/slice-integrate-commands.js';
|
|
36
|
-
import { registerDocCommands } from './commands/doc-commands.js';
|
|
37
|
-
import { registerLegacyCommands } from './commands/legacy-commands.js';
|
|
38
|
-
import { registerRoleCommands } from './commands/role-commands.js';
|
|
39
|
-
import { registerComplexityCommands } from './commands/complexity-commands.js';
|
|
40
9
|
import { registerSubAgentCommands } from './commands/sub-agent-commands.js';
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
10
|
+
import { registerLeaseMetricsCommand } from './commands/lease-metrics-commands.js';
|
|
11
|
+
import { registerLeaseStatsCommand } from './commands/lease-stats-commands.js';
|
|
12
|
+
import { registerContainerCommand } from './commands/container-commands.js';
|
|
13
|
+
import { registerVmCommand } from './commands/vm-commands.js';
|
|
14
|
+
import { registerCronCommand } from './commands/cron-commands.js';
|
|
15
|
+
import { registerCronSchedulerCommand } from './commands/cron-scheduler-commands.js';
|
|
47
16
|
import { registerWorkspaceCommands } from './commands/workspace-commands.js';
|
|
48
|
-
import {
|
|
49
|
-
import { registerAuditCommands } from './commands/audit-commands.js';
|
|
50
|
-
import { registerFinalReviewCommands } from './commands/final-review-commands.js';
|
|
51
|
-
import { registerClassifyCommands } from './commands/classify-classify-commands.js';
|
|
52
|
-
import { registerContextCommands } from './commands/context-commands.js';
|
|
53
|
-
import { registerContractCommands } from './commands/contract-commands.js';
|
|
54
|
-
import { registerSkillConformanceCommands } from './commands/skill-conformance-commands.js';
|
|
55
|
-
import { registerSkillLoopEngineeringReadinessCommands } from './commands/skill-loop-engineering-readiness-commands.js';
|
|
56
|
-
import { registerLoopCommands } from './commands/loop-commands.js';
|
|
57
|
-
import { registerWorkflowEvalCommands } from './commands/loop-eval-commands.js';
|
|
58
|
-
import { registerEvolutionCommands } from './commands/evolution-commands.js';
|
|
59
|
-
import { registerAssetCommands } from './commands/asset-commands.js';
|
|
60
|
-
import { registerBeeCommands } from './commands/bee-commands.js';
|
|
61
|
-
import { registerAgentCommands } from './commands/agent-commands.js';
|
|
62
|
-
import { registerUpgradeCommands } from './commands/upgrade-commands.js';
|
|
63
|
-
import { registerCodeReviewCommands } from './commands/code-review-commands.js';
|
|
64
|
-
import { registerSecurityAuditCommands } from './commands/security-audit-commands.js';
|
|
65
|
-
import { registerPerfAuditCommands } from './commands/perf-audit-commands.js';
|
|
66
|
-
import { registerVerdictAggregateCommands } from './commands/verdict-aggregate-command.js';
|
|
67
|
-
import { registerLogCommands } from './commands/log-commands.js';
|
|
68
|
-
import { registerQaCommands } from './commands/qa-commands.js';
|
|
69
|
-
import { registerTestCommands } from './commands/test-commands.js';
|
|
70
|
-
import { registerPlaywrightCommands } from './commands/playwright-commands.js';
|
|
71
|
-
import { registerCodeCommands } from './commands/code-commands.js';
|
|
72
|
-
import { registerMutCommands } from './commands/mut-commands.js';
|
|
73
|
-
import { registerFixtureCommands } from './commands/fixture-commands.js';
|
|
74
|
-
import { registerReviewerCommands } from './commands/reviewer-commands.js';
|
|
75
|
-
import { registerObservabilityCommands } from './commands/observability-commands.js';
|
|
76
|
-
// Slice 2026-07-09 add-zcode-adapter (Slice C): `peaks ide model --current` —
|
|
77
|
-
// read-only runtime model probe surfaced via the registered IDE adapter
|
|
78
|
-
// chain. See src/services/ide/current-model-detector.ts.
|
|
79
|
-
import { registerIdeCommands } from './commands/ide-commands.js';
|
|
80
|
-
// Slice 2026-07-01-strategic-compact-cli: peaks compact
|
|
81
|
-
// (suggest | recommend | survival | dry-run | force) — strategic-compact
|
|
82
|
-
// CLI primitives. See src/services/compact/ and
|
|
83
|
-
// src/cli/commands/compact-command.ts.
|
|
84
|
-
import { registerCompactCommands } from './commands/compact-command.js';
|
|
85
|
-
// Slice 2026-07-01-job-m3.1: `peaks job init|status|...` — Job orchestration CLI surface.
|
|
86
|
-
import { registerJobCommands } from './commands/job-commands.js';
|
|
87
|
-
// Slice 2026-07-04-cli-15a: `peaks skill sediment <verb>` + `peaks skill adapter <verb>`
|
|
88
|
-
// — Task 15a 4-verb subset (add-segment / add-bee / list / rebuild-index).
|
|
89
|
-
// 15b / 15c / 15d will extend sediment-commands.ts with the remaining 14 verbs.
|
|
90
|
-
import { registerSedimentCommands } from './commands/sediment-commands.js';
|
|
91
|
-
import { registerAdapterCommands } from './commands/adapter-commands.js';
|
|
92
|
-
// Slice RD-2 S2-a: `peaks runtime *` (detect / list / compact) +
|
|
93
|
-
// `peaks adapter *` (list / register). See src/services/runtime/ and
|
|
94
|
-
// src/services/adapter/adapter-registry.ts. Coexists with the older
|
|
95
|
-
// `peaks skill adapter` surface (slice 2026-07-04-cli-15a) which is
|
|
96
|
-
// for skill materialization, not vendor-adapter registry.
|
|
97
|
-
import { registerRuntimeCommands } from './commands/runtime-commands.js';
|
|
98
|
-
import { registerAdapterS2ACommands } from './commands/adapter-commands-s2a.js';
|
|
99
|
-
// Slice RD-2 S2-b: `peaks polyrepo *` (init / status / dispatch).
|
|
100
|
-
import { registerPolyrepoCommands } from './commands/polyrepo-commands.js';
|
|
17
|
+
import { registerSopCommands } from './commands/sop-commands.js';
|
|
101
18
|
import { registerSkillVisibilityCommand } from './commands/skill-visibility.js';
|
|
102
|
-
import { applyRetention } from '../services/log/retention.js';
|
|
19
|
+
import { applyRetention, cleanupEccCache } from '../services/log/retention.js';
|
|
103
20
|
import { writeLogEntry, maybeWriteStderr } from '../services/log/logger.js';
|
|
104
|
-
|
|
21
|
+
import { printSuperCommandCatalog } from './cli-helpers.js';
|
|
22
|
+
export { printErrorEnvelope, printResult } from './cli-helpers.js';
|
|
23
|
+
// Slice rid-001 (P0-1 envelope closure, fix #4): the prior default
|
|
24
|
+
// `ProgramIO` funneled Commander's `configureOutput().writeErr` callback
|
|
25
|
+
// through raw `console.error`, which bypassed the canonical envelope
|
|
26
|
+
// path and left a `// TODO(g2): legacy console.error without envelope`
|
|
27
|
+
// grace comment. Default io now routes stdout through `process.stdout`
|
|
28
|
+
// and stderr through `process.stderr` (matching the `defaultIo` built
|
|
29
|
+
// in `src/cli/index.ts`). When a caller passes its own `ProgramIO`
|
|
30
|
+
// (vitest, programmatic dispatch) the closure-side `printErrorEnvelope`
|
|
31
|
+
// helper in `src/cli/cli-helpers.ts` mints a real `fail()` envelope,
|
|
32
|
+
// so the canonical shape is preserved end-to-end.
|
|
33
|
+
function defaultStderrSink(text) {
|
|
34
|
+
process.stderr.write(`${text}\n`);
|
|
35
|
+
}
|
|
36
|
+
function defaultStdoutSink(text) {
|
|
37
|
+
process.stdout.write(`${text}\n`);
|
|
38
|
+
}
|
|
105
39
|
/**
|
|
106
40
|
* Slice 2026-06-16-cli-logging (G1, G2, G3, G7). One structured
|
|
107
41
|
* `peaks-loop start` entry per CLI invocation, plus a 7-day
|
|
@@ -120,6 +54,13 @@ function bootstrapLogger(verbose) {
|
|
|
120
54
|
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
121
55
|
/* best-effort retention sweep; never block the CLI */
|
|
122
56
|
}
|
|
57
|
+
// Slice 3 (on-demand-ecc): 7-day TTL sweep over ecc-<sha>/ cache dirs.
|
|
58
|
+
try {
|
|
59
|
+
cleanupEccCache({ retentionDays: 7, nowMs: Date.now() });
|
|
60
|
+
}
|
|
61
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
62
|
+
/* best-effort ECC retention sweep; never block the CLI */
|
|
63
|
+
}
|
|
123
64
|
const dateOverride = process.env.PEAKS_LOG_DATE_OVERRIDE;
|
|
124
65
|
const entry = {
|
|
125
66
|
ts: new Date().toISOString(),
|
|
@@ -148,7 +89,7 @@ let bootstrapRan = false;
|
|
|
148
89
|
export function __resetBootstrapForTests() {
|
|
149
90
|
bootstrapRan = false;
|
|
150
91
|
}
|
|
151
|
-
export function createProgram(io = { stdout:
|
|
92
|
+
export function createProgram(io = { stdout: defaultStdoutSink, stderr: defaultStderrSink }) {
|
|
152
93
|
const program = new Command();
|
|
153
94
|
program
|
|
154
95
|
.name('peaks')
|
|
@@ -200,6 +141,40 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
|
|
|
200
141
|
}
|
|
201
142
|
})
|
|
202
143
|
.action(() => {
|
|
144
|
+
// D-013 wrapper exit-code fix: when the user typed a command token but
|
|
145
|
+
// it didn't match any registered subcommand, exit non-zero with a JSON
|
|
146
|
+
// `COMMAND_NOT_FOUND` envelope. Without this check, Commander's root
|
|
147
|
+
// `.action()` runs whenever no subcommand matches (including unknown
|
|
148
|
+
// commands) and prints the help banner with exit 0 — which violates
|
|
149
|
+
// the PRD AC3.9/AC3.10 contract for `peaks agent run/list` and any
|
|
150
|
+
// other deleted/hidden command.
|
|
151
|
+
//
|
|
152
|
+
// Detection: use `program.args` (Commander's parsed argv) for the
|
|
153
|
+
// first non-option token. If it's present and Commander didn't route
|
|
154
|
+
// to a subcommand (we got here, so it didn't), the user typed an
|
|
155
|
+
// unknown command. Exit 1. `program.args` works correctly under both
|
|
156
|
+
// `parseAsync(['node', 'peaks', ...])` (real CLI) and direct in-process
|
|
157
|
+
// calls (vitest integration tests), unlike `process.argv` which is
|
|
158
|
+
// the test runner's argv.
|
|
159
|
+
//
|
|
160
|
+
// --help and --version bypass this path entirely (handled below).
|
|
161
|
+
const firstNonOption = program.args.find((arg) => !arg.startsWith('-'));
|
|
162
|
+
if (firstNonOption !== undefined) {
|
|
163
|
+
// Commander reached this `.action()` despite a positional token,
|
|
164
|
+
// which means the token was NOT routed to any subcommand. This is
|
|
165
|
+
// the unknown-command path. Emit a JSON envelope + exit 1.
|
|
166
|
+
io.stdout(JSON.stringify({
|
|
167
|
+
ok: false,
|
|
168
|
+
command: 'cli',
|
|
169
|
+
code: 'COMMAND_NOT_FOUND',
|
|
170
|
+
message: `Unknown command: ${firstNonOption}. Run \`peaks --help\` for available commands.`,
|
|
171
|
+
data: { argv: firstNonOption },
|
|
172
|
+
warnings: [],
|
|
173
|
+
nextActions: ['Run `peaks --help` to list available commands.']
|
|
174
|
+
}, null, 2));
|
|
175
|
+
process.exitCode = 1;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
203
178
|
const opts = program.opts();
|
|
204
179
|
if (opts.V || opts.version) {
|
|
205
180
|
// AC1: write the peaks-loop start log line BEFORE printing the
|
|
@@ -212,197 +187,27 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
|
|
|
212
187
|
io.stdout(CLI_VERSION);
|
|
213
188
|
return;
|
|
214
189
|
}
|
|
215
|
-
|
|
216
|
-
// the quickstart renders instantly — no import/async overhead on startup).
|
|
217
|
-
let skillCount = 0;
|
|
218
|
-
const skillsPath = skillsDir;
|
|
219
|
-
try {
|
|
220
|
-
if (existsSync(skillsPath)) {
|
|
221
|
-
skillCount = readdirSync(skillsPath, { withFileTypes: true })
|
|
222
|
-
.filter((entry) => entry.isDirectory() && !entry.name.startsWith('.'))
|
|
223
|
-
.filter((entry) => existsSync(join(skillsPath, entry.name, 'SKILL.md')))
|
|
224
|
-
.length;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
catch { /* disk read is best-effort; zero skills is still truthful */ } // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
228
|
-
io.stdout(`Peaks Loop ${CLI_VERSION} · ${skillCount} skills ready
|
|
229
|
-
|
|
230
|
-
Peaks is a loop-engineering CLI + skill family for Claude Code.
|
|
231
|
-
It turns "don't skip steps" into hard enforcement — gates that block
|
|
232
|
-
advancement in-conversation, un-bypassably.
|
|
233
|
-
|
|
234
|
-
Before diving into a project, two things worth doing now:
|
|
235
|
-
|
|
236
|
-
peaks doctor check your environment in one glance
|
|
237
|
-
peaks-sop <<< ask this skill to author your first SOP
|
|
238
|
-
|
|
239
|
-
Or jump straight in:
|
|
240
|
-
peaks sop init --id my-flow --apply && peaks hooks install
|
|
241
|
-
`);
|
|
190
|
+
printSuperCommandCatalog(io);
|
|
242
191
|
})
|
|
243
192
|
.exitOverride();
|
|
244
193
|
registerCoreAndArtifactCommands(program, io);
|
|
245
194
|
registerWorkflowCommands(program, io);
|
|
246
195
|
registerCapabilityWorkerConfigAndSCCommands(program, io);
|
|
247
|
-
registerCodegraphCommands(program, io);
|
|
248
|
-
registerOpenSpecCommands(program, io);
|
|
249
|
-
registerPerfCommands(program, io);
|
|
250
|
-
registerPreferencesCommands(program);
|
|
251
|
-
registerProjectCommands(program, io);
|
|
252
|
-
registerPrdCommands(program, io);
|
|
253
|
-
registerRequestCommands(program, io);
|
|
254
|
-
registerRetrospectiveCommands(program, io);
|
|
255
|
-
registerScanCommands(program, io);
|
|
256
|
-
registerSliceCommands(program, io);
|
|
257
|
-
registerSopCommands(program, io);
|
|
258
|
-
// v2.15.0 slice 002 AC-3: feedback promotion CLI.
|
|
259
|
-
registerFeedbackCommands(program, io);
|
|
260
|
-
// v2.15.0 follow-up G11: fork sync CLI (status / upstream-check / sync-plan / sync / sync-verify).
|
|
261
|
-
registerForkCommands(program, io);
|
|
262
|
-
// v2.15.0 follow-up G13: impact scan CLI (scan / must-check).
|
|
263
|
-
registerImpactCommands(program, io);
|
|
264
|
-
// v2.15.0 follow-up G14: smoke regression CLI (define / run / run-and-repair / add-path).
|
|
265
|
-
registerSmokeCommands(program, io);
|
|
266
|
-
// v2.15.0 follow-up G15: release / hotfix CLI (plan / canary / promote / watch / done / rollback / hotfix).
|
|
267
|
-
registerReleaseCommands(program, io);
|
|
268
|
-
// v2.15.0 follow-up G3: prd 4 必填块 CLI (check-blocks).
|
|
269
|
-
registerPrdBlocksCommands(program, io);
|
|
270
|
-
// v2.15.0 follow-up G4: user touchpoint CLI (gate-classify / user-touchpoints / commit-boundary-actions).
|
|
271
|
-
registerUserTouchpointCommands(program, io);
|
|
272
|
-
// v2.15.0 follow-up G1: slice business review CLI (review / score / accept / reject).
|
|
273
|
-
registerSliceReviewCommands(program, io);
|
|
274
|
-
// v2.15.0 follow-up G5: QA business review CLI (business-review / score / accept / reject).
|
|
275
|
-
registerQaBusinessReviewCommands(program, io);
|
|
276
|
-
// v2.15.0 follow-up G6: slice cross-integration verifier (slice-integrate).
|
|
277
|
-
registerSliceIntegrateCommands(program, io);
|
|
278
|
-
// v2.15.0 follow-up G7: doc auto-generation (generate-skill / changelog-suggest).
|
|
279
|
-
registerDocCommands(program, io);
|
|
280
|
-
// v2.15.0 follow-up G8: legacy code smell detector (legacy-detect).
|
|
281
|
-
registerLegacyCommands(program, io);
|
|
282
|
-
// v2.15.0 follow-up G9: lightweight role registry (role list/add/grant/check).
|
|
283
|
-
registerRoleCommands(program, io);
|
|
284
|
-
// v2.15.0 follow-up G10: complexity estimator (complexity-estimate).
|
|
285
|
-
registerComplexityCommands(program, io);
|
|
286
196
|
registerSubAgentCommands(program, io);
|
|
287
|
-
registerContractCommands(program, io);
|
|
288
|
-
// Slice #010 G9.5: register the hook-only internal atom. Hidden from
|
|
289
|
-
// `peaks --help` (no description text); used by `peaks hooks install`
|
|
290
|
-
// to wire the PreToolUse hook chain.
|
|
291
|
-
registerSubAgentDispatchGuard(program);
|
|
292
|
-
registerGateCommands(program, io);
|
|
293
|
-
registerHookHandleCommand(program, io);
|
|
294
|
-
registerHooksCommands(program, io);
|
|
295
|
-
registerStatusLineCommands(program, io);
|
|
296
|
-
registerUnderstandCommands(program, io);
|
|
297
197
|
registerWorkspaceCommands(program, io);
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
//
|
|
308
|
-
|
|
309
|
-
//
|
|
310
|
-
|
|
311
|
-
// skill that participates in Loop Engineering.
|
|
312
|
-
registerSkillLoopEngineeringReadinessCommands(program, io);
|
|
313
|
-
// Slice #13: peaks swarm * — additional subcommands (pipeline /
|
|
314
|
-
// dispatch / verify / loop) are added inline in workflow-commands.ts
|
|
315
|
-
// alongside the existing swarm.plan. This avoids the duplicate top-level
|
|
316
|
-
// command conflict (peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first).
|
|
317
|
-
// Slice #14: peaks loop * + peaks goal compose — L4 Agent Loop sub-features.
|
|
318
|
-
registerLoopCommands(program, io);
|
|
319
|
-
// Slice v3.0.0 loop-eng-native-code-a-b: peaks workflow run|plan|lint
|
|
320
|
-
// + peaks loop eval. Wraps the existing workflow + loop groups so the
|
|
321
|
-
// add-a-new-subcommand-check-for-existing-top-level-first rule is honoured.
|
|
322
|
-
registerWorkflowEvalCommands(program, io);
|
|
323
|
-
// M4 (2026-07-07 spec): `peaks evolution propose|evaluate|revert|status|mark-keep`
|
|
324
|
-
// — Darwin-style ratchet CLI surface.
|
|
325
|
-
registerEvolutionCommands(program, io);
|
|
326
|
-
// M5 (2026-07-07 spec): `peaks asset crystallize|dispose|status` —
|
|
327
|
-
// umbrella cross-asset crystallization surface.
|
|
328
|
-
registerAssetCommands(program, io);
|
|
329
|
-
// M7 (2026-07-07 spec §7A.2 / §10 RL-9): `peaks bee export|import`
|
|
330
|
-
// — cross-user share surface for bee_release rows.
|
|
331
|
-
registerBeeCommands(program, io);
|
|
332
|
-
// Slice: ECC 64 agents soft-optional (per spec §7.2 line 818).
|
|
333
|
-
registerAgentCommands(program, io);
|
|
334
|
-
// Slice: 1.x → 2.0 umbrella (per "one-key completion" + "minimal-user-operation" tenets).
|
|
335
|
-
registerUpgradeCommands(program, io);
|
|
336
|
-
// Slice: ocr soft-optional integration (peaks-rd Gate B3 augmentation).
|
|
337
|
-
registerCodeReviewCommands(program, io);
|
|
338
|
-
// Slice v2.12.0 Group A Tier 2: `peaks security-audit` (independent security audit skill driver).
|
|
339
|
-
registerSecurityAuditCommands(program, io);
|
|
340
|
-
// Slice v2.12.0 Group A Tier 3: `peaks perf-audit` (independent perf audit skill driver).
|
|
341
|
-
registerPerfAuditCommands(program, io);
|
|
342
|
-
// Slice v2.13.2 AC-2: `peaks verdict aggregate` (cross-source verdict aggregator CLI surface).
|
|
343
|
-
registerVerdictAggregateCommands(program, io);
|
|
344
|
-
// Slice 2026-06-16-cli-logging (G4): `peaks log tail` / `peaks log ls`.
|
|
345
|
-
registerLogCommands(program, io);
|
|
346
|
-
// Slice 2026-06-16-playwright-restart-loop (G5 + AC4): `peaks qa run`.
|
|
347
|
-
registerQaCommands(program, io);
|
|
348
|
-
// Slice 2026-06-17-2.5.0-sub-fix-B: `peaks test` (user-invoked, smart
|
|
349
|
-
// fingerprint-cache wrapper around jest/vitest/mocha).
|
|
350
|
-
registerTestCommands(program, io);
|
|
351
|
-
// Slice 2026-06-17-2.5.0-sub-fix-C: `peaks playwright start|ls|stop`
|
|
352
|
-
// (multi-terminal Playwright MCP lifecycle).
|
|
353
|
-
registerPlaywrightCommands(program, io);
|
|
354
|
-
// Slice 2 (peaks-code fast mode): `peaks code plan [--fast] <change-id>`
|
|
355
|
-
// v2.11.0 Group F (D5 + D7): also registers `peaks code should-pause` and
|
|
356
|
-
// `peaks code post-compact-detect` for runtime-friction probes.
|
|
357
|
-
registerCodeCommands(program, io);
|
|
358
|
-
// Plan 2 / Task 6: `peaks mut run|mutants|asserts|report` — mutation
|
|
359
|
-
// testing + assertion validity scan (spec §4.2 / §7). The
|
|
360
|
-
// production Stryker invoker is wired here; tests use the
|
|
361
|
-
// `createMutCommands({ invokeStryker })` factory directly with a
|
|
362
|
-
// mock to keep @stryker-mutator/core out of the unit-test path.
|
|
363
|
-
registerMutCommands(program, io);
|
|
364
|
-
// Slice v2.14.0 G1 AC-1.4: `peaks fixture capture` — fixture-replay
|
|
365
|
-
// anti-fake-green test suite producer. Sanitizes + checksums the
|
|
366
|
-
// captured envelope and writes a co-located fixture.meta.json.
|
|
367
|
-
registerFixtureCommands(program, io);
|
|
368
|
-
// Slice v2.14.0 G4 AC-4.1: `peaks reviewer run|status` — third-party
|
|
369
|
-
// reviewer CLI. The reviewer modelFamily MUST differ from the
|
|
370
|
-
// karpathy-reviewer modelFamily (AC-4.4); see
|
|
371
|
-
// src/services/reviewer/model-family.ts. The THIRD_PARTY_REVIEW prereq
|
|
372
|
-
// is wired into src/services/artifacts/artifact-prerequisites.ts.
|
|
373
|
-
registerReviewerCommands(program, io);
|
|
374
|
-
// Slice B of v2.11.1: `peaks observability status|slices|fanout|repair-cycles`
|
|
375
|
-
// (read-only queries over the JSONL metrics emitted from the
|
|
376
|
-
// peaks request transition hook in Slice A).
|
|
377
|
-
// Slice 2026-07-09 add-zcode-adapter (C.6): `peaks ide model --current`
|
|
378
|
-
// (read-only runtime model probe via the registered IDE adapter chain).
|
|
379
|
-
registerIdeCommands(program, io);
|
|
380
|
-
registerObservabilityCommands(program, io);
|
|
381
|
-
// Slice 2026-07-01-strategic-compact-cli: `peaks compact
|
|
382
|
-
// suggest|recommend|survival|dry-run|force` — strategic-compact CLI
|
|
383
|
-
// primitives. See src/cli/commands/compact-command.ts.
|
|
384
|
-
registerCompactCommands(program, io);
|
|
385
|
-
// Slice 2026-07-01-job-m3.1: `peaks job init|status|...` — Job
|
|
386
|
-
// orchestration CLI surface. M3.1 wires init + status + 2 stubs;
|
|
387
|
-
// the remaining 5 subcommands land in M3.2.
|
|
388
|
-
registerJobCommands(program, io);
|
|
389
|
-
// Slice 2026-07-04-cli-15a: `peaks skill sediment <verb>` — Task 15a
|
|
390
|
-
// 4-verb subset. Dispatches to runSediment; remaining verbs land in 15b/15c/15d.
|
|
391
|
-
registerSedimentCommands(program, io);
|
|
392
|
-
// Slice 2026-07-04-cli-15a: `peaks skill adapter <verb>` — adapter list / set-active.
|
|
393
|
-
registerAdapterCommands(program, io);
|
|
394
|
-
// Slice RD-2 S2-a: `peaks runtime *` (detect / list / compact) +
|
|
395
|
-
// `peaks adapter *` (list / register). Vendor verbs live ONLY in
|
|
396
|
-
// src/services/runtime/vendors/<vendor>.ts (AC-1 enforcement).
|
|
397
|
-
registerRuntimeCommands(program, io);
|
|
398
|
-
registerAdapterS2ACommands(program, io);
|
|
399
|
-
// Slice RD-2 S2-b: `peaks polyrepo *` (init / status / dispatch).
|
|
400
|
-
registerPolyrepoCommands(program, io);
|
|
401
|
-
// Slice 2026-07-05-peaks-code-to-peaks-code (Task 1): `peaks skill:visibility --list --json`
|
|
402
|
-
// — read .claude-plugin/marketplace.json and report each skill's
|
|
403
|
-
// visibility (public vs internal). Used to surface which skills are
|
|
404
|
-
// user-invocable vs LLM-only internal role skills. See
|
|
405
|
-
// src/cli/commands/skill-visibility.ts.
|
|
198
|
+
registerSopCommands(program, io);
|
|
199
|
+
registerSuperCommands(program, io);
|
|
200
|
+
registerLeaseMetricsCommand(program, io);
|
|
201
|
+
registerLeaseStatsCommand(program, io);
|
|
202
|
+
registerContainerCommand(program, io);
|
|
203
|
+
registerVmCommand(program, io);
|
|
204
|
+
registerCronCommand(program, io);
|
|
205
|
+
registerCronSchedulerCommand(program, io);
|
|
206
|
+
// Auto-route the remaining 60+ commands after the orchestrators so the
|
|
207
|
+
// lazy `skill` parent (used by adapter-commands / sediment-commands)
|
|
208
|
+
// finds the existing `peaks skill` group registered by
|
|
209
|
+
// registerCoreAndArtifactCommands instead of being created twice.
|
|
210
|
+
autoRegisterAllCommands(program, io);
|
|
406
211
|
registerSkillVisibilityCommand(program, repoRoot);
|
|
407
212
|
return program;
|
|
408
213
|
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 24h mode B3 trigger evaluation + attempts counter.
|
|
3
|
+
*
|
|
4
|
+
* Rid-020a (state-only slice). `fireB3` is the single mutating
|
|
5
|
+
* primitive: it increments the per-key counter and escalates with a
|
|
6
|
+
* `B3Escalation` when the count reaches `B3_THRESHOLD` (3). The
|
|
7
|
+
* counter is **per-key** — AC-T3 mandates B1 and B2 retries do not
|
|
8
|
+
* share a global counter. The T3/T4 auto-24H_ACTIVE path is encoded
|
|
9
|
+
* in `isAutoEngageTrigger` (BRAINSTORM is bypassed for these
|
|
10
|
+
* triggers so an offline-resumed session does not deadlock in
|
|
11
|
+
* WAITING_USER — proposal §1 T3/T4 exception).
|
|
12
|
+
*/
|
|
13
|
+
import { type DecisionKey, type State } from './state.js';
|
|
14
|
+
import type { AutoCompactMode } from '../code/auto-compact-modes.js';
|
|
15
|
+
export type AttemptsMap = Record<DecisionKey, number>;
|
|
16
|
+
export declare const B3_TRIGGER_REASONS: readonly ["prd_direction_change", "blocker_3_consecutive_slices", "registry_affecting_failure", "destructive_irreversible_op", "any_B1_B2_failure_3x_non_converging", "runtime_or_shared_version_mismatch", "sub-agent_stale_5min_x3"];
|
|
17
|
+
export type B3Reason = (typeof B3_TRIGGER_REASONS)[number];
|
|
18
|
+
export declare class B3Escalation extends Error {
|
|
19
|
+
readonly reason: B3Reason;
|
|
20
|
+
readonly attempts: number;
|
|
21
|
+
constructor(reason: B3Reason, attempts: number);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Result envelope for `fireB3`. We return a discriminated union
|
|
25
|
+
* (instead of throwing) so callers can branch on `kind` without
|
|
26
|
+
* try/catch ceremony. The B3Escalation class is still exported for
|
|
27
|
+
* backward compatibility with callers that prefer the throw style.
|
|
28
|
+
*/
|
|
29
|
+
export type FireB3Result = {
|
|
30
|
+
kind: 'continue';
|
|
31
|
+
reason: B3Reason;
|
|
32
|
+
attempts: number;
|
|
33
|
+
} | {
|
|
34
|
+
kind: 'escalate';
|
|
35
|
+
reason: B3Reason;
|
|
36
|
+
attempts: number;
|
|
37
|
+
};
|
|
38
|
+
export declare function isB3Reason(value: string): value is B3Reason;
|
|
39
|
+
export declare function isValidReason(value: string): value is DecisionKey;
|
|
40
|
+
export declare function freshAttempts(): AttemptsMap;
|
|
41
|
+
/**
|
|
42
|
+
* Per AC-T1 (attempts=1 continue, no B3) and AC-T2 (attempts=3
|
|
43
|
+
* escalate), the 3rd call escalates. The threshold is intentionally
|
|
44
|
+
* NOT configurable — the proposal pins the constant so QA v3 can
|
|
45
|
+
* assert it. Returns a FireB3Result instead of throwing so test
|
|
46
|
+
* code can read the `attempts` field via plain property access
|
|
47
|
+
* (Error-subclass property access through vitest 4.1.10 matchers
|
|
48
|
+
* is unreliable; the discriminated union sidesteps that).
|
|
49
|
+
*/
|
|
50
|
+
export declare function fireB3(reason: B3Reason, attempts: AttemptsMap): FireB3Result;
|
|
51
|
+
/**
|
|
52
|
+
* T3 (runaway recovery) and T4 (offline resume) auto-engage
|
|
53
|
+
* `24H_ACTIVE` without forcing `USER_CONFIRM` — the deferred
|
|
54
|
+
* AskUserQuestion fires at the first 10min checkpoint instead, so
|
|
55
|
+
* a T4 session does not deadlock in `WAITING_USER` while the
|
|
56
|
+
* user is offline (proposal §1 T3/T4 exception).
|
|
57
|
+
*/
|
|
58
|
+
export declare const AUTO_ENGAGE_TRIGGERS: readonly ["T3", "T4"];
|
|
59
|
+
export type AutoEngageTrigger = (typeof AUTO_ENGAGE_TRIGGERS)[number];
|
|
60
|
+
export declare function isAutoEngageTrigger(t: string): t is AutoEngageTrigger;
|
|
61
|
+
/**
|
|
62
|
+
* Five trigger conditions (T1-T5) from proposal §1 + companion
|
|
63
|
+
* trigger-and-decision-autonomy sediment. T1/T2/T5 flow through
|
|
64
|
+
* BRAINSTORM; T3/T4 auto-engage and skip the gate.
|
|
65
|
+
*/
|
|
66
|
+
export interface TriggerCheck {
|
|
67
|
+
triggered: boolean;
|
|
68
|
+
trigger: 'T1' | 'T2' | 'T3' | 'T4' | 'T5' | null;
|
|
69
|
+
reason: string;
|
|
70
|
+
}
|
|
71
|
+
export declare const T1_KEYWORDS: string[];
|
|
72
|
+
export declare const T2_MIN_SLICES = 30;
|
|
73
|
+
export declare const T2_MIN_WALL_HOURS = 6;
|
|
74
|
+
export declare const T3_MIN_MONOTONIC_GUARDS = 3;
|
|
75
|
+
export declare const T3_MIN_REMAINING_SLICES = 10;
|
|
76
|
+
export declare const T4_SESSION_GAP_HOURS = 4;
|
|
77
|
+
export declare const T5_MIN_ACTIVE_SLICES = 3;
|
|
78
|
+
export declare function checkTriggers(input: {
|
|
79
|
+
userMessage: string;
|
|
80
|
+
sliceListSize: number;
|
|
81
|
+
estimatedWallHours: number;
|
|
82
|
+
monotonicGuards: number;
|
|
83
|
+
remainingSlices: number;
|
|
84
|
+
sessionGapHours: number;
|
|
85
|
+
activeSlicesAcrossServices: number;
|
|
86
|
+
}): TriggerCheck;
|
|
87
|
+
/**
|
|
88
|
+
* HANDOFF is reachable via three exit conditions per proposal §1:
|
|
89
|
+
* - user abort
|
|
90
|
+
* - all-trigger-resolved
|
|
91
|
+
* - B3 unresolvable (B3Escalation that the user dismisses)
|
|
92
|
+
*/
|
|
93
|
+
export declare const HANDOFF_EXIT_CONDITIONS: readonly ["user_abort", "all_triggers_resolved", "b3_unresolvable"];
|
|
94
|
+
export type HandoffExitCondition = (typeof HANDOFF_EXIT_CONDITIONS)[number];
|
|
95
|
+
export declare function isHandoffExitCondition(s: string): s is HandoffExitCondition;
|
|
96
|
+
export declare function isHandoffState(s: State): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Slice 2026-07-28 (rid-027): resolve the auto-compact mode from
|
|
99
|
+
* 24h-mode awareness. Returns `'partial'` when the session is
|
|
100
|
+
* `24H_ACTIVE`, otherwise `'standard'`. This is the CLI-side default;
|
|
101
|
+
* the explicit `--mode` flag in `peaks compact auto` overrides it.
|
|
102
|
+
*/
|
|
103
|
+
export declare function getAutoCompactMode(projectRoot: string, sessionId: string): AutoCompactMode;
|