peaks-loop 4.0.0-beta.9 → 4.0.1
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 +910 -141
- package/README-en.md +26 -7
- package/README.md +75 -6
- 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 +47 -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
|
@@ -9,18 +9,17 @@ import { getConfiguredExecutionModelId, getStrongestModelId } from '../config/mo
|
|
|
9
9
|
* 2.0.1-bug1: the slim 2.0 `~/.peaks/config.json` no longer carries a
|
|
10
10
|
* `providers` block (legacy model config lives in
|
|
11
11
|
* `.peaks/preferences.json` per spec §10.4). `buildPlan` is a pure
|
|
12
|
-
* planner function and historically took its execution model from
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* bridge) and bypass this fallback.
|
|
12
|
+
* planner function and historically took its execution model from a
|
|
13
|
+
* legacy provider config; with the slim default that field is
|
|
14
|
+
* `undefined`, so `getConfiguredExecutionModelId` would throw. We
|
|
15
|
+
* retain a sensible default here as a literal so the planner remains
|
|
16
|
+
* usable when the caller has not passed an explicit `executionModelId`
|
|
17
|
+
* (unit tests, dry-run previews, the `peaks swarm plan` onboarding
|
|
18
|
+
* path). Production callers that have a real `ocr.llm.model` configured
|
|
19
|
+
* pass it via `request.executionModelId` (or via the legacy
|
|
20
|
+
* preferences.json bridge) and bypass this fallback.
|
|
22
21
|
*/
|
|
23
|
-
const DEFAULT_EXECUTION_MODEL_ID = '
|
|
22
|
+
const DEFAULT_EXECUTION_MODEL_ID = 'claude-opus-4-7';
|
|
24
23
|
import { getTechStatus, TECH_REQUIRED_ARTIFACTS } from '../tech/tech-service.js';
|
|
25
24
|
import { resolveRdStartupStandardsCheck } from './standards-diagnostic.js';
|
|
26
25
|
import { runStrategicStage } from './strategic-stage.js';
|
|
@@ -57,19 +57,19 @@ export declare const AstViolationSchema: z.ZodObject<{
|
|
|
57
57
|
actualVersion: z.ZodString;
|
|
58
58
|
severity: z.ZodEnum<["error", "warning"]>;
|
|
59
59
|
}, "strip", z.ZodTypeAny, {
|
|
60
|
-
api: string;
|
|
61
60
|
file: string;
|
|
61
|
+
api: string;
|
|
62
|
+
severity: "error" | "warning";
|
|
62
63
|
line: number;
|
|
63
64
|
expectedVersion: string;
|
|
64
65
|
actualVersion: string;
|
|
65
|
-
severity: "error" | "warning";
|
|
66
66
|
}, {
|
|
67
|
-
api: string;
|
|
68
67
|
file: string;
|
|
68
|
+
api: string;
|
|
69
|
+
severity: "error" | "warning";
|
|
69
70
|
line: number;
|
|
70
71
|
expectedVersion: string;
|
|
71
72
|
actualVersion: string;
|
|
72
|
-
severity: "error" | "warning";
|
|
73
73
|
}>;
|
|
74
74
|
export declare const AstGateResultSchema: z.ZodObject<{
|
|
75
75
|
passed: z.ZodBoolean;
|
|
@@ -81,39 +81,39 @@ export declare const AstGateResultSchema: z.ZodObject<{
|
|
|
81
81
|
actualVersion: z.ZodString;
|
|
82
82
|
severity: z.ZodEnum<["error", "warning"]>;
|
|
83
83
|
}, "strip", z.ZodTypeAny, {
|
|
84
|
-
api: string;
|
|
85
84
|
file: string;
|
|
85
|
+
api: string;
|
|
86
|
+
severity: "error" | "warning";
|
|
86
87
|
line: number;
|
|
87
88
|
expectedVersion: string;
|
|
88
89
|
actualVersion: string;
|
|
89
|
-
severity: "error" | "warning";
|
|
90
90
|
}, {
|
|
91
|
-
api: string;
|
|
92
91
|
file: string;
|
|
92
|
+
api: string;
|
|
93
|
+
severity: "error" | "warning";
|
|
93
94
|
line: number;
|
|
94
95
|
expectedVersion: string;
|
|
95
96
|
actualVersion: string;
|
|
96
|
-
severity: "error" | "warning";
|
|
97
97
|
}>, "many">;
|
|
98
98
|
}, "strip", z.ZodTypeAny, {
|
|
99
99
|
passed: boolean;
|
|
100
100
|
violations: {
|
|
101
|
-
api: string;
|
|
102
101
|
file: string;
|
|
102
|
+
api: string;
|
|
103
|
+
severity: "error" | "warning";
|
|
103
104
|
line: number;
|
|
104
105
|
expectedVersion: string;
|
|
105
106
|
actualVersion: string;
|
|
106
|
-
severity: "error" | "warning";
|
|
107
107
|
}[];
|
|
108
108
|
}, {
|
|
109
109
|
passed: boolean;
|
|
110
110
|
violations: {
|
|
111
|
-
api: string;
|
|
112
111
|
file: string;
|
|
112
|
+
api: string;
|
|
113
|
+
severity: "error" | "warning";
|
|
113
114
|
line: number;
|
|
114
115
|
expectedVersion: string;
|
|
115
116
|
actualVersion: string;
|
|
116
|
-
severity: "error" | "warning";
|
|
117
117
|
}[];
|
|
118
118
|
}>;
|
|
119
119
|
export declare const ExternalApiCallSchema: z.ZodObject<{
|
|
@@ -123,13 +123,13 @@ export declare const ExternalApiCallSchema: z.ZodObject<{
|
|
|
123
123
|
version: z.ZodString;
|
|
124
124
|
}, "strip", z.ZodTypeAny, {
|
|
125
125
|
version: string;
|
|
126
|
-
api: string;
|
|
127
126
|
file: string;
|
|
127
|
+
api: string;
|
|
128
128
|
line: number;
|
|
129
129
|
}, {
|
|
130
130
|
version: string;
|
|
131
|
-
api: string;
|
|
132
131
|
file: string;
|
|
132
|
+
api: string;
|
|
133
133
|
line: number;
|
|
134
134
|
}>;
|
|
135
135
|
export declare const ImplOutputSchema: z.ZodObject<{
|
|
@@ -145,13 +145,13 @@ export declare const ImplOutputSchema: z.ZodObject<{
|
|
|
145
145
|
version: z.ZodString;
|
|
146
146
|
}, "strip", z.ZodTypeAny, {
|
|
147
147
|
version: string;
|
|
148
|
-
api: string;
|
|
149
148
|
file: string;
|
|
149
|
+
api: string;
|
|
150
150
|
line: number;
|
|
151
151
|
}, {
|
|
152
152
|
version: string;
|
|
153
|
-
api: string;
|
|
154
153
|
file: string;
|
|
154
|
+
api: string;
|
|
155
155
|
line: number;
|
|
156
156
|
}>, "many">;
|
|
157
157
|
astGateResult: z.ZodObject<{
|
|
@@ -164,85 +164,85 @@ export declare const ImplOutputSchema: z.ZodObject<{
|
|
|
164
164
|
actualVersion: z.ZodString;
|
|
165
165
|
severity: z.ZodEnum<["error", "warning"]>;
|
|
166
166
|
}, "strip", z.ZodTypeAny, {
|
|
167
|
-
api: string;
|
|
168
167
|
file: string;
|
|
168
|
+
api: string;
|
|
169
|
+
severity: "error" | "warning";
|
|
169
170
|
line: number;
|
|
170
171
|
expectedVersion: string;
|
|
171
172
|
actualVersion: string;
|
|
172
|
-
severity: "error" | "warning";
|
|
173
173
|
}, {
|
|
174
|
-
api: string;
|
|
175
174
|
file: string;
|
|
175
|
+
api: string;
|
|
176
|
+
severity: "error" | "warning";
|
|
176
177
|
line: number;
|
|
177
178
|
expectedVersion: string;
|
|
178
179
|
actualVersion: string;
|
|
179
|
-
severity: "error" | "warning";
|
|
180
180
|
}>, "many">;
|
|
181
181
|
}, "strip", z.ZodTypeAny, {
|
|
182
182
|
passed: boolean;
|
|
183
183
|
violations: {
|
|
184
|
-
api: string;
|
|
185
184
|
file: string;
|
|
185
|
+
api: string;
|
|
186
|
+
severity: "error" | "warning";
|
|
186
187
|
line: number;
|
|
187
188
|
expectedVersion: string;
|
|
188
189
|
actualVersion: string;
|
|
189
|
-
severity: "error" | "warning";
|
|
190
190
|
}[];
|
|
191
191
|
}, {
|
|
192
192
|
passed: boolean;
|
|
193
193
|
violations: {
|
|
194
|
-
api: string;
|
|
195
194
|
file: string;
|
|
195
|
+
api: string;
|
|
196
|
+
severity: "error" | "warning";
|
|
196
197
|
line: number;
|
|
197
198
|
expectedVersion: string;
|
|
198
199
|
actualVersion: string;
|
|
199
|
-
severity: "error" | "warning";
|
|
200
200
|
}[];
|
|
201
201
|
}>;
|
|
202
202
|
}, "strip", z.ZodTypeAny, {
|
|
203
203
|
version: "1.0";
|
|
204
204
|
sha256: string;
|
|
205
205
|
generatedAt: string;
|
|
206
|
-
inputSig: string;
|
|
207
206
|
changedFiles: string[];
|
|
207
|
+
inputSig: string;
|
|
208
208
|
externalApiCalls: {
|
|
209
209
|
version: string;
|
|
210
|
-
api: string;
|
|
211
210
|
file: string;
|
|
211
|
+
api: string;
|
|
212
212
|
line: number;
|
|
213
213
|
}[];
|
|
214
214
|
astGateResult: {
|
|
215
215
|
passed: boolean;
|
|
216
216
|
violations: {
|
|
217
|
-
api: string;
|
|
218
217
|
file: string;
|
|
218
|
+
api: string;
|
|
219
|
+
severity: "error" | "warning";
|
|
219
220
|
line: number;
|
|
220
221
|
expectedVersion: string;
|
|
221
222
|
actualVersion: string;
|
|
222
|
-
severity: "error" | "warning";
|
|
223
223
|
}[];
|
|
224
224
|
};
|
|
225
225
|
}, {
|
|
226
226
|
version: "1.0";
|
|
227
227
|
sha256: string;
|
|
228
228
|
generatedAt: string;
|
|
229
|
-
inputSig: string;
|
|
230
229
|
changedFiles: string[];
|
|
230
|
+
inputSig: string;
|
|
231
231
|
externalApiCalls: {
|
|
232
232
|
version: string;
|
|
233
|
-
api: string;
|
|
234
233
|
file: string;
|
|
234
|
+
api: string;
|
|
235
235
|
line: number;
|
|
236
236
|
}[];
|
|
237
237
|
astGateResult: {
|
|
238
238
|
passed: boolean;
|
|
239
239
|
violations: {
|
|
240
|
-
api: string;
|
|
241
240
|
file: string;
|
|
241
|
+
api: string;
|
|
242
|
+
severity: "error" | "warning";
|
|
242
243
|
line: number;
|
|
243
244
|
expectedVersion: string;
|
|
244
245
|
actualVersion: string;
|
|
245
|
-
severity: "error" | "warning";
|
|
246
246
|
}[];
|
|
247
247
|
};
|
|
248
248
|
}>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { WorkspaceConfig } from '../config/config-types.js';
|
|
2
|
+
import { type BoundaryError } from '../openspec/artifact-boundary.js';
|
|
3
|
+
export type RdSwarmPlanRequest = {
|
|
4
|
+
skill: 'rd' | string;
|
|
5
|
+
changeId: string;
|
|
6
|
+
goal: string;
|
|
7
|
+
maxWorkers?: number;
|
|
8
|
+
dryRun: true;
|
|
9
|
+
workspaceRoot: string;
|
|
10
|
+
targetRepoRoot?: string;
|
|
11
|
+
requiresTechApproval?: boolean;
|
|
12
|
+
workspace?: WorkspaceConfig;
|
|
13
|
+
};
|
|
14
|
+
export type RdWaveName = 'discovery' | 'planning' | 'implementation candidates' | 'quality gates' | 'reducer';
|
|
15
|
+
export type RdTask = {
|
|
16
|
+
taskId: string;
|
|
17
|
+
wave: RdWaveName;
|
|
18
|
+
workerKind: string;
|
|
19
|
+
purpose: string;
|
|
20
|
+
inputs: string[];
|
|
21
|
+
outputs: [string, ...string[]];
|
|
22
|
+
dependsOn: string[];
|
|
23
|
+
conflictGroup: string;
|
|
24
|
+
targetArea: string;
|
|
25
|
+
expectedEvidence: string;
|
|
26
|
+
};
|
|
27
|
+
export type RdConflictGroup = {
|
|
28
|
+
groupId: string;
|
|
29
|
+
ownedPaths: string[];
|
|
30
|
+
parallelismPolicy: 'parallel' | 'sequential';
|
|
31
|
+
reason: string;
|
|
32
|
+
};
|
|
33
|
+
export type RdTaskGraph = {
|
|
34
|
+
changeId: string;
|
|
35
|
+
goal: string;
|
|
36
|
+
available: boolean;
|
|
37
|
+
workerTarget: number;
|
|
38
|
+
waves: Array<{
|
|
39
|
+
name: RdWaveName;
|
|
40
|
+
taskIds: string[];
|
|
41
|
+
}>;
|
|
42
|
+
tasks: RdTask[];
|
|
43
|
+
conflictGroups: RdConflictGroup[];
|
|
44
|
+
artifactRoot: string;
|
|
45
|
+
outputs: {
|
|
46
|
+
taskGraph: string;
|
|
47
|
+
waveManifests: string[];
|
|
48
|
+
workerBriefs: string[];
|
|
49
|
+
reducerReport: string;
|
|
50
|
+
};
|
|
51
|
+
gateStatus: {
|
|
52
|
+
techApprovalRequired: boolean;
|
|
53
|
+
techStatus: string;
|
|
54
|
+
skipReason?: string;
|
|
55
|
+
};
|
|
56
|
+
blockedReasons: string[];
|
|
57
|
+
nextActions: string[];
|
|
58
|
+
};
|
|
59
|
+
export declare function planRdSwarmGraph(input: RdSwarmPlanRequest): RdTaskGraph;
|
|
60
|
+
export type { BoundaryError };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { planArtifactPath, validateChangeId } from '../openspec/artifact-boundary.js';
|
|
4
|
+
import { getTechStatus as getLegacyTechStatus } from '../tech/tech-service.js';
|
|
5
|
+
const MIN_WORKERS = 25;
|
|
6
|
+
const MAX_WORKERS = 40;
|
|
7
|
+
const REQUIRED_TECH_FILES = ['frontend-tech-doc.md', 'backend-tech-doc.md', 'tech-approval-record.md'];
|
|
8
|
+
function failure(input, reasons, actions, gateStatus, workerTarget) {
|
|
9
|
+
return { ...input, available: false, workerTarget, waves: [], tasks: [], conflictGroups: [], outputs: { taskGraph: `${input.artifactRoot}/task-graph.json`, waveManifests: [], workerBriefs: [], reducerReport: `${input.artifactRoot}/reducer-report.md` }, gateStatus, blockedReasons: reasons, nextActions: actions };
|
|
10
|
+
}
|
|
11
|
+
function validate(input) {
|
|
12
|
+
if (input.skill !== 'rd')
|
|
13
|
+
return { ok: false, error: { code: 'UNSUPPORTED_SWARM_SKILL', message: `Unsupported skill ${input.skill}` } };
|
|
14
|
+
const id = validateChangeId(input.changeId);
|
|
15
|
+
if (!id.ok)
|
|
16
|
+
return { ok: false, error: id.error };
|
|
17
|
+
const goal = input.goal.trim();
|
|
18
|
+
if (!goal)
|
|
19
|
+
return { ok: false, error: { code: 'INVALID_GOAL', message: 'Goal must be non-empty' } };
|
|
20
|
+
return { ok: true, value: { changeId: id.value.changeId, goal } };
|
|
21
|
+
}
|
|
22
|
+
function localTechStatus(input) {
|
|
23
|
+
try {
|
|
24
|
+
const canonical = getLegacyTechStatus({ sessionId: input.changeId, artifactWorkspacePath: input.workspaceRoot, ...(input.workspace ? { workspace: input.workspace } : {}) });
|
|
25
|
+
if (canonical.status === 'approved')
|
|
26
|
+
return 'approved';
|
|
27
|
+
}
|
|
28
|
+
catch { /* pure planner fallback for an unconfigured workspace */ }
|
|
29
|
+
const root = join(input.workspaceRoot, input.changeId, 'rd', 'architecture');
|
|
30
|
+
const missing = REQUIRED_TECH_FILES.filter((name) => !existsSync(join(root, name)));
|
|
31
|
+
if (missing.length > 0)
|
|
32
|
+
return missing.includes('tech-approval-record.md') && missing.length === 1 ? 'missing-approval' : 'missing';
|
|
33
|
+
try {
|
|
34
|
+
return readFileSync(join(root, 'tech-approval-record.md'), 'utf8').split(/\r?\n/).some((line) => line.trim() === 'status: approved') ? 'approved' : 'not-approved';
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return 'not-approved';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function path(input, template) {
|
|
41
|
+
const result = planArtifactPath({ changeId: input.changeId, workspaceRoot: input.workspaceRoot, role: 'rd', requestId: 'swarm', template });
|
|
42
|
+
if (!result.ok)
|
|
43
|
+
throw new Error(result.error.message);
|
|
44
|
+
return result.value.jsonSafeRelativePath;
|
|
45
|
+
}
|
|
46
|
+
function createTask(taskId, wave, goal, dependencies, index) {
|
|
47
|
+
const output = `workers/${taskId}/brief.md`;
|
|
48
|
+
return { taskId, wave, workerKind: taskId, purpose: `${taskId} for ${goal}`, inputs: [goal], outputs: [output], dependsOn: [...dependencies], conflictGroup: `group-${wave.replace(/\s/g, '-')}`, targetArea: wave === 'implementation candidates' ? `slice-${index + 1}` : wave, expectedEvidence: `${taskId}-evidence.md` };
|
|
49
|
+
}
|
|
50
|
+
function taskIds(target) {
|
|
51
|
+
const discovery = ['rd-frontend-scan', 'rd-backend-scan', 'rd-test-scan', 'rd-contract-scan', 'rd-risk-scan'];
|
|
52
|
+
const planning = ['rd-frontend-slicer', 'rd-backend-slicer', 'rd-unit-test-slicer', 'rd-contract-planner', 'rd-quality-gate-planner'];
|
|
53
|
+
const quality = ['rd-code-review-worker', 'rd-security-review-worker', 'rd-typecheck-worker', 'rd-coverage-worker', 'rd-regression-worker'];
|
|
54
|
+
const implementationCount = Math.max(1, target - discovery.length - planning.length - quality.length - 1);
|
|
55
|
+
const implementation = Array.from({ length: implementationCount }, (_, i) => `rd-impl-${String(i + 1).padStart(3, '0')}`);
|
|
56
|
+
return { discovery, planning, 'implementation candidates': implementation, 'quality gates': quality, reducer: ['rd-reducer-worker'] };
|
|
57
|
+
}
|
|
58
|
+
export function planRdSwarmGraph(input) {
|
|
59
|
+
const checked = validate(input);
|
|
60
|
+
const defaultRoot = `${input.changeId}/swarm`;
|
|
61
|
+
const common = { changeId: input.changeId, goal: input.goal.trim(), artifactRoot: defaultRoot };
|
|
62
|
+
const requested = input.maxWorkers ?? 25;
|
|
63
|
+
if (!checked.ok)
|
|
64
|
+
return failure(common, [checked.error.code], [checked.error.message], { techApprovalRequired: input.requiresTechApproval === true, techStatus: 'unavailable' }, Number.isInteger(requested) && requested > 0 ? Math.min(requested, MAX_WORKERS) : 0);
|
|
65
|
+
if (!Number.isInteger(requested) || requested < 1)
|
|
66
|
+
return failure({ ...common, goal: checked.value.goal, changeId: checked.value.changeId, artifactRoot: `${checked.value.changeId}/swarm` }, ['INVALID_MAX_WORKERS'], ['Use a positive integer for max-workers.'], { techApprovalRequired: input.requiresTechApproval === true, techStatus: 'unavailable' }, 0);
|
|
67
|
+
const goal = checked.value.goal;
|
|
68
|
+
const changeId = checked.value.changeId;
|
|
69
|
+
const artifactRoot = `${changeId}/swarm`;
|
|
70
|
+
const target = Math.min(requested, MAX_WORKERS);
|
|
71
|
+
const reasons = requested > MAX_WORKERS ? ['WORKER_CAP_EXCEEDED'] : [];
|
|
72
|
+
if (requested < MIN_WORKERS)
|
|
73
|
+
reasons.push('SMALL_SCOPE');
|
|
74
|
+
const required = input.requiresTechApproval === true;
|
|
75
|
+
const techStatus = localTechStatus({ ...input, changeId, goal });
|
|
76
|
+
const gateStatus = { techApprovalRequired: required, techStatus, ...(required ? {} : { skipReason: 'tech-gate-not-required' }) };
|
|
77
|
+
if (required && techStatus !== 'approved') {
|
|
78
|
+
reasons.push('TECH_APPROVAL_REQUIRED');
|
|
79
|
+
if (techStatus === 'missing-approval' || techStatus === 'missing')
|
|
80
|
+
reasons.push('TECH_APPROVAL_MISSING');
|
|
81
|
+
}
|
|
82
|
+
if (reasons.includes('SMALL_SCOPE'))
|
|
83
|
+
return failure({ changeId, goal, artifactRoot }, reasons, ['Describe the small scope in natural language or increase the worker target to at least 25.'], gateStatus, target);
|
|
84
|
+
if (required && techStatus !== 'approved')
|
|
85
|
+
return failure({ changeId, goal, artifactRoot }, reasons, ['Review and approve the technical plan before running the RD swarm.'], gateStatus, target);
|
|
86
|
+
const ids = taskIds(target);
|
|
87
|
+
const waves = Object.entries(ids).map(([name, taskIds]) => ({ name, taskIds }));
|
|
88
|
+
const dependencies = { discovery: [], planning: ids.discovery, 'implementation candidates': ids.planning, 'quality gates': ids['implementation candidates'], reducer: ids['quality gates'] };
|
|
89
|
+
const tasks = waves.flatMap(({ name, taskIds: waveTaskIds }) => waveTaskIds.map((id, i) => createTask(id, name, goal, dependencies[name], i)));
|
|
90
|
+
const conflictGroups = waves.map(({ name, taskIds: waveTaskIds }) => ({ groupId: `group-${name.replace(/\s/g, '-')}`, ownedPaths: waveTaskIds.map((id) => `${artifactRoot}/workers/${id}/brief.md`), parallelismPolicy: waveTaskIds.length > 1 ? 'parallel' : 'sequential', reason: `${name} workers have isolated artifact ownership` }));
|
|
91
|
+
const outputs = { taskGraph: path(input, '<changeId>/swarm/task-graph.json'), waveManifests: waves.map((wave, i) => path(input, `<changeId>/swarm/waves/wave-${i + 1}-${wave.name}.json`)), workerBriefs: tasks.map((task) => path(input, `<changeId>/swarm/${task.outputs[0]}`)), reducerReport: path(input, '<changeId>/swarm/reducer-report.md') };
|
|
92
|
+
return { changeId, goal, available: true, workerTarget: target, waves, tasks, conflictGroups, artifactRoot, outputs, gateStatus, blockedReasons: reasons, nextActions: reasons.includes('WORKER_CAP_EXCEEDED') ? ['Worker target was capped at 40.'] : [] };
|
|
93
|
+
}
|
|
@@ -93,7 +93,6 @@ export const seedCapabilityItems = [
|
|
|
93
93
|
capability('searchcode-mcp.code-search', 'searchcode-mcp', 'SearchCode MCP', 'mcp', 'code-search', ['engineer'], 'medium', 'local-code-search', 'Use local Grep/Glob and ask before sending private code externally.', 'External Code Search', '外部代码搜索', 'Searches code examples or repositories outside the current workspace.', '搜索当前工作区外部的代码示例或仓库。'),
|
|
94
94
|
capability('mysql-mcp.database-inspection', 'mysql-mcp-server', 'MySQL Database Inspection', 'mcp', 'database-inspection', ['engineer'], 'high', 'schema-excerpt-input', 'Ask the user for schema excerpts or sanitized query plans.', 'MySQL Inspection', 'MySQL 检查', 'Inspects MySQL schema and data through an MCP boundary.', '通过 MCP 边界检查 MySQL schema 与数据。'),
|
|
95
95
|
capability('agent-browser.browser-agent', 'agent-browser', 'Agent Browser', 'agent', 'browser-agent', ['engineer', 'qa'], 'medium', 'manual-browser-walkthrough', 'Use screenshots and manual test steps if agent browser is unavailable.', 'Agent Browser', '浏览器代理', 'Supports browser-based validation and interaction planning.', '支持基于浏览器的验证和交互规划。'),
|
|
96
|
-
capability('minimax-skills.worker-guidance', 'minimax-skills', 'MiniMax Worker Guidance', 'skill', 'worker-guidance', ['engineer'], 'medium', 'peaks-worker-contract', 'Use Peaks built-in minimax-worker contract and review handoff.', 'MiniMax Worker Guidance', 'MiniMax Worker 指南', 'Guides MiniMax coding/test worker delegation.', '指导 MiniMax 编码/测试 worker 委托。'),
|
|
97
96
|
capability('claude-mem.memory-persistence', 'claude-mem', 'Claude Memory Persistence', 'skill', 'memory', ['engineer'], 'medium', 'peaks-txt-context-capsule', 'Use peaks-txt context capsules without storing secrets.', 'Memory Persistence', '记忆持久化', 'Persists reusable context when explicitly approved.', '在明确授权时持久化可复用上下文。'),
|
|
98
97
|
capability('openspec.spec-workflow', 'openspec', 'OpenSpec Workflow', 'workflow', 'spec-workflow', ['product', 'engineer'], 'low', 'peaks-prd-rd-qa-artifacts', 'Use Peaks built-in PRD/RD/QA artifact flow.', 'OpenSpec Workflow', 'OpenSpec 规格流程', 'Supports spec-first product and engineering governance.', '支持规格优先的产品与工程治理。'),
|
|
99
98
|
capability('gitnexus.repo-intelligence', 'gitnexus', 'GitNexus Repository Intelligence', 'cli', 'repo-intelligence', ['engineer'], 'medium', 'local-repo-scan', 'Use local project scanning through Peaks RD.', 'Repository Intelligence', '仓库智能分析', 'Repository intelligence should be proxied through Peaks before use.', '仓库智能分析应先通过 Peaks 代理边界再使用。'),
|
|
@@ -31,7 +31,6 @@ export const seedCapabilityLandingMappings = [
|
|
|
31
31
|
mapping({ capabilityId: 'impeccable.quality-guidance', sourceId: 'impeccable', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'quality reference catalog', guidance: 'Use as quality inspiration; Peaks review gates remain authoritative.' }),
|
|
32
32
|
mapping({ capabilityId: 'vercel-agent-skills.skill-pack', sourceId: 'vercel-agent-skills', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'external skill catalog', guidance: 'Catalog only until individual skills are inspected and approved.' }),
|
|
33
33
|
mapping({ capabilityId: 'agent-browser.browser-agent', sourceId: 'agent-browser', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-qa', skillName: 'peaks-qa', guidance: 'Use for browser validation; never submit forms or mutate authenticated state without explicit permission.' }),
|
|
34
|
-
mapping({ capabilityId: 'minimax-skills.worker-guidance', sourceId: 'minimax-skills', sourceGroup: 'mcp-server', landingKind: 'cli', target: 'peaks minimax-worker', commandPreview: 'peaks minimax-worker --json', guidance: 'Use Peaks worker command only after reviewing inputs; add --confirm manually when explicit external-provider approval exists.' }),
|
|
35
34
|
mapping({ capabilityId: 'claude-mem.memory-persistence', sourceId: 'claude-mem', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-txt', skillName: 'peaks-txt', guidance: 'Use only with explicit durable-memory consent and never store secrets.' }),
|
|
36
35
|
mapping({ capabilityId: 'darwin-skill.external-skill', sourceId: 'darwin-skill', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'external skill catalog', guidance: 'Catalog only until inspected for project fit and safety.' }),
|
|
37
36
|
mapping({ capabilityId: 'claude-code-best-practice.workflow-guidance', sourceId: 'claude-code-best-practice', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-rd', skillName: 'peaks-rd', guidance: 'Use as Claude Code workflow reference while preserving Peaks gates.' }),
|
|
@@ -15,7 +15,6 @@ export const seedCapabilitySources = [
|
|
|
15
15
|
{ sourceId: 'impeccable', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'impeccable', url: 'https://github.com/pbakaus/impeccable', discoveryStatus: 'unscanned', items: ['impeccable.quality-guidance'] },
|
|
16
16
|
{ sourceId: 'vercel-agent-skills', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'Vercel Agent Skills', url: 'https://github.com/vercel-labs/agent-skills', discoveryStatus: 'unscanned', items: ['vercel-agent-skills.skill-pack'] },
|
|
17
17
|
{ sourceId: 'agent-browser', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'Agent Browser', url: 'https://github.com/vercel-labs/agent-browser', discoveryStatus: 'indexed', items: ['agent-browser.browser-agent'] },
|
|
18
|
-
{ sourceId: 'minimax-skills', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'MiniMax Skills', url: 'https://github.com/MiniMax-AI/skills', discoveryStatus: 'indexed', items: ['minimax-skills.worker-guidance'] },
|
|
19
18
|
{ sourceId: 'claude-mem', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'claude-mem', url: 'https://github.com/thedotmack/claude-mem', discoveryStatus: 'indexed', items: ['claude-mem.memory-persistence'] },
|
|
20
19
|
{ sourceId: 'darwin-skill', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'darwin-skill', url: 'https://github.com/alchaincyf/darwin-skill', discoveryStatus: 'unscanned', items: ['darwin-skill.external-skill'] },
|
|
21
20
|
{ sourceId: 'claude-code-best-practice', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'Claude Code Best Practice', url: 'https://github.com/shanraisshan/claude-code-best-practice', discoveryStatus: 'indexed', items: ['claude-code-best-practice.workflow-guidance'] },
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rid-010 — peaks release precheck (Phase 4 slice 1).
|
|
3
|
+
*
|
|
4
|
+
* Module path: src/services/release/version-precheck-service.ts
|
|
5
|
+
* Mirror of publish.yml gate-cli-version step §(A). The §(B) tarball-content gate
|
|
6
|
+
* (Layer 5 of the 5-layer root cause) stays CI-only — AC-7 grep test pins
|
|
7
|
+
* publish.yml so §(B) cannot drift silently.
|
|
8
|
+
*
|
|
9
|
+
* 4-layer version precheck mirroring publish.yml gate-cli-version step. Designed
|
|
10
|
+
* to run BEFORE `peaks release canary` so developers catch CLI_VERSION lag /
|
|
11
|
+
* tag collision / changeset staged / workspace drift without waiting for CI.
|
|
12
|
+
*
|
|
13
|
+
* Mirrors the §(A) on-disk gate from publish.yml. The §(B) tarball-content gate
|
|
14
|
+
* (Layer 5 of the 5-layer root cause) stays CI-only — AC-7 grep test pins
|
|
15
|
+
* publish.yml so §(B) cannot drift silently.
|
|
16
|
+
*
|
|
17
|
+
* Design contract:
|
|
18
|
+
* - Pure functions. NO `process.exitCode` mutation here (cli-helpers owns it).
|
|
19
|
+
* - All I/O parameterized via `projectRoot`.
|
|
20
|
+
* - Layer A and B are blockers by default; C and D are warnings (--strict
|
|
21
|
+
* upgrades them to blockers; hotfix path uses default warning).
|
|
22
|
+
*/
|
|
23
|
+
export type LayerStatus = 'ok' | 'warning' | 'blocker';
|
|
24
|
+
export interface LayerResult {
|
|
25
|
+
readonly status: LayerStatus;
|
|
26
|
+
readonly message: string;
|
|
27
|
+
readonly remediation: string;
|
|
28
|
+
readonly observed?: Readonly<Record<string, unknown>>;
|
|
29
|
+
}
|
|
30
|
+
export interface PrecheckOptions {
|
|
31
|
+
readonly projectRoot: string;
|
|
32
|
+
readonly strict?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface PrecheckEnvelope {
|
|
35
|
+
readonly ok: boolean;
|
|
36
|
+
readonly overall: LayerStatus;
|
|
37
|
+
readonly rootVersion: string;
|
|
38
|
+
readonly strict: boolean;
|
|
39
|
+
readonly snapshotAt: string;
|
|
40
|
+
readonly layers: {
|
|
41
|
+
readonly rootVsShared: LayerResult;
|
|
42
|
+
readonly tagCollision: LayerResult;
|
|
43
|
+
readonly changesetStaged: LayerResult;
|
|
44
|
+
readonly workspaceLockstep: LayerResult;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export declare function runRootVsShared(opts: PrecheckOptions): LayerResult;
|
|
48
|
+
export declare function runTagCollision(opts: PrecheckOptions): LayerResult;
|
|
49
|
+
export declare function runChangesetStaged(opts: PrecheckOptions): LayerResult;
|
|
50
|
+
export declare function runWorkspaceLockstep(opts: PrecheckOptions): LayerResult;
|
|
51
|
+
export declare function runAllLayers(opts: PrecheckOptions): PrecheckEnvelope;
|