peaks-loop 4.0.0-beta.8 → 4.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/bin/peaks.js +1 -1
- package/dist/cli/cli-helpers.d.ts +43 -0
- package/dist/cli/cli-helpers.js +86 -0
- package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
- package/dist/cli/commands/_cli-error-envelope.js +50 -0
- package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
- package/dist/cli/commands/adapter-commands-s2a.js +92 -0
- package/dist/cli/commands/adapter-commands.d.ts +30 -0
- package/dist/cli/commands/adapter-commands.js +35 -0
- package/dist/cli/commands/agent-commands.d.ts +20 -0
- package/dist/cli/commands/agent-commands.js +48 -0
- package/dist/cli/commands/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +404 -0
- package/dist/cli/commands/audit-commands.d.ts +28 -0
- package/dist/cli/commands/audit-commands.js +437 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/capability-commands.d.ts +16 -0
- package/dist/cli/commands/capability-commands.js +45 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.js +10 -0
- package/dist/cli/commands/classify-classify-commands.d.ts +19 -0
- package/dist/cli/commands/classify-classify-commands.js +151 -0
- package/dist/cli/commands/code-commands.d.ts +80 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/code-review-commands.d.ts +34 -0
- package/dist/cli/commands/code-review-commands.js +83 -0
- package/dist/cli/commands/codegraph-commands.d.ts +3 -0
- package/dist/cli/commands/codegraph-commands.js +99 -0
- package/dist/cli/commands/compact-command.d.ts +21 -0
- package/dist/cli/commands/compact-command.js +252 -0
- package/dist/cli/commands/complexity-commands.d.ts +9 -0
- package/dist/cli/commands/complexity-commands.js +34 -0
- package/dist/cli/commands/config-commands.d.ts +3 -0
- package/dist/cli/commands/config-commands.js +220 -0
- package/dist/cli/commands/context-builder-commands.d.ts +11 -0
- package/dist/cli/commands/context-builder-commands.js +85 -0
- package/dist/cli/commands/context-commands.d.ts +21 -0
- package/dist/cli/commands/context-commands.js +254 -0
- package/dist/cli/commands/contract-commands.d.ts +26 -0
- package/dist/cli/commands/contract-commands.js +114 -0
- package/dist/cli/commands/core/artifacts-command.d.ts +3 -0
- package/dist/cli/commands/core/artifacts-command.js +62 -0
- package/dist/cli/commands/core/binding-commands.d.ts +3 -0
- package/dist/cli/commands/core/binding-commands.js +58 -0
- package/dist/cli/commands/core/doctor-command.d.ts +11 -0
- package/dist/cli/commands/core/doctor-command.js +204 -0
- package/dist/cli/commands/core/memory-command.d.ts +3 -0
- package/dist/cli/commands/core/memory-command.js +98 -0
- package/dist/cli/commands/core/profile-command.d.ts +3 -0
- package/dist/cli/commands/core/profile-command.js +9 -0
- package/dist/cli/commands/core/proxy-command.d.ts +3 -0
- package/dist/cli/commands/core/proxy-command.js +26 -0
- package/dist/cli/commands/core/session-command.d.ts +3 -0
- package/dist/cli/commands/core/session-command.js +241 -0
- package/dist/cli/commands/core/skill-command.d.ts +3 -0
- package/dist/cli/commands/core/skill-command.js +300 -0
- package/dist/cli/commands/core/standards-command.d.ts +3 -0
- package/dist/cli/commands/core/standards-command.js +95 -0
- package/dist/cli/commands/core-artifact-commands.d.ts +15 -0
- package/dist/cli/commands/core-artifact-commands.js +31 -0
- package/dist/cli/commands/dispatch-commands.d.ts +10 -0
- package/dist/cli/commands/dispatch-commands.js +351 -0
- package/dist/cli/commands/dispatch-from-dag.d.ts +3 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/doc-commands.d.ts +11 -0
- package/dist/cli/commands/doc-commands.js +65 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/feedback-commands.d.ts +18 -0
- package/dist/cli/commands/feedback-commands.js +145 -0
- package/dist/cli/commands/final-review-commands.d.ts +31 -0
- package/dist/cli/commands/final-review-commands.js +161 -0
- package/dist/cli/commands/fixture-commands.d.ts +32 -0
- package/dist/cli/commands/fixture-commands.js +91 -0
- package/dist/cli/commands/fork-commands.d.ts +16 -0
- package/dist/cli/commands/fork-commands.js +163 -0
- package/dist/cli/commands/gate-commands.d.ts +3 -0
- package/dist/cli/commands/gate-commands.js +117 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +3 -0
- package/dist/cli/commands/heartbeat-commands.js +135 -0
- package/dist/cli/commands/hook-handle.d.ts +17 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/hooks-commands.d.ts +3 -0
- package/dist/cli/commands/hooks-commands.js +156 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/impact-commands.d.ts +15 -0
- package/dist/cli/commands/impact-commands.js +62 -0
- package/dist/cli/commands/job-commands.d.ts +3 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/legacy-commands.d.ts +11 -0
- package/dist/cli/commands/legacy-commands.js +32 -0
- package/dist/cli/commands/log-commands.d.ts +17 -0
- package/dist/cli/commands/log-commands.js +64 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/loop-eval-commands.d.ts +20 -0
- package/dist/cli/commands/loop-eval-commands.js +526 -0
- package/dist/cli/commands/memory-commands.d.ts +23 -0
- package/dist/cli/commands/memory-commands.js +129 -0
- package/dist/cli/commands/migrate-1-4-1-command.d.ts +11 -0
- package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/cli/commands/mut-commands.d.ts +20 -0
- package/dist/cli/commands/mut-commands.js +239 -0
- package/dist/cli/commands/observability-commands.d.ts +22 -0
- package/dist/cli/commands/observability-commands.js +201 -0
- package/dist/cli/commands/openspec-commands.d.ts +3 -0
- package/dist/cli/commands/openspec-commands.js +237 -0
- package/dist/cli/commands/perf-audit-commands.d.ts +22 -0
- package/dist/cli/commands/perf-audit-commands.js +132 -0
- package/dist/cli/commands/perf-commands.d.ts +3 -0
- package/dist/cli/commands/perf-commands.js +41 -0
- package/dist/cli/commands/playwright-commands.d.ts +95 -0
- package/dist/cli/commands/playwright-commands.js +432 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/prd-blocks-commands.d.ts +18 -0
- package/dist/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/cli/commands/prd-commands.d.ts +18 -0
- package/dist/cli/commands/prd-commands.js +141 -0
- package/dist/cli/commands/preferences-commands.d.ts +2 -0
- package/dist/cli/commands/preferences-commands.js +197 -0
- package/dist/cli/commands/project-commands.d.ts +3 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/qa-business-review-commands.d.ts +17 -0
- package/dist/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/cli/commands/qa-commands.d.ts +94 -0
- package/dist/cli/commands/qa-commands.js +271 -0
- package/dist/cli/commands/release-commands.d.ts +24 -0
- package/dist/cli/commands/release-commands.js +231 -0
- package/dist/cli/commands/request-commands.d.ts +3 -0
- package/dist/cli/commands/request-commands.js +548 -0
- package/dist/cli/commands/retrospective-commands.d.ts +12 -0
- package/dist/cli/commands/retrospective-commands.js +175 -0
- package/dist/cli/commands/reviewer-commands.d.ts +14 -0
- package/dist/cli/commands/reviewer-commands.js +64 -0
- package/dist/cli/commands/role-commands.d.ts +13 -0
- package/dist/cli/commands/role-commands.js +85 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +150 -0
- package/dist/cli/commands/sc-commands.d.ts +3 -0
- package/dist/cli/commands/sc-commands.js +45 -0
- package/dist/cli/commands/scan-commands.d.ts +3 -0
- package/dist/cli/commands/scan-commands.js +445 -0
- package/dist/cli/commands/security-audit-commands.d.ts +23 -0
- package/dist/cli/commands/security-audit-commands.js +132 -0
- package/dist/cli/commands/sediment-commands.d.ts +80 -0
- package/dist/cli/commands/sediment-commands.js +649 -0
- package/dist/cli/commands/session-auto-compact-hook-command.d.ts +37 -0
- package/dist/cli/commands/session-auto-compact-hook-command.js +127 -0
- package/dist/cli/commands/session-checkpoint-command.d.ts +10 -0
- package/dist/cli/commands/session-checkpoint-command.js +100 -0
- package/dist/cli/commands/session-migrate-skill-name.d.ts +17 -0
- package/dist/cli/commands/session-migrate-skill-name.js +41 -0
- package/dist/cli/commands/session-resume-command.d.ts +11 -0
- package/dist/cli/commands/session-resume-command.js +83 -0
- package/dist/cli/commands/share-commands.d.ts +17 -0
- package/dist/cli/commands/share-commands.js +296 -0
- package/dist/cli/commands/skill-conformance-commands.d.ts +9 -0
- package/dist/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
- package/dist/cli/commands/skill-search-commands.d.ts +25 -0
- package/dist/cli/commands/skill-search-commands.js +68 -0
- package/dist/cli/commands/skill-visibility.d.ts +8 -0
- package/dist/cli/commands/skill-visibility.js +63 -0
- package/dist/cli/commands/slice-commands.d.ts +24 -0
- package/dist/cli/commands/slice-commands.js +492 -0
- package/dist/cli/commands/slice-integrate-commands.d.ts +11 -0
- package/dist/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/cli/commands/slice-review-commands.d.ts +23 -0
- package/dist/cli/commands/slice-review-commands.js +162 -0
- package/dist/cli/commands/smoke-commands.d.ts +21 -0
- package/dist/cli/commands/smoke-commands.js +203 -0
- package/dist/cli/commands/sop-commands.d.ts +3 -0
- package/dist/cli/commands/sop-commands.js +215 -0
- package/dist/cli/commands/statusline-commands.d.ts +3 -0
- package/dist/cli/commands/statusline-commands.js +169 -0
- package/dist/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/cli/commands/sub-agent-commands.js +19 -0
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
- package/dist/cli/commands/sub-agent-dispatch-guard.js +57 -0
- package/dist/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/cli/commands/sub-agent-shared.js +67 -0
- package/dist/cli/commands/test-commands.d.ts +47 -0
- package/dist/cli/commands/test-commands.js +204 -0
- package/dist/cli/commands/understand-commands.d.ts +3 -0
- package/dist/cli/commands/understand-commands.js +148 -0
- package/dist/cli/commands/upgrade-commands.d.ts +23 -0
- package/dist/cli/commands/upgrade-commands.js +119 -0
- package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/cli/commands/worker-commands.d.ts +3 -0
- package/dist/cli/commands/worker-commands.js +52 -0
- package/dist/cli/commands/workflow-commands.d.ts +3 -0
- package/dist/cli/commands/workflow-commands.js +544 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +39 -0
- package/dist/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/cli/commands/workspace/clean-command.d.ts +14 -0
- package/dist/cli/commands/workspace/clean-command.js +49 -0
- package/dist/cli/commands/workspace/helpers.d.ts +28 -0
- package/dist/cli/commands/workspace/helpers.js +87 -0
- package/dist/cli/commands/workspace/init-command.d.ts +139 -0
- package/dist/cli/commands/workspace/init-command.js +505 -0
- package/dist/cli/commands/workspace/migrate-command.d.ts +11 -0
- package/dist/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/cli/commands/workspace/reconcile-command.d.ts +14 -0
- package/dist/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/cli/commands/workspace-commands.d.ts +18 -0
- package/dist/cli/commands/workspace-commands.js +50 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +30 -0
- package/dist/cli/program.d.ts +5 -0
- package/dist/cli/program.js +408 -0
- package/dist/hooks/pre-tool-use-sub-agent.d.ts +28 -0
- package/dist/hooks/pre-tool-use-sub-agent.js +105 -0
- package/dist/lib/render/message-renderer.d.ts +20 -0
- package/dist/lib/render/message-renderer.js +80 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/adapter/adapter.d.ts +27 -0
- package/dist/services/adapter/adapter.js +5 -0
- package/dist/services/adapter/auto-adapter.d.ts +11 -0
- package/dist/services/adapter/auto-adapter.js +15 -0
- package/dist/services/adapter/claude-adapter.d.ts +14 -0
- package/dist/services/adapter/claude-adapter.js +40 -0
- package/dist/services/adapter/codex-adapter.d.ts +14 -0
- package/dist/services/adapter/codex-adapter.js +14 -0
- package/dist/services/adapter/copilot-adapter.d.ts +14 -0
- package/dist/services/adapter/copilot-adapter.js +14 -0
- package/dist/services/agent/ecc-agent-service.d.ts +47 -0
- package/dist/services/agent/ecc-agent-service.js +143 -0
- package/dist/services/artifacts/artifact-lint-service.d.ts +23 -0
- package/dist/services/artifacts/artifact-lint-service.js +99 -0
- package/dist/services/artifacts/artifact-prerequisites.d.ts +78 -0
- package/dist/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/services/artifacts/artifact-service.d.ts +43 -0
- package/dist/services/artifacts/artifact-service.js +98 -0
- package/dist/services/artifacts/artifact-templates.d.ts +30 -0
- package/dist/services/artifacts/artifact-templates.js +302 -0
- package/dist/services/artifacts/repair-cycle-service.d.ts +23 -0
- package/dist/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/services/artifacts/request-artifact-service.d.ts +116 -0
- package/dist/services/artifacts/request-artifact-service.js +451 -0
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
- package/dist/services/artifacts/request-artifact-state-helpers.js +114 -0
- package/dist/services/artifacts/workspace-service.d.ts +34 -0
- package/dist/services/artifacts/workspace-service.js +272 -0
- package/dist/services/audit/artifact-writer.d.ts +93 -0
- package/dist/services/audit/artifact-writer.js +303 -0
- package/dist/services/audit/audit-goal-service.d.ts +35 -0
- package/dist/services/audit/audit-goal-service.js +75 -0
- package/dist/services/audit/audit-goal-types.d.ts +40 -0
- package/dist/services/audit/audit-goal-types.js +15 -0
- package/dist/services/audit/backing-detector.d.ts +24 -0
- package/dist/services/audit/backing-detector.js +59 -0
- package/dist/services/audit/classifier.d.ts +38 -0
- package/dist/services/audit/classifier.js +134 -0
- package/dist/services/audit/decision-writer.d.ts +76 -0
- package/dist/services/audit/decision-writer.js +217 -0
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
- package/dist/services/audit/enforcers/code-ban.js +27 -0
- package/dist/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
- package/dist/services/audit/enforcers/design-draft-confirm.js +58 -0
- package/dist/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
- package/dist/services/audit/enforcers/lint-audit-regression.js +86 -0
- package/dist/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
- package/dist/services/audit/enforcers/lint-catalog-governance.js +48 -0
- package/dist/services/audit/enforcers/lint-cli-back.d.ts +16 -0
- package/dist/services/audit/enforcers/lint-cli-back.js +35 -0
- package/dist/services/audit/enforcers/lint-output-style.d.ts +11 -0
- package/dist/services/audit/enforcers/lint-output-style.js +94 -0
- package/dist/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
- package/dist/services/audit/enforcers/lint-reference-integrity.js +83 -0
- package/dist/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
- package/dist/services/audit/enforcers/lint-reference-shape.js +272 -0
- package/dist/services/audit/enforcers/lint-style.d.ts +49 -0
- package/dist/services/audit/enforcers/lint-style.js +173 -0
- package/dist/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
- package/dist/services/audit/enforcers/lint-workflow-shape.js +100 -0
- package/dist/services/audit/enforcers/login-gate.d.ts +23 -0
- package/dist/services/audit/enforcers/login-gate.js +40 -0
- package/dist/services/audit/enforcers/mock-placement.d.ts +25 -0
- package/dist/services/audit/enforcers/mock-placement.js +48 -0
- package/dist/services/audit/enforcers/no-root-pollution.d.ts +21 -0
- package/dist/services/audit/enforcers/no-root-pollution.js +56 -0
- package/dist/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
- package/dist/services/audit/enforcers/pre-rd-scan.js +23 -0
- package/dist/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
- package/dist/services/audit/enforcers/prototype-fidelity.js +75 -0
- package/dist/services/audit/enforcers/resume-detection.d.ts +21 -0
- package/dist/services/audit/enforcers/resume-detection.js +52 -0
- package/dist/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
- package/dist/services/audit/enforcers/sub-agent-sid.js +63 -0
- package/dist/services/audit/prose-ratio-calculator.d.ts +45 -0
- package/dist/services/audit/prose-ratio-calculator.js +52 -0
- package/dist/services/audit/red-line-catalog-p2-a.d.ts +21 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +229 -0
- package/dist/services/audit/red-line-catalog-p2-b.d.ts +19 -0
- package/dist/services/audit/red-line-catalog-p2-b.js +225 -0
- package/dist/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/services/audit/red-line-catalog.js +195 -0
- package/dist/services/audit/red-lines-service.d.ts +23 -0
- package/dist/services/audit/red-lines-service.js +464 -0
- package/dist/services/audit/scanners/openspec-scanner.d.ts +15 -0
- package/dist/services/audit/scanners/openspec-scanner.js +55 -0
- package/dist/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
- package/dist/services/audit/scanners/rules-tree-scanner.js +56 -0
- package/dist/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
- package/dist/services/audit/scanners/skills-tree-scanner.js +68 -0
- package/dist/services/audit/static-service.d.ts +60 -0
- package/dist/services/audit/static-service.js +130 -0
- package/dist/services/audit/types.d.ts +86 -0
- package/dist/services/audit/types.js +13 -0
- package/dist/services/audit-independent/perf-audit-service.d.ts +151 -0
- package/dist/services/audit-independent/perf-audit-service.js +316 -0
- package/dist/services/audit-independent/security-audit-service.d.ts +155 -0
- package/dist/services/audit-independent/security-audit-service.js +316 -0
- package/dist/services/classify/classify-service.d.ts +42 -0
- package/dist/services/classify/classify-service.js +122 -0
- package/dist/services/classify/classify-types.d.ts +79 -0
- package/dist/services/classify/classify-types.js +90 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +98 -0
- package/dist/services/code/auto-compact-orchestrator.js +343 -0
- package/dist/services/code/batch-heartbeat-poller.d.ts +51 -0
- package/dist/services/code/batch-heartbeat-poller.js +88 -0
- package/dist/services/code/dag-orchestrator.d.ts +128 -0
- package/dist/services/code/dag-orchestrator.js +304 -0
- package/dist/services/code/emit-handoff.d.ts +49 -0
- package/dist/services/code/emit-handoff.js +79 -0
- package/dist/services/code/job-shape-decision.d.ts +71 -0
- package/dist/services/code/job-shape-decision.js +151 -0
- package/dist/services/code/mode-gate.d.ts +163 -0
- package/dist/services/code/mode-gate.js +212 -0
- package/dist/services/code/post-compact-detector.d.ts +61 -0
- package/dist/services/code/post-compact-detector.js +240 -0
- package/dist/services/code/status-line-renderer.d.ts +34 -0
- package/dist/services/code/status-line-renderer.js +55 -0
- package/dist/services/code/step-08-gate.d.ts +90 -0
- package/dist/services/code/step-08-gate.js +136 -0
- package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
- package/dist/services/code/user-touchpoint-classifier.js +145 -0
- package/dist/services/code-review/ecc-bridge.d.ts +148 -0
- package/dist/services/code-review/ecc-bridge.js +242 -0
- package/dist/services/code-review/ocr-service.d.ts +129 -0
- package/dist/services/code-review/ocr-service.js +369 -0
- package/dist/services/codegraph/codegraph-process-runner.d.ts +2 -0
- package/dist/services/codegraph/codegraph-process-runner.js +93 -0
- package/dist/services/codegraph/codegraph-service.d.ts +43 -0
- package/dist/services/codegraph/codegraph-service.js +160 -0
- package/dist/services/compact/decision-tables.d.ts +66 -0
- package/dist/services/compact/decision-tables.js +127 -0
- package/dist/services/compact/request-transition-hook.d.ts +20 -0
- package/dist/services/compact/request-transition-hook.js +110 -0
- package/dist/services/compact/suggest-service.d.ts +74 -0
- package/dist/services/compact/suggest-service.js +203 -0
- package/dist/services/complexity/complexity-estimator.d.ts +34 -0
- package/dist/services/complexity/complexity-estimator.js +64 -0
- package/dist/services/config/config-migration.d.ts +45 -0
- package/dist/services/config/config-migration.js +154 -0
- package/dist/services/config/config-restore.d.ts +10 -0
- package/dist/services/config/config-restore.js +47 -0
- package/dist/services/config/config-rollback.d.ts +13 -0
- package/dist/services/config/config-rollback.js +26 -0
- package/dist/services/config/config-safety.d.ts +40 -0
- package/dist/services/config/config-safety.js +359 -0
- package/dist/services/config/config-service.d.ts +69 -0
- package/dist/services/config/config-service.js +814 -0
- package/dist/services/config/config-types.d.ts +119 -0
- package/dist/services/config/config-types.js +18 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/config/provider-service.d.ts +48 -0
- package/dist/services/config/provider-service.js +143 -0
- package/dist/services/config/proxy-service.d.ts +21 -0
- package/dist/services/config/proxy-service.js +44 -0
- package/dist/services/config/sidecar-store.d.ts +25 -0
- package/dist/services/config/sidecar-store.js +61 -0
- package/dist/services/config/workspace-state-service.d.ts +30 -0
- package/dist/services/config/workspace-state-service.js +142 -0
- package/dist/services/context/artifact-meta.d.ts +72 -0
- package/dist/services/context/artifact-meta.js +105 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/services/context/auto-compact-dispatcher.js +240 -0
- package/dist/services/context/auto-compact-reader.d.ts +51 -0
- package/dist/services/context/auto-compact-reader.js +164 -0
- package/dist/services/context/auto-compact-types.d.ts +143 -0
- package/dist/services/context/auto-compact-types.js +36 -0
- package/dist/services/context/collector.d.ts +24 -0
- package/dist/services/context/collector.js +133 -0
- package/dist/services/context/context-builder.d.ts +30 -0
- package/dist/services/context/context-builder.js +78 -0
- package/dist/services/context/context-guard.d.ts +49 -0
- package/dist/services/context/context-guard.js +91 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/context/context-schema.js +73 -0
- package/dist/services/context/dispatch-context-guard.d.ts +27 -0
- package/dist/services/context/dispatch-context-guard.js +192 -0
- package/dist/services/context/doc-retriever.d.ts +26 -0
- package/dist/services/context/doc-retriever.js +51 -0
- package/dist/services/context/headroom-client.d.ts +34 -0
- package/dist/services/context/headroom-client.js +117 -0
- package/dist/services/context/headroom-fetcher.d.ts +6 -0
- package/dist/services/context/headroom-fetcher.js +28 -0
- package/dist/services/context/headroom-prefs.d.ts +46 -0
- package/dist/services/context/headroom-prefs.js +34 -0
- package/dist/services/context/index.d.ts +7 -0
- package/dist/services/context/index.js +6 -0
- package/dist/services/context/main-session-monitor.d.ts +89 -0
- package/dist/services/context/main-session-monitor.js +142 -0
- package/dist/services/context/renderer.d.ts +20 -0
- package/dist/services/context/renderer.js +30 -0
- package/dist/services/context/shared-channel.d.ts +93 -0
- package/dist/services/context/shared-channel.js +308 -0
- package/dist/services/context/threshold.d.ts +35 -0
- package/dist/services/context/threshold.js +76 -0
- package/dist/services/context/tokenizer.d.ts +12 -0
- package/dist/services/context/tokenizer.js +43 -0
- package/dist/services/context/types.d.ts +93 -0
- package/dist/services/context/types.js +9 -0
- package/dist/services/crystallization/crystallization-service.d.ts +239 -0
- package/dist/services/crystallization/crystallization-service.js +397 -0
- package/dist/services/crystallization/crystallization-store.d.ts +75 -0
- package/dist/services/crystallization/crystallization-store.js +193 -0
- package/dist/services/crystallization/crystallization-types.d.ts +313 -0
- package/dist/services/crystallization/crystallization-types.js +299 -0
- package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
- package/dist/services/crystallization/evidence-brief-builder.js +240 -0
- package/dist/services/dashboard/project-dashboard-service.d.ts +91 -0
- package/dist/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/services/dispatch/batch-counter.d.ts +27 -0
- package/dist/services/dispatch/batch-counter.js +102 -0
- package/dist/services/dispatch/contract-store.d.ts +63 -0
- package/dist/services/dispatch/contract-store.js +157 -0
- package/dist/services/dispatch/dispatch-record-writer.d.ts +138 -0
- package/dist/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/services/dispatch/heartbeat-truncator.d.ts +26 -0
- package/dist/services/dispatch/heartbeat-truncator.js +13 -0
- package/dist/services/dispatch/leak-detector.d.ts +11 -0
- package/dist/services/dispatch/leak-detector.js +72 -0
- package/dist/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/services/dispatch/slice-dag.js +238 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
- package/dist/services/dispatch/sub-agent-dispatcher.js +382 -0
- package/dist/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/services/dispatch/test-tool-detection.js +46 -0
- package/dist/services/doc/doc-generator.d.ts +38 -0
- package/dist/services/doc/doc-generator.js +122 -0
- package/dist/services/doctor/doctor-service.d.ts +149 -0
- package/dist/services/doctor/doctor-service.js +929 -0
- package/dist/services/evolution/evolution-service.d.ts +137 -0
- package/dist/services/evolution/evolution-service.js +281 -0
- package/dist/services/evolution/evolution-store.d.ts +57 -0
- package/dist/services/evolution/evolution-store.js +232 -0
- package/dist/services/evolution/evolution-types.d.ts +706 -0
- package/dist/services/evolution/evolution-types.js +286 -0
- package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
- package/dist/services/evolution/independent-evaluator-runner.js +106 -0
- package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
- package/dist/services/evolution/regression-skeptic-runner.js +113 -0
- package/dist/services/feedback/feedback-promotion-service.d.ts +123 -0
- package/dist/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/services/filesystem/file-lock.d.ts +11 -0
- package/dist/services/filesystem/file-lock.js +152 -0
- package/dist/services/final-review/final-review-service.d.ts +12 -0
- package/dist/services/final-review/final-review-service.js +52 -0
- package/dist/services/final-review/final-review-types.d.ts +42 -0
- package/dist/services/final-review/final-review-types.js +18 -0
- package/dist/services/fixture/fixture-capture-service.d.ts +87 -0
- package/dist/services/fixture/fixture-capture-service.js +317 -0
- package/dist/services/fixture/fixture-sanitize-service.d.ts +117 -0
- package/dist/services/fixture/fixture-sanitize-service.js +161 -0
- package/dist/services/fixture/index.d.ts +8 -0
- package/dist/services/fixture/index.js +8 -0
- package/dist/services/fork/fork-sync-state.d.ts +85 -0
- package/dist/services/fork/fork-sync-state.js +130 -0
- package/dist/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +56 -0
- package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
- package/dist/services/fuzzy-matching/fzf-pick-service.js +158 -0
- package/dist/services/fuzzy-matching/types.d.ts +20 -0
- package/dist/services/fuzzy-matching/types.js +1 -0
- package/dist/services/handoff/handoff-parser.d.ts +28 -0
- package/dist/services/handoff/handoff-parser.js +69 -0
- package/dist/services/handoff/handoff-types.d.ts +39 -0
- package/dist/services/handoff/handoff-types.js +19 -0
- package/dist/services/handoff/handoff-writer.d.ts +23 -0
- package/dist/services/handoff/handoff-writer.js +30 -0
- package/dist/services/hooks/auto-compact-hook-install.d.ts +104 -0
- package/dist/services/hooks/auto-compact-hook-install.js +157 -0
- package/dist/services/hooks/output.d.ts +92 -0
- package/dist/services/hooks/output.js +111 -0
- package/dist/services/hooks/presence-marker-detector.d.ts +16 -0
- package/dist/services/hooks/presence-marker-detector.js +105 -0
- package/dist/services/ide/adapters/claude-code-adapter.d.ts +18 -0
- package/dist/services/ide/adapters/claude-code-adapter.js +103 -0
- package/dist/services/ide/adapters/codex-adapter.d.ts +46 -0
- package/dist/services/ide/adapters/codex-adapter.js +97 -0
- package/dist/services/ide/adapters/cursor-adapter.d.ts +36 -0
- package/dist/services/ide/adapters/cursor-adapter.js +84 -0
- package/dist/services/ide/adapters/hermes-adapter.d.ts +21 -0
- package/dist/services/ide/adapters/hermes-adapter.js +51 -0
- package/dist/services/ide/adapters/openclaw-adapter.d.ts +14 -0
- package/dist/services/ide/adapters/openclaw-adapter.js +42 -0
- package/dist/services/ide/adapters/trae-adapter.d.ts +42 -0
- package/dist/services/ide/adapters/trae-adapter.js +83 -0
- package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
- package/dist/services/ide/adapters/zcode-adapter.js +220 -0
- package/dist/services/ide/current-model-detector.d.ts +14 -0
- package/dist/services/ide/current-model-detector.js +60 -0
- package/dist/services/ide/hook-protocol.d.ts +47 -0
- package/dist/services/ide/hook-protocol.js +74 -0
- package/dist/services/ide/hook-translator.d.ts +72 -0
- package/dist/services/ide/hook-translator.js +128 -0
- package/dist/services/ide/ide-detector.d.ts +10 -0
- package/dist/services/ide/ide-detector.js +19 -0
- package/dist/services/ide/ide-registry.d.ts +14 -0
- package/dist/services/ide/ide-registry.js +63 -0
- package/dist/services/ide/ide-types.d.ts +253 -0
- package/dist/services/ide/ide-types.js +2 -0
- package/dist/services/ide/resource-profile.d.ts +52 -0
- package/dist/services/ide/resource-profile.js +33 -0
- package/dist/services/ide/shared/atomic-json.d.ts +15 -0
- package/dist/services/ide/shared/atomic-json.js +58 -0
- package/dist/services/ide/shared/safe-path.d.ts +11 -0
- package/dist/services/ide/shared/safe-path.js +29 -0
- package/dist/services/impact/impact-scan-service.d.ts +66 -0
- package/dist/services/impact/impact-scan-service.js +197 -0
- package/dist/services/job/job-event-emitter.d.ts +30 -0
- package/dist/services/job/job-event-emitter.js +5 -0
- package/dist/services/job/job-orchestrator.d.ts +50 -0
- package/dist/services/job/job-orchestrator.js +104 -0
- package/dist/services/job/job-progress-store.d.ts +60 -0
- package/dist/services/job/job-progress-store.js +70 -0
- package/dist/services/job/job-resource-snapshot.d.ts +7 -0
- package/dist/services/job/job-resource-snapshot.js +75 -0
- package/dist/services/job/job-rotation.d.ts +17 -0
- package/dist/services/job/job-rotation.js +30 -0
- package/dist/services/job/job-state-store.d.ts +24 -0
- package/dist/services/job/job-state-store.js +60 -0
- package/dist/services/job/job-types.d.ts +444 -0
- package/dist/services/job/job-types.js +87 -0
- package/dist/services/job/subagent-job-wrapper.d.ts +35 -0
- package/dist/services/job/subagent-job-wrapper.js +30 -0
- package/dist/services/legacy/legacy-detector.d.ts +34 -0
- package/dist/services/legacy/legacy-detector.js +111 -0
- package/dist/services/log/log-commands-service.d.ts +54 -0
- package/dist/services/log/log-commands-service.js +83 -0
- package/dist/services/log/logger.d.ts +103 -0
- package/dist/services/log/logger.js +224 -0
- package/dist/services/log/redact.d.ts +32 -0
- package/dist/services/log/redact.js +89 -0
- package/dist/services/log/retention.d.ts +34 -0
- package/dist/services/log/retention.js +78 -0
- package/dist/services/loop/evaluator-dispatcher.d.ts +50 -0
- package/dist/services/loop/evaluator-dispatcher.js +552 -0
- package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
- package/dist/services/loop/loop-bee-relation-service.js +211 -0
- package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
- package/dist/services/loop/loop-bee-relation-store.js +130 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
- package/dist/services/loop/loop-bee-relation-types.js +114 -0
- package/dist/services/loop/loop-release-service.d.ts +46 -0
- package/dist/services/loop/loop-release-service.js +66 -0
- package/dist/services/loop/loop-release-store.d.ts +55 -0
- package/dist/services/loop/loop-release-store.js +134 -0
- package/dist/services/loop/loop-release-types.d.ts +250 -0
- package/dist/services/loop/loop-release-types.js +162 -0
- package/dist/services/loop/monotonic-guard.d.ts +80 -0
- package/dist/services/loop/monotonic-guard.js +232 -0
- package/dist/services/loop/monotonic-runner.d.ts +58 -0
- package/dist/services/loop/monotonic-runner.js +231 -0
- package/dist/services/loop/run-driver.d.ts +70 -0
- package/dist/services/loop/run-driver.js +400 -0
- package/dist/services/loop/spec-service.d.ts +90 -0
- package/dist/services/loop/spec-service.js +497 -0
- package/dist/services/memory/llm-reranker.d.ts +174 -0
- package/dist/services/memory/llm-reranker.js +284 -0
- package/dist/services/memory/memory-search-service.d.ts +93 -0
- package/dist/services/memory/memory-search-service.js +117 -0
- package/dist/services/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -0
- package/dist/services/memory/project-memory-service.d.ts +167 -0
- package/dist/services/memory/project-memory-service.js +817 -0
- package/dist/services/migrate-skill-name/migrate.d.ts +17 -0
- package/dist/services/migrate-skill-name/migrate.js +152 -0
- package/dist/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/services/migrate-skill-name/schema.js +25 -0
- package/dist/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
- package/dist/services/migration/v2-10-to-v2-11-service.js +190 -0
- package/dist/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
- package/dist/services/migration/v2-10-to-v2-11-types.js +23 -0
- package/dist/services/mode/bypass-tracker.d.ts +4 -0
- package/dist/services/mode/bypass-tracker.js +31 -0
- package/dist/services/mode/mode-enforcement.d.ts +14 -0
- package/dist/services/mode/mode-enforcement.js +84 -0
- package/dist/services/mut/assert-scanner.d.ts +6 -0
- package/dist/services/mut/assert-scanner.js +116 -0
- package/dist/services/mut/index.d.ts +8 -0
- package/dist/services/mut/index.js +7 -0
- package/dist/services/mut/mut-runner.d.ts +39 -0
- package/dist/services/mut/mut-runner.js +29 -0
- package/dist/services/mut/production-stryker.d.ts +2 -0
- package/dist/services/mut/production-stryker.js +75 -0
- package/dist/services/mut/report-builder.d.ts +11 -0
- package/dist/services/mut/report-builder.js +110 -0
- package/dist/services/mut/report-loader.d.ts +31 -0
- package/dist/services/mut/report-loader.js +78 -0
- package/dist/services/mut/thresholds.d.ts +21 -0
- package/dist/services/mut/thresholds.js +22 -0
- package/dist/services/mut/types.d.ts +336 -0
- package/dist/services/mut/types.js +59 -0
- package/dist/services/observability/aggregation.d.ts +64 -0
- package/dist/services/observability/aggregation.js +217 -0
- package/dist/services/observability/jsonl-store.d.ts +59 -0
- package/dist/services/observability/jsonl-store.js +120 -0
- package/dist/services/observability/observability-service.d.ts +95 -0
- package/dist/services/observability/observability-service.js +119 -0
- package/dist/services/observability/report-formatter.d.ts +42 -0
- package/dist/services/observability/report-formatter.js +156 -0
- package/dist/services/openspec/openspec-archive-service.d.ts +12 -0
- package/dist/services/openspec/openspec-archive-service.js +28 -0
- package/dist/services/openspec/openspec-bridge-service.d.ts +16 -0
- package/dist/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/services/openspec/openspec-init-service.d.ts +23 -0
- package/dist/services/openspec/openspec-init-service.js +122 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/services/openspec/openspec-render-service.d.ts +38 -0
- package/dist/services/openspec/openspec-render-service.js +130 -0
- package/dist/services/openspec/openspec-scan-service.d.ts +6 -0
- package/dist/services/openspec/openspec-scan-service.js +123 -0
- package/dist/services/openspec/openspec-types.d.ts +39 -0
- package/dist/services/openspec/openspec-types.js +1 -0
- package/dist/services/openspec/openspec-validate-service.d.ts +27 -0
- package/dist/services/openspec/openspec-validate-service.js +77 -0
- package/dist/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/services/perf/perf-baseline-service.js +214 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
- package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
- package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
- package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-service.js +49 -0
- package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
- package/dist/services/polyrepo/polyrepo-types.js +1 -0
- package/dist/services/prd/handoff-auto-regen.d.ts +22 -0
- package/dist/services/prd/handoff-auto-regen.js +73 -0
- package/dist/services/prd/handoff-service.d.ts +54 -0
- package/dist/services/prd/handoff-service.js +142 -0
- package/dist/services/prd/handoff-types.d.ts +64 -0
- package/dist/services/prd/handoff-types.js +22 -0
- package/dist/services/prd/prd-blocks-checker.d.ts +51 -0
- package/dist/services/prd/prd-blocks-checker.js +130 -0
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/prd/project-scan-reader.d.ts +24 -0
- package/dist/services/prd/project-scan-reader.js +150 -0
- package/dist/services/prd/project-scan-sediment.d.ts +97 -0
- package/dist/services/prd/project-scan-sediment.js +445 -0
- package/dist/services/prd/project-scan-types.d.ts +66 -0
- package/dist/services/prd/project-scan-types.js +20 -0
- package/dist/services/preferences/preferences-service.d.ts +38 -0
- package/dist/services/preferences/preferences-service.js +198 -0
- package/dist/services/preferences/preferences-types.d.ts +148 -0
- package/dist/services/preferences/preferences-types.js +53 -0
- package/dist/services/profiles/profile-service.d.ts +6 -0
- package/dist/services/profiles/profile-service.js +19 -0
- package/dist/services/progress/progress-service.d.ts +125 -0
- package/dist/services/progress/progress-service.js +192 -0
- package/dist/services/providers/minimax-provider-service.d.ts +24 -0
- package/dist/services/providers/minimax-provider-service.js +143 -0
- package/dist/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/services/providers/minimax-worker-service.js +83 -0
- package/dist/services/proxy/proxy-service.d.ts +7 -0
- package/dist/services/proxy/proxy-service.js +31 -0
- package/dist/services/qa/browser-event-logger.d.ts +40 -0
- package/dist/services/qa/browser-event-logger.js +54 -0
- package/dist/services/qa/browser-restart-detector.d.ts +74 -0
- package/dist/services/qa/browser-restart-detector.js +138 -0
- package/dist/services/qa/browser-reuse-hint.d.ts +18 -0
- package/dist/services/qa/browser-reuse-hint.js +18 -0
- package/dist/services/qa/browser-wrapper-service.d.ts +37 -0
- package/dist/services/qa/browser-wrapper-service.js +88 -0
- package/dist/services/qa/qa-business-review-state.d.ts +47 -0
- package/dist/services/qa/qa-business-review-state.js +96 -0
- package/dist/services/rd/ast-gate.d.ts +19 -0
- package/dist/services/rd/ast-gate.js +71 -0
- package/dist/services/rd/impl.d.ts +9 -0
- package/dist/services/rd/impl.js +57 -0
- package/dist/services/rd/rd-service.d.ts +129 -0
- package/dist/services/rd/rd-service.js +441 -0
- package/dist/services/rd/reviewer-dispatch-policy.d.ts +122 -0
- package/dist/services/rd/reviewer-dispatch-policy.js +148 -0
- package/dist/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/services/rd/standards-diagnostic.js +166 -0
- package/dist/services/rd/strategic-stage.d.ts +4 -0
- package/dist/services/rd/strategic-stage.js +15 -0
- package/dist/services/rd/strategy.d.ts +13 -0
- package/dist/services/rd/strategy.js +60 -0
- package/dist/services/rd/tactical-stage.d.ts +33 -0
- package/dist/services/rd/tactical-stage.js +62 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/rd/types.js +47 -0
- package/dist/services/recommendations/capability-availability.d.ts +5 -0
- package/dist/services/recommendations/capability-availability.js +40 -0
- package/dist/services/recommendations/capability-map-service.d.ts +7 -0
- package/dist/services/recommendations/capability-map-service.js +131 -0
- package/dist/services/recommendations/capability-seed-items.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-items.js +140 -0
- package/dist/services/recommendations/capability-seed-mappings.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/services/recommendations/capability-seed-sources.d.ts +2 -0
- package/dist/services/recommendations/capability-seed-sources.js +35 -0
- package/dist/services/recommendations/recommendation-service.d.ts +8 -0
- package/dist/services/recommendations/recommendation-service.js +106 -0
- package/dist/services/recommendations/recommendation-types.d.ts +129 -0
- package/dist/services/recommendations/recommendation-types.js +1 -0
- package/dist/services/recommendations/seed-capability-catalog.d.ts +3 -0
- package/dist/services/recommendations/seed-capability-catalog.js +3 -0
- package/dist/services/refactor/refactor-service.d.ts +9 -0
- package/dist/services/refactor/refactor-service.js +36 -0
- package/dist/services/release/release-state.d.ts +70 -0
- package/dist/services/release/release-state.js +140 -0
- package/dist/services/retrospective/retrospective-index.d.ts +37 -0
- package/dist/services/retrospective/retrospective-index.js +110 -0
- package/dist/services/retrospective/retrospective-search-service.d.ts +55 -0
- package/dist/services/retrospective/retrospective-search-service.js +107 -0
- package/dist/services/retrospective/retrospective-show.d.ts +40 -0
- package/dist/services/retrospective/retrospective-show.js +109 -0
- package/dist/services/reviewer/model-family.d.ts +18 -0
- package/dist/services/reviewer/model-family.js +70 -0
- package/dist/services/reviewer/providers/anthropic.d.ts +2 -0
- package/dist/services/reviewer/providers/anthropic.js +61 -0
- package/dist/services/reviewer/providers/ollama.d.ts +26 -0
- package/dist/services/reviewer/providers/ollama.js +38 -0
- package/dist/services/reviewer/providers/openai.d.ts +2 -0
- package/dist/services/reviewer/providers/openai.js +63 -0
- package/dist/services/reviewer/reviewer-config.d.ts +34 -0
- package/dist/services/reviewer/reviewer-config.js +100 -0
- package/dist/services/reviewer/reviewer-service.d.ts +56 -0
- package/dist/services/reviewer/reviewer-service.js +263 -0
- package/dist/services/reviewer/selection-strategies.d.ts +27 -0
- package/dist/services/reviewer/selection-strategies.js +53 -0
- package/dist/services/role/role-registry.d.ts +38 -0
- package/dist/services/role/role-registry.js +83 -0
- package/dist/services/runtime/runtime-detector.d.ts +15 -0
- package/dist/services/runtime/runtime-detector.js +62 -0
- package/dist/services/runtime/runtime-service.d.ts +59 -0
- package/dist/services/runtime/runtime-service.js +51 -0
- package/dist/services/runtime/vendor-adapter.d.ts +59 -0
- package/dist/services/runtime/vendor-adapter.js +1 -0
- package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
- package/dist/services/runtime/vendors/claude-code.js +39 -0
- package/dist/services/runtime/vendors/codex.d.ts +7 -0
- package/dist/services/runtime/vendors/codex.js +43 -0
- package/dist/services/runtime/vendors/copilot.d.ts +7 -0
- package/dist/services/runtime/vendors/copilot.js +40 -0
- package/dist/services/sc/index.d.ts +1 -0
- package/dist/services/sc/index.js +1 -0
- package/dist/services/sc/sc-service.d.ts +131 -0
- package/dist/services/sc/sc-service.js +552 -0
- package/dist/services/scan/acceptance-coverage-service.d.ts +42 -0
- package/dist/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/services/scan/api-surface-service.d.ts +69 -0
- package/dist/services/scan/api-surface-service.js +239 -0
- package/dist/services/scan/archetype-service.d.ts +5 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/diff-scope-service.d.ts +40 -0
- package/dist/services/scan/diff-scope-service.js +198 -0
- package/dist/services/scan/existing-system-service.d.ts +7 -0
- package/dist/services/scan/existing-system-service.js +300 -0
- package/dist/services/scan/file-size-scan.d.ts +23 -0
- package/dist/services/scan/file-size-scan.js +68 -0
- package/dist/services/scan/karpathy-service.d.ts +60 -0
- package/dist/services/scan/karpathy-service.js +228 -0
- package/dist/services/scan/libraries-service.d.ts +24 -0
- package/dist/services/scan/libraries-service.js +419 -0
- package/dist/services/scan/libraries-types.d.ts +59 -0
- package/dist/services/scan/libraries-types.js +9 -0
- package/dist/services/scan/orphan-service.d.ts +76 -0
- package/dist/services/scan/orphan-service.js +538 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/scan/scan-types.js +1 -0
- package/dist/services/scan/type-sanity-service.d.ts +23 -0
- package/dist/services/scan/type-sanity-service.js +116 -0
- package/dist/services/security/safe-settings-path.d.ts +12 -0
- package/dist/services/security/safe-settings-path.js +104 -0
- package/dist/services/sediment/dispose-confirm.d.ts +9 -0
- package/dist/services/sediment/dispose-confirm.js +5 -0
- package/dist/services/sediment/json-schema.d.ts +247 -0
- package/dist/services/sediment/json-schema.js +26 -0
- package/dist/services/sediment/manifest-lint.d.ts +13 -0
- package/dist/services/sediment/manifest-lint.js +11 -0
- package/dist/services/sediment/pool-paths.d.ts +22 -0
- package/dist/services/sediment/pool-paths.js +25 -0
- package/dist/services/sediment/pool-read.d.ts +20 -0
- package/dist/services/sediment/pool-read.js +73 -0
- package/dist/services/sediment/pool-rebuild-index.d.ts +15 -0
- package/dist/services/sediment/pool-rebuild-index.js +28 -0
- package/dist/services/sediment/pool-write.d.ts +14 -0
- package/dist/services/sediment/pool-write.js +25 -0
- package/dist/services/sediment/promotion-gate.d.ts +12 -0
- package/dist/services/sediment/promotion-gate.js +20 -0
- package/dist/services/sediment/types.d.ts +52 -0
- package/dist/services/sediment/types.js +1 -0
- package/dist/services/session/binding-status-service.d.ts +56 -0
- package/dist/services/session/binding-status-service.js +106 -0
- package/dist/services/session/binding-store.d.ts +161 -0
- package/dist/services/session/binding-store.js +509 -0
- package/dist/services/session/caller-binding-service.d.ts +70 -0
- package/dist/services/session/caller-binding-service.js +148 -0
- package/dist/services/session/caller-id-types.d.ts +77 -0
- package/dist/services/session/caller-id-types.js +46 -0
- package/dist/services/session/getSessionDir.d.ts +1 -0
- package/dist/services/session/getSessionDir.js +27 -0
- package/dist/services/session/index.d.ts +6 -0
- package/dist/services/session/index.js +7 -0
- package/dist/services/session/platform-fallbacks.d.ts +31 -0
- package/dist/services/session/platform-fallbacks.js +35 -0
- package/dist/services/session/resolve-caller-id.d.ts +57 -0
- package/dist/services/session/resolve-caller-id.js +88 -0
- package/dist/services/session/session-binding-bridge.d.ts +76 -0
- package/dist/services/session/session-binding-bridge.js +247 -0
- package/dist/services/session/session-checkpoint-service.d.ts +57 -0
- package/dist/services/session/session-checkpoint-service.js +143 -0
- package/dist/services/session/session-manager.d.ts +168 -0
- package/dist/services/session/session-manager.js +502 -0
- package/dist/services/session/session-resume-service.d.ts +25 -0
- package/dist/services/session/session-resume-service.js +101 -0
- package/dist/services/share/bundle-reader.d.ts +100 -0
- package/dist/services/share/bundle-reader.js +434 -0
- package/dist/services/share/bundle-types.d.ts +392 -0
- package/dist/services/share/bundle-types.js +318 -0
- package/dist/services/share/bundle-writer.d.ts +97 -0
- package/dist/services/share/bundle-writer.js +429 -0
- package/dist/services/share/run-state-contract.d.ts +133 -0
- package/dist/services/share/run-state-contract.js +138 -0
- package/dist/services/signal/cancel-handler.d.ts +14 -0
- package/dist/services/signal/cancel-handler.js +76 -0
- package/dist/services/skill/resume-detector.d.ts +54 -0
- package/dist/services/skill/resume-detector.js +334 -0
- package/dist/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/services/skill/skill-scheduler.js +53 -0
- package/dist/services/skill/skill-search-service.d.ts +88 -0
- package/dist/services/skill/skill-search-service.js +228 -0
- package/dist/services/skillhub/release-diff.d.ts +18 -0
- package/dist/services/skillhub/release-diff.js +38 -0
- package/dist/services/skillhub/release-export.d.ts +8 -0
- package/dist/services/skillhub/release-export.js +31 -0
- package/dist/services/skillhub/release-gc-blobs.d.ts +13 -0
- package/dist/services/skillhub/release-gc-blobs.js +32 -0
- package/dist/services/skillhub/release-import.d.ts +7 -0
- package/dist/services/skillhub/release-import.js +64 -0
- package/dist/services/skillhub/release-retain.d.ts +23 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.d.ts +22 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/tar-runtime.d.ts +21 -0
- package/dist/services/skillhub/tar-runtime.js +91 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skillhub/types.js +1 -0
- package/dist/services/skills/hooks-settings-service.d.ts +137 -0
- package/dist/services/skills/hooks-settings-service.js +396 -0
- package/dist/services/skills/skill-conformance-service.d.ts +40 -0
- package/dist/services/skills/skill-conformance-service.js +139 -0
- package/dist/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/services/skills/skill-presence-service.js +474 -0
- package/dist/services/skills/skill-registry.d.ts +17 -0
- package/dist/services/skills/skill-registry.js +67 -0
- package/dist/services/skills/skill-runbook-service.d.ts +11 -0
- package/dist/services/skills/skill-runbook-service.js +128 -0
- package/dist/services/skills/skill-statusline-renderer.d.ts +6 -0
- package/dist/services/skills/skill-statusline-renderer.js +55 -0
- package/dist/services/skills/skill-statusline-service.d.ts +24 -0
- package/dist/services/skills/skill-statusline-service.js +110 -0
- package/dist/services/skills/statusline-settings-service.d.ts +59 -0
- package/dist/services/skills/statusline-settings-service.js +141 -0
- package/dist/services/skills/sync-service.d.ts +86 -0
- package/dist/services/skills/sync-service.js +271 -0
- package/dist/services/slice/calibration-store.d.ts +39 -0
- package/dist/services/slice/calibration-store.js +68 -0
- package/dist/services/slice/cross-pass-edge-merger.d.ts +53 -0
- package/dist/services/slice/cross-pass-edge-merger.js +246 -0
- package/dist/services/slice/granularity-decider.d.ts +37 -0
- package/dist/services/slice/granularity-decider.js +40 -0
- package/dist/services/slice/llm-arbitrator.d.ts +35 -0
- package/dist/services/slice/llm-arbitrator.js +63 -0
- package/dist/services/slice/multi-pass-orchestrator.d.ts +67 -0
- package/dist/services/slice/multi-pass-orchestrator.js +225 -0
- package/dist/services/slice/schema-router.d.ts +44 -0
- package/dist/services/slice/schema-router.js +61 -0
- package/dist/services/slice/slice-archive-service.d.ts +20 -0
- package/dist/services/slice/slice-archive-service.js +111 -0
- package/dist/services/slice/slice-benchmark-service.d.ts +19 -0
- package/dist/services/slice/slice-benchmark-service.js +60 -0
- package/dist/services/slice/slice-check-service.d.ts +2 -0
- package/dist/services/slice/slice-check-service.js +459 -0
- package/dist/services/slice/slice-check-types.d.ts +104 -0
- package/dist/services/slice/slice-check-types.js +28 -0
- package/dist/services/slice/slice-decompose-runners.d.ts +23 -0
- package/dist/services/slice/slice-decompose-runners.js +174 -0
- package/dist/services/slice/slice-decompose-service.d.ts +24 -0
- package/dist/services/slice/slice-decompose-service.js +532 -0
- package/dist/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/services/slice/slice-decompose-types.js +30 -0
- package/dist/services/slice/slice-integration.d.ts +43 -0
- package/dist/services/slice/slice-integration.js +106 -0
- package/dist/services/slice/slice-pick-service.d.ts +32 -0
- package/dist/services/slice/slice-pick-service.js +75 -0
- package/dist/services/slice/slice-review-state.d.ts +70 -0
- package/dist/services/slice/slice-review-state.js +109 -0
- package/dist/services/slice/slice-topology-types.d.ts +115 -0
- package/dist/services/slice/slice-topology-types.js +20 -0
- package/dist/services/smoke/smoke-paths-state.d.ts +73 -0
- package/dist/services/smoke/smoke-paths-state.js +117 -0
- package/dist/services/sop/gate-enforce-service.d.ts +33 -0
- package/dist/services/sop/gate-enforce-service.js +168 -0
- package/dist/services/sop/sop-advance-service.d.ts +74 -0
- package/dist/services/sop/sop-advance-service.js +115 -0
- package/dist/services/sop/sop-check-service.d.ts +45 -0
- package/dist/services/sop/sop-check-service.js +181 -0
- package/dist/services/sop/sop-paths.d.ts +62 -0
- package/dist/services/sop/sop-paths.js +92 -0
- package/dist/services/sop/sop-registry-service.d.ts +46 -0
- package/dist/services/sop/sop-registry-service.js +89 -0
- package/dist/services/sop/sop-service.d.ts +55 -0
- package/dist/services/sop/sop-service.js +222 -0
- package/dist/services/sop/sop-types.d.ts +95 -0
- package/dist/services/sop/sop-types.js +11 -0
- package/dist/services/standards/ide-aware-standards-service.d.ts +94 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
- package/dist/services/standards/loop-engineering-lint.js +101 -0
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
- package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
- package/dist/services/standards/migrate-claude-rules-service.d.ts +19 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/migrate-service.d.ts +63 -0
- package/dist/services/standards/migrate-service.js +193 -0
- package/dist/services/standards/missing-standards-detector.d.ts +81 -0
- package/dist/services/standards/missing-standards-detector.js +139 -0
- package/dist/services/standards/project-context.d.ts +24 -0
- package/dist/services/standards/project-context.js +314 -0
- package/dist/services/standards/project-standards-service.d.ts +114 -0
- package/dist/services/standards/project-standards-service.js +693 -0
- package/dist/services/tech/tech-service.d.ts +69 -0
- package/dist/services/tech/tech-service.js +299 -0
- package/dist/services/test-cache/test-cache-service.d.ts +70 -0
- package/dist/services/test-cache/test-cache-service.js +175 -0
- package/dist/services/understand/hybrid-types.d.ts +32 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-hybrid-service.d.ts +10 -0
- package/dist/services/understand/understand-hybrid-service.js +100 -0
- package/dist/services/understand/understand-scan-service.d.ts +28 -0
- package/dist/services/understand/understand-scan-service.js +170 -0
- package/dist/services/understand/understand-types.d.ts +50 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/1x-detector-service.d.ts +7 -0
- package/dist/services/upgrade/1x-detector-service.js +94 -0
- package/dist/services/upgrade/gitignore-migrate-service.d.ts +56 -0
- package/dist/services/upgrade/gitignore-migrate-service.js +170 -0
- package/dist/services/upgrade/upgrade-service.d.ts +81 -0
- package/dist/services/upgrade/upgrade-service.js +403 -0
- package/dist/services/verdict/envelopes.d.ts +93 -0
- package/dist/services/verdict/envelopes.js +349 -0
- package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/services/verdict/verdict-aggregator.js +112 -0
- package/dist/services/workflow/artifact-paths.d.ts +59 -0
- package/dist/services/workflow/artifact-paths.js +166 -0
- package/dist/services/workflow/autonomous-resume-writer.d.ts +16 -0
- package/dist/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/services/workflow/plan-reader.d.ts +29 -0
- package/dist/services/workflow/plan-reader.js +174 -0
- package/dist/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/services/workflow/plan-refresher.js +353 -0
- package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
- package/dist/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/services/workflow/workflow-loader.d.ts +63 -0
- package/dist/services/workflow/workflow-loader.js +168 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +233 -0
- package/dist/services/workflow/workflow-skip-service.d.ts +106 -0
- package/dist/services/workflow/workflow-skip-service.js +209 -0
- package/dist/services/workflow/workflow-spec.d.ts +116 -0
- package/dist/services/workflow/workflow-spec.js +431 -0
- package/dist/services/workflow/workflow-state-store.d.ts +27 -0
- package/dist/services/workflow/workflow-state-store.js +95 -0
- package/dist/services/workspace/claude-settings-template.d.ts +101 -0
- package/dist/services/workspace/claude-settings-template.js +254 -0
- package/dist/services/workspace/migrate-1-4-1-service.d.ts +44 -0
- package/dist/services/workspace/migrate-1-4-1-service.js +195 -0
- package/dist/services/workspace/migrate-service.d.ts +2 -0
- package/dist/services/workspace/migrate-service.js +613 -0
- package/dist/services/workspace/migrate-types.d.ts +127 -0
- package/dist/services/workspace/migrate-types.js +21 -0
- package/dist/services/workspace/reconcile-service.d.ts +188 -0
- package/dist/services/workspace/reconcile-service.js +683 -0
- package/dist/services/workspace/reconcile-types.d.ts +130 -0
- package/dist/services/workspace/reconcile-types.js +13 -0
- package/dist/services/workspace/sid-naming-guard.d.ts +17 -0
- package/dist/services/workspace/sid-naming-guard.js +34 -0
- package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
- package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
- package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
- package/dist/services/workspace/templates/project-scan/index.js +60 -0
- package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
- package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/services/workspace/workspace-clean-service.d.ts +28 -0
- package/dist/services/workspace/workspace-clean-service.js +46 -0
- package/dist/services/workspace/workspace-service.d.ts +177 -0
- package/dist/services/workspace/workspace-service.js +432 -0
- package/dist/services/workspace/workspace-state-service.d.ts +7 -0
- package/dist/services/workspace/workspace-state-service.js +43 -0
- package/dist/shared/format-md-compact.d.ts +32 -0
- package/dist/shared/format-md-compact.js +297 -0
- package/dist/shared/frontmatter.d.ts +6 -0
- package/dist/shared/frontmatter.js +165 -0
- package/dist/shared/fs-utils.d.ts +4 -0
- package/dist/shared/fs-utils.js +16 -0
- package/dist/shared/fs.d.ts +4 -0
- package/dist/shared/fs.js +26 -0
- package/dist/shared/incrementing-number.d.ts +23 -0
- package/dist/shared/incrementing-number.js +68 -0
- package/dist/shared/json-schema-mini.d.ts +10 -0
- package/dist/shared/json-schema-mini.js +113 -0
- package/dist/shared/path-safety.d.ts +21 -0
- package/dist/shared/path-safety.js +54 -0
- package/dist/shared/path-utils.d.ts +13 -0
- package/dist/shared/path-utils.js +56 -0
- package/dist/shared/paths.d.ts +6 -0
- package/dist/shared/paths.js +50 -0
- package/dist/shared/planner-response.d.ts +21 -0
- package/dist/shared/planner-response.js +26 -0
- package/dist/shared/platform.d.ts +6 -0
- package/dist/shared/platform.js +11 -0
- package/dist/shared/process.d.ts +5 -0
- package/dist/shared/process.js +12 -0
- package/dist/shared/result.d.ts +22 -0
- package/dist/shared/result.js +46 -0
- package/dist/shared/stale-policy.d.ts +67 -0
- package/dist/shared/stale-policy.js +85 -0
- package/dist/shared/version.d.ts +1 -0
- package/dist/shared/version.js +1 -0
- package/dist/skills/peaks-maker/index.d.ts +5 -0
- package/dist/skills/peaks-maker/index.js +32 -0
- package/package.json +5 -4
- package/scripts/copy-templates.mjs +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pluggable executor for sub-step command spawns. Production
|
|
3
|
+
* callers omit `executor` on `UpgradeInput`; the default
|
|
4
|
+
* (`defaultSubstepExecutor`) wraps `node:child_process` `spawnSync`.
|
|
5
|
+
* Tests pass a synchronous fake executor to avoid the spawn cost.
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Return `status: 0` for success, non-zero for failure, `null`
|
|
9
|
+
* for synchronous spawn errors (binary not found, EACCES, …).
|
|
10
|
+
* - `stdout` / `stderr` are captured as UTF-8 strings.
|
|
11
|
+
* - `durationMs` is the wall-clock duration of the spawn
|
|
12
|
+
* (caller-facing field on `SubStepResult`).
|
|
13
|
+
*/
|
|
14
|
+
export type SubstepExecutor = (command: string, args: readonly string[], timeoutMs: number) => {
|
|
15
|
+
status: number | null;
|
|
16
|
+
stdout: string;
|
|
17
|
+
stderr: string;
|
|
18
|
+
durationMs: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Default substep executor — wraps `spawnSync` with the same
|
|
22
|
+
* stdio / encoding / timeout config the umbrella has used since
|
|
23
|
+
* v1. Exported for test coverage: the seam-preservation test
|
|
24
|
+
* imports this directly to verify the normalized return shape
|
|
25
|
+
* on a spawn failure (e.g. a non-existent command).
|
|
26
|
+
*/
|
|
27
|
+
export declare const defaultSubstepExecutor: SubstepExecutor;
|
|
28
|
+
export interface UpgradeInput {
|
|
29
|
+
readonly projectRoot: string;
|
|
30
|
+
/**
|
|
31
|
+
* When true, the umbrella is being invoked from the
|
|
32
|
+
* `npm i -g peaks-loop` postinstall. Suppresses the
|
|
33
|
+
* interactive prompts and accepts soft-fail on any
|
|
34
|
+
* sub-step.
|
|
35
|
+
*/
|
|
36
|
+
readonly auto?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* When omitted, the sub-commands are inferred from PATH
|
|
39
|
+
* (the postinstall puts the binary there). The umbrella
|
|
40
|
+
* never blocks on a missing binary — it surfaces the
|
|
41
|
+
* install hint in `nextActions` instead.
|
|
42
|
+
*/
|
|
43
|
+
readonly peaksBin?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Optional injectable executor for sub-step command execution.
|
|
46
|
+
* When omitted, the umbrella uses `defaultSubstepExecutor`
|
|
47
|
+
* (real `spawnSync`). Tests pass a synchronous fake to avoid
|
|
48
|
+
* the per-sub-step `node peaks.js …` spawn cost.
|
|
49
|
+
*/
|
|
50
|
+
readonly executor?: SubstepExecutor;
|
|
51
|
+
}
|
|
52
|
+
export interface SubStepResult {
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly status: 'pass' | 'fail' | 'skipped';
|
|
55
|
+
readonly exitCode: number | null;
|
|
56
|
+
readonly stdout: string;
|
|
57
|
+
readonly stderr: string;
|
|
58
|
+
readonly durationMs: number;
|
|
59
|
+
}
|
|
60
|
+
export interface UpgradeResult {
|
|
61
|
+
readonly applied: boolean;
|
|
62
|
+
readonly fromVersion: string | null;
|
|
63
|
+
readonly toVersion: string;
|
|
64
|
+
readonly projectRoot: string;
|
|
65
|
+
readonly steps: readonly SubStepResult[];
|
|
66
|
+
readonly passedCount: number;
|
|
67
|
+
readonly failedCount: number;
|
|
68
|
+
readonly skippedCount: number;
|
|
69
|
+
readonly auditBefore: {
|
|
70
|
+
totalRedLines: number;
|
|
71
|
+
cliBacked: number;
|
|
72
|
+
} | null;
|
|
73
|
+
readonly auditAfter: {
|
|
74
|
+
totalRedLines: number;
|
|
75
|
+
cliBacked: number;
|
|
76
|
+
} | null;
|
|
77
|
+
readonly upgradeRecordPath: string | null;
|
|
78
|
+
readonly nextActions: readonly string[];
|
|
79
|
+
readonly warnings: readonly string[];
|
|
80
|
+
}
|
|
81
|
+
export declare function runUpgrade(input: UpgradeInput): UpgradeResult;
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks upgrade --to 2.0 — umbrella service for the 1.x → 2.0
|
|
3
|
+
* migration.
|
|
4
|
+
*
|
|
5
|
+
* Per the "one-key completion" + "minimal-user-operation" tenets
|
|
6
|
+
* (2026-06-11), the typical upgrade path is:
|
|
7
|
+
*
|
|
8
|
+
* $ npm i -g peaks-loop@2.0 # postinstall does everything
|
|
9
|
+
*
|
|
10
|
+
* OR (postinstall skipped / manual fallback):
|
|
11
|
+
*
|
|
12
|
+
* $ peaks upgrade --to 2.0
|
|
13
|
+
*
|
|
14
|
+
* The umbrella orchestrates 7 sub-commands:
|
|
15
|
+
* 1. config migrate (already ships as `peaks config migrate`)
|
|
16
|
+
* 2. standards migrate (`peaks standards migrate --from-claude-rules`)
|
|
17
|
+
* 3. memory extract (already ships as `peaks memory extract`)
|
|
18
|
+
* 4. hooks install (already ships as `peaks hooks install`)
|
|
19
|
+
* 5. skill sync (this session, `peaks skill sync --all`)
|
|
20
|
+
* 6. audit verify (already ships as `peaks audit red-lines`)
|
|
21
|
+
* 7. write upgrade record (in-process, .peaks/memory/upgrade-2.0-*.md)
|
|
22
|
+
*
|
|
23
|
+
* Each sub-step is a thin shell-out to the existing CLI; the
|
|
24
|
+
* umbrella's only in-process work is the audit and the upgrade
|
|
25
|
+
* record write. Sub-step failures are SOFT (logged + nextActions
|
|
26
|
+
* populated) so the umbrella never blocks a successful partial
|
|
27
|
+
* upgrade.
|
|
28
|
+
*/
|
|
29
|
+
import { spawnSync } from 'node:child_process';
|
|
30
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
31
|
+
import { join, dirname, relative, resolve } from 'node:path';
|
|
32
|
+
import { fileURLToPath } from 'node:url';
|
|
33
|
+
import { runRedLinesAudit } from '../audit/red-lines-service.js';
|
|
34
|
+
import { savePreferences } from '../preferences/preferences-service.js';
|
|
35
|
+
import { migrateGitignoreFile } from './gitignore-migrate-service.js';
|
|
36
|
+
/**
|
|
37
|
+
* Default substep executor — wraps `spawnSync` with the same
|
|
38
|
+
* stdio / encoding / timeout config the umbrella has used since
|
|
39
|
+
* v1. Exported for test coverage: the seam-preservation test
|
|
40
|
+
* imports this directly to verify the normalized return shape
|
|
41
|
+
* on a spawn failure (e.g. a non-existent command).
|
|
42
|
+
*/
|
|
43
|
+
export const defaultSubstepExecutor = (command, args, timeoutMs) => {
|
|
44
|
+
const start = Date.now();
|
|
45
|
+
try {
|
|
46
|
+
const result = spawnSync(command, args, {
|
|
47
|
+
encoding: 'utf8',
|
|
48
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
49
|
+
timeout: timeoutMs,
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
status: result.status,
|
|
53
|
+
stdout: result.stdout ?? '',
|
|
54
|
+
stderr: result.stderr ?? '',
|
|
55
|
+
durationMs: Date.now() - start,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
60
|
+
return {
|
|
61
|
+
status: null,
|
|
62
|
+
stdout: '',
|
|
63
|
+
stderr: message,
|
|
64
|
+
durationMs: Date.now() - start,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const STEPS = [
|
|
69
|
+
{ name: 'config-migrate', args: (p) => ['config', 'migrate', '--project', p, '--apply', '--json'] },
|
|
70
|
+
{ name: 'standards-migrate', args: (p) => ['standards', 'migrate', '--from-claude-rules', '--project', p, '--apply', '--json'] },
|
|
71
|
+
// memory extract is special: its --artifact takes literal file
|
|
72
|
+
// paths (memory-service rejects glob patterns via realpathSync).
|
|
73
|
+
// The umbrella expands the three documented patterns
|
|
74
|
+
// (skills/**/SKILL.md, CLAUDE.md, .claude/rules/**/*.md) on disk
|
|
75
|
+
// and passes the resulting literal list. See runUpgrade's special
|
|
76
|
+
// case below for the args resolution; the args function here is
|
|
77
|
+
// a placeholder so the STEPS table stays uniform.
|
|
78
|
+
{ name: 'memory-extract', args: (p) => ['memory', 'extract', '--project', p, '--json'] },
|
|
79
|
+
{ name: 'hooks-install', args: (p) => ['hooks', 'install', '--project', p, '--json'] },
|
|
80
|
+
{ name: 'skill-sync', args: (p) => ['skill', 'sync', '--all', '--project', p, '--json'] },
|
|
81
|
+
{ name: 'audit-verify', args: (p) => ['audit', 'red-lines', '--project', p, '--json'] },
|
|
82
|
+
];
|
|
83
|
+
/**
|
|
84
|
+
* Walk `<root>` recursively and collect every file whose basename
|
|
85
|
+
* matches `predicate`. Returns absolute paths.
|
|
86
|
+
*
|
|
87
|
+
* Mirrors `readMarkdownFilesRecursive` in
|
|
88
|
+
* src/services/standards/migrate-claude-rules-service.ts so the
|
|
89
|
+
* umbrella does not pull a new glob dependency (Node 20+ engine
|
|
90
|
+
* constraint — `fs.globSync` requires Node 22+).
|
|
91
|
+
*/
|
|
92
|
+
function collectFilesRecursive(root, predicate) {
|
|
93
|
+
if (!existsSync(root))
|
|
94
|
+
return [];
|
|
95
|
+
const stat = statSync(root);
|
|
96
|
+
if (stat.isFile()) {
|
|
97
|
+
return predicate(root.split(/[\\/]/).pop() ?? '') ? [root] : [];
|
|
98
|
+
}
|
|
99
|
+
if (!stat.isDirectory())
|
|
100
|
+
return [];
|
|
101
|
+
const out = [];
|
|
102
|
+
for (const entry of readdirSync(root)) {
|
|
103
|
+
const child = join(root, entry);
|
|
104
|
+
let childStat;
|
|
105
|
+
try {
|
|
106
|
+
childStat = statSync(child);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (childStat.isFile()) {
|
|
112
|
+
if (predicate(entry))
|
|
113
|
+
out.push(child);
|
|
114
|
+
}
|
|
115
|
+
else if (childStat.isDirectory()) {
|
|
116
|
+
out.push(...collectFilesRecursive(child, predicate));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Resolve the three documented memory-extract artifact patterns
|
|
123
|
+
* against a real project tree. Returns project-relative paths
|
|
124
|
+
* (memory-service joins them with --project root) so the
|
|
125
|
+
* realpathSync inside memory-service's assertInsideProject
|
|
126
|
+
* succeeds.
|
|
127
|
+
*
|
|
128
|
+
* Patterns:
|
|
129
|
+
* - skills/[asterisk][asterisk]/SKILL.md (project-root convention)
|
|
130
|
+
* - .claude/skills/[asterisk][asterisk]/SKILL.md (Claude-Code consumer convention; ice-cola)
|
|
131
|
+
* - CLAUDE.md
|
|
132
|
+
* - .claude/rules/[asterisk][asterisk]/[asterisk].md
|
|
133
|
+
*
|
|
134
|
+
* Returns an empty list when none of the roots exist. The
|
|
135
|
+
* caller marks the step skipped in that case.
|
|
136
|
+
*/
|
|
137
|
+
function expandMemoryArtifacts(projectRoot) {
|
|
138
|
+
const out = [];
|
|
139
|
+
// skills/**/SKILL.md (peaks-loop repo convention)
|
|
140
|
+
const skillFiles = collectFilesRecursive(join(projectRoot, 'skills'), (name) => name === 'SKILL.md');
|
|
141
|
+
for (const abs of skillFiles) {
|
|
142
|
+
out.push(relative(projectRoot, abs));
|
|
143
|
+
}
|
|
144
|
+
// .claude/skills/**/SKILL.md (Claude-Code consumer convention;
|
|
145
|
+
// surfaced by ice-cola dogfood 2026-06-12 — the 1.x install
|
|
146
|
+
// landed skills under .claude/skills/, not <root>/skills/)
|
|
147
|
+
const claudeSkillFiles = collectFilesRecursive(join(projectRoot, '.claude', 'skills'), (name) => name === 'SKILL.md');
|
|
148
|
+
for (const abs of claudeSkillFiles) {
|
|
149
|
+
out.push(relative(projectRoot, abs));
|
|
150
|
+
}
|
|
151
|
+
// CLAUDE.md (literal)
|
|
152
|
+
const claudeMd = join(projectRoot, 'CLAUDE.md');
|
|
153
|
+
if (existsSync(claudeMd) && statSync(claudeMd).isFile()) {
|
|
154
|
+
out.push('CLAUDE.md');
|
|
155
|
+
}
|
|
156
|
+
// .claude/rules/**/*.md
|
|
157
|
+
const claudeRules = collectFilesRecursive(join(projectRoot, '.claude', 'rules'), (name) => name.endsWith('.md'));
|
|
158
|
+
for (const abs of claudeRules) {
|
|
159
|
+
out.push(relative(projectRoot, abs));
|
|
160
|
+
}
|
|
161
|
+
return out;
|
|
162
|
+
}
|
|
163
|
+
function read1xVersion(cwd) {
|
|
164
|
+
const home = process.env['HOME'] ?? process.env['USERPROFILE'] ?? '';
|
|
165
|
+
if (home.length === 0)
|
|
166
|
+
return null;
|
|
167
|
+
const global = join(home, '.peaks', 'config.json');
|
|
168
|
+
if (!existsSync(global))
|
|
169
|
+
return null;
|
|
170
|
+
try {
|
|
171
|
+
const raw = JSON.parse(readFileSync(global, 'utf8'));
|
|
172
|
+
if (typeof raw.version === 'string')
|
|
173
|
+
return raw.version;
|
|
174
|
+
}
|
|
175
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
176
|
+
// ignore
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
function runStep(peaksBin, name, args, timeoutMs = 60_000, executor = defaultSubstepExecutor) {
|
|
181
|
+
// The global `peaks` shim is a `/bin/sh` symlink script (the
|
|
182
|
+
// npm install postinstall creates `peaks` → `peaks.sh` on
|
|
183
|
+
// Windows). cmd.exe (the default Windows shell) cannot run
|
|
184
|
+
// `.sh` scripts directly, so the shim fails with "unknown
|
|
185
|
+
// command 'migrate'" etc. The fix: prefer the local node
|
|
186
|
+
// binary + the peaks.js script path. The umbrella resolves
|
|
187
|
+
// the script path at startup; only falls back to `peaks` if
|
|
188
|
+
// no script path is available (Unix-only).
|
|
189
|
+
let command;
|
|
190
|
+
let spawnArgs;
|
|
191
|
+
if (peaksBin.includes('\\') || peaksBin.includes('/')) {
|
|
192
|
+
// peaksBin is a real path (e.g. /c/.../bin/peaks.js);
|
|
193
|
+
// invoke directly via node.
|
|
194
|
+
command = process.execPath;
|
|
195
|
+
spawnArgs = [peaksBin, ...args];
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
// peaksBin is just "peaks" — best-effort shell exec.
|
|
199
|
+
command = peaksBin;
|
|
200
|
+
spawnArgs = args;
|
|
201
|
+
}
|
|
202
|
+
// The executor normalizes spawn errors to { status: null, stderr: ... }
|
|
203
|
+
// so no try/catch wrapper is needed here — the call always returns
|
|
204
|
+
// a shaped record. See defaultSubstepExecutor for the reference impl.
|
|
205
|
+
const result = executor(command, spawnArgs, timeoutMs);
|
|
206
|
+
return {
|
|
207
|
+
name,
|
|
208
|
+
status: result.status === 0 ? 'pass' : 'fail',
|
|
209
|
+
exitCode: result.status,
|
|
210
|
+
stdout: result.stdout,
|
|
211
|
+
stderr: result.stderr,
|
|
212
|
+
durationMs: result.durationMs,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function writeUpgradeRecord(projectRoot, result) {
|
|
216
|
+
try {
|
|
217
|
+
const memoryDir = join(projectRoot, '.peaks', 'memory');
|
|
218
|
+
mkdirSync(memoryDir, { recursive: true });
|
|
219
|
+
const date = new Date().toISOString().slice(0, 10);
|
|
220
|
+
const file = join(memoryDir, `upgrade-2.0-${date}.md`);
|
|
221
|
+
const lines = [];
|
|
222
|
+
lines.push(`# Upgrade to peaks-loop 2.0 — ${date}`);
|
|
223
|
+
lines.push('');
|
|
224
|
+
lines.push(`> Auto-generated by \`peaks upgrade --to 2.0${result.applied ? ' --auto' : ''}\`.`);
|
|
225
|
+
lines.push(`> Per the "one-key completion" + "minimal-user-operation" tenets.`);
|
|
226
|
+
lines.push('');
|
|
227
|
+
if (result.fromVersion !== null) {
|
|
228
|
+
lines.push(`**From version**: ${result.fromVersion}`);
|
|
229
|
+
}
|
|
230
|
+
lines.push(`**To version**: 2.0.0`);
|
|
231
|
+
lines.push(`**Project root**: \`${result.projectRoot}\``);
|
|
232
|
+
lines.push('');
|
|
233
|
+
lines.push('## Sub-step results');
|
|
234
|
+
lines.push('');
|
|
235
|
+
lines.push('| step | status | exitCode | durationMs |');
|
|
236
|
+
lines.push('|------|--------|----------|------------|');
|
|
237
|
+
for (const step of result.steps) {
|
|
238
|
+
lines.push(`| ${step.name} | ${step.status} | ${step.exitCode ?? 'n/a'} | ${step.durationMs} |`);
|
|
239
|
+
}
|
|
240
|
+
lines.push('');
|
|
241
|
+
if (result.auditBefore !== null || result.auditAfter !== null) {
|
|
242
|
+
lines.push('## Audit snapshot');
|
|
243
|
+
lines.push('');
|
|
244
|
+
if (result.auditBefore !== null) {
|
|
245
|
+
lines.push(`- Before: totalRedLines=${result.auditBefore.totalRedLines}, cliBacked=${result.auditBefore.cliBacked}`);
|
|
246
|
+
}
|
|
247
|
+
if (result.auditAfter !== null) {
|
|
248
|
+
lines.push(`- After: totalRedLines=${result.auditAfter.totalRedLines}, cliBacked=${result.auditAfter.cliBacked}`);
|
|
249
|
+
}
|
|
250
|
+
lines.push('');
|
|
251
|
+
}
|
|
252
|
+
lines.push('## Next actions');
|
|
253
|
+
lines.push('');
|
|
254
|
+
for (const a of result.nextActions) {
|
|
255
|
+
lines.push(`- ${a}`);
|
|
256
|
+
}
|
|
257
|
+
writeFileSync(file, lines.join('\n') + '\n', 'utf8');
|
|
258
|
+
return file;
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
process.stderr.write(`peaks upgrade: failed to write upgrade record: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
export function runUpgrade(input) {
|
|
266
|
+
// Resolve the peaks binary. Default: the peaks.js script
|
|
267
|
+
// co-located with this compiled module (the user just installed
|
|
268
|
+
// peaks-loop globally, but the global `peaks` shim is a .sh
|
|
269
|
+
// script that cmd.exe can't run on Windows). Falling back
|
|
270
|
+
// to just "peaks" lets the umbrella work when invoked from
|
|
271
|
+
// a Unix-style environment that can run the shim directly.
|
|
272
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
273
|
+
// Walk up from the compiled location to find bin/peaks.js.
|
|
274
|
+
// The compiled service lives at dist/src/services/upgrade/upgrade-service.js;
|
|
275
|
+
// bin/peaks.js is at the peaks-loop root.
|
|
276
|
+
const peaksBin = input.peaksBin ??
|
|
277
|
+
resolve(here, '..', '..', '..', '..', 'bin', 'peaks.js');
|
|
278
|
+
const fallbackPeaks = 'peaks';
|
|
279
|
+
const resolvedPeaksBin = existsSync(peaksBin) ? peaksBin : fallbackPeaks;
|
|
280
|
+
// Resolve the executor once at the top of runUpgrade so every
|
|
281
|
+
// sub-step call shares the same instance. Tests pass a fake
|
|
282
|
+
// executor via UpgradeInput.executor; production callers omit
|
|
283
|
+
// it and get the default spawnSync wrapper.
|
|
284
|
+
const executor = input.executor ?? defaultSubstepExecutor;
|
|
285
|
+
const fromVersion = read1xVersion(input.projectRoot);
|
|
286
|
+
const steps = [];
|
|
287
|
+
const warnings = [];
|
|
288
|
+
const nextActions = [];
|
|
289
|
+
// Ensure .peaks/preferences.json exists. This is the file the
|
|
290
|
+
// 1.x detector keys off — without it, `peaks upgrade --detect-1x`
|
|
291
|
+
// keeps returning isOneX=true after a successful upgrade and the
|
|
292
|
+
// user gets stuck in a re-prompt loop. savePreferences with an
|
|
293
|
+
// empty override merges with DEFAULT_PREFERENCES and writes; if
|
|
294
|
+
// the file already exists the user's values are preserved.
|
|
295
|
+
// Real bug surfaced by ice-cola dogfood 2026-06-12.
|
|
296
|
+
try {
|
|
297
|
+
savePreferences(input.projectRoot, {});
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
warnings.push(`ensure-preferences failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
301
|
+
}
|
|
302
|
+
// Migrate .gitignore so 2.0 tracked artifacts
|
|
303
|
+
// (.peaks/standards/, .peaks/memory/*.md durable memories,
|
|
304
|
+
// .peaks/PROJECT.md) aren't silently hidden by a 1.x wholesale
|
|
305
|
+
// `/.peaks/` ignore rule. Real bug surfaced by ice-cola dogfood
|
|
306
|
+
// 2026-06-12: every consumer artifact was being dropped from git
|
|
307
|
+
// status. Service is idempotent + creates a timestamped backup
|
|
308
|
+
// before any write.
|
|
309
|
+
try {
|
|
310
|
+
const giResult = migrateGitignoreFile({ projectRoot: input.projectRoot, apply: true });
|
|
311
|
+
if (giResult.changed && giResult.appliedWrite && giResult.backupPath !== null) {
|
|
312
|
+
nextActions.push(`Updated .gitignore — removed stale wholesale .peaks rule(s): ${giResult.removedRules.join(', ')}. Backup at ${giResult.backupPath}.`);
|
|
313
|
+
}
|
|
314
|
+
else if (giResult.missing) {
|
|
315
|
+
warnings.push('gitignore-migrate skipped: project has no .gitignore');
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
warnings.push(`gitignore-migrate failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
320
|
+
}
|
|
321
|
+
// Audit BEFORE the upgrade (baseline)
|
|
322
|
+
let auditBefore = null;
|
|
323
|
+
try {
|
|
324
|
+
const r = runRedLinesAudit({ projectRoot: input.projectRoot });
|
|
325
|
+
auditBefore = { totalRedLines: r.audit.totalRedLines, cliBacked: r.audit.cliBacked };
|
|
326
|
+
}
|
|
327
|
+
catch (err) {
|
|
328
|
+
warnings.push(`audit-before failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
329
|
+
}
|
|
330
|
+
// Run the 6 sub-steps
|
|
331
|
+
for (const step of STEPS) {
|
|
332
|
+
if (step.name === 'memory-extract') {
|
|
333
|
+
// Special case: expand the three glob patterns to literal
|
|
334
|
+
// paths before spawning. memory-service rejects literal
|
|
335
|
+
// '**' in artifact paths (assertInsideProject's realpathSync
|
|
336
|
+
// throws ENOENT) and refuses to run without --artifact.
|
|
337
|
+
const artifacts = expandMemoryArtifacts(input.projectRoot);
|
|
338
|
+
if (artifacts.length === 0) {
|
|
339
|
+
steps.push({
|
|
340
|
+
name: 'memory-extract',
|
|
341
|
+
status: 'skipped',
|
|
342
|
+
exitCode: null,
|
|
343
|
+
stdout: '',
|
|
344
|
+
stderr: 'no skills/, CLAUDE.md, or .claude/rules/ artifacts found in the project',
|
|
345
|
+
durationMs: 0,
|
|
346
|
+
});
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const args = ['memory', 'extract', '--project', input.projectRoot, '--artifact', ...artifacts, '--apply', '--json'];
|
|
350
|
+
const r = runStep(resolvedPeaksBin, 'memory-extract', args, 60_000, executor);
|
|
351
|
+
steps.push(r);
|
|
352
|
+
if (r.status === 'fail') {
|
|
353
|
+
warnings.push(`memory-extract failed: ${r.stderr.slice(0, 200)}`);
|
|
354
|
+
}
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
const args = step.args(input.projectRoot);
|
|
358
|
+
const r = runStep(resolvedPeaksBin, step.name, args, 60_000, executor);
|
|
359
|
+
steps.push(r);
|
|
360
|
+
if (r.status === 'fail') {
|
|
361
|
+
warnings.push(`${step.name} failed: ${r.stderr.slice(0, 200)}`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
// Audit AFTER the upgrade (verify)
|
|
365
|
+
let auditAfter = null;
|
|
366
|
+
try {
|
|
367
|
+
const r = runRedLinesAudit({ projectRoot: input.projectRoot });
|
|
368
|
+
auditAfter = { totalRedLines: r.audit.totalRedLines, cliBacked: r.audit.cliBacked };
|
|
369
|
+
}
|
|
370
|
+
catch (err) {
|
|
371
|
+
warnings.push(`audit-after failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
372
|
+
}
|
|
373
|
+
const passedCount = steps.filter((s) => s.status === 'pass').length;
|
|
374
|
+
const failedCount = steps.filter((s) => s.status === 'fail').length;
|
|
375
|
+
const skippedCount = steps.filter((s) => s.status === 'skipped').length;
|
|
376
|
+
const applied = failedCount === 0;
|
|
377
|
+
if (failedCount > 0) {
|
|
378
|
+
nextActions.push(`${failedCount} sub-step(s) failed. Run \`peaks upgrade --to 2.0\` again to retry the failed steps.`);
|
|
379
|
+
}
|
|
380
|
+
if (input.auto !== true) {
|
|
381
|
+
nextActions.push('Run `peaks audit red-lines --project .` to verify the L2 catalog is healthy.');
|
|
382
|
+
}
|
|
383
|
+
nextActions.push('See `docs/UPGRADING-2.0.md` for the manual fallback if this auto-upgrade fails.');
|
|
384
|
+
// Write the upgrade record (always, even on partial failure —
|
|
385
|
+
// the user gets a forensic artifact either way)
|
|
386
|
+
const partial = {
|
|
387
|
+
applied,
|
|
388
|
+
fromVersion,
|
|
389
|
+
toVersion: '2.0.0',
|
|
390
|
+
projectRoot: input.projectRoot,
|
|
391
|
+
steps,
|
|
392
|
+
passedCount,
|
|
393
|
+
failedCount,
|
|
394
|
+
skippedCount,
|
|
395
|
+
auditBefore,
|
|
396
|
+
auditAfter,
|
|
397
|
+
upgradeRecordPath: null,
|
|
398
|
+
nextActions,
|
|
399
|
+
warnings,
|
|
400
|
+
};
|
|
401
|
+
const upgradeRecordPath = writeUpgradeRecord(input.projectRoot, partial);
|
|
402
|
+
return { ...partial, upgradeRecordPath };
|
|
403
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks-loop v2.13.3 — Envelope unification (AC-1: real markdown parse).
|
|
3
|
+
*
|
|
4
|
+
* The 5 input envelopes feeding `aggregateVerdict()` have always been
|
|
5
|
+
* heterogeneous (peaks-security-audit / peaks-perf-audit / karpathy /
|
|
6
|
+
* peaks-mut / peaks-qa). v2.13.1 shipped precedence wiring without
|
|
7
|
+
* touching the on-disk shapes. v2.13.2 introduced a discriminated-union
|
|
8
|
+
* type projection `AnyEnvelope` and 5 pure parser functions.
|
|
9
|
+
*
|
|
10
|
+
* v2.13.3 dogfood bug #1: parseSecurity/Perf previously only supported
|
|
11
|
+
* a JSON.parse path. The real v2.12.0 audit files at
|
|
12
|
+
* `.peaks/_runtime/<sid>/audit/security.md` and `audit/perf.md` are
|
|
13
|
+
* YAML frontmatter + markdown body — NOT JSON. The fix preserves
|
|
14
|
+
* the JSON.parse path (back-compat for unit tests + any consumer that
|
|
15
|
+
* passed JSON explicitly) and adds a markdown fallback that extracts
|
|
16
|
+
* `verdict:` from the frontmatter and parses `## Findings` bullets.
|
|
17
|
+
*
|
|
18
|
+
* Karpathy §2 (Simplicity First):
|
|
19
|
+
* - single file, ~210 lines, zero new IO.
|
|
20
|
+
* - re-uses existing strict-shape guards (isSecurityAuditEnvelope /
|
|
21
|
+
* isPerfAuditEnvelope) — no duplicate validation logic.
|
|
22
|
+
* - parsers return `null` on malformed input (mirrors loadMutReport's
|
|
23
|
+
* "missing → null" contract). Callers can detect "envelope missing"
|
|
24
|
+
* without throwing.
|
|
25
|
+
*/
|
|
26
|
+
import { type SecurityAuditEnvelope } from '../audit-independent/security-audit-service.js';
|
|
27
|
+
import { type PerfAuditEnvelope } from '../audit-independent/perf-audit-service.js';
|
|
28
|
+
import { type KarpathyEnvelope, type MutEnvelope, type QaEnvelope, type AggregatorInput } from './verdict-aggregator.js';
|
|
29
|
+
/**
|
|
30
|
+
* `kind` is the discriminator. The on-disk file format is unchanged;
|
|
31
|
+
* this field exists only in the TS type projection. The aggregator
|
|
32
|
+
* accepts both the legacy `{security, perf, ...}` shape and the new
|
|
33
|
+
* union via a thin adapter (`aggregateFromEnvelopes`).
|
|
34
|
+
*/
|
|
35
|
+
export type AnyEnvelope = {
|
|
36
|
+
kind: 'security';
|
|
37
|
+
envelope: SecurityAuditEnvelope;
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'perf';
|
|
40
|
+
envelope: PerfAuditEnvelope;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'karpathy';
|
|
43
|
+
envelope: KarpathyEnvelope;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'mut';
|
|
46
|
+
envelope: MutEnvelope;
|
|
47
|
+
} | {
|
|
48
|
+
kind: 'qa';
|
|
49
|
+
envelope: QaEnvelope;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* v2.13.3 AC-1 — parse real v2.12.0 audit markdown.
|
|
53
|
+
*
|
|
54
|
+
* Strategy (per PRD AC-1 mitigation):
|
|
55
|
+
* 1. Try JSON.parse first (back-compat with prior unit tests + any
|
|
56
|
+
* consumer that passes a JSON string explicitly).
|
|
57
|
+
* 2. Fall back to markdown parse: extract `verdict:` from YAML
|
|
58
|
+
* frontmatter, parse `## Findings` bullets in the body, return
|
|
59
|
+
* a SecurityAuditEnvelope.
|
|
60
|
+
* 3. Return null when neither path yields a valid envelope.
|
|
61
|
+
*/
|
|
62
|
+
export declare function parseSecurityEnvelope(md: string): SecurityAuditEnvelope | null;
|
|
63
|
+
export declare function parsePerfEnvelope(md: string): PerfAuditEnvelope | null;
|
|
64
|
+
/**
|
|
65
|
+
* Karpathy review is stored as markdown (`.peaks/_runtime/<sid>/rd/karpathy-review.md`).
|
|
66
|
+
* We parse the 3 state lines that drive the aggregator:
|
|
67
|
+
* - `gateAction: pass | warn | block`
|
|
68
|
+
* - `verdict: pass | warn | block` (alias for gateAction)
|
|
69
|
+
* - `passed: true | false`
|
|
70
|
+
* Plus the violations list under a `## Violations` heading, where each
|
|
71
|
+
* bullet begins with `[SEVERITY] file:line — hint` and declares a
|
|
72
|
+
* guideline tag like `(simplicity-first)`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function parseKarpathyEnvelope(md: string): KarpathyEnvelope | null;
|
|
75
|
+
/**
|
|
76
|
+
* Mut envelope is JSON. Mirrors `loadMutReport`'s contract: missing
|
|
77
|
+
* fields → null. The strict shape matches `MutReportJson` in
|
|
78
|
+
* `services/mut/types.ts`.
|
|
79
|
+
*/
|
|
80
|
+
export declare function parseMutEnvelope(json: unknown): MutEnvelope | null;
|
|
81
|
+
/**
|
|
82
|
+
* QA test report is markdown under `qa/test-reports/<rid>.md`.
|
|
83
|
+
* The verdict line is `verdict: pass | return-to-rd | blocked` and
|
|
84
|
+
* optionally carries a `reportPath:` line. Anything else → null.
|
|
85
|
+
*/
|
|
86
|
+
export declare function parseQaEnvelope(md: string): QaEnvelope | null;
|
|
87
|
+
/**
|
|
88
|
+
* Convert a partial list of `AnyEnvelope` values to the legacy
|
|
89
|
+
* `AggregatorInput` shape. `null` envelopes are skipped (a missing
|
|
90
|
+
* envelope is treated as "audit not run" — same semantics as
|
|
91
|
+
* `AggregatorInput` without that key).
|
|
92
|
+
*/
|
|
93
|
+
export declare function envelopesToAggregatorInput(list: ReadonlyArray<AnyEnvelope | null>): AggregatorInput;
|