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,304 @@
|
|
|
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 { hashDag, InvalidSliceDagError, topologicalLevels, validateDag } from '../dispatch/slice-dag.js';
|
|
29
|
+
import { formatContractInjection, writeContract } from '../dispatch/contract-store.js';
|
|
30
|
+
import { formatTestToolDetection } from '../dispatch/test-tool-detection.js';
|
|
31
|
+
/** Thrown when the DAG has no feasible plan (validation error). */
|
|
32
|
+
export class DagPlanError extends Error {
|
|
33
|
+
code = 'DAG_PLAN_ERROR';
|
|
34
|
+
constructor(message) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.name = 'DagPlanError';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Default runner for tests / mocks. Returns `done` with an empty surface. */
|
|
40
|
+
const defaultRunner = async (_spec) => ({
|
|
41
|
+
status: 'done',
|
|
42
|
+
publicSurface: { exports: [], types: [], publicSignatures: [] }
|
|
43
|
+
});
|
|
44
|
+
const defaultWriter = (projectRoot, sessionId) => (sliceId, publicSurface) => {
|
|
45
|
+
const r = writeContract(projectRoot, sessionId, {
|
|
46
|
+
sliceId,
|
|
47
|
+
sessionId,
|
|
48
|
+
exports: publicSurface.exports,
|
|
49
|
+
types: publicSurface.types,
|
|
50
|
+
publicSignatures: publicSurface.publicSignatures,
|
|
51
|
+
...(publicSurface.broadcastTo !== undefined ? { broadcastTo: publicSurface.broadcastTo } : {})
|
|
52
|
+
});
|
|
53
|
+
return r.contract;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Build a single dispatch spec for `sliceId` given the current contract set.
|
|
57
|
+
*
|
|
58
|
+
* When `node.prompt` is set on the DAG node, that wins verbatim (the
|
|
59
|
+
* caller controls per-slice prompt content). Otherwise we fall back to
|
|
60
|
+
* `defaultPrompt`, then to a structured MVP prompt covering: the slice's
|
|
61
|
+
* role + id + label, the injected ancestor-contract block (if any), the
|
|
62
|
+
* MVP scope statement, and the explicit handoff protocol the LLM-side
|
|
63
|
+
* runner must follow (write contract, then re-invoke for the next
|
|
64
|
+
* topological level).
|
|
65
|
+
*/
|
|
66
|
+
export function buildDispatchSpec(dag, sliceId, contracts, defaultPrompt) {
|
|
67
|
+
const node = dag.nodes.find((n) => n.id === sliceId);
|
|
68
|
+
if (!node) {
|
|
69
|
+
throw new DagPlanError(`unknown slice id: ${sliceId}`);
|
|
70
|
+
}
|
|
71
|
+
const ancestors = contracts.filter((c) => c.broadcastTo?.includes(sliceId) ?? false);
|
|
72
|
+
const contractBlock = formatContractInjection(ancestors);
|
|
73
|
+
if (node.prompt !== undefined) {
|
|
74
|
+
return {
|
|
75
|
+
sliceId,
|
|
76
|
+
role: node.role,
|
|
77
|
+
label: node.label ?? null,
|
|
78
|
+
prompt: `${formatTestToolDetection()}\n\n${node.prompt}`,
|
|
79
|
+
contractBlock
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (defaultPrompt !== undefined) {
|
|
83
|
+
return {
|
|
84
|
+
sliceId,
|
|
85
|
+
role: node.role,
|
|
86
|
+
label: node.label ?? null,
|
|
87
|
+
prompt: defaultPrompt,
|
|
88
|
+
contractBlock
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// MVP (1.2) structured fallback prompt. Slice 1.4 will land per-domain
|
|
92
|
+
// prompt templates (one per role), but for the MVP dogfood we ship a
|
|
93
|
+
// single structured prompt that:
|
|
94
|
+
// 1. names the slice id + role + label (so the LLM knows what to do)
|
|
95
|
+
// 2. states the MVP scope explicitly (avoid confusion with full prod)
|
|
96
|
+
// 3. includes the ancestor contract injection (so downstream slices
|
|
97
|
+
// see their inputs)
|
|
98
|
+
// 4. states the handoff protocol (write contract, re-invoke for next level)
|
|
99
|
+
const labelFragment = node.label ? ` — ${node.label}` : '';
|
|
100
|
+
const ancestorFragment = contractBlock
|
|
101
|
+
? `\n\n${contractBlock}`
|
|
102
|
+
: '';
|
|
103
|
+
const prompt = [
|
|
104
|
+
formatTestToolDetection(),
|
|
105
|
+
'',
|
|
106
|
+
`[slice-dag-dispatcher MVP 1.2] execute slice "${sliceId}" (role=${node.role})${labelFragment}.`,
|
|
107
|
+
'',
|
|
108
|
+
'Scope: this is the 2.7.0 MVP dogfood of peaks-cli DAG-aware dispatch. You are one leaf in a multi-slice plan; the orchestrator has already validated the DAG, built a topological order, and injected your upstream contracts above.',
|
|
109
|
+
'',
|
|
110
|
+
'Handoff protocol (REQUIRED — orchestrator depends on this):',
|
|
111
|
+
' 1. Execute the slice to completion.',
|
|
112
|
+
` 2. Write your public contract via \`peaks contract write --project <root> --session-id <sid> --slice-id ${sliceId} --exports <...> --types <...> --signatures <...>\`. The orchestrator will pick it up on the next dispatch run.`,
|
|
113
|
+
' 3. Do NOT re-invoke `peaks sub-agent dispatch --from-dag` yourself — the parent orchestrator (peaks-solo) drives level advancement.',
|
|
114
|
+
'',
|
|
115
|
+
`After your contract is on disk, the orchestrator will auto-advance to the next topological level (if any) by re-invoking \`peaks sub-agent dispatch --from-dag\` with the same batch-id. Your slice will appear in its ancestors via \`formatContractInjection\`.${ancestorFragment}`
|
|
116
|
+
].join('\n');
|
|
117
|
+
return {
|
|
118
|
+
sliceId,
|
|
119
|
+
role: node.role,
|
|
120
|
+
label: node.label ?? null,
|
|
121
|
+
prompt,
|
|
122
|
+
contractBlock
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Run a slice DAG end-to-end. Returns a summary; throws `DagPlanError`
|
|
127
|
+
* on validation failure; any leaf failure causes an in-flight cancel
|
|
128
|
+
* signal but the function still resolves with the partial result so the
|
|
129
|
+
* caller can re-plan.
|
|
130
|
+
*/
|
|
131
|
+
export async function runDag(dag, opts) {
|
|
132
|
+
try {
|
|
133
|
+
validateDag(dag);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
if (err instanceof InvalidSliceDagError) {
|
|
137
|
+
throw new DagPlanError(err.message);
|
|
138
|
+
}
|
|
139
|
+
throw err;
|
|
140
|
+
}
|
|
141
|
+
const levels = topologicalLevels(dag);
|
|
142
|
+
const dagHash = hashDag(dag);
|
|
143
|
+
const runner = opts.runSlice ?? defaultRunner;
|
|
144
|
+
const writer = opts.writeContractFn ?? defaultWriter(opts.projectRoot, opts.sessionId);
|
|
145
|
+
const completed = new Set();
|
|
146
|
+
const contracts = [...(opts.existingContracts ?? [])];
|
|
147
|
+
const failed = [];
|
|
148
|
+
const cancelled = [];
|
|
149
|
+
const inflight = new Set();
|
|
150
|
+
for (const level of levels) {
|
|
151
|
+
const ready = level.filter((id) => !completed.has(id) && !failed.some((f) => f.sliceId === id));
|
|
152
|
+
if (ready.length === 0)
|
|
153
|
+
continue;
|
|
154
|
+
for (const id of ready)
|
|
155
|
+
inflight.add(id);
|
|
156
|
+
const settled = await Promise.all(ready.map(async (sliceId) => {
|
|
157
|
+
const spec = buildDispatchSpec(dag, sliceId, contracts);
|
|
158
|
+
try {
|
|
159
|
+
const outcome = await runner(spec);
|
|
160
|
+
return { sliceId, outcome };
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
return {
|
|
164
|
+
sliceId,
|
|
165
|
+
outcome: { status: 'failed', reason: err.message }
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}));
|
|
169
|
+
let levelHasFailure = false;
|
|
170
|
+
for (const { sliceId, outcome } of settled) {
|
|
171
|
+
inflight.delete(sliceId);
|
|
172
|
+
if (outcome.status === 'done') {
|
|
173
|
+
completed.add(sliceId);
|
|
174
|
+
const contract = writer(sliceId, outcome.publicSurface);
|
|
175
|
+
contracts.push(contract);
|
|
176
|
+
}
|
|
177
|
+
else if (outcome.status === 'failed') {
|
|
178
|
+
failed.push({ sliceId, reason: outcome.reason });
|
|
179
|
+
levelHasFailure = true;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
cancelled.push(sliceId);
|
|
183
|
+
levelHasFailure = true;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (levelHasFailure) {
|
|
187
|
+
for (const id of inflight) {
|
|
188
|
+
cancelled.push(id);
|
|
189
|
+
inflight.delete(id);
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
dagHash,
|
|
196
|
+
completed: Array.from(completed).sort(),
|
|
197
|
+
failed,
|
|
198
|
+
cancelled: cancelled.sort(),
|
|
199
|
+
contracts
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* v2.15.0 follow-up — G12: layered DAG runner (foundation-first,
|
|
204
|
+
* business-parallel, upstreamSync-priority). Behavior:
|
|
205
|
+
*
|
|
206
|
+
* 1. Foundation slices run first (topological order).
|
|
207
|
+
* 2. As foundation slices complete, business slices that depend ONLY
|
|
208
|
+
* on the completed foundation subset can start — they do NOT wait
|
|
209
|
+
* for ALL foundation slices to complete. This is the layered-
|
|
210
|
+
* parallelism speedup (saves 2-3 days on a 1-week+ requirement).
|
|
211
|
+
* 3. upstreamSync slices take priority within their topological
|
|
212
|
+
* level (handled by `topologicalLevels` priority sort).
|
|
213
|
+
* 4. Cancel-on-fail semantics are preserved: any leaf failure
|
|
214
|
+
* cancels in-flight siblings and breaks the loop.
|
|
215
|
+
*
|
|
216
|
+
* Pure planner; same I/O contract as `runDag`. The caller (CLI /
|
|
217
|
+
* peaks-solo LLM) executes the per-IDE tool calls.
|
|
218
|
+
*/
|
|
219
|
+
export async function runLayeredDag(dag, opts) {
|
|
220
|
+
try {
|
|
221
|
+
validateDag(dag);
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
if (err instanceof InvalidSliceDagError) {
|
|
225
|
+
throw new DagPlanError(err.message);
|
|
226
|
+
}
|
|
227
|
+
throw err;
|
|
228
|
+
}
|
|
229
|
+
const levels = topologicalLevels(dag);
|
|
230
|
+
const dagHash = hashDag(dag);
|
|
231
|
+
const runner = opts.runSlice ?? defaultRunner;
|
|
232
|
+
const writer = opts.writeContractFn ?? defaultWriter(opts.projectRoot, opts.sessionId);
|
|
233
|
+
const completed = new Set();
|
|
234
|
+
const contracts = [...(opts.existingContracts ?? [])];
|
|
235
|
+
const failed = [];
|
|
236
|
+
const cancelled = [];
|
|
237
|
+
const inflight = new Set();
|
|
238
|
+
for (const level of levels) {
|
|
239
|
+
// G12 layered parallelism: a business slice only blocks until its
|
|
240
|
+
// OWN `dependsOn` subset is complete, not all foundation slices.
|
|
241
|
+
const ready = level.filter((id) => {
|
|
242
|
+
if (completed.has(id))
|
|
243
|
+
return false;
|
|
244
|
+
if (failed.some((f) => f.sliceId === id))
|
|
245
|
+
return false;
|
|
246
|
+
// Check if all ancestors of this slice are in `completed` OR
|
|
247
|
+
// (already in `failed` — then it would never run, but we filter
|
|
248
|
+
// by `failed` above).
|
|
249
|
+
const node = dag.nodes.find((n) => n.id === id);
|
|
250
|
+
if (!node)
|
|
251
|
+
return false;
|
|
252
|
+
const ancestors = dag.edges.filter((e) => e.to === id).map((e) => e.from);
|
|
253
|
+
return ancestors.every((a) => completed.has(a));
|
|
254
|
+
});
|
|
255
|
+
if (ready.length === 0)
|
|
256
|
+
continue;
|
|
257
|
+
for (const id of ready)
|
|
258
|
+
inflight.add(id);
|
|
259
|
+
const settled = await Promise.all(ready.map(async (sliceId) => {
|
|
260
|
+
const spec = buildDispatchSpec(dag, sliceId, contracts);
|
|
261
|
+
try {
|
|
262
|
+
const outcome = await runner(spec);
|
|
263
|
+
return { sliceId, outcome };
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
return {
|
|
267
|
+
sliceId,
|
|
268
|
+
outcome: { status: 'failed', reason: err.message }
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}));
|
|
272
|
+
let levelHasFailure = false;
|
|
273
|
+
for (const { sliceId, outcome } of settled) {
|
|
274
|
+
inflight.delete(sliceId);
|
|
275
|
+
if (outcome.status === 'done') {
|
|
276
|
+
completed.add(sliceId);
|
|
277
|
+
const contract = writer(sliceId, outcome.publicSurface);
|
|
278
|
+
contracts.push(contract);
|
|
279
|
+
}
|
|
280
|
+
else if (outcome.status === 'failed') {
|
|
281
|
+
failed.push({ sliceId, reason: outcome.reason });
|
|
282
|
+
levelHasFailure = true;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
cancelled.push(sliceId);
|
|
286
|
+
levelHasFailure = true;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (levelHasFailure) {
|
|
290
|
+
for (const id of inflight) {
|
|
291
|
+
cancelled.push(id);
|
|
292
|
+
inflight.delete(id);
|
|
293
|
+
}
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
dagHash,
|
|
299
|
+
completed: Array.from(completed).sort(),
|
|
300
|
+
failed,
|
|
301
|
+
cancelled: cancelled.sort(),
|
|
302
|
+
contracts
|
|
303
|
+
};
|
|
304
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.11.0 Group F (Tier 9) — D5: full-auto self-decision gate.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for "should this code path auto-proceed or
|
|
5
|
+
* pause for an AskUserQuestion round-trip?" The D5 design (per
|
|
6
|
+
* `.peaks/memory/2026-06-26-v2-11-full-auto-self-decision.md`) requires:
|
|
7
|
+
*
|
|
8
|
+
* - `full-auto` and `swarm` modes → auto-proceed (recommended = chosen)
|
|
9
|
+
* - `assisted` and `strict` modes → pause for confirmation
|
|
10
|
+
* - 3 hard-floor categories ALWAYS ask, regardless of mode:
|
|
11
|
+
* 1. Irreversible external side effects (git push, npm publish, …)
|
|
12
|
+
* 2. Authentication / credential usage
|
|
13
|
+
* 3. Multi-day investment decisions (release tag, breaking change)
|
|
14
|
+
*
|
|
15
|
+
* Karpathy §2: no inline `mode === 'full-auto'` checks scattered across
|
|
16
|
+
* files — this module is the only place. Karpathy §3: this file is
|
|
17
|
+
* surgical to the D5 design; do not extend with unrelated mode helpers.
|
|
18
|
+
*
|
|
19
|
+
* Re-uses `SkillPresenceMode` from `skill-presence-service.ts` so the
|
|
20
|
+
* 4 mode values stay in lockstep with the rest of the runtime.
|
|
21
|
+
*/
|
|
22
|
+
import type { SkillPresenceMode } from '../skills/skill-presence-service.js';
|
|
23
|
+
export type SoloMode = SkillPresenceMode;
|
|
24
|
+
export declare const SOLO_MODES: readonly SoloMode[];
|
|
25
|
+
export type HardFloorCategory = 'irreversible-external-side-effect' | 'authentication-credential' | 'multi-day-investment'
|
|
26
|
+
/**
|
|
27
|
+
* v2.15.0 slice 002 AC-4: actions that are past the user's
|
|
28
|
+
* explicit full-auto boundary = commit only. Per user-given rule
|
|
29
|
+
* from `.peaks/memory/2026-06-28-full-auto-boundary.md`: full-auto
|
|
30
|
+
* ends at commit. push / tag / npm publish / global install are
|
|
31
|
+
* commit-BOUNDARY side effects — they extend the commit to an
|
|
32
|
+
* external system, and full-auto must NOT auto-perform them even
|
|
33
|
+
* if every other mode says yes. Always pauses.
|
|
34
|
+
*/
|
|
35
|
+
| 'commit-boundary-side-effect';
|
|
36
|
+
export declare const HARD_FLOOR_CATEGORIES: readonly HardFloorCategory[];
|
|
37
|
+
/**
|
|
38
|
+
* The 14 SKILL.md AskUserQuestion sites mapped in the D5 memory's
|
|
39
|
+
* "Inventory of unconditional confirmation gates" table. Each row
|
|
40
|
+
* is the bare minimum needed to gate it through `shouldPauseAtGate`.
|
|
41
|
+
*/
|
|
42
|
+
export type GatedStepId = 'step-0.5-openspec-opt-in' | 'step-0.6-audit-goal' | 'step-0.7-resume-detection' | 'step-0.55-1x-upgrade' | 'step-1-mode-select' | 'step-2.5-session-title' | 'phase-2-prd-confirm' | 'phase-3-swarm-gate-b' | 'phase-6-qa-gate-d' | 'phase-10-txt-memory-extract' | 'step-n+1-final-review' | 'frontend-only-mismatch' | 'step-0.75-checkpoint-resume' | 'standards-preflight';
|
|
43
|
+
export declare const GATED_STEPS: readonly GatedStepId[];
|
|
44
|
+
/**
|
|
45
|
+
* Slice 2026-06-28-solo-mode-bypass-fix: the kind of gate that
|
|
46
|
+
* produced this decision. The LLM-side caller (peaks-solo body) reads
|
|
47
|
+
* this to distinguish "you paused because the user must choose the
|
|
48
|
+
* mode" (`mode-selection-itself`) from "you paused because the mode
|
|
49
|
+
* you already chose is assisted/strict" (`mode-driven`) from "you
|
|
50
|
+
* paused because a hard-floor category always wins" (`hard-floor`).
|
|
51
|
+
*
|
|
52
|
+
* - `'mode-selection-itself'` — the gate IS the mode/context
|
|
53
|
+
* selection step itself (step-1-mode-select,
|
|
54
|
+
* step-0.5-openspec-opt-in, step-0.7-resume-detection). Even
|
|
55
|
+
* `full-auto` mode pauses here; otherwise the user's first turn
|
|
56
|
+
* would auto-lock the mode without their consent.
|
|
57
|
+
* - `'mode-driven'` — the gate paused because the active
|
|
58
|
+
* mode is assisted/strict (the existing default).
|
|
59
|
+
* - `'hard-floor'` — the gate paused because a
|
|
60
|
+
* hard-floor category always wins (irreversible external side
|
|
61
|
+
* effect / auth / multi-day investment).
|
|
62
|
+
*/
|
|
63
|
+
export type GateKind = 'mode-selection-itself' | 'mode-driven' | 'hard-floor';
|
|
64
|
+
export interface GateDecision {
|
|
65
|
+
readonly shouldPause: boolean;
|
|
66
|
+
/** Human-readable rationale; surfaces in `peaks solo should-pause --json` */
|
|
67
|
+
readonly reason: string;
|
|
68
|
+
/** Hard-floor override applied? Surfaces in audit log when true */
|
|
69
|
+
readonly hardFloorCategory?: HardFloorCategory;
|
|
70
|
+
/** Slice 2026-06-28-solo-mode-bypass-fix: kind of gate that produced
|
|
71
|
+
* this decision. Always present; defaults to `'mode-driven'` for the
|
|
72
|
+
* assisted/strict pause branch. */
|
|
73
|
+
readonly gateKind: GateKind;
|
|
74
|
+
}
|
|
75
|
+
export declare function isSoloMode(value: string): value is SoloMode;
|
|
76
|
+
export declare function isHardFloorCategory(value: string): value is HardFloorCategory;
|
|
77
|
+
/**
|
|
78
|
+
* `true` when the current mode should auto-proceed (skip the
|
|
79
|
+
* AskUserQuestion round-trip). Mirrors D5.a: "recommended = chosen
|
|
80
|
+
* in full-auto / swarm; always log, never silently skip".
|
|
81
|
+
*/
|
|
82
|
+
export declare function shouldAutoProceed(mode: SoloMode): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Should the LLM emit an AskUserQuestion at `step` given `mode`?
|
|
85
|
+
* Pure function: no IO, no LLM call. The LLM-side caller passes the
|
|
86
|
+
* mode it loaded from skill presence, and the step it is about to
|
|
87
|
+
* execute; this function returns a `GateDecision` with the rationale.
|
|
88
|
+
*
|
|
89
|
+
* The hard-floor categories always win — even full-auto pauses for
|
|
90
|
+
* irreversible external side effects, auth/credential usage,
|
|
91
|
+
* multi-day investment decisions (D5.b), and commit-boundary side
|
|
92
|
+
* effects (v2.15.0 slice 002 AC-4: push, tag, publish, global install).
|
|
93
|
+
*
|
|
94
|
+
* `hardFloorCategory` is optional on the `GateDecision` so callers can
|
|
95
|
+
* stamp the override into the auto-decisions log without a second
|
|
96
|
+
* switch.
|
|
97
|
+
*/
|
|
98
|
+
/**
|
|
99
|
+
* v2.15.0 slice 002 AC-4: the 5 action identifiers that qualify as
|
|
100
|
+
* commit-boundary side effects. Matched by the LLM-side caller
|
|
101
|
+
* (peaks-solo body / peaks-rd fork agent) when it is about to run a
|
|
102
|
+
* Bash command that maps to one of these. Set `commitBoundaryAction:
|
|
103
|
+
* true` on the `shouldPauseAtGate` call to trigger the hard-floor
|
|
104
|
+
* override.
|
|
105
|
+
*/
|
|
106
|
+
export type CommitBoundaryActionId = 'git-push' | 'git-tag' | 'npm-publish' | 'npm-install-global' | 'peaks-global-install';
|
|
107
|
+
export declare const COMMIT_BOUNDARY_ACTIONS: readonly CommitBoundaryActionId[];
|
|
108
|
+
export declare function isCommitBoundaryAction(value: string): value is CommitBoundaryActionId;
|
|
109
|
+
export declare function shouldPauseAtGate(opts: {
|
|
110
|
+
mode: SoloMode;
|
|
111
|
+
step: GatedStepId;
|
|
112
|
+
hardFloorCategory?: HardFloorCategory | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* v2.15.0 slice 002 AC-4: when `true`, force a pause regardless of
|
|
115
|
+
* mode. Reserved for the 5 commit-boundary side effects
|
|
116
|
+
* (push/tag/publish/global install) that are past the user's
|
|
117
|
+
* full-auto boundary. The hard-floor override ALWAYS wins — even
|
|
118
|
+
* over the mode-driven auto-proceed branch.
|
|
119
|
+
*/
|
|
120
|
+
commitBoundaryAction?: boolean | undefined;
|
|
121
|
+
}): GateDecision;
|
|
122
|
+
/**
|
|
123
|
+
* Format a one-line audit message for the auto-decisions log.
|
|
124
|
+
* Karpathy §3: this is a pure formatter; it does NOT touch the file
|
|
125
|
+
* system. The CLI / LLM is responsible for appending.
|
|
126
|
+
*/
|
|
127
|
+
export declare function formatAutoProceedLogLine(opts: {
|
|
128
|
+
mode: SoloMode;
|
|
129
|
+
step: GatedStepId;
|
|
130
|
+
recommendedOption: string;
|
|
131
|
+
hardFloorCategory?: HardFloorCategory | undefined;
|
|
132
|
+
}): string;
|
|
133
|
+
/**
|
|
134
|
+
* v2.15.0 slice 002 AC-4: regex matchers the LLM-side caller uses
|
|
135
|
+
* to flag a Bash command as a commit-boundary action. Centralised
|
|
136
|
+
* here so the test seam + the CLI wiring share one source of
|
|
137
|
+
* truth. Each entry is an anchored pattern matched against the
|
|
138
|
+
* user-invoked command (after commander / shell normalisation,
|
|
139
|
+
* before execution).
|
|
140
|
+
*
|
|
141
|
+
* Patterns intentionally cover the common canonical forms:
|
|
142
|
+
*
|
|
143
|
+
* - `git-push` → `git push`, `git push origin main`, `git push --tags`
|
|
144
|
+
* - `git-tag` → `git tag v2.15.0`, `git tag -a v2.15.0 -m ...`
|
|
145
|
+
* - `npm-publish` → `npm publish`, `npm publish --access public`
|
|
146
|
+
* - `npm-install-global` → `npm install -g <pkg>`, `npm i -g <pkg>`
|
|
147
|
+
* - `peaks-global-install`→ `npm install -g peaks-cli`, `pnpm add -g peaks-cli`
|
|
148
|
+
*
|
|
149
|
+
* These are coarse — false positives are fine (worst case: a
|
|
150
|
+
* non-actionable command gets paused for confirmation; the user
|
|
151
|
+
* can confirm in one click). False negatives are NOT fine — a
|
|
152
|
+
* missed publish would violate the full-auto boundary.
|
|
153
|
+
*/
|
|
154
|
+
export declare const COMMIT_BOUNDARY_PATTERNS: Readonly<Record<CommitBoundaryActionId, RegExp>>;
|
|
155
|
+
/**
|
|
156
|
+
* v2.15.0 slice 002 AC-4: detect whether a Bash command matches any
|
|
157
|
+
* commit-boundary action pattern. Returns the action id of the
|
|
158
|
+
* first match, or `null` when none match. The CLI / LLM caller
|
|
159
|
+
* passes the command through this function and forwards the
|
|
160
|
+
* result to `shouldPauseAtGate({ commitBoundaryAction: true })` to
|
|
161
|
+
* force the hard-floor pause.
|
|
162
|
+
*/
|
|
163
|
+
export declare function detectCommitBoundaryAction(command: string): CommitBoundaryActionId | null;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.11.0 Group F (Tier 9) — D5: full-auto self-decision gate.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for "should this code path auto-proceed or
|
|
5
|
+
* pause for an AskUserQuestion round-trip?" The D5 design (per
|
|
6
|
+
* `.peaks/memory/2026-06-26-v2-11-full-auto-self-decision.md`) requires:
|
|
7
|
+
*
|
|
8
|
+
* - `full-auto` and `swarm` modes → auto-proceed (recommended = chosen)
|
|
9
|
+
* - `assisted` and `strict` modes → pause for confirmation
|
|
10
|
+
* - 3 hard-floor categories ALWAYS ask, regardless of mode:
|
|
11
|
+
* 1. Irreversible external side effects (git push, npm publish, …)
|
|
12
|
+
* 2. Authentication / credential usage
|
|
13
|
+
* 3. Multi-day investment decisions (release tag, breaking change)
|
|
14
|
+
*
|
|
15
|
+
* Karpathy §2: no inline `mode === 'full-auto'` checks scattered across
|
|
16
|
+
* files — this module is the only place. Karpathy §3: this file is
|
|
17
|
+
* surgical to the D5 design; do not extend with unrelated mode helpers.
|
|
18
|
+
*
|
|
19
|
+
* Re-uses `SkillPresenceMode` from `skill-presence-service.ts` so the
|
|
20
|
+
* 4 mode values stay in lockstep with the rest of the runtime.
|
|
21
|
+
*/
|
|
22
|
+
export const SOLO_MODES = [
|
|
23
|
+
'full-auto',
|
|
24
|
+
'assisted',
|
|
25
|
+
'swarm',
|
|
26
|
+
'strict'
|
|
27
|
+
];
|
|
28
|
+
export const HARD_FLOOR_CATEGORIES = [
|
|
29
|
+
'irreversible-external-side-effect',
|
|
30
|
+
'authentication-credential',
|
|
31
|
+
'multi-day-investment',
|
|
32
|
+
'commit-boundary-side-effect'
|
|
33
|
+
];
|
|
34
|
+
export const GATED_STEPS = [
|
|
35
|
+
'step-0.5-openspec-opt-in',
|
|
36
|
+
'step-0.6-audit-goal',
|
|
37
|
+
'step-0.7-resume-detection',
|
|
38
|
+
'step-0.55-1x-upgrade',
|
|
39
|
+
'step-1-mode-select',
|
|
40
|
+
'step-2.5-session-title',
|
|
41
|
+
'phase-2-prd-confirm',
|
|
42
|
+
'phase-3-swarm-gate-b',
|
|
43
|
+
'phase-6-qa-gate-d',
|
|
44
|
+
'phase-10-txt-memory-extract',
|
|
45
|
+
'step-n+1-final-review',
|
|
46
|
+
'frontend-only-mismatch',
|
|
47
|
+
'step-0.75-checkpoint-resume',
|
|
48
|
+
'standards-preflight'
|
|
49
|
+
];
|
|
50
|
+
export function isSoloMode(value) {
|
|
51
|
+
return SOLO_MODES.includes(value);
|
|
52
|
+
}
|
|
53
|
+
export function isHardFloorCategory(value) {
|
|
54
|
+
return HARD_FLOOR_CATEGORIES.includes(value);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* `true` when the current mode should auto-proceed (skip the
|
|
58
|
+
* AskUserQuestion round-trip). Mirrors D5.a: "recommended = chosen
|
|
59
|
+
* in full-auto / swarm; always log, never silently skip".
|
|
60
|
+
*/
|
|
61
|
+
export function shouldAutoProceed(mode) {
|
|
62
|
+
return mode === 'full-auto' || mode === 'swarm';
|
|
63
|
+
}
|
|
64
|
+
export const COMMIT_BOUNDARY_ACTIONS = [
|
|
65
|
+
'git-push',
|
|
66
|
+
'git-tag',
|
|
67
|
+
'npm-publish',
|
|
68
|
+
'npm-install-global',
|
|
69
|
+
'peaks-global-install'
|
|
70
|
+
];
|
|
71
|
+
export function isCommitBoundaryAction(value) {
|
|
72
|
+
return COMMIT_BOUNDARY_ACTIONS.includes(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Hard-pause steps: these pause regardless of mode. They are the gates
|
|
76
|
+
* whose decision *creates* or *recreates* the mode/state under which
|
|
77
|
+
* later gates run. Auto-proceeding on them would silently fix the mode
|
|
78
|
+
* without user consent (defect #1: new Solo session skipped Step 1
|
|
79
|
+
* AskUserQuestion because `full-auto` mode triggered `shouldAutoProceed`
|
|
80
|
+
* on `step-1-mode-select` itself).
|
|
81
|
+
*
|
|
82
|
+
* v2.18.4 slice 002-fix-first-run-step-gates: added
|
|
83
|
+
* `step-0.55-1x-upgrade`. The 1.x → 2.0 upgrade is an irreversible
|
|
84
|
+
* external side effect (migration rewrites config files and the
|
|
85
|
+
* on-disk cache shape) — it must always pause, even in full-auto.
|
|
86
|
+
* Without this, `full-auto` mode auto-proceeds and silently
|
|
87
|
+
* downgrades a 1.x install to 2.0 without user consent.
|
|
88
|
+
*/
|
|
89
|
+
const HARD_PAUSE_STEPS = new Set([
|
|
90
|
+
'step-1-mode-select',
|
|
91
|
+
'step-0.5-openspec-opt-in',
|
|
92
|
+
'step-0.7-resume-detection',
|
|
93
|
+
'step-0.55-1x-upgrade'
|
|
94
|
+
]);
|
|
95
|
+
export function shouldPauseAtGate(opts) {
|
|
96
|
+
if (opts.hardFloorCategory !== undefined && isHardFloorCategory(opts.hardFloorCategory)) {
|
|
97
|
+
return {
|
|
98
|
+
shouldPause: true,
|
|
99
|
+
reason: `hard-floor category "${opts.hardFloorCategory}" always pauses regardless of mode (D5.b)`,
|
|
100
|
+
hardFloorCategory: opts.hardFloorCategory,
|
|
101
|
+
gateKind: 'hard-floor'
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Slice 002 (v2.15.0) AC-4: commit-boundary side effects override
|
|
105
|
+
// every other decision. Per the user-given rule in
|
|
106
|
+
// `.peaks/memory/2026-06-28-full-auto-boundary.md` ("full-auto 只
|
|
107
|
+
// 做到 commit"), push / tag / npm publish / global install must
|
|
108
|
+
// AskUserQuestion even in full-auto. This is the mechanical
|
|
109
|
+
// enforcement of that rule.
|
|
110
|
+
if (opts.commitBoundaryAction === true) {
|
|
111
|
+
return {
|
|
112
|
+
shouldPause: true,
|
|
113
|
+
reason: 'commit-boundary side effect (push/tag/publish/global-install) → always pause regardless of mode (slice 002 AC-4, full-auto boundary = commit only)',
|
|
114
|
+
hardFloorCategory: 'commit-boundary-side-effect',
|
|
115
|
+
gateKind: 'hard-floor'
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Slice 2026-06-28-solo-mode-bypass-fix: hard-pause steps that
|
|
119
|
+
// determine the active mode or session context MUST prompt the
|
|
120
|
+
// user. Otherwise full-auto silently locks in `mode=full-auto` on
|
|
121
|
+
// the first tool call, skipping the AskUserQuestion Step 1 mandates.
|
|
122
|
+
if (HARD_PAUSE_STEPS.has(opts.step)) {
|
|
123
|
+
return {
|
|
124
|
+
shouldPause: true,
|
|
125
|
+
reason: `step=${opts.step} is a mode/context-selection step → always pause (defect #1 fix)`,
|
|
126
|
+
gateKind: 'mode-selection-itself'
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (shouldAutoProceed(opts.mode)) {
|
|
130
|
+
return {
|
|
131
|
+
shouldPause: false,
|
|
132
|
+
reason: `mode=${opts.mode} → recommended = chosen; emit auto-decision log (D5.a)`,
|
|
133
|
+
gateKind: 'mode-driven'
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
shouldPause: true,
|
|
138
|
+
reason: `mode=${opts.mode} → pause for AskUserQuestion (assisted/strict default)`,
|
|
139
|
+
gateKind: 'mode-driven'
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Format a one-line audit message for the auto-decisions log.
|
|
144
|
+
* Karpathy §3: this is a pure formatter; it does NOT touch the file
|
|
145
|
+
* system. The CLI / LLM is responsible for appending.
|
|
146
|
+
*/
|
|
147
|
+
export function formatAutoProceedLogLine(opts) {
|
|
148
|
+
if (opts.hardFloorCategory !== undefined && isHardFloorCategory(opts.hardFloorCategory)) {
|
|
149
|
+
return `auto-pause (${opts.mode}, hard-floor:${opts.hardFloorCategory}): ${opts.step} → ${opts.recommendedOption}`;
|
|
150
|
+
}
|
|
151
|
+
return `auto-proceed (${opts.mode}): ${opts.step} → ${opts.recommendedOption}`;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* v2.15.0 slice 002 AC-4: regex matchers the LLM-side caller uses
|
|
155
|
+
* to flag a Bash command as a commit-boundary action. Centralised
|
|
156
|
+
* here so the test seam + the CLI wiring share one source of
|
|
157
|
+
* truth. Each entry is an anchored pattern matched against the
|
|
158
|
+
* user-invoked command (after commander / shell normalisation,
|
|
159
|
+
* before execution).
|
|
160
|
+
*
|
|
161
|
+
* Patterns intentionally cover the common canonical forms:
|
|
162
|
+
*
|
|
163
|
+
* - `git-push` → `git push`, `git push origin main`, `git push --tags`
|
|
164
|
+
* - `git-tag` → `git tag v2.15.0`, `git tag -a v2.15.0 -m ...`
|
|
165
|
+
* - `npm-publish` → `npm publish`, `npm publish --access public`
|
|
166
|
+
* - `npm-install-global` → `npm install -g <pkg>`, `npm i -g <pkg>`
|
|
167
|
+
* - `peaks-global-install`→ `npm install -g peaks-cli`, `pnpm add -g peaks-cli`
|
|
168
|
+
*
|
|
169
|
+
* These are coarse — false positives are fine (worst case: a
|
|
170
|
+
* non-actionable command gets paused for confirmation; the user
|
|
171
|
+
* can confirm in one click). False negatives are NOT fine — a
|
|
172
|
+
* missed publish would violate the full-auto boundary.
|
|
173
|
+
*/
|
|
174
|
+
export const COMMIT_BOUNDARY_PATTERNS = {
|
|
175
|
+
'git-push': /\bgit\s+push\b/,
|
|
176
|
+
'git-tag': /\bgit\s+tag\b/,
|
|
177
|
+
'npm-publish': /\bnpm\s+(publish|pub)\b/,
|
|
178
|
+
'npm-install-global': /\bnpm\s+(install|i|add)\s+(-g|--global)\b/,
|
|
179
|
+
'peaks-global-install': /\b(peaks-cli)\b/
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* v2.15.0 slice 002 AC-4: detect whether a Bash command matches any
|
|
183
|
+
* commit-boundary action pattern. Returns the action id of the
|
|
184
|
+
* first match, or `null` when none match. The CLI / LLM caller
|
|
185
|
+
* passes the command through this function and forwards the
|
|
186
|
+
* result to `shouldPauseAtGate({ commitBoundaryAction: true })` to
|
|
187
|
+
* force the hard-floor pause.
|
|
188
|
+
*/
|
|
189
|
+
export function detectCommitBoundaryAction(command) {
|
|
190
|
+
if (typeof command !== 'string' || command.length === 0)
|
|
191
|
+
return null;
|
|
192
|
+
// Order matters: peaks-global-install is the most specific
|
|
193
|
+
// (matches only the peaks-cli package name). Test that FIRST so
|
|
194
|
+
// `npm install -g peaks-cli` is attributed correctly. Then
|
|
195
|
+
// git-push, git-tag, npm-publish, npm-install-global.
|
|
196
|
+
if (COMMIT_BOUNDARY_PATTERNS['peaks-global-install'].test(command)) {
|
|
197
|
+
return 'peaks-global-install';
|
|
198
|
+
}
|
|
199
|
+
if (COMMIT_BOUNDARY_PATTERNS['git-push'].test(command)) {
|
|
200
|
+
return 'git-push';
|
|
201
|
+
}
|
|
202
|
+
if (COMMIT_BOUNDARY_PATTERNS['git-tag'].test(command)) {
|
|
203
|
+
return 'git-tag';
|
|
204
|
+
}
|
|
205
|
+
if (COMMIT_BOUNDARY_PATTERNS['npm-publish'].test(command)) {
|
|
206
|
+
return 'npm-publish';
|
|
207
|
+
}
|
|
208
|
+
if (COMMIT_BOUNDARY_PATTERNS['npm-install-global'].test(command)) {
|
|
209
|
+
return 'npm-install-global';
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|