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,459 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { isDirectory } from '../../shared/fs.js';
|
|
5
|
+
// Slice 2026-06-29-change-id-root-removal: `getCurrentChangeId` was
|
|
6
|
+
// removed with the change-id axis. Slice check resolves the rid from
|
|
7
|
+
// `options.rid` only; the binding file at `.peaks/_runtime/current-change`
|
|
8
|
+
// is no longer read. Path-safety helpers now live at
|
|
9
|
+
// `shared/path-safety.ts` if this module ever needs them.
|
|
10
|
+
import { verifyPipeline } from '../workflow/pipeline-verify-service.js';
|
|
11
|
+
import { findMockViolations } from '../audit/enforcers/mock-placement.js';
|
|
12
|
+
import { runRedLinesAudit } from '../audit/red-lines-service.js';
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a CLI binary to a project-local path, falling back to
|
|
15
|
+
* the system `npx`. pnpm (and npm/yarn) all create
|
|
16
|
+
* `node_modules/.bin/<name>`:
|
|
17
|
+
*
|
|
18
|
+
* - On Unix, this is a symlink to the package's executable.
|
|
19
|
+
* - On Windows, this is a `.cmd` shim; `execFileSync` only
|
|
20
|
+
* resolves `.cmd` through the shell (PATHEXT), so we pass
|
|
21
|
+
* `shell: true` when invoking one. Without this, the
|
|
22
|
+
* Windows `npx ENOENT` false-positive from
|
|
23
|
+
* observations 2317 + 2792 reproduces for every local
|
|
24
|
+
* binary.
|
|
25
|
+
*
|
|
26
|
+
* Returns the command + args + a `shell` flag that the
|
|
27
|
+
* `runCommand` helper threads into `execFileSync`.
|
|
28
|
+
*/
|
|
29
|
+
function resolveLocalBinary(projectRoot, name) {
|
|
30
|
+
// pnpm creates `node_modules/.bin/<name>` (symlink on Unix,
|
|
31
|
+
// `.cmd` shim on Windows). We probe both shapes; the
|
|
32
|
+
// `process.platform === 'win32'` extension probe is the most
|
|
33
|
+
// portable approach.
|
|
34
|
+
const isWin = process.platform === 'win32';
|
|
35
|
+
const candidateNames = isWin ? [`${name}.cmd`, `${name}.ps1`, `${name}`] : [name];
|
|
36
|
+
for (const candidate of candidateNames) {
|
|
37
|
+
const cmdPath = join(projectRoot, 'node_modules', '.bin', candidate);
|
|
38
|
+
if (existsSync(cmdPath)) {
|
|
39
|
+
return { command: cmdPath, args: [], shell: isWin };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Fallback: system npx. On Windows this still has the ENOENT
|
|
43
|
+
// issue, but the fallback is at least informative when it
|
|
44
|
+
// fires (the user can see "npx not found" instead of a
|
|
45
|
+
// silent exit 1).
|
|
46
|
+
return { command: 'npx', args: [name], shell: false };
|
|
47
|
+
}
|
|
48
|
+
function runCommand(command, args, cwd, timeoutMs, shell = false) {
|
|
49
|
+
const start = Date.now();
|
|
50
|
+
try {
|
|
51
|
+
const stdout = execFileSync(command, args, {
|
|
52
|
+
cwd,
|
|
53
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
54
|
+
timeout: timeoutMs,
|
|
55
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
56
|
+
shell
|
|
57
|
+
}).toString('utf8');
|
|
58
|
+
return {
|
|
59
|
+
status: 'pass',
|
|
60
|
+
stdout,
|
|
61
|
+
stderr: '',
|
|
62
|
+
exitCode: 0,
|
|
63
|
+
durationMs: Date.now() - start
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
const stdout = (error?.stdout ?? '').toString('utf8');
|
|
68
|
+
const stderr = (error?.stderr ?? '').toString('utf8');
|
|
69
|
+
return {
|
|
70
|
+
status: 'fail',
|
|
71
|
+
stdout,
|
|
72
|
+
stderr,
|
|
73
|
+
exitCode: typeof error?.status === 'number' ? error.status : 1,
|
|
74
|
+
durationMs: Date.now() - start
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function tailLines(text, max) {
|
|
79
|
+
const lines = text.split('\n').filter((l) => l.trim().length > 0);
|
|
80
|
+
if (lines.length <= max)
|
|
81
|
+
return lines.join('\n');
|
|
82
|
+
return [...lines.slice(0, 3), `... (${lines.length - max} more lines) ...`, ...lines.slice(-max + 3)].join('\n');
|
|
83
|
+
}
|
|
84
|
+
async function runTypecheck(projectRoot) {
|
|
85
|
+
const start = Date.now();
|
|
86
|
+
// Per Windows npx ENOENT (observations 2317+2792 from
|
|
87
|
+
// 2026-06-09), prefer the project-local `node_modules/.bin/tsc`
|
|
88
|
+
// (symlink on Unix, .cmd on Windows). The local binary is
|
|
89
|
+
// installed by pnpm at workspace-install time and avoids the
|
|
90
|
+
// npx PATH-lookup issue.
|
|
91
|
+
const tsc = resolveLocalBinary(projectRoot, 'tsc');
|
|
92
|
+
const result = runCommand(tsc.command, [...tsc.args, '--noEmit'], projectRoot, 180_000, tsc.shell);
|
|
93
|
+
const testFiles = result.stdout.match(/(tests?\/.*\.test\.ts)/g) ?? [];
|
|
94
|
+
return {
|
|
95
|
+
name: 'typecheck',
|
|
96
|
+
description: `${tsc.command} --noEmit (no JS emit, type-only check)`,
|
|
97
|
+
status: result.status,
|
|
98
|
+
durationMs: result.durationMs,
|
|
99
|
+
detail: result.status === 'pass'
|
|
100
|
+
? `Typecheck passed in ${result.durationMs}ms.`
|
|
101
|
+
: tailLines(result.stdout + result.stderr, 10) || `tsc exited with code ${result.exitCode}.`,
|
|
102
|
+
data: { exitCode: result.exitCode }
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function parseVitestSummary(stdout, fallbackDuration) {
|
|
106
|
+
// Vitest 2.x prints e.g. "Test Files 1 passed (1)" and "Tests 1 passed (1)"
|
|
107
|
+
// and "Duration 0.50s" or "Duration 1.23s". Be lenient with regex.
|
|
108
|
+
const testsMatch = /Tests?\s+(\d+)\s+(?:passed|run)/.exec(stdout);
|
|
109
|
+
const failedMatch = /Tests?\s+(\d+)\s+failed/.exec(stdout);
|
|
110
|
+
const skippedMatch = /Tests?\s+(\d+)\s+skipped/.exec(stdout);
|
|
111
|
+
const durationMatch = /Duration[^\d]*(\d+(?:\.\d+)?)\s*s/.exec(stdout);
|
|
112
|
+
return {
|
|
113
|
+
tests: testsMatch ? parseInt(testsMatch[1], 10) : 0,
|
|
114
|
+
passed: 0,
|
|
115
|
+
failed: failedMatch ? parseInt(failedMatch[1], 10) : 0,
|
|
116
|
+
skipped: skippedMatch ? parseInt(skippedMatch[1], 10) : 0,
|
|
117
|
+
durationMs: durationMatch ? Math.round(parseFloat(durationMatch[1]) * 1000) : fallbackDuration
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async function runUnitTests(projectRoot, runTests) {
|
|
121
|
+
const start = Date.now();
|
|
122
|
+
// Default: changed-only suite (`vitest run --changed`) — runs only tests
|
|
123
|
+
// related to git-changed files. Cost drops from 30s+ to ~1-3s in steady
|
|
124
|
+
// state. Opt-in to the full suite via `runTests: true` (CLI flag
|
|
125
|
+
// `--run-tests`). See `references/runbook.md` for the rationale and
|
|
126
|
+
// `tests/unit/slice-check-service.test.ts` for the regression net.
|
|
127
|
+
// Per Windows npx ENOENT (observations 2317+2792), resolve
|
|
128
|
+
// the project-local vitest binary instead of shelling out
|
|
129
|
+
// through npx.
|
|
130
|
+
const vitest = resolveLocalBinary(projectRoot, 'vitest');
|
|
131
|
+
const vitestArgs = runTests
|
|
132
|
+
? ['run', '--reporter=default', '--coverage=false']
|
|
133
|
+
: ['run', '--changed', '--reporter=default', '--coverage=false'];
|
|
134
|
+
const description = runTests
|
|
135
|
+
? `${vitest.command} run (full test suite, coverage off)`
|
|
136
|
+
: `${vitest.command} run --changed (tests for git-changed files only, coverage off)`;
|
|
137
|
+
const result = runCommand(vitest.command, [...vitest.args, ...vitestArgs], projectRoot, 600_000, vitest.shell);
|
|
138
|
+
const summary = parseVitestSummary(result.stdout, result.durationMs);
|
|
139
|
+
// Vitest doesn't always print the per-bucket counts cleanly; infer "passed"
|
|
140
|
+
// as total - failed - skipped when failed/skipped buckets are present.
|
|
141
|
+
const passed = Math.max(summary.tests - summary.failed - summary.skipped, 0);
|
|
142
|
+
return {
|
|
143
|
+
name: 'unit-tests',
|
|
144
|
+
description,
|
|
145
|
+
status: result.status,
|
|
146
|
+
durationMs: result.durationMs,
|
|
147
|
+
detail: result.status === 'pass'
|
|
148
|
+
? `All tests passed in ${result.durationMs}ms.`
|
|
149
|
+
: tailLines(result.stdout + result.stderr, 12) || `vitest exited with code ${result.exitCode}.`,
|
|
150
|
+
data: {
|
|
151
|
+
tests: summary.tests,
|
|
152
|
+
passed,
|
|
153
|
+
failed: summary.failed,
|
|
154
|
+
skipped: summary.skipped,
|
|
155
|
+
mode: runTests ? 'full' : 'changed',
|
|
156
|
+
exitCode: result.exitCode
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
const REVIEW_FILES = [
|
|
161
|
+
{ name: 'code-review', path: 'rd/code-review.md', label: 'code-review' },
|
|
162
|
+
// v2.12.0 collapse: security + perf moved to standalone audit skills.
|
|
163
|
+
// `slice check` accepts EITHER the v2.11.x legacy path OR the v2.12.0
|
|
164
|
+
// canonical audit path during the 1-minor-release back-compat window
|
|
165
|
+
// (v2.13.0 hard-deletes the legacy paths — see CHANGELOG [2.12.0]).
|
|
166
|
+
{
|
|
167
|
+
name: 'security-review',
|
|
168
|
+
paths: ['audit/security.md', 'rd/security-review.md'],
|
|
169
|
+
label: 'security-review'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'perf-baseline',
|
|
173
|
+
paths: ['audit/perf.md', 'rd/perf-baseline.md'],
|
|
174
|
+
label: 'perf-baseline'
|
|
175
|
+
}
|
|
176
|
+
];
|
|
177
|
+
async function runReviewFanout(projectRoot, rid, refresh) {
|
|
178
|
+
const start = Date.now();
|
|
179
|
+
if (refresh) {
|
|
180
|
+
// `peaks-rd` does the 3-way fan-out when the slice is in `spec-locked` or
|
|
181
|
+
// `implemented` state. The actual fan-out is invoked via the `peaks-rd`
|
|
182
|
+
// skill body, not via a CLI subcommand (each sub-agent is invoked with
|
|
183
|
+
// its own prompt). When `--refresh-fanout` is set, we emit a
|
|
184
|
+
// nextAction that tells the caller to invoke `Skill(skill="peaks-rd")`
|
|
185
|
+
// (the role skill owns the 3 review artifact writes).
|
|
186
|
+
return {
|
|
187
|
+
name: 'review-fanout',
|
|
188
|
+
description: '3-way review fan-out (code-review + security-review + perf baseline)',
|
|
189
|
+
status: 'skipped',
|
|
190
|
+
durationMs: Date.now() - start,
|
|
191
|
+
detail: '3-way fan-out is dispatched via Skill(skill="peaks-rd"); invoke it to regenerate the review artifacts.',
|
|
192
|
+
data: { refresh: true, rid }
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Default: verify all 3 review files exist with non-empty content. The
|
|
196
|
+
// files can live under EITHER `.peaks/_runtime/<rid>/rd/` (active change-id) or
|
|
197
|
+
// `.peaks/retrospective/<rid>/rd/` (shipped). The boundary check
|
|
198
|
+
// accepts either — the LLM may be at a slice that's still active
|
|
199
|
+
// (not yet archived) or one that just shipped.
|
|
200
|
+
const scopes = [rid, `retrospective/${rid}`];
|
|
201
|
+
const missing = [];
|
|
202
|
+
const found = [];
|
|
203
|
+
for (const review of REVIEW_FILES) {
|
|
204
|
+
let hit = null;
|
|
205
|
+
// v2.12.0 back-compat: each entry may list multiple candidate paths.
|
|
206
|
+
// First hit (in declared order) wins; canonical paths come first so
|
|
207
|
+
// v2.12.0+ slices preferentially report the new path even when both
|
|
208
|
+
// are present during migration.
|
|
209
|
+
const candidates = 'path' in review ? [review.path] : review.paths;
|
|
210
|
+
for (const candidate of candidates) {
|
|
211
|
+
for (const scope of scopes) {
|
|
212
|
+
const abs = join(projectRoot, '.peaks', scope, candidate);
|
|
213
|
+
if (existsSync(abs)) {
|
|
214
|
+
const bytes = statSync(abs).size;
|
|
215
|
+
if (bytes >= 20) {
|
|
216
|
+
hit = { abs, scope, bytes };
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (hit !== null)
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
if (hit === null) {
|
|
225
|
+
missing.push(review.label);
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
found.push({ name: review.name, path: hit.abs, bytes: hit.bytes, scope: hit.scope });
|
|
229
|
+
}
|
|
230
|
+
const status = missing.length === 0 ? 'pass' : 'fail';
|
|
231
|
+
return {
|
|
232
|
+
name: 'review-fanout',
|
|
233
|
+
description: '3-way review fan-out (code-review + security-review + perf baseline)',
|
|
234
|
+
status,
|
|
235
|
+
durationMs: Date.now() - start,
|
|
236
|
+
detail: status === 'pass'
|
|
237
|
+
? `All 3 review artifacts present (${found.map((f) => f.name).join(', ')}; scope: ${found[0]?.scope}).`
|
|
238
|
+
: `Missing or empty: ${missing.join(', ')}. Re-run with --refresh-fanout or invoke Skill(skill="peaks-rd") to regenerate.`,
|
|
239
|
+
data: { found, missing }
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
async function runGateVerifyPipeline(projectRoot, rid, sessionId) {
|
|
243
|
+
const start = Date.now();
|
|
244
|
+
try {
|
|
245
|
+
const result = await verifyPipeline({ projectRoot, rid, sessionId });
|
|
246
|
+
const duration = Date.now() - start;
|
|
247
|
+
return {
|
|
248
|
+
name: 'gate-verify-pipeline',
|
|
249
|
+
description: 'peaks workflow verify-pipeline (RD/QA gate checks against .peaks/_runtime/change/<sessionId>/)',
|
|
250
|
+
status: result.complete ? 'pass' : 'fail',
|
|
251
|
+
durationMs: duration,
|
|
252
|
+
detail: result.complete
|
|
253
|
+
? `All gates passed in ${duration}ms.`
|
|
254
|
+
: `${result.violations.length} violation(s): ${result.violations.join('; ')}`,
|
|
255
|
+
data: {
|
|
256
|
+
rdGates: result.rdPhase.gates.length,
|
|
257
|
+
qaGates: result.qaPhase.gates.length,
|
|
258
|
+
rdState: result.rdPhase.state,
|
|
259
|
+
qaState: result.qaPhase.state,
|
|
260
|
+
violations: result.violations,
|
|
261
|
+
nextActions: result.nextActions
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
return {
|
|
267
|
+
name: 'gate-verify-pipeline',
|
|
268
|
+
description: 'peaks workflow verify-pipeline (RD/QA gate checks against .peaks/_runtime/change/<sessionId>/)',
|
|
269
|
+
status: 'fail',
|
|
270
|
+
durationMs: Date.now() - start,
|
|
271
|
+
detail: error?.message ?? 'verify-pipeline threw',
|
|
272
|
+
data: {}
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
export async function sliceCheck(options) {
|
|
277
|
+
const peaksRoot = join(options.projectRoot, '.peaks');
|
|
278
|
+
if (!(await isDirectory(peaksRoot))) {
|
|
279
|
+
throw new Error(`.peaks/ not found at ${options.projectRoot}. Run peaks workspace init first.`);
|
|
280
|
+
}
|
|
281
|
+
// Slice 2026-06-29-change-id-root-removal: resolve rid from the
|
|
282
|
+
// explicit `--rid` option only. The `current-change` binding file is
|
|
283
|
+
// gone; the CLI is the single source of truth for the rid.
|
|
284
|
+
if (options.rid === undefined) {
|
|
285
|
+
throw new Error('No --rid supplied. Pass --rid <id> on the CLI to identify which slice to check.');
|
|
286
|
+
}
|
|
287
|
+
const rid = options.rid;
|
|
288
|
+
const totalStart = Date.now();
|
|
289
|
+
const stages = [];
|
|
290
|
+
let unitTestsRunMode = 'skipped';
|
|
291
|
+
// Stage 1: typecheck
|
|
292
|
+
stages.push(await runTypecheck(options.projectRoot));
|
|
293
|
+
// Stage 2: unit-tests — by default changed-only suite, opt-in to full
|
|
294
|
+
if (options.skipTests) {
|
|
295
|
+
stages.push({
|
|
296
|
+
name: 'unit-tests',
|
|
297
|
+
description: 'vitest run (skipped per --skip-tests)',
|
|
298
|
+
status: 'skipped',
|
|
299
|
+
durationMs: 0,
|
|
300
|
+
detail: 'Skipped: --skip-tests was set. Use the peaks-test skill to run the full suite manually.'
|
|
301
|
+
});
|
|
302
|
+
unitTestsRunMode = 'skipped';
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
const unitTests = await runUnitTests(options.projectRoot, options.runTests === true);
|
|
306
|
+
// unit-test stage failed, downgrade `failed` to `skipped` with a
|
|
307
|
+
// reason that names the failure count and points to the long-term
|
|
308
|
+
// fix. Does NOT affect the other 3 stages. Only meaningful when
|
|
309
|
+
// the stage actually runs (skipped-tests bypass short-circuits
|
|
310
|
+
// above).
|
|
311
|
+
if (options.allowPreExistingFailures === true &&
|
|
312
|
+
unitTests.status === 'fail') {
|
|
313
|
+
const failureCount = unitTests.data?.failed ?? 0;
|
|
314
|
+
stages.push({
|
|
315
|
+
name: 'unit-tests',
|
|
316
|
+
description: `vitest run ${options.runTests === true ? '' : '--changed '} (overridden via --allow-pre-existing-failures)`.trim(),
|
|
317
|
+
status: 'skipped',
|
|
318
|
+
durationMs: unitTests.durationMs,
|
|
319
|
+
detail: `pre-existing failures: ${failureCount} failing test(s) under coverage.exclude or unrelated to this slice; user opted in via --allow-pre-existing-failures. For the long-term fix, mark these tests .skip or move to coverage.exclude (see dogfood-2-f1-f4.md F17c).`,
|
|
320
|
+
data: { ...(unitTests.data ?? {}), overriddenFrom: 'fail', failureCount }
|
|
321
|
+
});
|
|
322
|
+
unitTestsRunMode = 'overridden';
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
stages.push(unitTests);
|
|
326
|
+
unitTestsRunMode = options.runTests === true ? 'full' : 'changed';
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
// Stage 3: 3-way review fanout check
|
|
330
|
+
stages.push(await runReviewFanout(options.projectRoot, rid, options.refreshFanout));
|
|
331
|
+
// Stage 4: gate verify-pipeline
|
|
332
|
+
stages.push(await runGateVerifyPipeline(options.projectRoot, rid, rid));
|
|
333
|
+
// Stage 5: mock-placement (L2.1 P0 #5) — refuse inline mock data in src/ or skills/.
|
|
334
|
+
// Lifts changed files via `git diff --name-only HEAD`; falls back to a
|
|
335
|
+
// warning when the diff is empty (e.g. a fresh tree). Lighter than the
|
|
336
|
+
// full `peaks scan diff-vs-scope` and keeps the slice check self-contained.
|
|
337
|
+
stages.push(await runMockPlacement(options.projectRoot));
|
|
338
|
+
// Stage 6 (Slice #7 L2.4 P2-b): audit-regression — assert
|
|
339
|
+
// catalog integrity (no orphan enforcers, no orphan catalog
|
|
340
|
+
// entries), catalog size lower bound, and runtime budget.
|
|
341
|
+
// The stage runs `peaks audit red-lines` in-process (no
|
|
342
|
+
// subprocess) and is gating: failure exits non-zero.
|
|
343
|
+
stages.push(await runAuditRegression(options.projectRoot));
|
|
344
|
+
const boundaryReady = stages.every((s) => s.status === 'pass' || s.status === 'skipped');
|
|
345
|
+
const nextActions = [];
|
|
346
|
+
if (!boundaryReady) {
|
|
347
|
+
const failed = stages.filter((s) => s.status === 'fail');
|
|
348
|
+
for (const f of failed) {
|
|
349
|
+
nextActions.push(`Fix ${f.name}: ${f.detail.split('\n')[0]}`);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
nextActions.push(`peaks request transition ${rid} --role rd --state qa-handoff --confirm --project <path>`);
|
|
354
|
+
nextActions.push(`peaks request transition ${rid} --role qa --state verdict-issued --confirm --project <path>`);
|
|
355
|
+
}
|
|
356
|
+
return {
|
|
357
|
+
projectRoot: options.projectRoot,
|
|
358
|
+
rid,
|
|
359
|
+
stages,
|
|
360
|
+
unitTestsRunMode,
|
|
361
|
+
boundaryReady,
|
|
362
|
+
totalDurationMs: Date.now() - totalStart,
|
|
363
|
+
nextActions
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
async function runAuditRegression(projectRoot) {
|
|
367
|
+
const start = Date.now();
|
|
368
|
+
try {
|
|
369
|
+
const result = runRedLinesAudit({ projectRoot });
|
|
370
|
+
const durationMs = Date.now() - start;
|
|
371
|
+
// Slice #7 L2.4 P2-b acceptance A3 + A4:
|
|
372
|
+
// - totalRedLines >= 60 (catalog grew to 66; pins the lower bound)
|
|
373
|
+
// - enforcerFindings has no rl-audit-no-orphan-enforcer / rl-audit-no-orphan-catalog hits
|
|
374
|
+
const issues = [];
|
|
375
|
+
if (result.audit.totalRedLines < 60) {
|
|
376
|
+
issues.push(`totalRedLines ${result.audit.totalRedLines} < 60`);
|
|
377
|
+
}
|
|
378
|
+
const orphanFindings = result.audit.enforcerFindings.filter((f) => f.enforcerId === 'rl-audit-no-orphan-enforcer-001' ||
|
|
379
|
+
f.enforcerId === 'rl-audit-no-orphan-catalog-001');
|
|
380
|
+
if (orphanFindings.length > 0) {
|
|
381
|
+
issues.push(`${orphanFindings.length} orphan-enforcer / orphan-catalog finding(s)`);
|
|
382
|
+
}
|
|
383
|
+
if (issues.length > 0) {
|
|
384
|
+
return {
|
|
385
|
+
name: 'audit-regression',
|
|
386
|
+
description: 'audit-regression: catalog integrity + runtime budget (L2.4 P2-b stage 6)',
|
|
387
|
+
status: 'fail',
|
|
388
|
+
durationMs,
|
|
389
|
+
detail: issues.join('; '),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
return {
|
|
393
|
+
name: 'audit-regression',
|
|
394
|
+
description: 'audit-regression: catalog integrity + runtime budget (L2.4 P2-b stage 6)',
|
|
395
|
+
status: 'pass',
|
|
396
|
+
durationMs,
|
|
397
|
+
detail: `catalog: ${result.audit.totalRedLines} entries (${result.audit.cliBacked} cli-backed, ${result.audit.proseOnly} prose-only); audit ran in ${durationMs}ms`,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
return {
|
|
402
|
+
name: 'audit-regression',
|
|
403
|
+
description: 'audit-regression: catalog integrity + runtime budget (L2.4 P2-b stage 6)',
|
|
404
|
+
status: 'fail',
|
|
405
|
+
durationMs: Date.now() - start,
|
|
406
|
+
detail: 'audit-regression failed: ' + (error?.message ?? String(error)),
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
async function runMockPlacement(projectRoot) {
|
|
411
|
+
const start = Date.now();
|
|
412
|
+
// List changed files via git. `--name-only` produces one path per line;
|
|
413
|
+
// we filter to text files in scope and read each.
|
|
414
|
+
const diffResult = runCommand('git', ['diff', '--name-only', '--diff-filter=ACMR', 'HEAD'], projectRoot, 30_000);
|
|
415
|
+
if (diffResult.status !== 'pass') {
|
|
416
|
+
return {
|
|
417
|
+
name: 'mock-placement',
|
|
418
|
+
description: 'mock-placement: no inline mock data in src/ or skills/ (L2.1 P0 #5)',
|
|
419
|
+
status: 'skipped',
|
|
420
|
+
durationMs: Date.now() - start,
|
|
421
|
+
detail: 'git diff failed or returned no changed files; mock-placement scan skipped.'
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
const changed = diffResult.stdout
|
|
425
|
+
.split('\n')
|
|
426
|
+
.map((l) => l.trim())
|
|
427
|
+
.filter(Boolean);
|
|
428
|
+
if (changed.length === 0) {
|
|
429
|
+
return {
|
|
430
|
+
name: 'mock-placement',
|
|
431
|
+
description: 'mock-placement: no inline mock data in src/ or skills/ (L2.1 P0 #5)',
|
|
432
|
+
status: 'skipped',
|
|
433
|
+
durationMs: Date.now() - start,
|
|
434
|
+
detail: 'no changed files in HEAD diff; mock-placement scan skipped.'
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
const files = changed
|
|
438
|
+
.filter((p) => p.startsWith('src/') || p.startsWith('skills/'))
|
|
439
|
+
.filter((p) => p.endsWith('.ts') || p.endsWith('.tsx') || p.endsWith('.js') || p.endsWith('.mjs'))
|
|
440
|
+
.map((filePath) => {
|
|
441
|
+
const abs = join(projectRoot, filePath);
|
|
442
|
+
if (!existsSync(abs))
|
|
443
|
+
return null;
|
|
444
|
+
const content = readFileSync(abs, 'utf-8');
|
|
445
|
+
return { filePath, content };
|
|
446
|
+
})
|
|
447
|
+
.filter((f) => f !== null);
|
|
448
|
+
const violations = findMockViolations(files);
|
|
449
|
+
return {
|
|
450
|
+
name: 'mock-placement',
|
|
451
|
+
description: 'mock-placement: no inline mock data in src/ or skills/ (L2.1 P0 #5)',
|
|
452
|
+
status: violations.length === 0 ? 'pass' : 'fail',
|
|
453
|
+
durationMs: Date.now() - start,
|
|
454
|
+
detail: violations.length === 0
|
|
455
|
+
? `Scanned ${files.length} changed file(s); no inline mock data found.`
|
|
456
|
+
: `${violations.length} violation(s): ${violations.map((v) => `${v.filePath} (${v.snippet})`).join('; ')}`,
|
|
457
|
+
data: { scannedFiles: files.length, violations: violations.map((v) => ({ filePath: v.filePath, pattern: v.pattern, snippet: v.snippet })) }
|
|
458
|
+
};
|
|
459
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type envelope for the `peaks slice check` CLI command.
|
|
3
|
+
*
|
|
4
|
+
* `peaks slice check` is the boundary check for the RD micro-cycle
|
|
5
|
+
* (see `skills/peaks-code/references/micro-cycle.md`). It bundles the
|
|
6
|
+
* 4 self-checks that must pass at slice end before the slice is handed
|
|
7
|
+
* off to peaks-qa:
|
|
8
|
+
*
|
|
9
|
+
* 1. typecheck (`npx tsc --noEmit`)
|
|
10
|
+
* 2. unit tests — by default the **changed-only** suite
|
|
11
|
+
* (`npx vitest run --changed`). Pass `--run-tests` to opt in to the
|
|
12
|
+
* full suite (`npx vitest run`); pass `--skip-tests` to skip
|
|
13
|
+
* entirely (e.g. docs-only or config-only slices).
|
|
14
|
+
* 3. 3-way review fan-out (code-review + security-review + perf-baseline)
|
|
15
|
+
* 4. gate machinery (`peaks workflow verify-pipeline --rid <rid>`)
|
|
16
|
+
*
|
|
17
|
+
* The micro-cycle itself (per-bug TDD) runs OUTSIDE slice check — only
|
|
18
|
+
* single-test runs (`vitest -t "<name>"`) are allowed in micro-cycles.
|
|
19
|
+
* This command is for the BOUNDARY, not the inner loop.
|
|
20
|
+
*
|
|
21
|
+
* The unit-test stage emits a `unitTestsRunMode` field on the result
|
|
22
|
+
* envelope so downstream tooling and the QA test-report can record
|
|
23
|
+
* which mode actually ran: `"changed"` (default), `"full"` (with
|
|
24
|
+
* `--run-tests`), `"skipped"` (with `--skip-tests`), or `"overridden"`
|
|
25
|
+
* (with `--allow-pre-existing-failures` when the run failed and the
|
|
26
|
+
* stage was downgraded to `skipped` with a reason).
|
|
27
|
+
*/
|
|
28
|
+
export type SliceCheckStageStatus = 'pass' | 'fail' | 'skipped';
|
|
29
|
+
export type SliceCheckStage = {
|
|
30
|
+
/** Stable id for the stage (matches the runbook's check list). */
|
|
31
|
+
name: 'typecheck' | 'unit-tests' | 'review-fanout' | 'gate-verify-pipeline' | 'mock-placement' | 'audit-regression';
|
|
32
|
+
/** Human-readable description. */
|
|
33
|
+
description: string;
|
|
34
|
+
status: SliceCheckStageStatus;
|
|
35
|
+
/** Wall-clock duration in ms; null if skipped. */
|
|
36
|
+
durationMs: number | null;
|
|
37
|
+
/** Free-form detail (summary line + last error line). */
|
|
38
|
+
detail: string;
|
|
39
|
+
/** Optional structured data (e.g. test counts, gate counts). */
|
|
40
|
+
data?: Record<string, unknown>;
|
|
41
|
+
};
|
|
42
|
+
export type SliceCheckResult = {
|
|
43
|
+
/** Absolute project root the command operated on. */
|
|
44
|
+
projectRoot: string;
|
|
45
|
+
/** Request id the boundary check applies to; null if no slice is active. */
|
|
46
|
+
rid: string | null;
|
|
47
|
+
/** All stages in execution order. */
|
|
48
|
+
stages: SliceCheckStage[];
|
|
49
|
+
/**
|
|
50
|
+
* Which unit-test mode actually ran. One of:
|
|
51
|
+
* - `"changed"` — default: `npx vitest run --changed` (tests for git-changed files only)
|
|
52
|
+
* - `"full"` — opt-in via `--run-tests`: `npx vitest run` (full suite)
|
|
53
|
+
* - `"skipped"` — opt-in via `--skip-tests` (stage not executed)
|
|
54
|
+
* - `"overridden"` — full mode + `--allow-pre-existing-failures` and the run failed;
|
|
55
|
+
* stage downgraded to `skipped` with the pre-existing-failure reason
|
|
56
|
+
*/
|
|
57
|
+
unitTestsRunMode: 'changed' | 'full' | 'skipped' | 'overridden';
|
|
58
|
+
/** True iff every stage passed (or was skipped) and the boundary is OK to hand off. */
|
|
59
|
+
boundaryReady: boolean;
|
|
60
|
+
/** Total wall-clock duration in ms. */
|
|
61
|
+
totalDurationMs: number;
|
|
62
|
+
/** Next steps suggested when boundaryReady is false. */
|
|
63
|
+
nextActions: string[];
|
|
64
|
+
};
|
|
65
|
+
export type SliceCheckOptions = {
|
|
66
|
+
projectRoot: string;
|
|
67
|
+
/** When omitted, slice check inspects `.peaks/_runtime/current-change` to find the active rid. */
|
|
68
|
+
rid?: string;
|
|
69
|
+
/**
|
|
70
|
+
* When true, re-run the 3-way review fan-out (peaks-rd's code-review +
|
|
71
|
+
* security-review + perf-baseline sub-agents) even if the review files
|
|
72
|
+
* already exist. The default is to verify presence and skip if all 3 are present.
|
|
73
|
+
*/
|
|
74
|
+
refreshFanout: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* When true, run the **full** `npx vitest run` suite at the boundary.
|
|
77
|
+
* When false (the default), run the **changed-only** suite
|
|
78
|
+
* (`npx vitest run --changed`) which only exercises tests related to
|
|
79
|
+
* git-changed files. The changed-only mode is the new default as of
|
|
80
|
+
* run 017 — full suite costs 30s+ on this repo; the changed-only
|
|
81
|
+
* mode costs ~1-3s in steady state and is what catches the
|
|
82
|
+
* regressions that actually matter. The service treats `undefined`
|
|
83
|
+
* the same as `false`.
|
|
84
|
+
*/
|
|
85
|
+
runTests?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* When true, skip the unit-test stage entirely. Useful when a slice
|
|
88
|
+
* has no test surface (e.g. a docs-only or config-only slice), or
|
|
89
|
+
* when the user wants a "typecheck + review + gate" boundary check
|
|
90
|
+
* without any test execution.
|
|
91
|
+
*/
|
|
92
|
+
skipTests: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* When true, an `unit-tests` stage that fails is reported as `skipped`
|
|
95
|
+
* (with a `reason` naming the pre-existing failure count) instead of
|
|
96
|
+
* `failed`. Used to opt in to bypassing the 28 pre-existing Windows
|
|
97
|
+
* test failures documented in dogfood-2-f1-f4.md F17. Only meaningful
|
|
98
|
+
* when the unit-test stage actually runs (i.e. not when `skipTests`
|
|
99
|
+
* is true). Does NOT affect the other 3 stages (typecheck /
|
|
100
|
+
* review-fanout / gate-verify-pipeline). Default: false. The service
|
|
101
|
+
* treats `undefined` the same as `false`.
|
|
102
|
+
*/
|
|
103
|
+
allowPreExistingFailures?: boolean;
|
|
104
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type envelope for the `peaks slice check` CLI command.
|
|
3
|
+
*
|
|
4
|
+
* `peaks slice check` is the boundary check for the RD micro-cycle
|
|
5
|
+
* (see `skills/peaks-code/references/micro-cycle.md`). It bundles the
|
|
6
|
+
* 4 self-checks that must pass at slice end before the slice is handed
|
|
7
|
+
* off to peaks-qa:
|
|
8
|
+
*
|
|
9
|
+
* 1. typecheck (`npx tsc --noEmit`)
|
|
10
|
+
* 2. unit tests — by default the **changed-only** suite
|
|
11
|
+
* (`npx vitest run --changed`). Pass `--run-tests` to opt in to the
|
|
12
|
+
* full suite (`npx vitest run`); pass `--skip-tests` to skip
|
|
13
|
+
* entirely (e.g. docs-only or config-only slices).
|
|
14
|
+
* 3. 3-way review fan-out (code-review + security-review + perf-baseline)
|
|
15
|
+
* 4. gate machinery (`peaks workflow verify-pipeline --rid <rid>`)
|
|
16
|
+
*
|
|
17
|
+
* The micro-cycle itself (per-bug TDD) runs OUTSIDE slice check — only
|
|
18
|
+
* single-test runs (`vitest -t "<name>"`) are allowed in micro-cycles.
|
|
19
|
+
* This command is for the BOUNDARY, not the inner loop.
|
|
20
|
+
*
|
|
21
|
+
* The unit-test stage emits a `unitTestsRunMode` field on the result
|
|
22
|
+
* envelope so downstream tooling and the QA test-report can record
|
|
23
|
+
* which mode actually ran: `"changed"` (default), `"full"` (with
|
|
24
|
+
* `--run-tests`), `"skipped"` (with `--skip-tests`), or `"overridden"`
|
|
25
|
+
* (with `--allow-pre-existing-failures` when the run failed and the
|
|
26
|
+
* stage was downgraded to `skipped` with a reason).
|
|
27
|
+
*/
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice Decomposition Service -- default runners.
|
|
3
|
+
*
|
|
4
|
+
* See `.peaks/_runtime/2026-06-13-session-86d852/sc/slice-algorithm-design.md`
|
|
5
|
+
* for the full spec. This module hosts the 3 default runner factories
|
|
6
|
+
* (CLI-mode, real shell-outs) used by `decomposeSlices` when the caller
|
|
7
|
+
* does not inject fakes via `DecomposeOptions`. The 6-stage pure
|
|
8
|
+
* algorithm itself lives in `slice-decompose-service.ts`.
|
|
9
|
+
*
|
|
10
|
+
* Public surface (3 exported factories):
|
|
11
|
+
*
|
|
12
|
+
* defaultCodegraphRunner() -- spawns `npx codegraph <cmd>`
|
|
13
|
+
* defaultUnderstandRunner() -- reads .understand-anything/knowledge-graph.json
|
|
14
|
+
* defaultImportEdgeRunner() -- reads source files for import statements
|
|
15
|
+
*
|
|
16
|
+
* v2.18.3 file-split: this module is the extracted sub-tree of the
|
|
17
|
+
* pre-split `slice-decompose-service.ts`. Function signatures are
|
|
18
|
+
* unchanged (verbatim move).
|
|
19
|
+
*/
|
|
20
|
+
import type { CodegraphRunner, ImportEdgeRunner, UnderstandRunner } from './slice-decompose-types.js';
|
|
21
|
+
export declare function defaultCodegraphRunner(): CodegraphRunner;
|
|
22
|
+
export declare function defaultUnderstandRunner(): UnderstandRunner;
|
|
23
|
+
export declare function defaultImportEdgeRunner(): ImportEdgeRunner;
|