peaks-loop 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +51 -0
- package/CHANGELOG.md +3136 -0
- package/LICENSE +21 -0
- package/README-en.md +281 -0
- package/README.md +365 -0
- package/agents/karpathy-reviewer.md +229 -0
- package/bin/peaks.js +2 -0
- package/dist/src/cli/cli-helpers.d.ts +25 -0
- package/dist/src/cli/cli-helpers.js +78 -0
- package/dist/src/cli/commands/agent-commands.d.ts +20 -0
- package/dist/src/cli/commands/agent-commands.js +48 -0
- package/dist/src/cli/commands/audit-commands.d.ts +28 -0
- package/dist/src/cli/commands/audit-commands.js +437 -0
- package/dist/src/cli/commands/capability-commands.d.ts +16 -0
- package/dist/src/cli/commands/capability-commands.js +45 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +10 -0
- package/dist/src/cli/commands/classify-classify-commands.d.ts +19 -0
- package/dist/src/cli/commands/classify-classify-commands.js +151 -0
- package/dist/src/cli/commands/code-review-commands.d.ts +34 -0
- package/dist/src/cli/commands/code-review-commands.js +83 -0
- package/dist/src/cli/commands/codegraph-commands.d.ts +3 -0
- package/dist/src/cli/commands/codegraph-commands.js +99 -0
- package/dist/src/cli/commands/complexity-commands.d.ts +9 -0
- package/dist/src/cli/commands/complexity-commands.js +34 -0
- package/dist/src/cli/commands/config-commands.d.ts +3 -0
- package/dist/src/cli/commands/config-commands.js +220 -0
- package/dist/src/cli/commands/context-builder-commands.d.ts +11 -0
- package/dist/src/cli/commands/context-builder-commands.js +85 -0
- package/dist/src/cli/commands/context-commands.d.ts +21 -0
- package/dist/src/cli/commands/context-commands.js +254 -0
- package/dist/src/cli/commands/contract-commands.d.ts +26 -0
- package/dist/src/cli/commands/contract-commands.js +114 -0
- package/dist/src/cli/commands/core/artifacts-command.d.ts +3 -0
- package/dist/src/cli/commands/core/artifacts-command.js +62 -0
- package/dist/src/cli/commands/core/binding-commands.d.ts +3 -0
- package/dist/src/cli/commands/core/binding-commands.js +58 -0
- package/dist/src/cli/commands/core/doctor-command.d.ts +11 -0
- package/dist/src/cli/commands/core/doctor-command.js +204 -0
- package/dist/src/cli/commands/core/memory-command.d.ts +3 -0
- package/dist/src/cli/commands/core/memory-command.js +98 -0
- package/dist/src/cli/commands/core/profile-command.d.ts +3 -0
- package/dist/src/cli/commands/core/profile-command.js +9 -0
- package/dist/src/cli/commands/core/proxy-command.d.ts +3 -0
- package/dist/src/cli/commands/core/proxy-command.js +26 -0
- package/dist/src/cli/commands/core/session-command.d.ts +3 -0
- package/dist/src/cli/commands/core/session-command.js +213 -0
- package/dist/src/cli/commands/core/skill-command.d.ts +3 -0
- package/dist/src/cli/commands/core/skill-command.js +275 -0
- package/dist/src/cli/commands/core/standards-command.d.ts +3 -0
- package/dist/src/cli/commands/core/standards-command.js +95 -0
- package/dist/src/cli/commands/core-artifact-commands.d.ts +15 -0
- package/dist/src/cli/commands/core-artifact-commands.js +31 -0
- package/dist/src/cli/commands/dispatch-commands.d.ts +10 -0
- package/dist/src/cli/commands/dispatch-commands.js +351 -0
- package/dist/src/cli/commands/dispatch-from-dag.d.ts +3 -0
- package/dist/src/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/src/cli/commands/doc-commands.d.ts +11 -0
- package/dist/src/cli/commands/doc-commands.js +65 -0
- package/dist/src/cli/commands/feedback-commands.d.ts +18 -0
- package/dist/src/cli/commands/feedback-commands.js +145 -0
- package/dist/src/cli/commands/final-review-commands.d.ts +31 -0
- package/dist/src/cli/commands/final-review-commands.js +161 -0
- package/dist/src/cli/commands/fixture-commands.d.ts +32 -0
- package/dist/src/cli/commands/fixture-commands.js +91 -0
- package/dist/src/cli/commands/fork-commands.d.ts +16 -0
- package/dist/src/cli/commands/fork-commands.js +163 -0
- package/dist/src/cli/commands/gate-commands.d.ts +3 -0
- package/dist/src/cli/commands/gate-commands.js +117 -0
- package/dist/src/cli/commands/heartbeat-commands.d.ts +3 -0
- package/dist/src/cli/commands/heartbeat-commands.js +135 -0
- package/dist/src/cli/commands/hook-handle.d.ts +17 -0
- package/dist/src/cli/commands/hook-handle.js +157 -0
- package/dist/src/cli/commands/hooks-commands.d.ts +3 -0
- package/dist/src/cli/commands/hooks-commands.js +156 -0
- package/dist/src/cli/commands/impact-commands.d.ts +15 -0
- package/dist/src/cli/commands/impact-commands.js +62 -0
- package/dist/src/cli/commands/legacy-commands.d.ts +11 -0
- package/dist/src/cli/commands/legacy-commands.js +32 -0
- package/dist/src/cli/commands/log-commands.d.ts +17 -0
- package/dist/src/cli/commands/log-commands.js +64 -0
- package/dist/src/cli/commands/loop-commands.d.ts +21 -0
- package/dist/src/cli/commands/loop-commands.js +128 -0
- package/dist/src/cli/commands/loop-eval-commands.d.ts +20 -0
- package/dist/src/cli/commands/loop-eval-commands.js +526 -0
- package/dist/src/cli/commands/memory-commands.d.ts +23 -0
- package/dist/src/cli/commands/memory-commands.js +129 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +11 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/src/cli/commands/mut-commands.d.ts +20 -0
- package/dist/src/cli/commands/mut-commands.js +239 -0
- package/dist/src/cli/commands/observability-commands.d.ts +22 -0
- package/dist/src/cli/commands/observability-commands.js +201 -0
- package/dist/src/cli/commands/openspec-commands.d.ts +3 -0
- package/dist/src/cli/commands/openspec-commands.js +237 -0
- package/dist/src/cli/commands/perf-audit-commands.d.ts +22 -0
- package/dist/src/cli/commands/perf-audit-commands.js +132 -0
- package/dist/src/cli/commands/perf-commands.d.ts +3 -0
- package/dist/src/cli/commands/perf-commands.js +41 -0
- package/dist/src/cli/commands/playwright-commands.d.ts +95 -0
- package/dist/src/cli/commands/playwright-commands.js +432 -0
- package/dist/src/cli/commands/prd-blocks-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/src/cli/commands/prd-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-commands.js +141 -0
- package/dist/src/cli/commands/preferences-commands.d.ts +2 -0
- package/dist/src/cli/commands/preferences-commands.js +197 -0
- package/dist/src/cli/commands/project-commands.d.ts +3 -0
- package/dist/src/cli/commands/project-commands.js +248 -0
- package/dist/src/cli/commands/qa-business-review-commands.d.ts +17 -0
- package/dist/src/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/src/cli/commands/qa-commands.d.ts +94 -0
- package/dist/src/cli/commands/qa-commands.js +271 -0
- package/dist/src/cli/commands/release-commands.d.ts +24 -0
- package/dist/src/cli/commands/release-commands.js +231 -0
- package/dist/src/cli/commands/request-commands.d.ts +3 -0
- package/dist/src/cli/commands/request-commands.js +509 -0
- package/dist/src/cli/commands/retrospective-commands.d.ts +12 -0
- package/dist/src/cli/commands/retrospective-commands.js +175 -0
- package/dist/src/cli/commands/reviewer-commands.d.ts +14 -0
- package/dist/src/cli/commands/reviewer-commands.js +64 -0
- package/dist/src/cli/commands/role-commands.d.ts +13 -0
- package/dist/src/cli/commands/role-commands.js +85 -0
- package/dist/src/cli/commands/sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/sc-commands.js +45 -0
- package/dist/src/cli/commands/scan-commands.d.ts +3 -0
- package/dist/src/cli/commands/scan-commands.js +445 -0
- package/dist/src/cli/commands/security-audit-commands.d.ts +23 -0
- package/dist/src/cli/commands/security-audit-commands.js +132 -0
- package/dist/src/cli/commands/session-checkpoint-command.d.ts +10 -0
- package/dist/src/cli/commands/session-checkpoint-command.js +100 -0
- package/dist/src/cli/commands/session-resume-command.d.ts +11 -0
- package/dist/src/cli/commands/session-resume-command.js +83 -0
- package/dist/src/cli/commands/share-commands.d.ts +17 -0
- package/dist/src/cli/commands/share-commands.js +296 -0
- package/dist/src/cli/commands/skill-conformance-commands.d.ts +9 -0
- package/dist/src/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/src/cli/commands/slice-commands.d.ts +24 -0
- package/dist/src/cli/commands/slice-commands.js +492 -0
- package/dist/src/cli/commands/slice-integrate-commands.d.ts +11 -0
- package/dist/src/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/src/cli/commands/slice-review-commands.d.ts +23 -0
- package/dist/src/cli/commands/slice-review-commands.js +162 -0
- package/dist/src/cli/commands/smoke-commands.d.ts +21 -0
- package/dist/src/cli/commands/smoke-commands.js +203 -0
- package/dist/src/cli/commands/solo-commands.d.ts +80 -0
- package/dist/src/cli/commands/solo-commands.js +435 -0
- package/dist/src/cli/commands/sop-commands.d.ts +3 -0
- package/dist/src/cli/commands/sop-commands.js +215 -0
- package/dist/src/cli/commands/statusline-commands.d.ts +3 -0
- package/dist/src/cli/commands/statusline-commands.js +169 -0
- package/dist/src/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/src/cli/commands/sub-agent-commands.js +19 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.js +57 -0
- package/dist/src/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/src/cli/commands/sub-agent-shared.js +67 -0
- package/dist/src/cli/commands/test-commands.d.ts +47 -0
- package/dist/src/cli/commands/test-commands.js +204 -0
- package/dist/src/cli/commands/understand-commands.d.ts +3 -0
- package/dist/src/cli/commands/understand-commands.js +112 -0
- package/dist/src/cli/commands/upgrade-commands.d.ts +23 -0
- package/dist/src/cli/commands/upgrade-commands.js +119 -0
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/src/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/src/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/src/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/src/cli/commands/worker-commands.d.ts +3 -0
- package/dist/src/cli/commands/worker-commands.js +52 -0
- package/dist/src/cli/commands/workflow-commands.d.ts +3 -0
- package/dist/src/cli/commands/workflow-commands.js +535 -0
- package/dist/src/cli/commands/workflow-plan-commands.d.ts +39 -0
- package/dist/src/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/src/cli/commands/workspace/clean-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/clean-command.js +49 -0
- package/dist/src/cli/commands/workspace/helpers.d.ts +28 -0
- package/dist/src/cli/commands/workspace/helpers.js +87 -0
- package/dist/src/cli/commands/workspace/init-command.d.ts +121 -0
- package/dist/src/cli/commands/workspace/init-command.js +436 -0
- package/dist/src/cli/commands/workspace/migrate-command.d.ts +11 -0
- package/dist/src/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/src/cli/commands/workspace/reconcile-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/src/cli/commands/workspace-commands.d.ts +18 -0
- package/dist/src/cli/commands/workspace-commands.js +50 -0
- package/dist/src/cli/index.d.ts +1 -0
- package/dist/src/cli/index.js +30 -0
- package/dist/src/cli/program.d.ts +5 -0
- package/dist/src/cli/program.js +336 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +28 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.js +105 -0
- package/dist/src/lib/render/message-renderer.d.ts +20 -0
- package/dist/src/lib/render/message-renderer.js +80 -0
- package/dist/src/services/agent/ecc-agent-service.d.ts +47 -0
- package/dist/src/services/agent/ecc-agent-service.js +143 -0
- package/dist/src/services/artifacts/artifact-lint-service.d.ts +23 -0
- package/dist/src/services/artifacts/artifact-lint-service.js +99 -0
- package/dist/src/services/artifacts/artifact-prerequisites.d.ts +78 -0
- package/dist/src/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/src/services/artifacts/artifact-service.d.ts +43 -0
- package/dist/src/services/artifacts/artifact-service.js +98 -0
- package/dist/src/services/artifacts/artifact-templates.d.ts +30 -0
- package/dist/src/services/artifacts/artifact-templates.js +302 -0
- package/dist/src/services/artifacts/repair-cycle-service.d.ts +23 -0
- package/dist/src/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/src/services/artifacts/request-artifact-service.d.ts +116 -0
- package/dist/src/services/artifacts/request-artifact-service.js +451 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.js +114 -0
- package/dist/src/services/artifacts/workspace-service.d.ts +34 -0
- package/dist/src/services/artifacts/workspace-service.js +272 -0
- package/dist/src/services/audit/artifact-writer.d.ts +93 -0
- package/dist/src/services/audit/artifact-writer.js +303 -0
- package/dist/src/services/audit/audit-goal-service.d.ts +35 -0
- package/dist/src/services/audit/audit-goal-service.js +75 -0
- package/dist/src/services/audit/audit-goal-types.d.ts +40 -0
- package/dist/src/services/audit/audit-goal-types.js +15 -0
- package/dist/src/services/audit/backing-detector.d.ts +24 -0
- package/dist/src/services/audit/backing-detector.js +59 -0
- package/dist/src/services/audit/classifier.d.ts +38 -0
- package/dist/src/services/audit/classifier.js +134 -0
- package/dist/src/services/audit/decision-writer.d.ts +76 -0
- package/dist/src/services/audit/decision-writer.js +217 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.js +58 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.js +86 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.js +48 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +16 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.js +35 -0
- package/dist/src/services/audit/enforcers/lint-output-style.d.ts +11 -0
- package/dist/src/services/audit/enforcers/lint-output-style.js +94 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.js +83 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.js +272 -0
- package/dist/src/services/audit/enforcers/lint-style.d.ts +49 -0
- package/dist/src/services/audit/enforcers/lint-style.js +173 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.js +100 -0
- package/dist/src/services/audit/enforcers/login-gate.d.ts +23 -0
- package/dist/src/services/audit/enforcers/login-gate.js +40 -0
- package/dist/src/services/audit/enforcers/mock-placement.d.ts +25 -0
- package/dist/src/services/audit/enforcers/mock-placement.js +48 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +21 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.js +56 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.js +23 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.js +75 -0
- package/dist/src/services/audit/enforcers/resume-detection.d.ts +21 -0
- package/dist/src/services/audit/enforcers/resume-detection.js +52 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +23 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.js +27 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.js +63 -0
- package/dist/src/services/audit/prose-ratio-calculator.d.ts +45 -0
- package/dist/src/services/audit/prose-ratio-calculator.js +52 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +21 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.js +229 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +19 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.js +225 -0
- package/dist/src/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/src/services/audit/red-line-catalog.js +195 -0
- package/dist/src/services/audit/red-lines-service.d.ts +23 -0
- package/dist/src/services/audit/red-lines-service.js +464 -0
- package/dist/src/services/audit/scanners/openspec-scanner.d.ts +15 -0
- package/dist/src/services/audit/scanners/openspec-scanner.js +55 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.js +56 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +46 -0
- package/dist/src/services/audit/static-service.d.ts +60 -0
- package/dist/src/services/audit/static-service.js +130 -0
- package/dist/src/services/audit/types.d.ts +86 -0
- package/dist/src/services/audit/types.js +13 -0
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +151 -0
- package/dist/src/services/audit-independent/perf-audit-service.js +316 -0
- package/dist/src/services/audit-independent/security-audit-service.d.ts +155 -0
- package/dist/src/services/audit-independent/security-audit-service.js +316 -0
- package/dist/src/services/classify/classify-service.d.ts +42 -0
- package/dist/src/services/classify/classify-service.js +122 -0
- package/dist/src/services/classify/classify-types.d.ts +79 -0
- package/dist/src/services/classify/classify-types.js +90 -0
- package/dist/src/services/code-review/ecc-bridge.d.ts +148 -0
- package/dist/src/services/code-review/ecc-bridge.js +242 -0
- package/dist/src/services/code-review/ocr-service.d.ts +129 -0
- package/dist/src/services/code-review/ocr-service.js +369 -0
- package/dist/src/services/codegraph/codegraph-process-runner.d.ts +2 -0
- package/dist/src/services/codegraph/codegraph-process-runner.js +93 -0
- package/dist/src/services/codegraph/codegraph-service.d.ts +43 -0
- package/dist/src/services/codegraph/codegraph-service.js +160 -0
- package/dist/src/services/complexity/complexity-estimator.d.ts +34 -0
- package/dist/src/services/complexity/complexity-estimator.js +64 -0
- package/dist/src/services/config/config-migration.d.ts +45 -0
- package/dist/src/services/config/config-migration.js +154 -0
- package/dist/src/services/config/config-restore.d.ts +10 -0
- package/dist/src/services/config/config-restore.js +47 -0
- package/dist/src/services/config/config-rollback.d.ts +13 -0
- package/dist/src/services/config/config-rollback.js +26 -0
- package/dist/src/services/config/config-safety.d.ts +40 -0
- package/dist/src/services/config/config-safety.js +359 -0
- package/dist/src/services/config/config-service.d.ts +69 -0
- package/dist/src/services/config/config-service.js +814 -0
- package/dist/src/services/config/config-types.d.ts +119 -0
- package/dist/src/services/config/config-types.js +18 -0
- package/dist/src/services/config/model-routing.d.ts +4 -0
- package/dist/src/services/config/model-routing.js +17 -0
- package/dist/src/services/config/provider-service.d.ts +48 -0
- package/dist/src/services/config/provider-service.js +143 -0
- package/dist/src/services/config/proxy-service.d.ts +21 -0
- package/dist/src/services/config/proxy-service.js +44 -0
- package/dist/src/services/config/sidecar-store.d.ts +25 -0
- package/dist/src/services/config/sidecar-store.js +61 -0
- package/dist/src/services/config/workspace-state-service.d.ts +30 -0
- package/dist/src/services/config/workspace-state-service.js +142 -0
- package/dist/src/services/context/artifact-meta.d.ts +72 -0
- package/dist/src/services/context/artifact-meta.js +105 -0
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/src/services/context/auto-compact-dispatcher.js +190 -0
- package/dist/src/services/context/auto-compact-reader.d.ts +51 -0
- package/dist/src/services/context/auto-compact-reader.js +164 -0
- package/dist/src/services/context/auto-compact-types.d.ts +143 -0
- package/dist/src/services/context/auto-compact-types.js +36 -0
- package/dist/src/services/context/collector.d.ts +24 -0
- package/dist/src/services/context/collector.js +133 -0
- package/dist/src/services/context/context-builder.d.ts +30 -0
- package/dist/src/services/context/context-builder.js +78 -0
- package/dist/src/services/context/context-guard.d.ts +49 -0
- package/dist/src/services/context/context-guard.js +91 -0
- package/dist/src/services/context/context-schema.d.ts +415 -0
- package/dist/src/services/context/context-schema.js +73 -0
- package/dist/src/services/context/dispatch-context-guard.d.ts +27 -0
- package/dist/src/services/context/dispatch-context-guard.js +192 -0
- package/dist/src/services/context/doc-retriever.d.ts +26 -0
- package/dist/src/services/context/doc-retriever.js +51 -0
- package/dist/src/services/context/headroom-client.d.ts +34 -0
- package/dist/src/services/context/headroom-client.js +117 -0
- package/dist/src/services/context/headroom-fetcher.d.ts +6 -0
- package/dist/src/services/context/headroom-fetcher.js +28 -0
- package/dist/src/services/context/headroom-prefs.d.ts +46 -0
- package/dist/src/services/context/headroom-prefs.js +34 -0
- package/dist/src/services/context/index.d.ts +7 -0
- package/dist/src/services/context/index.js +6 -0
- package/dist/src/services/context/main-session-monitor.d.ts +77 -0
- package/dist/src/services/context/main-session-monitor.js +130 -0
- package/dist/src/services/context/renderer.d.ts +20 -0
- package/dist/src/services/context/renderer.js +30 -0
- package/dist/src/services/context/shared-channel.d.ts +93 -0
- package/dist/src/services/context/shared-channel.js +308 -0
- package/dist/src/services/context/threshold.d.ts +35 -0
- package/dist/src/services/context/threshold.js +76 -0
- package/dist/src/services/context/tokenizer.d.ts +12 -0
- package/dist/src/services/context/tokenizer.js +43 -0
- package/dist/src/services/context/types.d.ts +93 -0
- package/dist/src/services/context/types.js +9 -0
- package/dist/src/services/dashboard/project-dashboard-service.d.ts +91 -0
- package/dist/src/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/src/services/dispatch/batch-counter.d.ts +27 -0
- package/dist/src/services/dispatch/batch-counter.js +102 -0
- package/dist/src/services/dispatch/contract-store.d.ts +63 -0
- package/dist/src/services/dispatch/contract-store.js +157 -0
- package/dist/src/services/dispatch/dispatch-record-writer.d.ts +138 -0
- package/dist/src/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/src/services/dispatch/heartbeat-truncator.d.ts +26 -0
- package/dist/src/services/dispatch/heartbeat-truncator.js +13 -0
- package/dist/src/services/dispatch/leak-detector.d.ts +11 -0
- package/dist/src/services/dispatch/leak-detector.js +72 -0
- package/dist/src/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/src/services/dispatch/slice-dag.js +238 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.js +382 -0
- package/dist/src/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/src/services/dispatch/test-tool-detection.js +46 -0
- package/dist/src/services/doc/doc-generator.d.ts +38 -0
- package/dist/src/services/doc/doc-generator.js +122 -0
- package/dist/src/services/doctor/doctor-service.d.ts +149 -0
- package/dist/src/services/doctor/doctor-service.js +929 -0
- package/dist/src/services/feedback/feedback-promotion-service.d.ts +123 -0
- package/dist/src/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/src/services/filesystem/file-lock.d.ts +11 -0
- package/dist/src/services/filesystem/file-lock.js +129 -0
- package/dist/src/services/final-review/final-review-service.d.ts +12 -0
- package/dist/src/services/final-review/final-review-service.js +52 -0
- package/dist/src/services/final-review/final-review-types.d.ts +42 -0
- package/dist/src/services/final-review/final-review-types.js +18 -0
- package/dist/src/services/fixture/fixture-capture-service.d.ts +87 -0
- package/dist/src/services/fixture/fixture-capture-service.js +317 -0
- package/dist/src/services/fixture/fixture-sanitize-service.d.ts +117 -0
- package/dist/src/services/fixture/fixture-sanitize-service.js +161 -0
- package/dist/src/services/fixture/index.d.ts +8 -0
- package/dist/src/services/fixture/index.js +8 -0
- package/dist/src/services/fork/fork-sync-state.d.ts +85 -0
- package/dist/src/services/fork/fork-sync-state.js +130 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +56 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.js +158 -0
- package/dist/src/services/fuzzy-matching/types.d.ts +20 -0
- package/dist/src/services/fuzzy-matching/types.js +1 -0
- package/dist/src/services/handoff/handoff-parser.d.ts +28 -0
- package/dist/src/services/handoff/handoff-parser.js +69 -0
- package/dist/src/services/handoff/handoff-types.d.ts +39 -0
- package/dist/src/services/handoff/handoff-types.js +19 -0
- package/dist/src/services/handoff/handoff-writer.d.ts +23 -0
- package/dist/src/services/handoff/handoff-writer.js +30 -0
- package/dist/src/services/hooks/output.d.ts +92 -0
- package/dist/src/services/hooks/output.js +111 -0
- package/dist/src/services/hooks/presence-marker-detector.d.ts +16 -0
- package/dist/src/services/hooks/presence-marker-detector.js +105 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +18 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.js +91 -0
- package/dist/src/services/ide/adapters/codex-adapter.d.ts +46 -0
- package/dist/src/services/ide/adapters/codex-adapter.js +97 -0
- package/dist/src/services/ide/adapters/cursor-adapter.d.ts +36 -0
- package/dist/src/services/ide/adapters/cursor-adapter.js +84 -0
- package/dist/src/services/ide/adapters/hermes-adapter.d.ts +21 -0
- package/dist/src/services/ide/adapters/hermes-adapter.js +51 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +14 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.js +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.d.ts +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.js +83 -0
- package/dist/src/services/ide/hook-protocol.d.ts +47 -0
- package/dist/src/services/ide/hook-protocol.js +74 -0
- package/dist/src/services/ide/hook-translator.d.ts +72 -0
- package/dist/src/services/ide/hook-translator.js +128 -0
- package/dist/src/services/ide/ide-detector.d.ts +10 -0
- package/dist/src/services/ide/ide-detector.js +19 -0
- package/dist/src/services/ide/ide-registry.d.ts +14 -0
- package/dist/src/services/ide/ide-registry.js +60 -0
- package/dist/src/services/ide/ide-types.d.ts +230 -0
- package/dist/src/services/ide/ide-types.js +2 -0
- package/dist/src/services/ide/resource-profile.d.ts +52 -0
- package/dist/src/services/ide/resource-profile.js +33 -0
- package/dist/src/services/ide/shared/atomic-json.d.ts +15 -0
- package/dist/src/services/ide/shared/atomic-json.js +58 -0
- package/dist/src/services/ide/shared/safe-path.d.ts +11 -0
- package/dist/src/services/ide/shared/safe-path.js +29 -0
- package/dist/src/services/impact/impact-scan-service.d.ts +66 -0
- package/dist/src/services/impact/impact-scan-service.js +197 -0
- package/dist/src/services/legacy/legacy-detector.d.ts +34 -0
- package/dist/src/services/legacy/legacy-detector.js +111 -0
- package/dist/src/services/log/log-commands-service.d.ts +54 -0
- package/dist/src/services/log/log-commands-service.js +83 -0
- package/dist/src/services/log/logger.d.ts +103 -0
- package/dist/src/services/log/logger.js +224 -0
- package/dist/src/services/log/redact.d.ts +32 -0
- package/dist/src/services/log/redact.js +89 -0
- package/dist/src/services/log/retention.d.ts +34 -0
- package/dist/src/services/log/retention.js +78 -0
- package/dist/src/services/loop/evaluator-dispatcher.d.ts +50 -0
- package/dist/src/services/loop/evaluator-dispatcher.js +551 -0
- package/dist/src/services/loop/monotonic-guard.d.ts +80 -0
- package/dist/src/services/loop/monotonic-guard.js +215 -0
- package/dist/src/services/loop/monotonic-runner.d.ts +55 -0
- package/dist/src/services/loop/monotonic-runner.js +197 -0
- package/dist/src/services/loop/run-driver.d.ts +70 -0
- package/dist/src/services/loop/run-driver.js +379 -0
- package/dist/src/services/loop/spec-service.d.ts +90 -0
- package/dist/src/services/loop/spec-service.js +497 -0
- package/dist/src/services/memory/llm-reranker.d.ts +174 -0
- package/dist/src/services/memory/llm-reranker.js +284 -0
- package/dist/src/services/memory/memory-search-service.d.ts +93 -0
- package/dist/src/services/memory/memory-search-service.js +117 -0
- package/dist/src/services/memory/project-context-service.d.ts +11 -0
- package/dist/src/services/memory/project-context-service.js +148 -0
- package/dist/src/services/memory/project-memory-service.d.ts +167 -0
- package/dist/src/services/memory/project-memory-service.js +817 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.js +190 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.js +23 -0
- package/dist/src/services/mode/bypass-tracker.d.ts +4 -0
- package/dist/src/services/mode/bypass-tracker.js +31 -0
- package/dist/src/services/mode/mode-enforcement.d.ts +14 -0
- package/dist/src/services/mode/mode-enforcement.js +84 -0
- package/dist/src/services/mut/assert-scanner.d.ts +6 -0
- package/dist/src/services/mut/assert-scanner.js +116 -0
- package/dist/src/services/mut/index.d.ts +8 -0
- package/dist/src/services/mut/index.js +7 -0
- package/dist/src/services/mut/mut-runner.d.ts +39 -0
- package/dist/src/services/mut/mut-runner.js +29 -0
- package/dist/src/services/mut/production-stryker.d.ts +7 -0
- package/dist/src/services/mut/production-stryker.js +66 -0
- package/dist/src/services/mut/report-builder.d.ts +11 -0
- package/dist/src/services/mut/report-builder.js +110 -0
- package/dist/src/services/mut/report-loader.d.ts +31 -0
- package/dist/src/services/mut/report-loader.js +78 -0
- package/dist/src/services/mut/thresholds.d.ts +21 -0
- package/dist/src/services/mut/thresholds.js +22 -0
- package/dist/src/services/mut/types.d.ts +336 -0
- package/dist/src/services/mut/types.js +59 -0
- package/dist/src/services/observability/aggregation.d.ts +64 -0
- package/dist/src/services/observability/aggregation.js +217 -0
- package/dist/src/services/observability/jsonl-store.d.ts +59 -0
- package/dist/src/services/observability/jsonl-store.js +120 -0
- package/dist/src/services/observability/observability-service.d.ts +95 -0
- package/dist/src/services/observability/observability-service.js +119 -0
- package/dist/src/services/observability/report-formatter.d.ts +42 -0
- package/dist/src/services/observability/report-formatter.js +156 -0
- package/dist/src/services/openspec/openspec-archive-service.d.ts +12 -0
- package/dist/src/services/openspec/openspec-archive-service.js +28 -0
- package/dist/src/services/openspec/openspec-bridge-service.d.ts +16 -0
- package/dist/src/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/src/services/openspec/openspec-init-service.d.ts +23 -0
- package/dist/src/services/openspec/openspec-init-service.js +122 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/src/services/openspec/openspec-render-service.d.ts +38 -0
- package/dist/src/services/openspec/openspec-render-service.js +130 -0
- package/dist/src/services/openspec/openspec-scan-service.d.ts +6 -0
- package/dist/src/services/openspec/openspec-scan-service.js +123 -0
- package/dist/src/services/openspec/openspec-types.d.ts +39 -0
- package/dist/src/services/openspec/openspec-types.js +1 -0
- package/dist/src/services/openspec/openspec-validate-service.d.ts +27 -0
- package/dist/src/services/openspec/openspec-validate-service.js +77 -0
- package/dist/src/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/src/services/perf/perf-baseline-service.js +214 -0
- package/dist/src/services/prd/handoff-auto-regen.d.ts +22 -0
- package/dist/src/services/prd/handoff-auto-regen.js +73 -0
- package/dist/src/services/prd/handoff-service.d.ts +54 -0
- package/dist/src/services/prd/handoff-service.js +142 -0
- package/dist/src/services/prd/handoff-types.d.ts +64 -0
- package/dist/src/services/prd/handoff-types.js +22 -0
- package/dist/src/services/prd/prd-blocks-checker.d.ts +51 -0
- package/dist/src/services/prd/prd-blocks-checker.js +130 -0
- package/dist/src/services/prd/project-scan-reader.d.ts +24 -0
- package/dist/src/services/prd/project-scan-reader.js +150 -0
- package/dist/src/services/prd/project-scan-sediment.d.ts +97 -0
- package/dist/src/services/prd/project-scan-sediment.js +445 -0
- package/dist/src/services/prd/project-scan-types.d.ts +66 -0
- package/dist/src/services/prd/project-scan-types.js +20 -0
- package/dist/src/services/preferences/preferences-service.d.ts +38 -0
- package/dist/src/services/preferences/preferences-service.js +198 -0
- package/dist/src/services/preferences/preferences-types.d.ts +148 -0
- package/dist/src/services/preferences/preferences-types.js +53 -0
- package/dist/src/services/profiles/profile-service.d.ts +6 -0
- package/dist/src/services/profiles/profile-service.js +19 -0
- package/dist/src/services/progress/progress-service.d.ts +125 -0
- package/dist/src/services/progress/progress-service.js +192 -0
- package/dist/src/services/providers/minimax-provider-service.d.ts +24 -0
- package/dist/src/services/providers/minimax-provider-service.js +143 -0
- package/dist/src/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/src/services/providers/minimax-worker-service.js +83 -0
- package/dist/src/services/proxy/proxy-service.d.ts +7 -0
- package/dist/src/services/proxy/proxy-service.js +31 -0
- package/dist/src/services/qa/browser-event-logger.d.ts +40 -0
- package/dist/src/services/qa/browser-event-logger.js +54 -0
- package/dist/src/services/qa/browser-restart-detector.d.ts +74 -0
- package/dist/src/services/qa/browser-restart-detector.js +138 -0
- package/dist/src/services/qa/browser-reuse-hint.d.ts +18 -0
- package/dist/src/services/qa/browser-reuse-hint.js +18 -0
- package/dist/src/services/qa/browser-wrapper-service.d.ts +37 -0
- package/dist/src/services/qa/browser-wrapper-service.js +88 -0
- package/dist/src/services/qa/qa-business-review-state.d.ts +47 -0
- package/dist/src/services/qa/qa-business-review-state.js +96 -0
- package/dist/src/services/rd/ast-gate.d.ts +19 -0
- package/dist/src/services/rd/ast-gate.js +71 -0
- package/dist/src/services/rd/impl.d.ts +9 -0
- package/dist/src/services/rd/impl.js +57 -0
- package/dist/src/services/rd/rd-service.d.ts +129 -0
- package/dist/src/services/rd/rd-service.js +438 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +122 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.js +148 -0
- package/dist/src/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/src/services/rd/standards-diagnostic.js +166 -0
- package/dist/src/services/rd/strategic-stage.d.ts +4 -0
- package/dist/src/services/rd/strategic-stage.js +15 -0
- package/dist/src/services/rd/strategy.d.ts +13 -0
- package/dist/src/services/rd/strategy.js +60 -0
- package/dist/src/services/rd/tactical-stage.d.ts +33 -0
- package/dist/src/services/rd/tactical-stage.js +62 -0
- package/dist/src/services/rd/types.d.ts +252 -0
- package/dist/src/services/rd/types.js +47 -0
- package/dist/src/services/recommendations/capability-availability.d.ts +5 -0
- package/dist/src/services/recommendations/capability-availability.js +40 -0
- package/dist/src/services/recommendations/capability-map-service.d.ts +7 -0
- package/dist/src/services/recommendations/capability-map-service.js +131 -0
- package/dist/src/services/recommendations/capability-seed-items.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-items.js +140 -0
- package/dist/src/services/recommendations/capability-seed-mappings.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/src/services/recommendations/capability-seed-sources.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-sources.js +35 -0
- package/dist/src/services/recommendations/recommendation-service.d.ts +8 -0
- package/dist/src/services/recommendations/recommendation-service.js +106 -0
- package/dist/src/services/recommendations/recommendation-types.d.ts +129 -0
- package/dist/src/services/recommendations/recommendation-types.js +1 -0
- package/dist/src/services/recommendations/seed-capability-catalog.d.ts +3 -0
- package/dist/src/services/recommendations/seed-capability-catalog.js +3 -0
- package/dist/src/services/refactor/refactor-service.d.ts +9 -0
- package/dist/src/services/refactor/refactor-service.js +36 -0
- package/dist/src/services/release/release-state.d.ts +70 -0
- package/dist/src/services/release/release-state.js +140 -0
- package/dist/src/services/retrospective/retrospective-index.d.ts +37 -0
- package/dist/src/services/retrospective/retrospective-index.js +110 -0
- package/dist/src/services/retrospective/retrospective-search-service.d.ts +55 -0
- package/dist/src/services/retrospective/retrospective-search-service.js +107 -0
- package/dist/src/services/retrospective/retrospective-show.d.ts +40 -0
- package/dist/src/services/retrospective/retrospective-show.js +109 -0
- package/dist/src/services/reviewer/model-family.d.ts +18 -0
- package/dist/src/services/reviewer/model-family.js +70 -0
- package/dist/src/services/reviewer/providers/anthropic.d.ts +2 -0
- package/dist/src/services/reviewer/providers/anthropic.js +61 -0
- package/dist/src/services/reviewer/providers/ollama.d.ts +26 -0
- package/dist/src/services/reviewer/providers/ollama.js +38 -0
- package/dist/src/services/reviewer/providers/openai.d.ts +2 -0
- package/dist/src/services/reviewer/providers/openai.js +63 -0
- package/dist/src/services/reviewer/reviewer-config.d.ts +34 -0
- package/dist/src/services/reviewer/reviewer-config.js +100 -0
- package/dist/src/services/reviewer/reviewer-service.d.ts +56 -0
- package/dist/src/services/reviewer/reviewer-service.js +263 -0
- package/dist/src/services/reviewer/selection-strategies.d.ts +27 -0
- package/dist/src/services/reviewer/selection-strategies.js +53 -0
- package/dist/src/services/role/role-registry.d.ts +38 -0
- package/dist/src/services/role/role-registry.js +83 -0
- package/dist/src/services/sc/index.d.ts +1 -0
- package/dist/src/services/sc/index.js +1 -0
- package/dist/src/services/sc/sc-service.d.ts +131 -0
- package/dist/src/services/sc/sc-service.js +552 -0
- package/dist/src/services/scan/acceptance-coverage-service.d.ts +42 -0
- package/dist/src/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/src/services/scan/api-surface-service.d.ts +69 -0
- package/dist/src/services/scan/api-surface-service.js +239 -0
- package/dist/src/services/scan/archetype-service.d.ts +5 -0
- package/dist/src/services/scan/archetype-service.js +242 -0
- package/dist/src/services/scan/diff-scope-service.d.ts +40 -0
- package/dist/src/services/scan/diff-scope-service.js +198 -0
- package/dist/src/services/scan/existing-system-service.d.ts +7 -0
- package/dist/src/services/scan/existing-system-service.js +300 -0
- package/dist/src/services/scan/file-size-scan.d.ts +23 -0
- package/dist/src/services/scan/file-size-scan.js +68 -0
- package/dist/src/services/scan/karpathy-service.d.ts +60 -0
- package/dist/src/services/scan/karpathy-service.js +228 -0
- package/dist/src/services/scan/libraries-service.d.ts +24 -0
- package/dist/src/services/scan/libraries-service.js +419 -0
- package/dist/src/services/scan/libraries-types.d.ts +59 -0
- package/dist/src/services/scan/libraries-types.js +9 -0
- package/dist/src/services/scan/orphan-service.d.ts +76 -0
- package/dist/src/services/scan/orphan-service.js +538 -0
- package/dist/src/services/scan/scan-types.d.ts +59 -0
- package/dist/src/services/scan/scan-types.js +1 -0
- package/dist/src/services/scan/type-sanity-service.d.ts +23 -0
- package/dist/src/services/scan/type-sanity-service.js +116 -0
- package/dist/src/services/security/safe-settings-path.d.ts +12 -0
- package/dist/src/services/security/safe-settings-path.js +104 -0
- package/dist/src/services/session/binding-status-service.d.ts +56 -0
- package/dist/src/services/session/binding-status-service.js +106 -0
- package/dist/src/services/session/binding-store.d.ts +161 -0
- package/dist/src/services/session/binding-store.js +509 -0
- package/dist/src/services/session/caller-binding-service.d.ts +70 -0
- package/dist/src/services/session/caller-binding-service.js +148 -0
- package/dist/src/services/session/caller-id-types.d.ts +77 -0
- package/dist/src/services/session/caller-id-types.js +46 -0
- package/dist/src/services/session/getSessionDir.d.ts +1 -0
- package/dist/src/services/session/getSessionDir.js +27 -0
- package/dist/src/services/session/index.d.ts +6 -0
- package/dist/src/services/session/index.js +7 -0
- package/dist/src/services/session/platform-fallbacks.d.ts +31 -0
- package/dist/src/services/session/platform-fallbacks.js +35 -0
- package/dist/src/services/session/resolve-caller-id.d.ts +57 -0
- package/dist/src/services/session/resolve-caller-id.js +88 -0
- package/dist/src/services/session/session-binding-bridge.d.ts +76 -0
- package/dist/src/services/session/session-binding-bridge.js +247 -0
- package/dist/src/services/session/session-checkpoint-service.d.ts +57 -0
- package/dist/src/services/session/session-checkpoint-service.js +143 -0
- package/dist/src/services/session/session-manager.d.ts +168 -0
- package/dist/src/services/session/session-manager.js +502 -0
- package/dist/src/services/session/session-resume-service.d.ts +25 -0
- package/dist/src/services/session/session-resume-service.js +101 -0
- package/dist/src/services/signal/cancel-handler.d.ts +14 -0
- package/dist/src/services/signal/cancel-handler.js +76 -0
- package/dist/src/services/skill/resume-detector.d.ts +54 -0
- package/dist/src/services/skill/resume-detector.js +334 -0
- package/dist/src/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/src/services/skill/skill-scheduler.js +53 -0
- package/dist/src/services/skills/hooks-settings-service.d.ts +137 -0
- package/dist/src/services/skills/hooks-settings-service.js +396 -0
- package/dist/src/services/skills/skill-conformance-service.d.ts +40 -0
- package/dist/src/services/skills/skill-conformance-service.js +136 -0
- package/dist/src/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/src/services/skills/skill-presence-service.js +474 -0
- package/dist/src/services/skills/skill-registry.d.ts +17 -0
- package/dist/src/services/skills/skill-registry.js +40 -0
- package/dist/src/services/skills/skill-runbook-service.d.ts +11 -0
- package/dist/src/services/skills/skill-runbook-service.js +128 -0
- package/dist/src/services/skills/skill-statusline-renderer.d.ts +6 -0
- package/dist/src/services/skills/skill-statusline-renderer.js +55 -0
- package/dist/src/services/skills/skill-statusline-service.d.ts +24 -0
- package/dist/src/services/skills/skill-statusline-service.js +110 -0
- package/dist/src/services/skills/statusline-settings-service.d.ts +59 -0
- package/dist/src/services/skills/statusline-settings-service.js +141 -0
- package/dist/src/services/skills/sync-service.d.ts +86 -0
- package/dist/src/services/skills/sync-service.js +271 -0
- package/dist/src/services/slice/calibration-store.d.ts +39 -0
- package/dist/src/services/slice/calibration-store.js +68 -0
- package/dist/src/services/slice/cross-pass-edge-merger.d.ts +53 -0
- package/dist/src/services/slice/cross-pass-edge-merger.js +246 -0
- package/dist/src/services/slice/granularity-decider.d.ts +37 -0
- package/dist/src/services/slice/granularity-decider.js +40 -0
- package/dist/src/services/slice/llm-arbitrator.d.ts +35 -0
- package/dist/src/services/slice/llm-arbitrator.js +63 -0
- package/dist/src/services/slice/multi-pass-orchestrator.d.ts +67 -0
- package/dist/src/services/slice/multi-pass-orchestrator.js +225 -0
- package/dist/src/services/slice/schema-router.d.ts +44 -0
- package/dist/src/services/slice/schema-router.js +61 -0
- package/dist/src/services/slice/slice-archive-service.d.ts +20 -0
- package/dist/src/services/slice/slice-archive-service.js +111 -0
- package/dist/src/services/slice/slice-benchmark-service.d.ts +19 -0
- package/dist/src/services/slice/slice-benchmark-service.js +60 -0
- package/dist/src/services/slice/slice-check-service.d.ts +2 -0
- package/dist/src/services/slice/slice-check-service.js +459 -0
- package/dist/src/services/slice/slice-check-types.d.ts +104 -0
- package/dist/src/services/slice/slice-check-types.js +28 -0
- package/dist/src/services/slice/slice-decompose-runners.d.ts +23 -0
- package/dist/src/services/slice/slice-decompose-runners.js +174 -0
- package/dist/src/services/slice/slice-decompose-service.d.ts +24 -0
- package/dist/src/services/slice/slice-decompose-service.js +532 -0
- package/dist/src/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/src/services/slice/slice-decompose-types.js +30 -0
- package/dist/src/services/slice/slice-integration.d.ts +43 -0
- package/dist/src/services/slice/slice-integration.js +106 -0
- package/dist/src/services/slice/slice-pick-service.d.ts +32 -0
- package/dist/src/services/slice/slice-pick-service.js +75 -0
- package/dist/src/services/slice/slice-review-state.d.ts +70 -0
- package/dist/src/services/slice/slice-review-state.js +109 -0
- package/dist/src/services/slice/slice-topology-types.d.ts +115 -0
- package/dist/src/services/slice/slice-topology-types.js +20 -0
- package/dist/src/services/smoke/smoke-paths-state.d.ts +73 -0
- package/dist/src/services/smoke/smoke-paths-state.js +117 -0
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +98 -0
- package/dist/src/services/solo/auto-compact-orchestrator.js +343 -0
- package/dist/src/services/solo/batch-heartbeat-poller.d.ts +51 -0
- package/dist/src/services/solo/batch-heartbeat-poller.js +88 -0
- package/dist/src/services/solo/dag-orchestrator.d.ts +128 -0
- package/dist/src/services/solo/dag-orchestrator.js +304 -0
- package/dist/src/services/solo/mode-gate.d.ts +163 -0
- package/dist/src/services/solo/mode-gate.js +212 -0
- package/dist/src/services/solo/post-compact-detector.d.ts +61 -0
- package/dist/src/services/solo/post-compact-detector.js +240 -0
- package/dist/src/services/solo/status-line-renderer.d.ts +34 -0
- package/dist/src/services/solo/status-line-renderer.js +55 -0
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +44 -0
- package/dist/src/services/solo/user-touchpoint-classifier.js +145 -0
- package/dist/src/services/sop/gate-enforce-service.d.ts +33 -0
- package/dist/src/services/sop/gate-enforce-service.js +168 -0
- package/dist/src/services/sop/sop-advance-service.d.ts +74 -0
- package/dist/src/services/sop/sop-advance-service.js +115 -0
- package/dist/src/services/sop/sop-check-service.d.ts +45 -0
- package/dist/src/services/sop/sop-check-service.js +181 -0
- package/dist/src/services/sop/sop-paths.d.ts +62 -0
- package/dist/src/services/sop/sop-paths.js +92 -0
- package/dist/src/services/sop/sop-registry-service.d.ts +46 -0
- package/dist/src/services/sop/sop-registry-service.js +89 -0
- package/dist/src/services/sop/sop-service.d.ts +55 -0
- package/dist/src/services/sop/sop-service.js +222 -0
- package/dist/src/services/sop/sop-types.d.ts +95 -0
- package/dist/src/services/sop/sop-types.js +11 -0
- package/dist/src/services/standards/ide-aware-standards-service.d.ts +94 -0
- package/dist/src/services/standards/ide-aware-standards-service.js +89 -0
- package/dist/src/services/standards/migrate-claude-rules-service.d.ts +19 -0
- package/dist/src/services/standards/migrate-claude-rules-service.js +193 -0
- package/dist/src/services/standards/migrate-service.d.ts +63 -0
- package/dist/src/services/standards/migrate-service.js +193 -0
- package/dist/src/services/standards/missing-standards-detector.d.ts +79 -0
- package/dist/src/services/standards/missing-standards-detector.js +132 -0
- package/dist/src/services/standards/project-context.d.ts +24 -0
- package/dist/src/services/standards/project-context.js +314 -0
- package/dist/src/services/standards/project-standards-service.d.ts +114 -0
- package/dist/src/services/standards/project-standards-service.js +574 -0
- package/dist/src/services/tech/tech-service.d.ts +69 -0
- package/dist/src/services/tech/tech-service.js +299 -0
- package/dist/src/services/test-cache/test-cache-service.d.ts +70 -0
- package/dist/src/services/test-cache/test-cache-service.js +175 -0
- package/dist/src/services/understand/understand-scan-service.d.ts +28 -0
- package/dist/src/services/understand/understand-scan-service.js +170 -0
- package/dist/src/services/understand/understand-types.d.ts +50 -0
- package/dist/src/services/understand/understand-types.js +1 -0
- package/dist/src/services/upgrade/1x-detector-service.d.ts +7 -0
- package/dist/src/services/upgrade/1x-detector-service.js +94 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +56 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.js +170 -0
- package/dist/src/services/upgrade/upgrade-service.d.ts +47 -0
- package/dist/src/services/upgrade/upgrade-service.js +381 -0
- package/dist/src/services/verdict/envelopes.d.ts +93 -0
- package/dist/src/services/verdict/envelopes.js +349 -0
- package/dist/src/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/src/services/verdict/verdict-aggregator.js +112 -0
- package/dist/src/services/workflow/artifact-paths.d.ts +59 -0
- package/dist/src/services/workflow/artifact-paths.js +166 -0
- package/dist/src/services/workflow/autonomous-resume-writer.d.ts +16 -0
- package/dist/src/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/src/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/src/services/workflow/plan-reader.d.ts +29 -0
- package/dist/src/services/workflow/plan-reader.js +174 -0
- package/dist/src/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/src/services/workflow/plan-refresher.js +353 -0
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/src/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/src/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/src/services/workflow/workflow-loader.d.ts +63 -0
- package/dist/src/services/workflow/workflow-loader.js +168 -0
- package/dist/src/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/src/services/workflow/workflow-router-service.js +227 -0
- package/dist/src/services/workflow/workflow-skip-service.d.ts +106 -0
- package/dist/src/services/workflow/workflow-skip-service.js +209 -0
- package/dist/src/services/workflow/workflow-spec.d.ts +116 -0
- package/dist/src/services/workflow/workflow-spec.js +431 -0
- package/dist/src/services/workflow/workflow-state-store.d.ts +27 -0
- package/dist/src/services/workflow/workflow-state-store.js +95 -0
- package/dist/src/services/workspace/claude-settings-template.d.ts +96 -0
- package/dist/src/services/workspace/claude-settings-template.js +215 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +44 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.js +195 -0
- package/dist/src/services/workspace/migrate-service.d.ts +2 -0
- package/dist/src/services/workspace/migrate-service.js +613 -0
- package/dist/src/services/workspace/migrate-types.d.ts +127 -0
- package/dist/src/services/workspace/migrate-types.js +21 -0
- package/dist/src/services/workspace/reconcile-service.d.ts +188 -0
- package/dist/src/services/workspace/reconcile-service.js +683 -0
- package/dist/src/services/workspace/reconcile-types.d.ts +130 -0
- package/dist/src/services/workspace/reconcile-types.js +13 -0
- package/dist/src/services/workspace/sid-naming-guard.d.ts +17 -0
- package/dist/src/services/workspace/sid-naming-guard.js +34 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/src/services/workspace/workspace-clean-service.d.ts +28 -0
- package/dist/src/services/workspace/workspace-clean-service.js +46 -0
- package/dist/src/services/workspace/workspace-service.d.ts +177 -0
- package/dist/src/services/workspace/workspace-service.js +432 -0
- package/dist/src/services/workspace/workspace-state-service.d.ts +7 -0
- package/dist/src/services/workspace/workspace-state-service.js +43 -0
- package/dist/src/shared/format-md-compact.d.ts +32 -0
- package/dist/src/shared/format-md-compact.js +297 -0
- package/dist/src/shared/frontmatter.d.ts +6 -0
- package/dist/src/shared/frontmatter.js +165 -0
- package/dist/src/shared/fs-utils.d.ts +4 -0
- package/dist/src/shared/fs-utils.js +16 -0
- package/dist/src/shared/fs.d.ts +4 -0
- package/dist/src/shared/fs.js +26 -0
- package/dist/src/shared/incrementing-number.d.ts +23 -0
- package/dist/src/shared/incrementing-number.js +68 -0
- package/dist/src/shared/json-schema-mini.d.ts +10 -0
- package/dist/src/shared/json-schema-mini.js +113 -0
- package/dist/src/shared/path-safety.d.ts +21 -0
- package/dist/src/shared/path-safety.js +54 -0
- package/dist/src/shared/path-utils.d.ts +13 -0
- package/dist/src/shared/path-utils.js +56 -0
- package/dist/src/shared/paths.d.ts +6 -0
- package/dist/src/shared/paths.js +50 -0
- package/dist/src/shared/planner-response.d.ts +21 -0
- package/dist/src/shared/planner-response.js +26 -0
- package/dist/src/shared/platform.d.ts +6 -0
- package/dist/src/shared/platform.js +11 -0
- package/dist/src/shared/process.d.ts +5 -0
- package/dist/src/shared/process.js +12 -0
- package/dist/src/shared/result.d.ts +22 -0
- package/dist/src/shared/result.js +46 -0
- package/dist/src/shared/stale-policy.d.ts +67 -0
- package/dist/src/shared/stale-policy.js +85 -0
- package/dist/src/shared/version.d.ts +1 -0
- package/dist/src/shared/version.js +1 -0
- package/output-styles/peaks-skill-swarm.md +132 -0
- package/package.json +101 -0
- package/schemas/approval-record.schema.json +14 -0
- package/schemas/artifact-manifest.schema.json +16 -0
- package/schemas/artifact-retention-report.schema.json +38 -0
- package/schemas/artifact-workspace.schema.json +22 -0
- package/schemas/capability-availability.schema.json +36 -0
- package/schemas/capability-item.schema.json +37 -0
- package/schemas/capability-source.schema.json +30 -0
- package/schemas/change-impact.schema.json +15 -0
- package/schemas/context-capsule.schema.json +16 -0
- package/schemas/context.schema.json +360 -0
- package/schemas/decomposition-v1.json +194 -0
- package/schemas/decomposition-v2.json +193 -0
- package/schemas/doctor-report.schema.json +34 -0
- package/schemas/library-breaking-changes.data.json +141 -0
- package/schemas/library-breaking-changes.meta.json +6 -0
- package/schemas/library-breaking-changes.schema.json +50 -0
- package/schemas/mcp-apply-result.schema.json +46 -0
- package/schemas/mcp-install-plan.schema.json +71 -0
- package/schemas/mcp-install-spec.schema.json +29 -0
- package/schemas/mcp-server.schema.json +29 -0
- package/schemas/openspec-change-summary.schema.json +68 -0
- package/schemas/openspec-render-request.schema.json +61 -0
- package/schemas/openspec-validation-result.schema.json +36 -0
- package/schemas/recommendation-plan.schema.json +37 -0
- package/schemas/refactor-slice-spec.schema.json +19 -0
- package/schemas/replay-fixture.schema.json +158 -0
- package/schemas/reviewer-envelope.schema.json +79 -0
- package/schemas/sop-manifest.schema.json +52 -0
- package/scripts/clean-dist.mjs +8 -0
- package/scripts/install-skills.mjs +1202 -0
- package/scripts/sync-version.mjs +12 -0
- package/scripts/watch.mjs +389 -0
- package/skills/peaks-audit/SKILL.md +151 -0
- package/skills/peaks-audit/references/6-dimensions.md +141 -0
- package/skills/peaks-doctor/SKILL.md +59 -0
- package/skills/peaks-doctor/references/doctor-check-catalog.md +31 -0
- package/skills/peaks-doctor/references/from-doctor-flow.md +64 -0
- package/skills/peaks-doctor/test_prompts.json +17 -0
- package/skills/peaks-final-review/SKILL.md +157 -0
- package/skills/peaks-final-review/references/4-dimensions.md +117 -0
- package/skills/peaks-ide/SKILL.md +161 -0
- package/skills/peaks-ide/references/audit-log-helper.md +52 -0
- package/skills/peaks-perf-audit/SKILL.md +166 -0
- package/skills/peaks-perf-audit/references/audit-protocol.md +173 -0
- package/skills/peaks-prd/SKILL.md +319 -0
- package/skills/peaks-prd/references/artifact-contracts.md +7 -0
- package/skills/peaks-prd/references/artifact-per-request.md +78 -0
- package/skills/peaks-prd/references/command-migration.md +3 -0
- package/skills/peaks-prd/references/prd-for-multi-pass.md +49 -0
- package/skills/peaks-prd/references/workflow.md +43 -0
- package/skills/peaks-qa/SKILL.md +240 -0
- package/skills/peaks-qa/references/artifact-contracts.md +7 -0
- package/skills/peaks-qa/references/artifact-per-request.md +25 -0
- package/skills/peaks-qa/references/browser-validation-contracts.md +51 -0
- package/skills/peaks-qa/references/codegraph-regression-focus.md +5 -0
- package/skills/peaks-qa/references/command-migration.md +3 -0
- package/skills/peaks-qa/references/external-capability-guidance.md +9 -0
- package/skills/peaks-qa/references/openspec-validation-gate.md +55 -0
- package/skills/peaks-qa/references/qa-compact-handoff.md +3 -0
- package/skills/peaks-qa/references/qa-context-governance.md +24 -0
- package/skills/peaks-qa/references/qa-fanout-contract.md +158 -0
- package/skills/peaks-qa/references/qa-gstack-integration.md +7 -0
- package/skills/peaks-qa/references/qa-local-artifacts.md +3 -0
- package/skills/peaks-qa/references/qa-matt-pocock-integration.md +9 -0
- package/skills/peaks-qa/references/qa-perf-test-plan.md +67 -0
- package/skills/peaks-qa/references/qa-refactor-role.md +3 -0
- package/skills/peaks-qa/references/qa-runbook.md +72 -0
- package/skills/peaks-qa/references/qa-security-test-plan.md +73 -0
- package/skills/peaks-qa/references/qa-skill-presence.md +22 -0
- package/skills/peaks-qa/references/qa-standards-preflight.md +8 -0
- package/skills/peaks-qa/references/qa-sub-agent-dispatch.md +46 -0
- package/skills/peaks-qa/references/qa-transition-gates.md +86 -0
- package/skills/peaks-qa/references/reading-handoff-frontmatter.md +30 -0
- package/skills/peaks-qa/references/regression-gates.md +24 -0
- package/skills/peaks-qa/references/requirement-boundary-recheck.md +9 -0
- package/skills/peaks-qa/references/test-case-generation.md +27 -0
- package/skills/peaks-qa/references/test-report-output.md +14 -0
- package/skills/peaks-rd/SKILL.md +279 -0
- package/skills/peaks-rd/references/artifact-and-standards-output.md +9 -0
- package/skills/peaks-rd/references/artifact-contracts.md +7 -0
- package/skills/peaks-rd/references/artifact-per-request.md +112 -0
- package/skills/peaks-rd/references/browser-action-wrapper.md +39 -0
- package/skills/peaks-rd/references/browser-self-test-contracts.md +29 -0
- package/skills/peaks-rd/references/code-reviewer-4dim-hint.md +72 -0
- package/skills/peaks-rd/references/codegraph-project-analysis.md +5 -0
- package/skills/peaks-rd/references/command-migration.md +3 -0
- package/skills/peaks-rd/references/compact-handoff.md +3 -0
- package/skills/peaks-rd/references/external-references.md +11 -0
- package/skills/peaks-rd/references/frontend-project-generation.md +11 -0
- package/skills/peaks-rd/references/karpathy-reviewer-prompt.md +2 -0
- package/skills/peaks-rd/references/library-version-awareness.md +30 -0
- package/skills/peaks-rd/references/mandatory-perf-baseline.md +42 -0
- package/skills/peaks-rd/references/matt-pocock-integration.md +11 -0
- package/skills/peaks-rd/references/mock-data-placement.md +40 -0
- package/skills/peaks-rd/references/ocr-integration.md +229 -0
- package/skills/peaks-rd/references/openspec-cli.md +62 -0
- package/skills/peaks-rd/references/parallel-review-fanout.md +90 -0
- package/skills/peaks-rd/references/rd-context-governance.md +36 -0
- package/skills/peaks-rd/references/rd-fanout-contracts.md +216 -0
- package/skills/peaks-rd/references/rd-gstack-integration.md +16 -0
- package/skills/peaks-rd/references/rd-runbook.md +190 -0
- package/skills/peaks-rd/references/rd-standards-preflight.md +8 -0
- package/skills/peaks-rd/references/rd-sub-agent-dispatch.md +111 -0
- package/skills/peaks-rd/references/rd-transition-gates.md +148 -0
- package/skills/peaks-rd/references/reading-v2-slice-results.md +54 -0
- package/skills/peaks-rd/references/refactor-workflow.md +39 -0
- package/skills/peaks-rd/references/skill-presence-and-title.md +22 -0
- package/skills/peaks-rd/references/v2-12-fanout-collapse.md +64 -0
- package/skills/peaks-rd/references/writing-handoff-frontmatter.md +68 -0
- package/skills/peaks-reviewer/SKILL.md +76 -0
- package/skills/peaks-reviewer/references/reviewer-prompt.md +50 -0
- package/skills/peaks-reviewer/references/reviewer-schema.md +49 -0
- package/skills/peaks-sc/SKILL.md +166 -0
- package/skills/peaks-sc/references/artifact-contracts.md +3 -0
- package/skills/peaks-sc/references/artifact-retention.md +14 -0
- package/skills/peaks-sc/references/command-migration.md +3 -0
- package/skills/peaks-sc/references/openspec-commit-boundaries.md +33 -0
- package/skills/peaks-security-audit/SKILL.md +167 -0
- package/skills/peaks-security-audit/references/audit-protocol.md +175 -0
- package/skills/peaks-slice-decompose/SKILL.md +111 -0
- package/skills/peaks-slice-decompose/references/cross-pass-edge-interpretation.md +158 -0
- package/skills/peaks-slice-decompose/references/granularity-decision.md +129 -0
- package/skills/peaks-slice-decompose/references/v2-schema.md +156 -0
- package/skills/peaks-solo/SKILL.md +316 -0
- package/skills/peaks-solo/references/a2a-artifact-mapping.md +115 -0
- package/skills/peaks-solo/references/anchoring-and-session-info.md +34 -0
- package/skills/peaks-solo/references/artifact-contracts.md +65 -0
- package/skills/peaks-solo/references/boundaries.md +21 -0
- package/skills/peaks-solo/references/browser-workflow.md +127 -0
- package/skills/peaks-solo/references/checkpoint-resume.md +70 -0
- package/skills/peaks-solo/references/codegraph-orchestration.md +5 -0
- package/skills/peaks-solo/references/command-migration.md +3 -0
- package/skills/peaks-solo/references/completion-handoff.md +18 -0
- package/skills/peaks-solo/references/context-governance.md +204 -0
- package/skills/peaks-solo/references/cross-date-session-check.md +67 -0
- package/skills/peaks-solo/references/dag-orchestrator.md +56 -0
- package/skills/peaks-solo/references/envelope-contract.md +130 -0
- package/skills/peaks-solo/references/existing-system-extraction.md +78 -0
- package/skills/peaks-solo/references/external-references.md +17 -0
- package/skills/peaks-solo/references/external-skill-invocation.md +72 -0
- package/skills/peaks-solo/references/fanout-mandatory.md +109 -0
- package/skills/peaks-solo/references/fast-mode.md +23 -0
- package/skills/peaks-solo/references/frontend-only-mode.md +87 -0
- package/skills/peaks-solo/references/gstack-integration.md +7 -0
- package/skills/peaks-solo/references/headroom-integration.md +107 -0
- package/skills/peaks-solo/references/local-artifact-workspace.md +79 -0
- package/skills/peaks-solo/references/micro-cycle.md +316 -0
- package/skills/peaks-solo/references/mode-selection-with-stale-presence.md +124 -0
- package/skills/peaks-solo/references/mode-selection.md +21 -0
- package/skills/peaks-solo/references/openspec-workflow.md +81 -0
- package/skills/peaks-solo/references/periodic-checkpoint.md +71 -0
- package/skills/peaks-solo/references/playwright-mcp-multi-terminal.md +114 -0
- package/skills/peaks-solo/references/project-memory-loading.md +17 -0
- package/skills/peaks-solo/references/project-scan-checklist.md +136 -0
- package/skills/peaks-solo/references/quality-gate-cheatsheet.md +13 -0
- package/skills/peaks-solo/references/refactor-mode.md +24 -0
- package/skills/peaks-solo/references/resume-detection.md +63 -0
- package/skills/peaks-solo/references/runbook.md +188 -0
- package/skills/peaks-solo/references/skill-presence-and-title.md +31 -0
- package/skills/peaks-solo/references/standards-preflight.md +23 -0
- package/skills/peaks-solo/references/step-0-55-1x-detection.md +82 -0
- package/skills/peaks-solo/references/sub-agent-dispatch.md +334 -0
- package/skills/peaks-solo/references/swarm-dispatch-contract.md +230 -0
- package/skills/peaks-solo/references/workflow-gates-and-types.md +186 -0
- package/skills/peaks-solo/references/workflow.md +38 -0
- package/skills/peaks-solo-resume/SKILL.md +81 -0
- package/skills/peaks-solo-status/SKILL.md +120 -0
- package/skills/peaks-solo-test/SKILL.md +84 -0
- package/skills/peaks-sop/SKILL.md +209 -0
- package/skills/peaks-sop/references/sop-authoring.md +161 -0
- package/skills/peaks-txt/SKILL.md +303 -0
- package/skills/peaks-txt/references/artifact-contracts.md +7 -0
- package/skills/peaks-txt/references/command-migration.md +3 -0
- package/skills/peaks-txt/references/context-capsule.md +21 -0
- package/skills/peaks-ui/SKILL.md +369 -0
- package/skills/peaks-ui/references/artifact-contracts.md +3 -0
- package/skills/peaks-ui/references/artifact-per-request.md +71 -0
- package/skills/peaks-ui/references/command-migration.md +3 -0
- package/skills/peaks-ui/references/workflow.md +27 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-compact orchestrator (v2.13.0 AC-2 + AC-3 + AC-4).
|
|
3
|
+
*
|
|
4
|
+
* Closes the loop between `peaks context now` (AC-1) and the IDE's
|
|
5
|
+
* native compact capability (AC-3). peaks-cli is project-aware: it
|
|
6
|
+
* knows the current plan, open questions, recent decisions, in-flight
|
|
7
|
+
* batches, todo state, git status, and active skills. That context is
|
|
8
|
+
* strictly more valuable than what `/compact` can synthesize from raw
|
|
9
|
+
* conversation history — so peaks-cli drives the entire compaction:
|
|
10
|
+
*
|
|
11
|
+
* 1. Read current context % (via IDE adapter's `readContextPercent`).
|
|
12
|
+
* 2. If ratio ≥ 0.95 (RED LINE): synchronous gate — peaks-cli
|
|
13
|
+
* refuses sub-agent dispatch and forces IDE compact immediately.
|
|
14
|
+
* The LLM cannot opt out (compact red line — keeps the runner
|
|
15
|
+
* alive).
|
|
16
|
+
* 3. If 0.85 ≤ ratio < 0.95 (pre-compact zone): peaks-cli prepares
|
|
17
|
+
* the convergence toolkit (checkpoint + auto-decisions log +
|
|
18
|
+
* IDE-dispatch handle) and surfaces it to the LLM. The LLM
|
|
19
|
+
* DECIDES when to fire `peaks solo auto-compact --execute`;
|
|
20
|
+
* peaks-cli does NOT auto-fire. The toolkit is ready so the
|
|
21
|
+
* LLM doesn't lose context to a last-second `/compact` panic.
|
|
22
|
+
* 4. If ratio < 0.85: skip — return a one-line info row.
|
|
23
|
+
*
|
|
24
|
+
* Why two tiers (vs. one): the LLM uses the 0.85–0.95 zone for
|
|
25
|
+
* intelligent convergence — wait for in-flight sub-agents, finish
|
|
26
|
+
* the current todo row, persist a checkpoint, then compact. At 0.95
|
|
27
|
+
* the window is gone; peaks-cli takes over synchronously. Net effect:
|
|
28
|
+
* the LLM-runner keeps working with context < 95% without human
|
|
29
|
+
* intervention.
|
|
30
|
+
*/
|
|
31
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
32
|
+
import { dirname, join } from 'node:path';
|
|
33
|
+
import { getSessionIdCanonical } from '../session/session-manager.js';
|
|
34
|
+
import { AUTO_COMPACT_PRE_COMPACT_RATIO, AUTO_COMPACT_RED_LINE_RATIO, AUTO_COMPACT_THRESHOLD_RATIO } from '../context/auto-compact-types.js';
|
|
35
|
+
const PRE_COMPACT_REASON = 'pre-compact-auto';
|
|
36
|
+
/**
|
|
37
|
+
* Map a context ratio to a `CompactTrigger` action. Pure; the side
|
|
38
|
+
* effects (checkpoint + IDE dispatch) live in `runAutoCompact`. Two
|
|
39
|
+
* tiers:
|
|
40
|
+
*
|
|
41
|
+
* - ratio < 0.85 → 'none' or 'soft-warn'
|
|
42
|
+
* - ratio ≥ 0.85 → 'pre-compact' (async-friendly path)
|
|
43
|
+
* - ratio ≥ 0.95 → 'red-line' (synchronous gate)
|
|
44
|
+
*/
|
|
45
|
+
export function evaluateCompactTrigger(ratio) {
|
|
46
|
+
if (ratio < AUTO_COMPACT_PRE_COMPACT_RATIO) {
|
|
47
|
+
return ratio < 0.5
|
|
48
|
+
? { kind: 'none' }
|
|
49
|
+
: {
|
|
50
|
+
kind: 'soft-warn',
|
|
51
|
+
ratio,
|
|
52
|
+
message: `Context at ${(ratio * 100).toFixed(1)}%; below the 85% pre-compact threshold.`
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (ratio >= AUTO_COMPACT_RED_LINE_RATIO) {
|
|
56
|
+
return {
|
|
57
|
+
kind: 'red-line',
|
|
58
|
+
ratio,
|
|
59
|
+
message: `Context at ${(ratio * 100).toFixed(1)}% ≥ 95% red line. Synchronous compact REQUIRED (LLM cannot opt out).`
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// 0.85 ≤ ratio < 0.95: pre-compact zone — toolkit ready, LLM decides.
|
|
63
|
+
return {
|
|
64
|
+
kind: 'pre-compact',
|
|
65
|
+
ratio,
|
|
66
|
+
toolkitReady: true,
|
|
67
|
+
message: `Context at ${(ratio * 100).toFixed(1)}% in pre-compact zone (0.85–0.95). Convergence toolkit is ready; LLM decides when to fire \`peaks solo auto-compact --execute\`.`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Decide whether to run the auto-compact flow. Pure function for the
|
|
72
|
+
* decision; side effects (checkpoint + IDE dispatch) live in
|
|
73
|
+
* `runAutoCompact` below. Zero human / zero LLM intervention:
|
|
74
|
+
*
|
|
75
|
+
* - ratio < 0.85 → skip (LLM keeps working; no action)
|
|
76
|
+
* - 0.85 ≤ ratio < 0.95 → pre-compact; if in-flight batch
|
|
77
|
+
* present, defer (D6.e); else dispatch
|
|
78
|
+
* IDE compact asynchronously.
|
|
79
|
+
* - ratio ≥ 0.95 → red-line; ALWAYS dispatch synchronously
|
|
80
|
+
* regardless of in-flight batch.
|
|
81
|
+
*/
|
|
82
|
+
export function evaluateAutoCompactDecision(input) {
|
|
83
|
+
const trigger = evaluateCompactTrigger(input.ratio);
|
|
84
|
+
if (trigger.kind === 'none' || trigger.kind === 'soft-warn') {
|
|
85
|
+
return { shouldCompact: false, reason: 'below-threshold', trigger };
|
|
86
|
+
}
|
|
87
|
+
if (trigger.kind === 'red-line') {
|
|
88
|
+
// Red line: ignore in-flight batch — synchronous dispatch wins.
|
|
89
|
+
return { shouldCompact: true, reason: 'red-line', trigger };
|
|
90
|
+
}
|
|
91
|
+
// pre-compact zone (0.85 ≤ ratio < 0.95): honor D6.e in-flight deferral.
|
|
92
|
+
if (input.inFlightBatch?.hasInFlightBatch === true) {
|
|
93
|
+
return { shouldCompact: false, reason: 'in-flight-batch', trigger };
|
|
94
|
+
}
|
|
95
|
+
if (input.force) {
|
|
96
|
+
return { shouldCompact: true, reason: 'pre-compact', trigger };
|
|
97
|
+
}
|
|
98
|
+
// Default: peaks-cli drives pre-compact autonomously.
|
|
99
|
+
return { shouldCompact: true, reason: 'pre-compact', trigger };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Build the convergence plan that D7's post-compact-detect will read
|
|
103
|
+
* back. Includes the current plan, open questions, recent decisions,
|
|
104
|
+
* todo state, and recent artifact paths — strictly more than what a
|
|
105
|
+
* raw `/compact` would preserve.
|
|
106
|
+
*/
|
|
107
|
+
export function buildConvergencePlan(input) {
|
|
108
|
+
return {
|
|
109
|
+
schemaVersion: 1,
|
|
110
|
+
sessionId: input.sessionId,
|
|
111
|
+
projectRoot: input.projectRoot,
|
|
112
|
+
createdAt: new Date().toISOString(),
|
|
113
|
+
ratio: input.ratio,
|
|
114
|
+
checkpointPath: input.checkpointPath,
|
|
115
|
+
nextActions: [...input.nextActions],
|
|
116
|
+
resumeHint: input.redLine === true
|
|
117
|
+
? 'RED-LINE compact: post-compact-detect must confirm ratio < 0.85 before resuming work.'
|
|
118
|
+
: 'post-compact-detect shouldAutoResume → resume pre-compact plan from checkpoint'
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Append a one-row convergence decision to the LLM-readable log.
|
|
123
|
+
* The LLM reads this on the post-compact turn to pick up exactly
|
|
124
|
+
* where it left off (vs. blindly trusting the IDE's compressed
|
|
125
|
+
* transcript).
|
|
126
|
+
*/
|
|
127
|
+
function appendAutoDecisionLog(input) {
|
|
128
|
+
const dir = join(input.projectRoot, '.peaks', '_runtime', input.sessionId, 'txt');
|
|
129
|
+
if (!existsSync(dir))
|
|
130
|
+
mkdirSync(dir, { recursive: true });
|
|
131
|
+
const logPath = join(dir, 'auto-decisions.md');
|
|
132
|
+
const row = [
|
|
133
|
+
'',
|
|
134
|
+
`## Auto-compact decision — ${input.plan.createdAt}`,
|
|
135
|
+
`- ratio: ${(input.plan.ratio * 100).toFixed(1)}%`,
|
|
136
|
+
`- checkpoint: ${input.plan.checkpointPath}`,
|
|
137
|
+
`- next-actions: ${input.plan.nextActions.join(' | ')}`,
|
|
138
|
+
`- resume-hint: ${input.plan.resumeHint}`,
|
|
139
|
+
''
|
|
140
|
+
].join('\n');
|
|
141
|
+
if (!existsSync(logPath)) {
|
|
142
|
+
writeFileSync(logPath, `# peaks-solo auto-decisions log\n${row}`, 'utf8');
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const existing = readFileSync(logPath, 'utf8');
|
|
146
|
+
writeFileSync(logPath, `${existing}${row}`, 'utf8');
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Slice 2026-06-28-solo-mode-bypass-fix (defect #4): write the
|
|
150
|
+
* main-session compact intent so the main-session LLM picks it up on
|
|
151
|
+
* its next turn and fires `/compact` in-band. Without this file the
|
|
152
|
+
* orchestrator's "main-session compact" request is invisible to the
|
|
153
|
+
* main Claude Code window (defeats the whole point of auto-compact
|
|
154
|
+
* for the main context).
|
|
155
|
+
*
|
|
156
|
+
* The file is gitignored under `.peaks/_runtime/<sessionId>/txt/` and
|
|
157
|
+
* is one-shot: the LLM should `mv` it to `.consumed` after firing
|
|
158
|
+
* `/compact`. A re-run will overwrite.
|
|
159
|
+
*/
|
|
160
|
+
function writeMainSessionCompactIntent(input) {
|
|
161
|
+
const dir = join(input.projectRoot, '.peaks', '_runtime', input.sessionId, 'txt');
|
|
162
|
+
if (!existsSync(dir))
|
|
163
|
+
mkdirSync(dir, { recursive: true });
|
|
164
|
+
const path = join(dir, 'auto-compact-pending.json');
|
|
165
|
+
const payload = {
|
|
166
|
+
schemaVersion: 1,
|
|
167
|
+
pending: true,
|
|
168
|
+
target: 'main',
|
|
169
|
+
requestedAt: input.now.toISOString(),
|
|
170
|
+
ratio: input.ratio,
|
|
171
|
+
redLine: input.redLine,
|
|
172
|
+
nextAction: 'next LLM turn MUST fire `/compact` then `mv .peaks/_runtime/<sid>/txt/auto-compact-pending.json .peaks/_runtime/<sid>/txt/auto-compact-pending.consumed.json`'
|
|
173
|
+
};
|
|
174
|
+
writeFileSync(path, JSON.stringify(payload, null, 2), 'utf8');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Write a pre-compact checkpoint. The shape mirrors `peaks session
|
|
178
|
+
* checkpoint` so D7's post-compact-detect picks it up unchanged.
|
|
179
|
+
*/
|
|
180
|
+
function writePreCompactCheckpoint(input) {
|
|
181
|
+
const dir = join(input.projectRoot, '.peaks', '_runtime', input.sessionId, 'checkpoints');
|
|
182
|
+
if (!existsSync(dir))
|
|
183
|
+
mkdirSync(dir, { recursive: true });
|
|
184
|
+
const prefix = input.redLine === true ? 'red-line-' : 'pre-compact-';
|
|
185
|
+
const filename = `${prefix}${input.now.toISOString().replace(/[:.]/g, '-')}.json`;
|
|
186
|
+
const path = join(dir, filename);
|
|
187
|
+
const content = {
|
|
188
|
+
schemaVersion: 1,
|
|
189
|
+
reason: input.redLine === true ? 'pre-compact-red-line' : PRE_COMPACT_REASON,
|
|
190
|
+
sessionId: input.sessionId,
|
|
191
|
+
createdAt: input.now.toISOString(),
|
|
192
|
+
// D7 reads `mode`, `currentPlan`, `openQuestions`, `recentDecisions`
|
|
193
|
+
// out of this JSON. We seed empty arrays; the post-compact LLM
|
|
194
|
+
// rehydrates from the auto-decisions log + open question list.
|
|
195
|
+
mode: 'full-auto',
|
|
196
|
+
currentPlan: input.redLine === true
|
|
197
|
+
? 'RED-LINE compact just executed; confirm ratio < 0.85 before resuming work'
|
|
198
|
+
: 'auto-compact in progress; resume from auto-decisions.md',
|
|
199
|
+
openQuestions: [],
|
|
200
|
+
recentDecisions: [],
|
|
201
|
+
recentArtifactPaths: [],
|
|
202
|
+
gitStatus: '',
|
|
203
|
+
skillsActive: ['peaks-solo'],
|
|
204
|
+
todoState: []
|
|
205
|
+
};
|
|
206
|
+
writeFileSync(path, JSON.stringify(content, null, 2), 'utf8');
|
|
207
|
+
return path;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Execute the auto-compact flow.
|
|
211
|
+
*
|
|
212
|
+
* Steps (orchestration):
|
|
213
|
+
* 1. Resolve session id.
|
|
214
|
+
* 2. Read current ratio via AC-1 (`readContextPercent`).
|
|
215
|
+
* 3. Evaluate trigger via `evaluateCompactTrigger`.
|
|
216
|
+
* 4. If trigger.kind === 'none' / 'soft-warn' → return skip.
|
|
217
|
+
* 5. If trigger.kind === 'pre-compact' AND in-flight batch → wait.
|
|
218
|
+
* 6. If trigger.kind === 'pre-compact' → async dispatch (write
|
|
219
|
+
* checkpoint + IDE compact; orchestrator returns immediately).
|
|
220
|
+
* 7. If trigger.kind === 'red-line' → synchronous gate: refuse
|
|
221
|
+
* sub-agent dispatch, dispatch IDE compact, mark `redLineGated`.
|
|
222
|
+
*
|
|
223
|
+
* The caller (CLI or skill body) handles the actual return — D7's
|
|
224
|
+
* post-compact-detect will pick up the checkpoint on the next turn.
|
|
225
|
+
* For red-line, the caller MUST block further tool calls until the
|
|
226
|
+
* post-compact probe confirms ratio < 0.85.
|
|
227
|
+
*/
|
|
228
|
+
export async function runAutoCompact(input) {
|
|
229
|
+
const sessionId = input.sessionId ?? getSessionIdCanonical(input.projectRoot);
|
|
230
|
+
if (sessionId === null) {
|
|
231
|
+
return {
|
|
232
|
+
ok: false,
|
|
233
|
+
code: 'AUTO_COMPACT_NO_SESSION',
|
|
234
|
+
message: 'No active session; cannot run auto-compact. Run `peaks workspace init` first.',
|
|
235
|
+
nextActions: ['Run `peaks workspace init --change-id <id>` to bind a session']
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
// Lazy import to avoid the AC-1 module depending on the orchestrator.
|
|
239
|
+
const { readContextPercent } = await import('../context/auto-compact-reader.js');
|
|
240
|
+
const probe = readContextPercent({
|
|
241
|
+
projectRoot: input.projectRoot,
|
|
242
|
+
sessionId,
|
|
243
|
+
env: input.env
|
|
244
|
+
});
|
|
245
|
+
const decision = evaluateAutoCompactDecision({
|
|
246
|
+
ratio: probe.ratio,
|
|
247
|
+
inFlightBatch: input.inFlightBatch,
|
|
248
|
+
force: input.force,
|
|
249
|
+
bypassRedLine: input.bypassRedLine
|
|
250
|
+
});
|
|
251
|
+
if (!decision.shouldCompact) {
|
|
252
|
+
return {
|
|
253
|
+
ok: true,
|
|
254
|
+
code: decision.reason === 'in-flight-batch' ? 'AUTO_COMPACT_WAIT' : 'AUTO_COMPACT_SKIP',
|
|
255
|
+
message: decision.trigger.kind === 'soft-warn'
|
|
256
|
+
? decision.trigger.message
|
|
257
|
+
: decision.reason === 'in-flight-batch'
|
|
258
|
+
? `In-flight batch detected; deferring pre-compact (ratio=${(probe.ratio * 100).toFixed(1)}%); next probe will re-evaluate.`
|
|
259
|
+
: `Context at ${(probe.ratio * 100).toFixed(1)}%; below ${(AUTO_COMPACT_THRESHOLD_RATIO * 100).toFixed(0)}% threshold.`,
|
|
260
|
+
data: {
|
|
261
|
+
sessionId,
|
|
262
|
+
ratio: probe.ratio,
|
|
263
|
+
source: probe.source,
|
|
264
|
+
decision: decision.reason === 'in-flight-batch' ? 'in-flight-batch' : 'below-threshold'
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
const isRedLine = decision.reason === 'red-line';
|
|
269
|
+
const now = input.now ?? new Date();
|
|
270
|
+
const checkpointPath = writePreCompactCheckpoint({
|
|
271
|
+
projectRoot: input.projectRoot,
|
|
272
|
+
sessionId,
|
|
273
|
+
now,
|
|
274
|
+
redLine: isRedLine
|
|
275
|
+
});
|
|
276
|
+
const nextActions = isRedLine
|
|
277
|
+
? [
|
|
278
|
+
'RED-LINE compact dispatched — further sub-agent dispatch BLOCKED until ratio < 0.85',
|
|
279
|
+
'Post-compact resume picks up the convergence plan from auto-decisions.md',
|
|
280
|
+
'Next `peaks context now` probe will confirm ratio dropped below 0.85'
|
|
281
|
+
]
|
|
282
|
+
: [
|
|
283
|
+
'Pre-compact dispatched — IDE compact in progress (async)',
|
|
284
|
+
'Post-compact resume picks up the convergence plan from auto-decisions.md',
|
|
285
|
+
'Next `peaks context now` probe will confirm ratio dropped below 0.85'
|
|
286
|
+
];
|
|
287
|
+
const plan = buildConvergencePlan({
|
|
288
|
+
sessionId,
|
|
289
|
+
projectRoot: input.projectRoot,
|
|
290
|
+
ratio: probe.ratio,
|
|
291
|
+
checkpointPath,
|
|
292
|
+
nextActions,
|
|
293
|
+
redLine: isRedLine
|
|
294
|
+
});
|
|
295
|
+
appendAutoDecisionLog({ projectRoot: input.projectRoot, sessionId, plan });
|
|
296
|
+
// Lazy import to keep AC-3 (IDE dispatch) pluggable; tests mock this module.
|
|
297
|
+
const { dispatchIdeCompact } = await import('../context/auto-compact-dispatcher.js');
|
|
298
|
+
const target = input.target ?? 'main';
|
|
299
|
+
// Slice 2026-06-28: when targeting the main session, write an
|
|
300
|
+
// intent record so the next main-session LLM turn fires `/compact`
|
|
301
|
+
// in-band. Without this record the LLM has no signal that the
|
|
302
|
+
// orchestrator asked for compact; the dispatcher alone would have
|
|
303
|
+
// been a no-op against the main Claude Code window.
|
|
304
|
+
if (target === 'main') {
|
|
305
|
+
writeMainSessionCompactIntent({
|
|
306
|
+
projectRoot: input.projectRoot,
|
|
307
|
+
sessionId,
|
|
308
|
+
ratio: probe.ratio,
|
|
309
|
+
redLine: isRedLine,
|
|
310
|
+
now
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
const dispatch = await dispatchIdeCompact({
|
|
314
|
+
projectRoot: input.projectRoot,
|
|
315
|
+
sessionId,
|
|
316
|
+
env: input.env,
|
|
317
|
+
target
|
|
318
|
+
});
|
|
319
|
+
return {
|
|
320
|
+
ok: dispatch.ok,
|
|
321
|
+
code: dispatch.ok
|
|
322
|
+
? (isRedLine ? 'AUTO_COMPACT_RED_LINE' : 'AUTO_COMPACT_DISPATCHED')
|
|
323
|
+
: 'AUTO_COMPACT_DISPATCH_FAILED',
|
|
324
|
+
message: dispatch.ok
|
|
325
|
+
? isRedLine
|
|
326
|
+
? `RED-LINE compact dispatched (${dispatch.ide} / ${dispatch.pathway} / target=${target}); checkpoint at ${checkpointPath}. Further sub-agent dispatch is BLOCKED until ratio < 0.85.`
|
|
327
|
+
: `Auto-compact dispatched (${dispatch.ide} / ${dispatch.pathway} / target=${target}); checkpoint at ${checkpointPath}.`
|
|
328
|
+
: `Auto-compact checkpoint written but IDE dispatch failed: ${dispatch.message}`,
|
|
329
|
+
data: {
|
|
330
|
+
sessionId,
|
|
331
|
+
ratio: probe.ratio,
|
|
332
|
+
source: probe.source,
|
|
333
|
+
checkpointPath,
|
|
334
|
+
convergencePlan: plan,
|
|
335
|
+
dispatch,
|
|
336
|
+
target,
|
|
337
|
+
redLineGated: isRedLine
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
// Keep dirname import live for symmetry with sibling services that
|
|
342
|
+
// use it for path joins; tree-shaking removes it in builds.
|
|
343
|
+
void dirname;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { summarize, type SubAgentLiveView } from './status-line-renderer.js';
|
|
2
|
+
export declare const DEFAULT_POLL_INTERVAL_MS = 10000;
|
|
3
|
+
export declare const DEFAULT_STALE_THRESHOLD_MS: number;
|
|
4
|
+
export type PollRecord = {
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly role: string;
|
|
7
|
+
};
|
|
8
|
+
export type PollerStatusEvent = {
|
|
9
|
+
readonly kind: 'status';
|
|
10
|
+
readonly line: string;
|
|
11
|
+
readonly summary: ReturnType<typeof summarize>;
|
|
12
|
+
readonly views: readonly SubAgentLiveView[];
|
|
13
|
+
};
|
|
14
|
+
export type PollerStaleEvent = {
|
|
15
|
+
readonly kind: 'stale';
|
|
16
|
+
readonly path: string;
|
|
17
|
+
readonly role: string;
|
|
18
|
+
readonly lastBeatAgoSec: number;
|
|
19
|
+
readonly thresholdSec: number;
|
|
20
|
+
};
|
|
21
|
+
export type PollerDoneEvent = {
|
|
22
|
+
readonly kind: 'done';
|
|
23
|
+
readonly summary: ReturnType<typeof summarize>;
|
|
24
|
+
};
|
|
25
|
+
export type PollerEvent = PollerStatusEvent | PollerStaleEvent | PollerDoneEvent;
|
|
26
|
+
export type PollerHandlers = {
|
|
27
|
+
onStatus?: (event: PollerStatusEvent) => void;
|
|
28
|
+
onStale?: (event: PollerStaleEvent) => void;
|
|
29
|
+
onDone?: (event: PollerDoneEvent) => void;
|
|
30
|
+
onError?: (error: unknown) => void;
|
|
31
|
+
};
|
|
32
|
+
export type PollerOptions = {
|
|
33
|
+
prefix: string;
|
|
34
|
+
intervalMs?: number;
|
|
35
|
+
staleThresholdMs?: number;
|
|
36
|
+
now?: () => Date;
|
|
37
|
+
};
|
|
38
|
+
export declare class BatchHeartbeatPoller {
|
|
39
|
+
private readonly records;
|
|
40
|
+
private readonly handlers;
|
|
41
|
+
private readonly options;
|
|
42
|
+
private timer;
|
|
43
|
+
private prevStale;
|
|
44
|
+
private prevSummaryDone;
|
|
45
|
+
private running;
|
|
46
|
+
constructor(records: readonly PollRecord[], handlers: PollerHandlers, options: PollerOptions);
|
|
47
|
+
start(): void;
|
|
48
|
+
stop(): void;
|
|
49
|
+
/** Force a tick (testing seam + low-level access for explicit invocation). */
|
|
50
|
+
tick(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { readRecords } from '../dispatch/dispatch-record-writer.js';
|
|
2
|
+
import { renderStatusLine, summarize, viewSubAgent } from './status-line-renderer.js';
|
|
3
|
+
export const DEFAULT_POLL_INTERVAL_MS = 10_000;
|
|
4
|
+
export const DEFAULT_STALE_THRESHOLD_MS = 5 * 60 * 1000;
|
|
5
|
+
const TERMINAL_STATUSES = ['done', 'failed'];
|
|
6
|
+
const TERMINAL_RECORD_STATUSES = [
|
|
7
|
+
'done',
|
|
8
|
+
'failed',
|
|
9
|
+
'cancelled',
|
|
10
|
+
'no-execution'
|
|
11
|
+
];
|
|
12
|
+
export class BatchHeartbeatPoller {
|
|
13
|
+
records;
|
|
14
|
+
handlers;
|
|
15
|
+
options;
|
|
16
|
+
timer = null;
|
|
17
|
+
prevStale = new Set();
|
|
18
|
+
prevSummaryDone = 0;
|
|
19
|
+
running = false;
|
|
20
|
+
constructor(records, handlers, options) {
|
|
21
|
+
this.records = records;
|
|
22
|
+
this.handlers = handlers;
|
|
23
|
+
this.options = options;
|
|
24
|
+
}
|
|
25
|
+
start() {
|
|
26
|
+
if (this.running)
|
|
27
|
+
return;
|
|
28
|
+
this.running = true;
|
|
29
|
+
this.tick();
|
|
30
|
+
const interval = this.options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
31
|
+
this.timer = setInterval(() => this.tick(), interval);
|
|
32
|
+
// Don't keep the process alive just for the poller.
|
|
33
|
+
this.timer.unref?.();
|
|
34
|
+
}
|
|
35
|
+
stop() {
|
|
36
|
+
this.running = false;
|
|
37
|
+
if (this.timer) {
|
|
38
|
+
clearInterval(this.timer);
|
|
39
|
+
this.timer = null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** Force a tick (testing seam + low-level access for explicit invocation). */
|
|
43
|
+
tick() {
|
|
44
|
+
let recs;
|
|
45
|
+
try {
|
|
46
|
+
recs = readRecords(this.records.map((r) => r.path));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
this.handlers.onError?.(error);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const now = this.options.now ?? (() => new Date());
|
|
53
|
+
const summary = summarize(recs);
|
|
54
|
+
const views = recs.map((r) => viewSubAgent(r, now));
|
|
55
|
+
const line = renderStatusLine(this.options.prefix, recs, now);
|
|
56
|
+
this.handlers.onStatus?.({ kind: 'status', line, summary, views });
|
|
57
|
+
const staleThresholdSec = Math.floor((this.options.staleThresholdMs ?? DEFAULT_STALE_THRESHOLD_MS) / 1000);
|
|
58
|
+
for (const rec of recs) {
|
|
59
|
+
const v = viewSubAgent(rec, now);
|
|
60
|
+
if (v.isStale) {
|
|
61
|
+
const key = `${rec.role}::${rec.requestId}`;
|
|
62
|
+
if (!this.prevStale.has(key)) {
|
|
63
|
+
this.prevStale.add(key);
|
|
64
|
+
this.handlers.onStale?.({
|
|
65
|
+
kind: 'stale',
|
|
66
|
+
path: this.records.find((p) => p.role === rec.role)?.path ?? '',
|
|
67
|
+
role: rec.role,
|
|
68
|
+
lastBeatAgoSec: v.lastBeatAgoSec ?? -1,
|
|
69
|
+
thresholdSec: staleThresholdSec
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (summary.total > 0 && summary.done === summary.total && this.prevSummaryDone !== summary.done) {
|
|
75
|
+
this.prevSummaryDone = summary.done;
|
|
76
|
+
this.handlers.onDone?.({ kind: 'done', summary });
|
|
77
|
+
this.stop();
|
|
78
|
+
}
|
|
79
|
+
else if (recs.length > 0 &&
|
|
80
|
+
recs.every((r) => TERMINAL_RECORD_STATUSES.includes(r.status) || TERMINAL_STATUSES.includes(r.status))) {
|
|
81
|
+
this.handlers.onDone?.({ kind: 'done', summary });
|
|
82
|
+
this.stop();
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.prevSummaryDone = summary.done;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAG orchestrator — 2.7.0 slice-dag-dispatcher MVP (slice 1.2.a).
|
|
3
|
+
*
|
|
4
|
+
* The pure planner. Given a `SliceDag`, the orchestrator decides which
|
|
5
|
+
* slices to dispatch next (in topological order), drives the join barrier,
|
|
6
|
+
* and rolls back on any leaf failure.
|
|
7
|
+
*
|
|
8
|
+
* Design:
|
|
9
|
+
* - **Pure dispatcher contract**: the orchestrator never calls an LLM
|
|
10
|
+
* directly; it returns `DispatchSpec[]` per topological level and lets
|
|
11
|
+
* the caller (the CLI / peaks-solo LLM) execute the per-IDE tool calls.
|
|
12
|
+
* This keeps the orchestrator testable end-to-end with mock sub-agents.
|
|
13
|
+
* - **Join barrier**: between levels, the orchestrator awaits the
|
|
14
|
+
* results of all dispatched leaves and refuses to advance if any
|
|
15
|
+
* leaf failed.
|
|
16
|
+
* - **Failure rollback**: a leaf failure cancels all other in-flight
|
|
17
|
+
* slices in the same level. The orchestrator surfaces a `DagRollback`
|
|
18
|
+
* event so the caller can re-plan.
|
|
19
|
+
* - **Contract broadcast**: when a slice finishes successfully, the
|
|
20
|
+
* orchestrator writes its public contract to disk via `writeContract`,
|
|
21
|
+
* and the next dispatch's prompt is built with `formatContractInjection`.
|
|
22
|
+
*
|
|
23
|
+
* Why this lives in `services/solo/`:
|
|
24
|
+
* `peaks-solo` is the natural caller. The CLI surface (`peaks sub-agent
|
|
25
|
+
* dispatch --from-dag`) consumes the planner's output but the planner
|
|
26
|
+
* itself is a library.
|
|
27
|
+
*/
|
|
28
|
+
import { type SliceDag } from '../dispatch/slice-dag.js';
|
|
29
|
+
import { type SliceContract } from '../dispatch/contract-store.js';
|
|
30
|
+
export interface DispatchSpec {
|
|
31
|
+
readonly sliceId: string;
|
|
32
|
+
readonly role: string;
|
|
33
|
+
readonly label: string | null;
|
|
34
|
+
readonly prompt: string;
|
|
35
|
+
/** Optional contract block to splice into the prompt. */
|
|
36
|
+
readonly contractBlock: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RunDagOptions {
|
|
39
|
+
readonly projectRoot: string;
|
|
40
|
+
readonly sessionId: string;
|
|
41
|
+
/**
|
|
42
|
+
* Reserved for slice 1.3 — when the per-IDE `awaitBatch` join barrier
|
|
43
|
+
* moves into the orchestrator, this will cap how long `runDag` waits
|
|
44
|
+
* for a single leaf before issuing `cancel`. Unused in 1.2 MVP
|
|
45
|
+
* (per-IDE await is delegated to the LLM-side runner); declared here
|
|
46
|
+
* so the public surface stays stable across the 1.2 → 1.3 transition.
|
|
47
|
+
*/
|
|
48
|
+
readonly timeoutMs?: number;
|
|
49
|
+
/** Test seam: replace the runner (default: a no-op that returns `done`). */
|
|
50
|
+
readonly runSlice?: (spec: DispatchSpec) => Promise<SliceOutcome>;
|
|
51
|
+
/** Test seam: replace the contract writer (default: `writeContract`). */
|
|
52
|
+
readonly writeContractFn?: (sliceId: string, publicSurface: PublicSurface) => SliceContract;
|
|
53
|
+
/**
|
|
54
|
+
* Pre-existing contracts from upstream slices (e.g. already completed in
|
|
55
|
+
* a prior `peaks sub-agent dispatch --from-dag` invocation). The
|
|
56
|
+
* orchestrator splices these into downstream dispatch prompts via
|
|
57
|
+
* `formatContractInjection(ancestors)` — matching AC-4.c: "B / C / D
|
|
58
|
+
* dispatch prompt 自动注入 A 契约".
|
|
59
|
+
*/
|
|
60
|
+
readonly existingContracts?: readonly SliceContract[];
|
|
61
|
+
}
|
|
62
|
+
export type SliceOutcome = {
|
|
63
|
+
readonly status: 'done';
|
|
64
|
+
readonly publicSurface: PublicSurface;
|
|
65
|
+
} | {
|
|
66
|
+
readonly status: 'failed';
|
|
67
|
+
readonly reason: string;
|
|
68
|
+
} | {
|
|
69
|
+
readonly status: 'cancelled';
|
|
70
|
+
};
|
|
71
|
+
export interface PublicSurface {
|
|
72
|
+
readonly exports: readonly string[];
|
|
73
|
+
readonly types: readonly string[];
|
|
74
|
+
readonly publicSignatures: readonly string[];
|
|
75
|
+
readonly broadcastTo?: readonly string[];
|
|
76
|
+
}
|
|
77
|
+
export interface DagRunResult {
|
|
78
|
+
readonly dagHash: string;
|
|
79
|
+
readonly completed: readonly string[];
|
|
80
|
+
readonly failed: readonly {
|
|
81
|
+
sliceId: string;
|
|
82
|
+
reason: string;
|
|
83
|
+
}[];
|
|
84
|
+
readonly cancelled: readonly string[];
|
|
85
|
+
readonly contracts: readonly SliceContract[];
|
|
86
|
+
}
|
|
87
|
+
/** Thrown when the DAG has no feasible plan (validation error). */
|
|
88
|
+
export declare class DagPlanError extends Error {
|
|
89
|
+
readonly code: "DAG_PLAN_ERROR";
|
|
90
|
+
constructor(message: string);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build a single dispatch spec for `sliceId` given the current contract set.
|
|
94
|
+
*
|
|
95
|
+
* When `node.prompt` is set on the DAG node, that wins verbatim (the
|
|
96
|
+
* caller controls per-slice prompt content). Otherwise we fall back to
|
|
97
|
+
* `defaultPrompt`, then to a structured MVP prompt covering: the slice's
|
|
98
|
+
* role + id + label, the injected ancestor-contract block (if any), the
|
|
99
|
+
* MVP scope statement, and the explicit handoff protocol the LLM-side
|
|
100
|
+
* runner must follow (write contract, then re-invoke for the next
|
|
101
|
+
* topological level).
|
|
102
|
+
*/
|
|
103
|
+
export declare function buildDispatchSpec(dag: SliceDag, sliceId: string, contracts: readonly SliceContract[], defaultPrompt?: string): DispatchSpec;
|
|
104
|
+
/**
|
|
105
|
+
* Run a slice DAG end-to-end. Returns a summary; throws `DagPlanError`
|
|
106
|
+
* on validation failure; any leaf failure causes an in-flight cancel
|
|
107
|
+
* signal but the function still resolves with the partial result so the
|
|
108
|
+
* caller can re-plan.
|
|
109
|
+
*/
|
|
110
|
+
export declare function runDag(dag: SliceDag, opts: RunDagOptions): Promise<DagRunResult>;
|
|
111
|
+
/**
|
|
112
|
+
* v2.15.0 follow-up — G12: layered DAG runner (foundation-first,
|
|
113
|
+
* business-parallel, upstreamSync-priority). Behavior:
|
|
114
|
+
*
|
|
115
|
+
* 1. Foundation slices run first (topological order).
|
|
116
|
+
* 2. As foundation slices complete, business slices that depend ONLY
|
|
117
|
+
* on the completed foundation subset can start — they do NOT wait
|
|
118
|
+
* for ALL foundation slices to complete. This is the layered-
|
|
119
|
+
* parallelism speedup (saves 2-3 days on a 1-week+ requirement).
|
|
120
|
+
* 3. upstreamSync slices take priority within their topological
|
|
121
|
+
* level (handled by `topologicalLevels` priority sort).
|
|
122
|
+
* 4. Cancel-on-fail semantics are preserved: any leaf failure
|
|
123
|
+
* cancels in-flight siblings and breaks the loop.
|
|
124
|
+
*
|
|
125
|
+
* Pure planner; same I/O contract as `runDag`. The caller (CLI /
|
|
126
|
+
* peaks-solo LLM) executes the per-IDE tool calls.
|
|
127
|
+
*/
|
|
128
|
+
export declare function runLayeredDag(dag: SliceDag, opts: RunDagOptions): Promise<DagRunResult>;
|