peaks-loop 4.0.0-beta → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +5 -0
- package/CHANGELOG.md +533 -87
- package/README-en.md +184 -56
- package/README.md +184 -46
- package/bin/peaks.js +1 -1
- 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/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +404 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/code-commands.d.ts +80 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/core/skill-command.js +300 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +150 -0
- package/dist/cli/commands/sediment-commands.js +649 -0
- package/dist/cli/commands/session-auto-compact-hook-command.js +127 -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/sub-agent-shared.d.ts +99 -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/workflow-commands.js +544 -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/program.js +408 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/artifacts/repair-cycle-service.js +52 -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/red-line-catalog.d.ts +51 -0
- package/dist/services/audit/red-line-catalog.js +195 -0
- package/dist/services/audit/types.d.ts +86 -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/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/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/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.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-types.d.ts +143 -0
- package/dist/services/context/context-schema.d.ts +415 -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/dispatch/slice-dag.d.ts +81 -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/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.js +300 -0
- package/dist/services/filesystem/file-lock.js +152 -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/ide-registry.js +63 -0
- package/dist/services/ide/ide-types.d.ts +253 -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/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/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -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/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/preferences/preferences-service.d.ts +38 -0
- package/dist/services/preferences/preferences-types.d.ts +148 -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/rd/rd-service.js +441 -0
- package/dist/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/services/rd/standards-diagnostic.js +166 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/recommendations/capability-seed-items.js +140 -0
- package/dist/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/services/recommendations/recommendation-service.js +106 -0
- package/dist/services/refactor/refactor-service.d.ts +9 -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/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/scan/archetype-service.js +254 -0
- package/dist/services/scan/scan-types.d.ts +59 -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.js +76 -0
- package/dist/services/skill/resume-detector.js +334 -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-import.js +64 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skills/skill-presence-service.d.ts +158 -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.js +214 -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-standards-service.js +693 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/1x-detector-service.js +94 -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/workflow-autonomous-service.d.ts +100 -0
- package/dist/services/workflow/workflow-autonomous-service.js +306 -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/workspace/claude-settings-template.d.ts +101 -0
- package/dist/services/workspace/claude-settings-template.js +254 -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/shared/version.d.ts +1 -0
- package/dist/shared/version.js +1 -0
- package/examples/video-demo/README.md +142 -0
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- package/output-styles/peaks-skill-swarm.md +3 -3
- package/package.json +28 -10
- package/scripts/copy-templates.mjs +64 -0
- package/scripts/install-skills.mjs +13 -10
- package/skills/bee/peaks-qa/SKILL.md +1 -1
- package/skills/bee/peaks-qa/references/artifact-per-request.md +3 -3
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +6 -6
- package/skills/bee/peaks-rd/SKILL.md +1 -1
- package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
- package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +1 -1
- package/skills/bee/peaks-rd/references/rd-runbook.md +3 -3
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +11 -11
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +3 -3
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
- package/skills/bee/peaks-sc/SKILL.md +1 -1
- package/skills/bee/peaks-txt/SKILL.md +3 -3
- package/skills/bee/peaks-ui/SKILL.md +10 -10
- package/skills/peaks-code/SKILL.md +58 -62
- package/skills/peaks-code/references/anchoring-and-session-info.md +2 -2
- package/skills/peaks-code/references/artifact-contracts.md +1 -1
- package/skills/peaks-code/references/boundaries.md +3 -3
- package/skills/peaks-code/references/codegraph-orchestration.md +1 -1
- package/skills/peaks-code/references/dag-orchestrator.md +7 -7
- package/skills/peaks-code/references/external-references.md +2 -4
- package/skills/peaks-code/references/external-skill-invocation.md +1 -1
- package/skills/peaks-code/references/fanout-mandatory.md +3 -3
- package/skills/peaks-code/references/fast-mode.md +2 -2
- package/skills/peaks-code/references/frontend-only-mode.md +9 -9
- package/skills/peaks-code/references/job-loop.md +1 -1
- package/skills/peaks-code/references/local-artifact-workspace.md +2 -2
- package/skills/peaks-code/references/micro-cycle.md +14 -14
- package/skills/peaks-code/references/mode-selection-with-stale-presence.md +5 -5
- package/skills/peaks-code/references/mode-selection.md +3 -3
- package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
- package/skills/peaks-code/references/project-scan-checklist.md +3 -1
- package/skills/peaks-code/references/quality-gate-cheatsheet.md +1 -1
- package/skills/peaks-code/references/refactor-mode.md +1 -1
- package/skills/peaks-code/references/runbook.md +18 -20
- package/skills/peaks-code/references/standards-preflight.md +1 -1
- package/skills/peaks-code/references/step-0-55-1x-detection.md +3 -2
- package/skills/peaks-code/references/step-0-8-gate.md +11 -11
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/sub-agent-dispatch.md +8 -8
- package/skills/peaks-code/references/swarm-dispatch-contract.md +18 -18
- package/skills/peaks-code/references/workflow-gates-and-types.md +6 -6
- package/skills/peaks-code/references/workflow.md +5 -5
- package/skills/peaks-content/SKILL.md +272 -0
- package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
- package/skills/peaks-resume/SKILL.md +2 -2
- package/skills/peaks-slice-decompose/SKILL.md +61 -1
- package/skills/peaks-solo/SKILL.md +197 -0
- package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
- package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
- package/skills/peaks-solo/references/triage-decision-table.md +31 -0
- package/skills/peaks-status/SKILL.md +2 -2
- package/skills/peaks-test/SKILL.md +2 -2
- package/dist/src/cli/commands/core/skill-command.js +0 -275
- package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
- package/dist/src/cli/commands/hook-handle.js +0 -157
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/loop-commands.d.ts +0 -21
- package/dist/src/cli/commands/loop-commands.js +0 -128
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/sediment-commands.js +0 -640
- package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/src/cli/commands/solo-commands.d.ts +0 -80
- package/dist/src/cli/commands/solo-commands.js +0 -798
- package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +0 -18
- package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
- package/dist/src/cli/commands/workspace/init-command.js +0 -436
- package/dist/src/cli/program.js +0 -368
- package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +0 -29
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +0 -71
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +0 -23
- package/dist/src/services/audit/enforcers/solo-code-ban.js +0 -27
- package/dist/src/services/audit/red-line-catalog.d.ts +0 -51
- package/dist/src/services/audit/red-line-catalog.js +0 -195
- package/dist/src/services/audit/types.d.ts +0 -86
- package/dist/src/services/config/model-routing.d.ts +0 -4
- package/dist/src/services/config/model-routing.js +0 -17
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +0 -37
- package/dist/src/services/context/auto-compact-dispatcher.js +0 -240
- package/dist/src/services/context/auto-compact-types.d.ts +0 -143
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
- package/dist/src/services/dispatch/test-tool-detection.d.ts +0 -36
- package/dist/src/services/dispatch/test-tool-detection.js +0 -46
- package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
- package/dist/src/services/filesystem/file-lock.js +0 -129
- package/dist/src/services/ide/ide-registry.js +0 -60
- package/dist/src/services/ide/ide-types.d.ts +0 -230
- package/dist/src/services/job/job-progress-store.d.ts +0 -60
- package/dist/src/services/job/job-progress-store.js +0 -70
- package/dist/src/services/memory/project-context-service.d.ts +0 -11
- package/dist/src/services/memory/project-context-service.js +0 -148
- package/dist/src/services/preferences/preferences-service.d.ts +0 -38
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/src/services/providers/minimax-worker-service.js +0 -83
- package/dist/src/services/rd/rd-service.js +0 -438
- package/dist/src/services/rd/standards-diagnostic.d.ts +0 -76
- package/dist/src/services/rd/standards-diagnostic.js +0 -166
- package/dist/src/services/rd/types.d.ts +0 -252
- package/dist/src/services/recommendations/capability-seed-items.js +0 -140
- package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
- package/dist/src/services/recommendations/recommendation-service.js +0 -106
- package/dist/src/services/refactor/refactor-service.d.ts +0 -9
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/signal/cancel-handler.js +0 -76
- package/dist/src/services/skill/resume-detector.js +0 -334
- package/dist/src/services/skillhub/release-import.js +0 -59
- package/dist/src/services/skillhub/release-retain.js +0 -89
- package/dist/src/services/skillhub/sqlite-store.js +0 -47
- package/dist/src/services/skillhub/types.d.ts +0 -105
- package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +0 -98
- package/dist/src/services/solo/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/solo/dag-orchestrator.d.ts +0 -128
- package/dist/src/services/solo/dag-orchestrator.js +0 -304
- package/dist/src/services/solo/emit-handoff.d.ts +0 -49
- package/dist/src/services/solo/emit-handoff.js +0 -79
- package/dist/src/services/solo/job-shape-decision.d.ts +0 -71
- package/dist/src/services/solo/job-shape-decision.js +0 -151
- package/dist/src/services/solo/mode-gate.d.ts +0 -163
- package/dist/src/services/solo/mode-gate.js +0 -212
- package/dist/src/services/solo/post-compact-detector.d.ts +0 -61
- package/dist/src/services/solo/post-compact-detector.js +0 -240
- package/dist/src/services/solo/step-08-gate.d.ts +0 -90
- package/dist/src/services/solo/step-08-gate.js +0 -136
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +0 -44
- package/dist/src/services/solo/user-touchpoint-classifier.js +0 -145
- package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
- package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
- package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
- package/dist/src/services/standards/missing-standards-detector.js +0 -132
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/upgrade/1x-detector-service.js +0 -94
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +0 -90
- package/dist/src/services/workflow/pipeline-verify-service.js +0 -449
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +0 -100
- package/dist/src/services/workflow/workflow-autonomous-service.js +0 -306
- package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
- package/dist/src/services/workflow/workflow-router-service.js +0 -227
- package/dist/src/services/workspace/claude-settings-template.d.ts +0 -101
- package/dist/src/services/workspace/claude-settings-template.js +0 -254
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/skills/peaks-code/references/openspec-workflow.md +0 -81
- /package/dist/{src/cli → cli}/cli-helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/cli-helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/agent-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/worker-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/worker-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/index.js +0 -0
- /package/dist/{src/cli → cli}/program.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
- /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
- /package/dist/{src/services → services}/agent/ecc-agent-service.d.ts +0 -0
- /package/dist/{src/services → services}/agent/ecc-agent-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.js +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
- /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
- /package/dist/{src/services → services}/audit/classifier.js +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/static-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/static-service.js +0 -0
- /package/dist/{src/services → services}/audit/types.js +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.js +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-types.js +0 -0
- /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.d.ts +0 -0
- /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.js +0 -0
- /package/dist/{src/services/solo → services/code}/status-line-renderer.d.ts +0 -0
- /package/dist/{src/services/solo → services/code}/status-line-renderer.js +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
- /package/dist/{src/services → services}/code-review/ocr-service.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ocr-service.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
- /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-migration.js +0 -0
- /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-restore.js +0 -0
- /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-rollback.js +0 -0
- /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-safety.js +0 -0
- /package/dist/{src/services → services}/config/config-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-service.js +0 -0
- /package/dist/{src/services → services}/config/config-types.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-types.js +0 -0
- /package/dist/{src/services → services}/config/provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/provider-service.js +0 -0
- /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/proxy-service.js +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
- /package/dist/{src/services → services}/context/collector.d.ts +0 -0
- /package/dist/{src/services → services}/context/collector.js +0 -0
- /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-builder.js +0 -0
- /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-guard.js +0 -0
- /package/dist/{src/services → services}/context/context-schema.js +0 -0
- /package/dist/{src/services → services}/context/dispatch-context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/dispatch-context-guard.js +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
- /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-client.js +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
- /package/dist/{src/services → services}/context/index.d.ts +0 -0
- /package/dist/{src/services → services}/context/index.js +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
- /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
- /package/dist/{src/services → services}/context/renderer.js +0 -0
- /package/dist/{src/services → services}/context/shared-channel.d.ts +0 -0
- /package/dist/{src/services → services}/context/shared-channel.js +0 -0
- /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
- /package/dist/{src/services → services}/context/threshold.js +0 -0
- /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
- /package/dist/{src/services → services}/context/tokenizer.js +0 -0
- /package/dist/{src/services → services}/context/types.d.ts +0 -0
- /package/dist/{src/services → services}/context/types.js +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.js +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.js +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.js +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
- /package/dist/{src/services → services}/doctor/doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/doctor/doctor-service.js +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
- /package/dist/{src/services → services}/filesystem/file-lock.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.js +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
- /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/index.js +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
- /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/output.js +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
- /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-types.js +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
- /package/dist/{src/services → services}/job/job-resource-snapshot.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-resource-snapshot.js +0 -0
- /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-rotation.js +0 -0
- /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-state-store.js +0 -0
- /package/dist/{src/services → services}/job/job-types.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-types.js +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
- /package/dist/{src/services → services}/log/logger.d.ts +0 -0
- /package/dist/{src/services → services}/log/logger.js +0 -0
- /package/dist/{src/services → services}/log/redact.d.ts +0 -0
- /package/dist/{src/services → services}/log/redact.js +0 -0
- /package/dist/{src/services → services}/log/retention.d.ts +0 -0
- /package/dist/{src/services → services}/log/retention.js +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
- /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
- /package/dist/{src/services → services}/loop/run-driver.js +0 -0
- /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/spec-service.js +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
- /package/dist/{src/services → services}/mut/assert-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/assert-scanner.js +0 -0
- /package/dist/{src/services → services}/mut/index.d.ts +0 -0
- /package/dist/{src/services → services}/mut/index.js +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.js +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.d.ts +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.js +0 -0
- /package/dist/{src/services → services}/mut/report-builder.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-builder.js +0 -0
- /package/dist/{src/services → services}/mut/report-loader.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-loader.js +0 -0
- /package/dist/{src/services → services}/mut/thresholds.d.ts +0 -0
- /package/dist/{src/services → services}/mut/thresholds.js +0 -0
- /package/dist/{src/services → services}/mut/types.d.ts +0 -0
- /package/dist/{src/services → services}/mut/types.js +0 -0
- /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
- /package/dist/{src/services → services}/observability/aggregation.js +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
- /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
- /package/dist/{src/services → services}/observability/observability-service.js +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.js +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
- /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-service.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-types.js +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
- /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
- /package/dist/{src/services → services}/progress/progress-service.js +0 -0
- /package/dist/{src/services → services}/providers/minimax-provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/providers/minimax-provider-service.js +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
- /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
- /package/dist/{src/services → services}/rd/impl.js +0 -0
- /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
- /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategy.js +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
- /package/dist/{src/services → services}/rd/types.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.js +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
- /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
- /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
- /package/dist/{src/services → services}/release/release-state.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
- /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
- /package/dist/{src/services → services}/role/role-registry.js +0 -0
- /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
- /package/dist/{src/services → services}/sc/index.d.ts +0 -0
- /package/dist/{src/services → services}/sc/index.js +0 -0
- /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
- /package/dist/{src/services → services}/sc/sc-service.js +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.js +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
- /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.js +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
- /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
- /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
- /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
- /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-store.js +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
- /package/dist/{src/services → services}/session/index.d.ts +0 -0
- /package/dist/{src/services → services}/session/index.js +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
- /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-manager.js +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
- /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-registry.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-registry.js +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/sync-service.js +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
- /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
- /package/dist/{src/services → services}/slice/schema-router.js +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-types.js +0 -0
- /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
- /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
- /package/dist/{src/services → services}/standards/project-context.js +0 -0
- /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.js +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
- /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.js +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.js +0 -0
- /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.js +0 -0
- /package/dist/{src/services → services}/verdict/envelopes.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/envelopes.js +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
- /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
- /package/dist/{src/shared → shared}/frontmatter.js +0 -0
- /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs-utils.js +0 -0
- /package/dist/{src/shared → shared}/fs.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs.js +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
- /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-safety.js +0 -0
- /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-utils.js +0 -0
- /package/dist/{src/shared → shared}/paths.d.ts +0 -0
- /package/dist/{src/shared → shared}/paths.js +0 -0
- /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
- /package/dist/{src/shared → shared}/planner-response.js +0 -0
- /package/dist/{src/shared → shared}/platform.d.ts +0 -0
- /package/dist/{src/shared → shared}/platform.js +0 -0
- /package/dist/{src/shared → shared}/process.d.ts +0 -0
- /package/dist/{src/shared → shared}/process.js +0 -0
- /package/dist/{src/shared → shared}/result.d.ts +0 -0
- /package/dist/{src/shared → shared}/result.js +0 -0
- /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
- /package/dist/{src/shared → shared}/stale-policy.js +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import type { RequestType } from '../artifacts/artifact-prerequisites.js';
|
|
2
|
-
export type PipelineGate = {
|
|
3
|
-
name: string;
|
|
4
|
-
description: string;
|
|
5
|
-
passed: boolean;
|
|
6
|
-
detail: string;
|
|
7
|
-
/**
|
|
8
|
-
* Slice 2026-06-13-peaks-workflow-skip: optional status that
|
|
9
|
-
* distinguishes a gate that was BYPASSED via `peaks workflow skip`
|
|
10
|
-
* from one that actually passed evaluation. When set, the gate
|
|
11
|
-
* was NOT evaluated by `evaluateGate` — the user/CLI explicitly
|
|
12
|
-
* marked it as skipped. The boolean `passed` is set to `true` so
|
|
13
|
-
* existing consumers (which only check `passed`) treat a skipped
|
|
14
|
-
* gate as "satisfied", but downstream consumers that need
|
|
15
|
-
* audit-grade distinction (e.g. CI badges, dashboards) can read
|
|
16
|
-
* `status` to tell pass / fail / skipped apart.
|
|
17
|
-
*
|
|
18
|
-
* - omitted (default): not set, gate was evaluated; treat as legacy.
|
|
19
|
-
* - 'pass': gate evaluated and passed.
|
|
20
|
-
* - 'fail': gate evaluated and failed.
|
|
21
|
-
* - 'skipped': gate was bypassed; never evaluated.
|
|
22
|
-
*/
|
|
23
|
-
status?: 'pass' | 'fail' | 'skipped';
|
|
24
|
-
};
|
|
25
|
-
export type PipelineVerification = {
|
|
26
|
-
rid: string;
|
|
27
|
-
sessionId: string;
|
|
28
|
-
requestType: RequestType;
|
|
29
|
-
complete: boolean;
|
|
30
|
-
rdPhase: {
|
|
31
|
-
invoked: boolean;
|
|
32
|
-
state: string;
|
|
33
|
-
gates: PipelineGate[];
|
|
34
|
-
};
|
|
35
|
-
qaPhase: {
|
|
36
|
-
invoked: boolean;
|
|
37
|
-
state: string;
|
|
38
|
-
gates: PipelineGate[];
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Slice 002 (v2.15.0) AC-3: Gate H "feedback-promotion". Always
|
|
42
|
-
* present (single-element array). Evaluates whether every
|
|
43
|
-
* `metadata.type === 'feedback'` memory in `.peaks/memory/`
|
|
44
|
-
* carries a promotion marker (comment OR sidecar). Failures
|
|
45
|
-
* block the `complete` verdict via the `gateH` field below; the
|
|
46
|
-
* pipeline only completes when every gate in this array passes.
|
|
47
|
-
*/
|
|
48
|
-
feedbackPhase?: {
|
|
49
|
-
gates: PipelineGate[];
|
|
50
|
-
};
|
|
51
|
-
violations: string[];
|
|
52
|
-
nextActions: string[];
|
|
53
|
-
/** Form of the security/performance findings artifacts Gate C accepted
|
|
54
|
-
* (slice 025). `'suffixed'` for the new per-rid form, `'legacy'` for the
|
|
55
|
-
* pre-slice-025 non-suffixed form, `'none'` when neither was found. */
|
|
56
|
-
acceptedForm?: 'suffixed' | 'legacy' | 'none';
|
|
57
|
-
/** `gateC` is the pre-computed verdict string (AC7 dogfood shape). */
|
|
58
|
-
gateC?: 'pass' | 'fail';
|
|
59
|
-
/**
|
|
60
|
-
* Slice 002 (v2.15.0) AC-3: Gate H verdict string. `'pass'` when
|
|
61
|
-
* all feedback memories are promoted; `'fail'` when at least one
|
|
62
|
-
* unpromoted feedback memory was found.
|
|
63
|
-
*/
|
|
64
|
-
gateH?: 'pass' | 'fail';
|
|
65
|
-
/**
|
|
66
|
-
* Slice 2026-06-28-solo-mode-bypass-fix (defect #3): `true` when
|
|
67
|
-
* every evidence file resolved on the canonical path
|
|
68
|
-
* (`.peaks/_runtime/change/<sessionId>/...`). `false` when at least
|
|
69
|
-
* one evidence file resolved via a legacy fallback (`.peaks/<sessionId>/...`
|
|
70
|
-
* or `.peaks/_runtime/<sessionId>/...`). QA / TXT surface the value
|
|
71
|
-
* so users know to move misplaced evidence into the canonical
|
|
72
|
-
* location.
|
|
73
|
-
*
|
|
74
|
-
* Slice 2026-06-29-change-id-root-removal: the legacy
|
|
75
|
-
* `peaks workspace migrate-change-scope` migration tool is gone;
|
|
76
|
-
* users must now move misplaced content into the canonical
|
|
77
|
-
* `.peaks/_runtime/change/<sessionId>/<role>/` dir manually (or via
|
|
78
|
-
* `peaks workspace migrate`).
|
|
79
|
-
*/
|
|
80
|
-
usedCanonicalPath?: boolean;
|
|
81
|
-
};
|
|
82
|
-
export declare function verifyPipeline(options: {
|
|
83
|
-
projectRoot: string;
|
|
84
|
-
rid: string;
|
|
85
|
-
/** Optional explicit session-id; when omitted, the RD/QA on-disk location
|
|
86
|
-
* is resolved via showRequestArtifact (which scans all top-level dirs and
|
|
87
|
-
* returns the actual session-id the file lives in). */
|
|
88
|
-
sessionId?: string;
|
|
89
|
-
requestType?: string;
|
|
90
|
-
}): Promise<PipelineVerification>;
|
|
@@ -1,449 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { isRequestType } from '../artifacts/artifact-prerequisites.js';
|
|
4
|
-
import { showRequestArtifact } from '../artifacts/request-artifact-service.js';
|
|
5
|
-
import { resolveSecurityFindingsPath, resolvePerformanceFindingsPath } from './artifact-paths.js';
|
|
6
|
-
import { readSkipState } from './workflow-state-store.js';
|
|
7
|
-
import { getSessionIdCanonical } from '../session/session-manager.js';
|
|
8
|
-
import { listUnpromotedFeedback } from '../feedback/feedback-promotion-service.js';
|
|
9
|
-
function extractState(markdown) {
|
|
10
|
-
for (const rawLine of markdown.split(/\r?\n/)) {
|
|
11
|
-
const match = /^-\s*state:\s*(.+?)\s*$/.exec(rawLine.trim());
|
|
12
|
-
if (match?.[1])
|
|
13
|
-
return match[1];
|
|
14
|
-
}
|
|
15
|
-
return 'unknown';
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* As of slice 2026-06-05-change-id-as-unit-of-work, the file's durable
|
|
19
|
-
* scope is the change-id (the `.peaks/_runtime/<sessionId>/` dir the file lives
|
|
20
|
-
* in), NOT the session-id. We resolve the on-disk location via
|
|
21
|
-
* `showRequestArtifact` (which scans all top-level dirs and returns the
|
|
22
|
-
* actual dir the file was found in) instead of assuming
|
|
23
|
-
* `.peaks/_runtime/<sessionId>/<role>/requests/`.
|
|
24
|
-
*/
|
|
25
|
-
async function findRequestFile(projectRoot, role, rid) {
|
|
26
|
-
const artifact = await showRequestArtifact({ projectRoot, role: role, requestId: rid });
|
|
27
|
-
if (artifact === null)
|
|
28
|
-
return null;
|
|
29
|
-
// Slice 2026-06-28-solo-mode-bypass-fix (defect #3): the legacy
|
|
30
|
-
// `showRequestArtifact` returns the FULL SCOPE (`_runtime/<sid>`)
|
|
31
|
-
// as `sessionId`, not just the trailing id segment. The canonical
|
|
32
|
-
// evidence lookup needs only the bare id (`.peaks/_runtime/change/<id>/`).
|
|
33
|
-
// When the scope starts with `_runtime/`, strip that prefix so the
|
|
34
|
-
// path resolver builds the right canonical location.
|
|
35
|
-
let sessionId = artifact.sessionId;
|
|
36
|
-
if (sessionId.startsWith('_runtime/') || sessionId.startsWith('_runtime\\')) {
|
|
37
|
-
sessionId = sessionId.replace(/^_runtime[\\/]/, '');
|
|
38
|
-
}
|
|
39
|
-
return { path: artifact.path, content: artifact.content, sessionId };
|
|
40
|
-
}
|
|
41
|
-
function rdGatesForType(requestType) {
|
|
42
|
-
const gates = [
|
|
43
|
-
{ name: 'rd-request-exists', description: 'RD request artifact created', passed: false, detail: '' }
|
|
44
|
-
];
|
|
45
|
-
if (requestType === 'feature' || requestType === 'refactor') {
|
|
46
|
-
gates.push({ name: 'tech-doc', description: 'Technical design doc', passed: false, detail: '' });
|
|
47
|
-
}
|
|
48
|
-
if (requestType === 'bugfix') {
|
|
49
|
-
gates.push({ name: 'bug-analysis', description: 'Bug root-cause analysis', passed: false, detail: '' });
|
|
50
|
-
}
|
|
51
|
-
if (requestType !== 'docs' && requestType !== 'chore' && requestType !== 'config') {
|
|
52
|
-
gates.push({ name: 'code-review', description: 'Code review evidence', passed: false, detail: '' });
|
|
53
|
-
}
|
|
54
|
-
if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix' || requestType === 'config') {
|
|
55
|
-
gates.push({ name: 'security-review', description: 'Security review evidence', passed: false, detail: '' });
|
|
56
|
-
}
|
|
57
|
-
return gates;
|
|
58
|
-
}
|
|
59
|
-
function qaGatesForType(requestType) {
|
|
60
|
-
const gates = [
|
|
61
|
-
{ name: 'qa-request-exists', description: 'QA request artifact created', passed: false, detail: '' }
|
|
62
|
-
];
|
|
63
|
-
if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix') {
|
|
64
|
-
gates.push({ name: 'test-cases', description: 'QA test cases', passed: false, detail: '' });
|
|
65
|
-
gates.push({ name: 'test-report', description: 'QA test report with execution results', passed: false, detail: '' });
|
|
66
|
-
}
|
|
67
|
-
if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix' || requestType === 'config') {
|
|
68
|
-
gates.push({ name: 'security-findings', description: 'QA security findings', passed: false, detail: '' });
|
|
69
|
-
}
|
|
70
|
-
if (requestType === 'feature' || requestType === 'refactor') {
|
|
71
|
-
gates.push({ name: 'performance-findings', description: 'QA performance findings', passed: false, detail: '' });
|
|
72
|
-
}
|
|
73
|
-
return gates;
|
|
74
|
-
}
|
|
75
|
-
const RD_QA_HANDOFF_STATES = new Set(['qa-handoff', 'handed-off', 'implemented']);
|
|
76
|
-
const QA_COMPLETE_STATES = new Set(['verdict-issued']);
|
|
77
|
-
export async function verifyPipeline(options) {
|
|
78
|
-
const requestType = isRequestType(options.requestType ?? '') ? options.requestType : 'feature';
|
|
79
|
-
const violations = [];
|
|
80
|
-
const nextActions = [];
|
|
81
|
-
const rdGates = rdGatesForType(requestType);
|
|
82
|
-
const qaGates = qaGatesForType(requestType);
|
|
83
|
-
// Slice 2026-06-13-peaks-workflow-skip: read the skip-state (if any)
|
|
84
|
-
// and pre-mark matching gates as `status: 'skipped'`. We do this
|
|
85
|
-
// BEFORE evaluating evidence files, so a skipped gate never
|
|
86
|
-
// emits a "missing evidence" violation. The boolean `passed` is
|
|
87
|
-
// set to `true` so legacy consumers (which only check `passed`)
|
|
88
|
-
// treat skipped gates as satisfied; the new `status` field
|
|
89
|
-
// distinguishes the bypass from an actual pass.
|
|
90
|
-
const skippedGateNames = new Set();
|
|
91
|
-
if (options.sessionId !== undefined) {
|
|
92
|
-
const skipState = readSkipState(options.projectRoot, options.sessionId, options.rid);
|
|
93
|
-
if (skipState !== null) {
|
|
94
|
-
for (const gateName of skipState.skippedGates) {
|
|
95
|
-
if (gateName === 'QA' || gateName === 'qa-phase' || gateName === 'qa') {
|
|
96
|
-
for (const g of qaGates)
|
|
97
|
-
skippedGateNames.add(g.name);
|
|
98
|
-
}
|
|
99
|
-
else if (gateName === 'RD' || gateName === 'rd-phase' || gateName === 'rd') {
|
|
100
|
-
for (const g of rdGates)
|
|
101
|
-
skippedGateNames.add(g.name);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
skippedGateNames.add(gateName);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
nextActions.push(`Skipped gates (via peaks workflow skip): [${skipState.skippedGates.join(', ')}] — reason: ${skipState.skipReason}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
function markIfSkipped(gate) {
|
|
111
|
-
if (skippedGateNames.has(gate.name)) {
|
|
112
|
-
gate.status = 'skipped';
|
|
113
|
-
gate.passed = true;
|
|
114
|
-
gate.detail = 'skipped via peaks workflow skip';
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
// Resolve RD + QA on-disk locations via showRequestArtifact (the change-id
|
|
118
|
-
// is whatever dir the file actually lives in, not the caller's session-id).
|
|
119
|
-
const rdFile = await findRequestFile(options.projectRoot, 'rd', options.rid);
|
|
120
|
-
let rdInvoked = false;
|
|
121
|
-
let rdState = 'missing';
|
|
122
|
-
// The resolved change-id is the on-disk location the file actually
|
|
123
|
-
// lives in. The caller's `options.sessionId` is a hint used for
|
|
124
|
-
// path construction (nextActions strings), NOT for the resolved
|
|
125
|
-
// sessionId field — the on-disk location is the source of truth.
|
|
126
|
-
let resolvedChangeId = '';
|
|
127
|
-
if (rdFile) {
|
|
128
|
-
rdInvoked = true;
|
|
129
|
-
rdState = extractState(rdFile.content);
|
|
130
|
-
rdGates[0].passed = true;
|
|
131
|
-
rdGates[0].detail = `found at ${rdFile.path}`;
|
|
132
|
-
resolvedChangeId = rdFile.sessionId;
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
violations.push('RD phase skipped: peaks-rd was never invoked for this request (no RD request artifact found)');
|
|
136
|
-
nextActions.push('Invoke Skill(skill="peaks-rd") with the request-id, then run unit tests + code review + security review');
|
|
137
|
-
rdGates[0].detail = 'not found';
|
|
138
|
-
}
|
|
139
|
-
// Check RD evidence files (under the change-id dir the RD request lives in)
|
|
140
|
-
const RD_EVIDENCE_FILE = {
|
|
141
|
-
'tech-doc': 'tech-doc.md',
|
|
142
|
-
'bug-analysis': 'bug-analysis.md',
|
|
143
|
-
'code-review': 'code-review.md',
|
|
144
|
-
'security-review': 'security-review.md'
|
|
145
|
-
};
|
|
146
|
-
// Slice v2.17.0 hard-kill — change-id axis removed as filesystem
|
|
147
|
-
// scope. The canonical evidence location is now the session axis
|
|
148
|
-
// `.peaks/_runtime/<sessionId>/<role>/...` (where `<sessionId>` is
|
|
149
|
-
// the on-disk dir the request artifact lives in; for back-compat
|
|
150
|
-
// with the legacy `_runtime/<sessionId>/` and `.peaks/<sessionId>/`
|
|
151
|
-
// layouts we also probe those). When the legacy fallback fires, the
|
|
152
|
-
// gate detail / nextActions surface the `DEPRECATION_LEGACY_PATH_USED`
|
|
153
|
-
// warning so QA / TXT can nudge users to migrate via
|
|
154
|
-
// `peaks workspace migrate-change-scope --apply`.
|
|
155
|
-
// v2.18.1 bug #5 fix: same session-axis fallback as the QA resolver
|
|
156
|
-
// below. When `resolvedChangeId` is empty (no RD/QA artifact on disk
|
|
157
|
-
// yet), the canonical session id from the binding-store is the
|
|
158
|
-
// preferred filesystem scope; falling through to `options.rid` would
|
|
159
|
-
// make every missing-evidence path look like a per-rid scope dir.
|
|
160
|
-
const rdEvidenceDir = resolvedChangeId || options.sessionId || getSessionIdCanonical(options.projectRoot) || options.rid;
|
|
161
|
-
// Slice 2026-06-28-solo-mode-bypass-fix (defect #3): track whether
|
|
162
|
-
// every resolved evidence file landed on the canonical path. Drives
|
|
163
|
-
// the `usedCanonicalPath` envelope field. The flag stays `true` if
|
|
164
|
-
// no evidence file was resolved at all (nothing to be non-canonical
|
|
165
|
-
// about); it flips to `false` if any file resolves via legacy.
|
|
166
|
-
let anyEvidenceResolved = false;
|
|
167
|
-
let allResolvedPathsCanonical = true;
|
|
168
|
-
for (const gate of rdGates.slice(1)) {
|
|
169
|
-
const fileName = RD_EVIDENCE_FILE[gate.name];
|
|
170
|
-
// v2.17.0 canonical: session axis — `<sessionId>` is the on-disk
|
|
171
|
-
// dir the request artifact was found in (matches the layout used
|
|
172
|
-
// by `request-artifact-service.ts` for new artifacts).
|
|
173
|
-
const canonicalPath = join(options.projectRoot, '.peaks', '_runtime', rdEvidenceDir, 'rd', fileName);
|
|
174
|
-
const legacyMisplacedPath = join(options.projectRoot, '.peaks', rdEvidenceDir, 'rd', fileName);
|
|
175
|
-
// Pre-v2.17.0 change-axis form: `.peaks/_runtime/change/<id>/rd/<file>`
|
|
176
|
-
// — the v2.16.0 / v2.17.0-era canonical that v2.17.0 hard-killed.
|
|
177
|
-
// Kept as a back-compat fallback for un-migrated workspaces.
|
|
178
|
-
const legacyChangeAxisPath = join(options.projectRoot, '.peaks', '_runtime', 'change', rdEvidenceDir, 'rd', fileName);
|
|
179
|
-
let resolvedPath = null;
|
|
180
|
-
let usedLegacy = false;
|
|
181
|
-
for (const candidate of [canonicalPath, legacyMisplacedPath, legacyChangeAxisPath]) {
|
|
182
|
-
if (existsSync(candidate)) {
|
|
183
|
-
resolvedPath = candidate;
|
|
184
|
-
usedLegacy = candidate !== canonicalPath;
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (resolvedPath !== null) {
|
|
189
|
-
anyEvidenceResolved = true;
|
|
190
|
-
if (usedLegacy)
|
|
191
|
-
allResolvedPathsCanonical = false;
|
|
192
|
-
gate.passed = true;
|
|
193
|
-
gate.detail = resolvedPath + (usedLegacy ? ' [DEPRECATION_LEGACY_PATH_USED]' : '');
|
|
194
|
-
if (usedLegacy) {
|
|
195
|
-
violations.push(`DEPRECATION_LEGACY_PATH_USED: ${resolvedPath} — move the file into .peaks/_runtime/${rdEvidenceDir}/rd/ (the canonical location) so subsequent runs resolve on the canonical path. The legacy \`peaks workspace migrate-change-scope\` helper was removed in v2.19.0; use \`peaks workspace migrate\` to relocate misplaced content.`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
gate.detail = `missing: ${canonicalPath}`;
|
|
200
|
-
violations.push(`RD evidence missing: ${gate.description} (${fileName})`);
|
|
201
|
-
nextActions.push(`Create .peaks/_runtime/${rdEvidenceDir}/rd/${fileName}`);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Check if RD reached qa-handoff
|
|
205
|
-
if (rdInvoked && !RD_QA_HANDOFF_STATES.has(rdState)) {
|
|
206
|
-
violations.push(`RD not ready for QA: state is "${rdState}" — must reach "qa-handoff" (unit tests, karpathy-guidelines §1 Think / §2 Simplicity / §3 Surgical / §4 Goal-Driven, code review, security review complete)`);
|
|
207
|
-
nextActions.push(`Complete RD gates → peaks request transition ${options.rid} --role rd --state qa-handoff`);
|
|
208
|
-
}
|
|
209
|
-
// Check QA phase
|
|
210
|
-
const qaFile = await findRequestFile(options.projectRoot, 'qa', options.rid);
|
|
211
|
-
let qaInvoked = false;
|
|
212
|
-
let qaState = 'missing';
|
|
213
|
-
if (qaFile) {
|
|
214
|
-
qaInvoked = true;
|
|
215
|
-
qaState = extractState(qaFile.content);
|
|
216
|
-
qaGates[0].passed = true;
|
|
217
|
-
qaGates[0].detail = `found at ${qaFile.path}`;
|
|
218
|
-
resolvedChangeId = qaFile.sessionId || resolvedChangeId;
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
violations.push('QA phase skipped: peaks-qa was never invoked for this request (no QA request artifact found)');
|
|
222
|
-
nextActions.push('Invoke Skill(skill="peaks-qa") with the request-id for functional/performance/security testing');
|
|
223
|
-
qaGates[0].detail = 'not found';
|
|
224
|
-
}
|
|
225
|
-
// Check QA evidence files. For the security/performance findings
|
|
226
|
-
// gates, the canonical form post-slice-025 is the per-rid suffixed
|
|
227
|
-
// path; the legacy non-suffixed form is still accepted during the
|
|
228
|
-
// 1-minor-release back-compat window. The path resolver
|
|
229
|
-
// (artifact-paths.ts) decides which form to consume; we pass the
|
|
230
|
-
// resolved change-id and the rid.
|
|
231
|
-
// v2.18.1 bug #5 fix: when no RD/QA artifact is on disk yet (resolvedChangeId
|
|
232
|
-
// is empty), fall back to the current session id from the binding-store
|
|
233
|
-
// instead of `rdEvidenceDir` (= the rid). The session axis
|
|
234
|
-
// `.peaks/_runtime/<sessionId>/qa/...` is the canonical v2.17.0 home; the
|
|
235
|
-
// legacy `_runtime/change/<sessionId>/qa/...` probe should only fire for
|
|
236
|
-
// pre-v2.17.0 workspaces, not as a default for new requests. The slug in
|
|
237
|
-
// the `sessionId` envelope field is preserved below for traceability.
|
|
238
|
-
const changeIdForResolver = resolvedChangeId || getSessionIdCanonical(options.projectRoot) || rdEvidenceDir;
|
|
239
|
-
const QA_EVIDENCE_FILE = {
|
|
240
|
-
'test-cases': `test-cases/${options.rid}.md`,
|
|
241
|
-
'test-report': `test-reports/${options.rid}.md`,
|
|
242
|
-
'security-findings': '',
|
|
243
|
-
'performance-findings': ''
|
|
244
|
-
};
|
|
245
|
-
for (const gate of qaGates.slice(1)) {
|
|
246
|
-
if (gate.name === 'security-findings' || gate.name === 'performance-findings') {
|
|
247
|
-
const resolver = gate.name === 'security-findings' ? resolveSecurityFindingsPath : resolvePerformanceFindingsPath;
|
|
248
|
-
const resolved = resolver({ projectRoot: options.projectRoot, sessionId: changeIdForResolver, rid: options.rid });
|
|
249
|
-
if (existsSync(resolved.path)) {
|
|
250
|
-
anyEvidenceResolved = true;
|
|
251
|
-
if (resolved.form === 'legacy')
|
|
252
|
-
allResolvedPathsCanonical = false;
|
|
253
|
-
gate.passed = true;
|
|
254
|
-
gate.detail = resolved.path;
|
|
255
|
-
if (resolved.form === 'legacy') {
|
|
256
|
-
// 1-minor-release back-compat window. Surface the warning so
|
|
257
|
-
// users know to migrate. Per PRD §Migration the form will be
|
|
258
|
-
// rejected after the next minor bump.
|
|
259
|
-
violations.push(`QA evidence accepted in legacy form (will be rejected after next minor release): ${resolved.path} — re-run peaks workflow plan refresh to migrate`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
gate.detail = `missing: ${resolved.path}`;
|
|
264
|
-
violations.push(`QA evidence missing: ${gate.description} (${resolved.path})`);
|
|
265
|
-
nextActions.push(`Create ${resolved.path} (or use the legacy non-suffixed form during the 1-minor-release back-compat window)`);
|
|
266
|
-
}
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
const fileName = QA_EVIDENCE_FILE[gate.name];
|
|
270
|
-
// v2.17.0 canonical: session axis — `<sessionId>/qa/<file>`.
|
|
271
|
-
const canonicalQaPath = join(options.projectRoot, '.peaks', '_runtime', rdEvidenceDir, 'qa', fileName);
|
|
272
|
-
const legacyMisplacedQaPath = join(options.projectRoot, '.peaks', rdEvidenceDir, 'qa', fileName);
|
|
273
|
-
// Pre-v2.17.0 change-axis form: kept as back-compat fallback.
|
|
274
|
-
const legacyChangeAxisQaPath = join(options.projectRoot, '.peaks', '_runtime', 'change', rdEvidenceDir, 'qa', fileName);
|
|
275
|
-
let resolvedQaPath = null;
|
|
276
|
-
let usedLegacyQa = false;
|
|
277
|
-
for (const candidate of [canonicalQaPath, legacyMisplacedQaPath, legacyChangeAxisQaPath]) {
|
|
278
|
-
if (existsSync(candidate)) {
|
|
279
|
-
resolvedQaPath = candidate;
|
|
280
|
-
usedLegacyQa = candidate !== canonicalQaPath;
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
if (resolvedQaPath !== null) {
|
|
285
|
-
anyEvidenceResolved = true;
|
|
286
|
-
if (usedLegacyQa)
|
|
287
|
-
allResolvedPathsCanonical = false;
|
|
288
|
-
gate.passed = true;
|
|
289
|
-
gate.detail = resolvedQaPath + (usedLegacyQa ? ' [DEPRECATION_LEGACY_PATH_USED]' : '');
|
|
290
|
-
if (usedLegacyQa) {
|
|
291
|
-
violations.push(`DEPRECATION_LEGACY_PATH_USED: ${resolvedQaPath} — move the file into .peaks/_runtime/${rdEvidenceDir}/qa/ (the canonical location) so subsequent runs resolve on the canonical path. The legacy \`peaks workspace migrate-change-scope\` helper was removed in v2.19.0; use \`peaks workspace migrate\` to relocate misplaced content.`);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
gate.detail = `missing: ${canonicalQaPath}`;
|
|
296
|
-
violations.push(`QA evidence missing: ${gate.description} (${fileName})`);
|
|
297
|
-
nextActions.push(`Create .peaks/_runtime/${rdEvidenceDir}/qa/${fileName}`);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
// Check if QA reached verdict-issued
|
|
301
|
-
if (qaInvoked && !QA_COMPLETE_STATES.has(qaState)) {
|
|
302
|
-
violations.push(`QA not complete: state is "${qaState}" — must reach "verdict-issued" (functional + performance + security checks done)`);
|
|
303
|
-
nextActions.push(`Complete QA gates → peaks request transition ${options.rid} --role qa --state verdict-issued`);
|
|
304
|
-
}
|
|
305
|
-
// RD invoked without QA — check is moved to AFTER markIfSkipped
|
|
306
|
-
// (slice 2026-06-13-peaks-workflow-skip) because the gate.status
|
|
307
|
-
// values are only final after the post-process pass. We track the
|
|
308
|
-
// decision with a placeholder here and resolve it below.
|
|
309
|
-
const rdInvokedWithoutQaRaw = rdInvoked && !qaInvoked;
|
|
310
|
-
// Slice 2026-06-13-peaks-workflow-skip: post-process. For any gate
|
|
311
|
-
// the user marked as skipped, override the evaluation result. The
|
|
312
|
-
// boolean `passed` is set to true so the gate counts as satisfied;
|
|
313
|
-
// the new `status: 'skipped'` field signals the bypass to
|
|
314
|
-
// downstream consumers. Violations and nextActions pushed for
|
|
315
|
-
// skipped gates are filtered out (the user explicitly chose to
|
|
316
|
-
// skip — the missing-evidence message is no longer actionable).
|
|
317
|
-
for (const gate of [...rdGates, ...qaGates]) {
|
|
318
|
-
if (skippedGateNames.has(gate.name)) {
|
|
319
|
-
markIfSkipped(gate);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
if (skippedGateNames.size > 0) {
|
|
323
|
-
const skippedViolations = new Set();
|
|
324
|
-
for (const gate of [...rdGates, ...qaGates]) {
|
|
325
|
-
if (gate.status === 'skipped') {
|
|
326
|
-
skippedViolations.add(`RD evidence missing: ${gate.description}`);
|
|
327
|
-
skippedViolations.add(`QA evidence missing: ${gate.description}`);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
for (let i = violations.length - 1; i >= 0; i -= 1) {
|
|
331
|
-
const v = violations[i];
|
|
332
|
-
for (const sv of skippedViolations) {
|
|
333
|
-
if (v.startsWith(sv)) {
|
|
334
|
-
violations.splice(i, 1);
|
|
335
|
-
break;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// Resolve the "RD invoked without QA" check now that markIfSkipped
|
|
341
|
-
// has run. The check is suppressed when every QA gate is skipped
|
|
342
|
-
// (slice 2026-06-13-peaks-workflow-skip: the user explicitly chose
|
|
343
|
-
// to skip the QA phase).
|
|
344
|
-
if (rdInvokedWithoutQaRaw) {
|
|
345
|
-
const allQaSkipped = qaGates.every((g) => g.status === 'skipped');
|
|
346
|
-
if (!allQaSkipped) {
|
|
347
|
-
violations.push('CRITICAL: peaks-rd was invoked but peaks-qa was NOT — QA functional/performance/security testing is mandatory after all RD work');
|
|
348
|
-
nextActions.push('MUST invoke Skill(skill="peaks-qa") before declaring workflow complete');
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
// Slice 002 (v2.15.0) AC-3 — Gate H "feedback-promotion". Scans
|
|
352
|
-
// `.peaks/memory/*.md` for `metadata.type === 'feedback'` entries
|
|
353
|
-
// without a promotion marker (HTML comment or `.promotion.json`
|
|
354
|
-
// sidecar). When any unpromoted feedback is found, the gate fails
|
|
355
|
-
// and the pipeline does not complete until the user promotes via
|
|
356
|
-
// `peaks feedback promote <memory-file> --layer <A|B|C>`.
|
|
357
|
-
//
|
|
358
|
-
// The scan is intentionally non-throwing — a missing or unreadable
|
|
359
|
-
// memory dir is treated as "no feedback found, gate passes" so
|
|
360
|
-
// empty projects / pre-feedback-epoch projects don't false-positive.
|
|
361
|
-
const feedbackGates = [
|
|
362
|
-
{
|
|
363
|
-
name: 'feedback-promotion',
|
|
364
|
-
description: 'Every feedback memory is promoted to at least one enforcement layer (sop / hooks / hard-floor)',
|
|
365
|
-
passed: false,
|
|
366
|
-
detail: ''
|
|
367
|
-
}
|
|
368
|
-
];
|
|
369
|
-
let unpromotedFeedbackCount = 0;
|
|
370
|
-
try {
|
|
371
|
-
const unpromoted = listUnpromotedFeedback({ projectRoot: options.projectRoot });
|
|
372
|
-
unpromotedFeedbackCount = unpromoted.length;
|
|
373
|
-
if (unpromoted.length === 0) {
|
|
374
|
-
feedbackGates[0].passed = true;
|
|
375
|
-
feedbackGates[0].detail = `0 unpromoted feedback memories in .peaks/memory/`;
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
feedbackGates[0].detail = `${unpromoted.length} unpromoted feedback memor${unpromoted.length === 1 ? 'y' : 'ies'}: ${unpromoted.map((u) => u.name).join(', ')}`;
|
|
379
|
-
violations.push(`Gate H feedback-promotion FAILED: ${unpromoted.length} feedback memor${unpromoted.length === 1 ? 'y is' : 'ies are'} not yet promoted to an enforcement layer (${unpromoted.map((u) => u.name).join(', ')}). Run \`peaks feedback promote <memory-file> --layer <A|B|C>\` for each. See sops/feedback-promotion-sop.md.`);
|
|
380
|
-
nextActions.push(`Run \`peaks feedback promote <memory-file> --layer <A|B|C>\` for each unpromoted feedback memory to satisfy Gate H.`);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
catch {
|
|
384
|
-
// listUnpromotedFeedback swallows IO errors internally; the
|
|
385
|
-
// outer catch is a belt-and-braces guard for unexpected
|
|
386
|
-
// failures (e.g. permission denied). Treat as "no feedback" —
|
|
387
|
-
// fail-open on gate infrastructure rather than blocking ship.
|
|
388
|
-
feedbackGates[0].passed = true;
|
|
389
|
-
feedbackGates[0].detail = 'feedback-promotion scan skipped (memory dir unreadable; treating as no feedback)';
|
|
390
|
-
}
|
|
391
|
-
const allFeedbackGatesPassed = feedbackGates.every((g) => g.passed);
|
|
392
|
-
const allRdGatesPassed = rdGates.every((g) => g.passed);
|
|
393
|
-
const allQaGatesPassed = qaGates.every((g) => g.passed);
|
|
394
|
-
const complete = rdInvoked && qaInvoked && allRdGatesPassed && allQaGatesPassed && allFeedbackGatesPassed
|
|
395
|
-
&& RD_QA_HANDOFF_STATES.has(rdState) && QA_COMPLETE_STATES.has(qaState);
|
|
396
|
-
// Slice 025 — derive the `acceptedForm` and `gateC` verdict. The form is
|
|
397
|
-
// 'suffixed' if both the security + perf gates passed via the new
|
|
398
|
-
// per-rid path; 'legacy' if either was consumed via the legacy fallback;
|
|
399
|
-
// 'none' if neither passed.
|
|
400
|
-
const secGate = qaGates.find((g) => g.name === 'security-findings');
|
|
401
|
-
const perfGate = qaGates.find((g) => g.name === 'performance-findings');
|
|
402
|
-
const secForm = secGate?.detail?.includes(`-${options.rid}.md`) ? 'suffixed' : 'legacy';
|
|
403
|
-
const perfForm = perfGate?.detail?.includes(`-${options.rid}.md`) ? 'suffixed' : 'legacy';
|
|
404
|
-
const acceptedForm = !secGate?.passed && !perfGate?.passed
|
|
405
|
-
? 'none'
|
|
406
|
-
: (secForm === 'suffixed' && perfForm === 'suffixed')
|
|
407
|
-
? 'suffixed'
|
|
408
|
-
: (secForm === 'legacy' || perfForm === 'legacy')
|
|
409
|
-
? 'legacy'
|
|
410
|
-
: 'suffixed';
|
|
411
|
-
const gateC = allQaGatesPassed ? 'pass' : 'fail';
|
|
412
|
-
const gateH = allFeedbackGatesPassed ? 'pass' : 'fail';
|
|
413
|
-
// Slice 2026-06-28-solo-mode-bypass-fix (defect #3): `true` when
|
|
414
|
-
// every gate resolved on the canonical path; `false` when at least
|
|
415
|
-
// one fell back to a legacy form. QA / TXT surface the value so the
|
|
416
|
-
// user knows the legacy content must be moved into the canonical
|
|
417
|
-
// location (the legacy `peaks workspace migrate-change-scope` helper
|
|
418
|
-
// was removed in v2.19.0; use `peaks workspace migrate` to relocate
|
|
419
|
-
// misplaced content).
|
|
420
|
-
//
|
|
421
|
-
// Implementation note: use the in-loop flag `allResolvedPathsCanonical`
|
|
422
|
-
// (correctly updated by both the inline evidence loop AND the
|
|
423
|
-
// artifact-paths resolver for security/performance findings), not a
|
|
424
|
-
// string-scan over `gate.detail`. The string-scan approach misses the
|
|
425
|
-
// artifact-paths legacy branch (it does NOT inject the
|
|
426
|
-
// `DEPRECATION_LEGACY_PATH_USED` suffix into gate.detail).
|
|
427
|
-
//
|
|
428
|
-
// If NO evidence file resolved (e.g. all gates missing), the field is
|
|
429
|
-
// `true` — there is nothing non-canonical to worry about. If every
|
|
430
|
-
// resolved gate was skipped via `peaks workflow skip`, the field is
|
|
431
|
-
// `true` — the user opted out of the canonical/legacy decision.
|
|
432
|
-
const allGatesSkipped = [...rdGates, ...qaGates].every((g) => g.status === 'skipped');
|
|
433
|
-
const usedCanonicalPath = !anyEvidenceResolved || allGatesSkipped || allResolvedPathsCanonical;
|
|
434
|
-
return {
|
|
435
|
-
rid: options.rid,
|
|
436
|
-
sessionId: resolvedChangeId,
|
|
437
|
-
requestType,
|
|
438
|
-
complete,
|
|
439
|
-
rdPhase: { invoked: rdInvoked, state: rdState, gates: rdGates },
|
|
440
|
-
qaPhase: { invoked: qaInvoked, state: qaState, gates: qaGates },
|
|
441
|
-
feedbackPhase: { gates: feedbackGates },
|
|
442
|
-
violations,
|
|
443
|
-
nextActions,
|
|
444
|
-
acceptedForm,
|
|
445
|
-
gateC,
|
|
446
|
-
gateH,
|
|
447
|
-
usedCanonicalPath
|
|
448
|
-
};
|
|
449
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import type { CapabilityItemType } from '../recommendations/recommendation-types.js';
|
|
2
|
-
import type { ModelProviderConfig, WorkspaceConfig } from '../config/config-types.js';
|
|
3
|
-
import { type RdPlanResult } from '../rd/rd-service.js';
|
|
4
|
-
import { type SoloMode, type WorkflowMode, type WorkflowRouterPlan } from './workflow-router-service.js';
|
|
5
|
-
export { getResumeRequiredArtifacts, getResumeArtifactsStatus, createResumePlan } from './workflow-autonomous-resume-helpers.js';
|
|
6
|
-
export type CapabilitySurface = 'skill' | 'mcp' | 'plugin' | 'expert';
|
|
7
|
-
export type CapabilityPurpose = 'code-review' | 'security-review' | 'coding-standards' | 'docs-lookup' | 'browser-validation' | 'browser-debug' | 'design-context' | 'design-source' | 'code-search' | 'database-inspection' | 'browser-agent' | 'worker-guidance' | 'memory' | 'context-management' | 'ui-components' | 'spec-workflow' | 'repo-intelligence' | 'openspec' | 'workflow-methodology' | 'workflow-reference' | 'workflow-guidance' | 'product-guidance' | 'design-reference' | 'ui-reference' | 'engineering-guidance' | 'typescript-guidance' | 'quality-guidance' | 'skill-pack' | 'external-skill' | 'design-critique' | 'design-guidance' | 'cloud-skill-pack';
|
|
8
|
-
export type CapabilityActivation = 'available' | 'needs-install' | 'needs-credentials' | 'not-active';
|
|
9
|
-
export type CapabilityTrustLevel = 'local' | 'user-curated' | 'third-party';
|
|
10
|
-
export type CapabilityCandidate = {
|
|
11
|
-
readonly id: string;
|
|
12
|
-
readonly source: string;
|
|
13
|
-
readonly purpose: CapabilityPurpose;
|
|
14
|
-
readonly surface: CapabilitySurface;
|
|
15
|
-
readonly kind: CapabilitySurface;
|
|
16
|
-
readonly sourceType: CapabilityItemType;
|
|
17
|
-
readonly trustLevel: CapabilityTrustLevel;
|
|
18
|
-
readonly activation: CapabilityActivation;
|
|
19
|
-
readonly risk: readonly string[];
|
|
20
|
-
};
|
|
21
|
-
export type AutonomousWorkflowRequest = {
|
|
22
|
-
readonly mode: WorkflowMode;
|
|
23
|
-
readonly soloMode?: SoloMode;
|
|
24
|
-
readonly sessionId: string;
|
|
25
|
-
readonly goal: string;
|
|
26
|
-
readonly maxWorkers?: number;
|
|
27
|
-
readonly dryRun: true;
|
|
28
|
-
readonly artifactWorkspacePath?: string;
|
|
29
|
-
readonly workspace?: WorkspaceConfig;
|
|
30
|
-
readonly config?: {
|
|
31
|
-
readonly economyMode?: boolean;
|
|
32
|
-
readonly swarmMode?: boolean;
|
|
33
|
-
readonly providers?: ModelProviderConfig;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
export type AutonomousGoalPackage = {
|
|
37
|
-
readonly sessionId: string;
|
|
38
|
-
readonly goal: string;
|
|
39
|
-
readonly nonGoals: readonly string[];
|
|
40
|
-
readonly preservedBehavior: readonly string[];
|
|
41
|
-
readonly acceptanceCriteria: readonly string[];
|
|
42
|
-
readonly doneCondition: string;
|
|
43
|
-
readonly resumeCondition: string;
|
|
44
|
-
readonly riskNotes: readonly string[];
|
|
45
|
-
};
|
|
46
|
-
export type AutonomousCapabilityPlan = {
|
|
47
|
-
readonly sources: readonly string[];
|
|
48
|
-
readonly policy: readonly string[];
|
|
49
|
-
readonly candidates: readonly CapabilityCandidate[];
|
|
50
|
-
readonly surfaces: readonly CapabilitySurface[];
|
|
51
|
-
readonly surfaceSummary: Record<CapabilitySurface, number>;
|
|
52
|
-
};
|
|
53
|
-
export type AutonomousResumePlan = {
|
|
54
|
-
readonly status: 'preview' | 'ready';
|
|
55
|
-
readonly checkpoints: readonly string[];
|
|
56
|
-
readonly requiredArtifacts: readonly string[];
|
|
57
|
-
readonly resumeInstructions: string;
|
|
58
|
-
};
|
|
59
|
-
export type AutonomousGoalCommand = {
|
|
60
|
-
readonly command: string;
|
|
61
|
-
readonly durable: false;
|
|
62
|
-
readonly reason: string;
|
|
63
|
-
};
|
|
64
|
-
export type AutonomousStoragePlan = {
|
|
65
|
-
readonly scope: 'user-local';
|
|
66
|
-
readonly artifactWorkspacePath: string | null;
|
|
67
|
-
readonly memoryBackupPath: string | null;
|
|
68
|
-
};
|
|
69
|
-
export type AutonomousMvpPackage = {
|
|
70
|
-
readonly mode: WorkflowMode;
|
|
71
|
-
readonly soloMode: SoloMode | undefined;
|
|
72
|
-
readonly executionMode: 'preview';
|
|
73
|
-
readonly dryRun: true;
|
|
74
|
-
readonly routePolicy: WorkflowRouterPlan['routePolicy'];
|
|
75
|
-
readonly rdWaveNames: readonly string[];
|
|
76
|
-
readonly capabilitySurfaces: readonly CapabilitySurface[];
|
|
77
|
-
readonly capabilityCountBySurface: Record<CapabilitySurface, number>;
|
|
78
|
-
readonly ready: boolean;
|
|
79
|
-
};
|
|
80
|
-
export type AutonomousWorkflowPlan = {
|
|
81
|
-
readonly available: boolean;
|
|
82
|
-
readonly behavior: 'preview' | 'ready';
|
|
83
|
-
readonly sessionId: string;
|
|
84
|
-
readonly goal: string;
|
|
85
|
-
readonly mode: WorkflowMode;
|
|
86
|
-
readonly dryRun: true;
|
|
87
|
-
readonly goalPackage: AutonomousGoalPackage;
|
|
88
|
-
readonly goalCommand: AutonomousGoalCommand;
|
|
89
|
-
readonly capabilityPlan: AutonomousCapabilityPlan;
|
|
90
|
-
readonly storagePlan: AutonomousStoragePlan;
|
|
91
|
-
readonly routePlan: WorkflowRouterPlan;
|
|
92
|
-
readonly modelAssignments: WorkflowRouterPlan['modelAssignments'];
|
|
93
|
-
readonly rdPlan: RdPlanResult;
|
|
94
|
-
readonly resumePlan: AutonomousResumePlan;
|
|
95
|
-
readonly mvpPackage: AutonomousMvpPackage;
|
|
96
|
-
readonly constraints: readonly string[];
|
|
97
|
-
readonly blockedReasons: readonly string[];
|
|
98
|
-
readonly nextActions: readonly string[];
|
|
99
|
-
};
|
|
100
|
-
export declare function createAutonomousWorkflowPlan(request: AutonomousWorkflowRequest): AutonomousWorkflowPlan;
|