peaks-loop 4.0.0-beta.7 → 4.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/README-en.md +178 -67
- package/README.md +178 -57
- package/examples/video-demo/README.md +108 -23
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- package/package.json +19 -6
- package/scripts/copy-templates.mjs +64 -0
- 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-runbook.md +2 -2
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +2 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
- package/skills/bee/peaks-ui/SKILL.md +2 -2
- package/skills/peaks-code/SKILL.md +18 -49
- package/skills/peaks-code/references/project-scan-checklist.md +3 -1
- package/skills/peaks-code/references/runbook.md +2 -2
- package/skills/peaks-code/references/standards-preflight.md +1 -1
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/swarm-dispatch-contract.md +1 -1
- package/skills/peaks-code/references/workflow-gates-and-types.md +3 -3
- package/dist/src/cli/cli-helpers.d.ts +0 -43
- package/dist/src/cli/cli-helpers.js +0 -86
- package/dist/src/cli/commands/adapter-commands-s2a.d.ts +0 -34
- package/dist/src/cli/commands/adapter-commands-s2a.js +0 -92
- package/dist/src/cli/commands/adapter-commands.d.ts +0 -30
- package/dist/src/cli/commands/adapter-commands.js +0 -35
- package/dist/src/cli/commands/agent-commands.d.ts +0 -20
- package/dist/src/cli/commands/agent-commands.js +0 -48
- package/dist/src/cli/commands/asset-commands.d.ts +0 -45
- package/dist/src/cli/commands/asset-commands.js +0 -404
- package/dist/src/cli/commands/audit-commands.d.ts +0 -28
- package/dist/src/cli/commands/audit-commands.js +0 -437
- package/dist/src/cli/commands/bee-commands.d.ts +0 -26
- package/dist/src/cli/commands/bee-commands.js +0 -169
- package/dist/src/cli/commands/capability-commands.d.ts +0 -16
- package/dist/src/cli/commands/capability-commands.js +0 -45
- package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +0 -3
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
- package/dist/src/cli/commands/classify-classify-commands.d.ts +0 -19
- package/dist/src/cli/commands/classify-classify-commands.js +0 -151
- package/dist/src/cli/commands/code-commands.d.ts +0 -80
- package/dist/src/cli/commands/code-commands.js +0 -798
- package/dist/src/cli/commands/code-review-commands.d.ts +0 -34
- package/dist/src/cli/commands/code-review-commands.js +0 -83
- package/dist/src/cli/commands/codegraph-commands.d.ts +0 -3
- package/dist/src/cli/commands/codegraph-commands.js +0 -99
- package/dist/src/cli/commands/compact-command.d.ts +0 -21
- package/dist/src/cli/commands/compact-command.js +0 -252
- package/dist/src/cli/commands/complexity-commands.d.ts +0 -9
- package/dist/src/cli/commands/complexity-commands.js +0 -34
- package/dist/src/cli/commands/config-commands.d.ts +0 -3
- package/dist/src/cli/commands/config-commands.js +0 -220
- package/dist/src/cli/commands/context-builder-commands.d.ts +0 -11
- package/dist/src/cli/commands/context-builder-commands.js +0 -85
- package/dist/src/cli/commands/context-commands.d.ts +0 -21
- package/dist/src/cli/commands/context-commands.js +0 -254
- package/dist/src/cli/commands/contract-commands.d.ts +0 -26
- package/dist/src/cli/commands/contract-commands.js +0 -114
- package/dist/src/cli/commands/core/artifacts-command.d.ts +0 -3
- package/dist/src/cli/commands/core/artifacts-command.js +0 -62
- package/dist/src/cli/commands/core/binding-commands.d.ts +0 -3
- package/dist/src/cli/commands/core/binding-commands.js +0 -58
- package/dist/src/cli/commands/core/doctor-command.d.ts +0 -11
- package/dist/src/cli/commands/core/doctor-command.js +0 -204
- package/dist/src/cli/commands/core/memory-command.d.ts +0 -3
- package/dist/src/cli/commands/core/memory-command.js +0 -98
- package/dist/src/cli/commands/core/profile-command.d.ts +0 -3
- package/dist/src/cli/commands/core/profile-command.js +0 -9
- package/dist/src/cli/commands/core/proxy-command.d.ts +0 -3
- package/dist/src/cli/commands/core/proxy-command.js +0 -26
- package/dist/src/cli/commands/core/session-command.d.ts +0 -3
- package/dist/src/cli/commands/core/session-command.js +0 -241
- package/dist/src/cli/commands/core/skill-command.d.ts +0 -3
- package/dist/src/cli/commands/core/skill-command.js +0 -297
- package/dist/src/cli/commands/core/standards-command.d.ts +0 -3
- package/dist/src/cli/commands/core/standards-command.js +0 -95
- package/dist/src/cli/commands/core-artifact-commands.d.ts +0 -15
- package/dist/src/cli/commands/core-artifact-commands.js +0 -31
- package/dist/src/cli/commands/dispatch-commands.d.ts +0 -10
- package/dist/src/cli/commands/dispatch-commands.js +0 -351
- package/dist/src/cli/commands/dispatch-from-dag.d.ts +0 -3
- package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
- package/dist/src/cli/commands/doc-commands.d.ts +0 -11
- package/dist/src/cli/commands/doc-commands.js +0 -65
- package/dist/src/cli/commands/evolution-commands.d.ts +0 -27
- package/dist/src/cli/commands/evolution-commands.js +0 -393
- package/dist/src/cli/commands/feedback-commands.d.ts +0 -18
- package/dist/src/cli/commands/feedback-commands.js +0 -145
- package/dist/src/cli/commands/final-review-commands.d.ts +0 -31
- package/dist/src/cli/commands/final-review-commands.js +0 -161
- package/dist/src/cli/commands/fixture-commands.d.ts +0 -32
- package/dist/src/cli/commands/fixture-commands.js +0 -91
- package/dist/src/cli/commands/fork-commands.d.ts +0 -16
- package/dist/src/cli/commands/fork-commands.js +0 -163
- package/dist/src/cli/commands/gate-commands.d.ts +0 -3
- package/dist/src/cli/commands/gate-commands.js +0 -117
- package/dist/src/cli/commands/heartbeat-commands.d.ts +0 -3
- package/dist/src/cli/commands/heartbeat-commands.js +0 -135
- package/dist/src/cli/commands/hook-handle.d.ts +0 -17
- package/dist/src/cli/commands/hook-handle.js +0 -157
- package/dist/src/cli/commands/hooks-commands.d.ts +0 -3
- package/dist/src/cli/commands/hooks-commands.js +0 -156
- package/dist/src/cli/commands/ide-commands.d.ts +0 -25
- package/dist/src/cli/commands/ide-commands.js +0 -42
- package/dist/src/cli/commands/impact-commands.d.ts +0 -15
- package/dist/src/cli/commands/impact-commands.js +0 -62
- package/dist/src/cli/commands/job-commands.d.ts +0 -3
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/legacy-commands.d.ts +0 -11
- package/dist/src/cli/commands/legacy-commands.js +0 -32
- package/dist/src/cli/commands/log-commands.d.ts +0 -17
- package/dist/src/cli/commands/log-commands.js +0 -64
- package/dist/src/cli/commands/loop-commands.d.ts +0 -27
- package/dist/src/cli/commands/loop-commands.js +0 -262
- package/dist/src/cli/commands/loop-eval-commands.d.ts +0 -20
- package/dist/src/cli/commands/loop-eval-commands.js +0 -526
- package/dist/src/cli/commands/memory-commands.d.ts +0 -23
- package/dist/src/cli/commands/memory-commands.js +0 -129
- package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +0 -11
- package/dist/src/cli/commands/migrate-1-4-1-command.js +0 -34
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -20
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +0 -52
- package/dist/src/cli/commands/mut-commands.d.ts +0 -20
- package/dist/src/cli/commands/mut-commands.js +0 -239
- package/dist/src/cli/commands/observability-commands.d.ts +0 -22
- package/dist/src/cli/commands/observability-commands.js +0 -201
- package/dist/src/cli/commands/openspec-commands.d.ts +0 -3
- package/dist/src/cli/commands/openspec-commands.js +0 -237
- package/dist/src/cli/commands/perf-audit-commands.d.ts +0 -22
- package/dist/src/cli/commands/perf-audit-commands.js +0 -132
- package/dist/src/cli/commands/perf-commands.d.ts +0 -3
- package/dist/src/cli/commands/perf-commands.js +0 -41
- package/dist/src/cli/commands/playwright-commands.d.ts +0 -95
- package/dist/src/cli/commands/playwright-commands.js +0 -432
- package/dist/src/cli/commands/polyrepo-commands.d.ts +0 -37
- package/dist/src/cli/commands/polyrepo-commands.js +0 -155
- package/dist/src/cli/commands/prd-blocks-commands.d.ts +0 -18
- package/dist/src/cli/commands/prd-blocks-commands.js +0 -50
- package/dist/src/cli/commands/prd-commands.d.ts +0 -18
- package/dist/src/cli/commands/prd-commands.js +0 -141
- package/dist/src/cli/commands/preferences-commands.d.ts +0 -2
- package/dist/src/cli/commands/preferences-commands.js +0 -197
- package/dist/src/cli/commands/project-commands.d.ts +0 -3
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/qa-business-review-commands.d.ts +0 -17
- package/dist/src/cli/commands/qa-business-review-commands.js +0 -148
- package/dist/src/cli/commands/qa-commands.d.ts +0 -94
- package/dist/src/cli/commands/qa-commands.js +0 -271
- package/dist/src/cli/commands/release-commands.d.ts +0 -24
- package/dist/src/cli/commands/release-commands.js +0 -231
- package/dist/src/cli/commands/request-commands.d.ts +0 -3
- package/dist/src/cli/commands/request-commands.js +0 -548
- package/dist/src/cli/commands/retrospective-commands.d.ts +0 -12
- package/dist/src/cli/commands/retrospective-commands.js +0 -175
- package/dist/src/cli/commands/reviewer-commands.d.ts +0 -14
- package/dist/src/cli/commands/reviewer-commands.js +0 -64
- package/dist/src/cli/commands/role-commands.d.ts +0 -13
- package/dist/src/cli/commands/role-commands.js +0 -85
- package/dist/src/cli/commands/runtime-commands.d.ts +0 -52
- package/dist/src/cli/commands/runtime-commands.js +0 -150
- package/dist/src/cli/commands/sc-commands.d.ts +0 -3
- package/dist/src/cli/commands/sc-commands.js +0 -45
- package/dist/src/cli/commands/scan-commands.d.ts +0 -3
- package/dist/src/cli/commands/scan-commands.js +0 -445
- package/dist/src/cli/commands/security-audit-commands.d.ts +0 -23
- package/dist/src/cli/commands/security-audit-commands.js +0 -132
- package/dist/src/cli/commands/sediment-commands.d.ts +0 -80
- package/dist/src/cli/commands/sediment-commands.js +0 -649
- package/dist/src/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
- package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/src/cli/commands/session-checkpoint-command.d.ts +0 -10
- package/dist/src/cli/commands/session-checkpoint-command.js +0 -100
- package/dist/src/cli/commands/session-migrate-skill-name.d.ts +0 -17
- package/dist/src/cli/commands/session-migrate-skill-name.js +0 -41
- package/dist/src/cli/commands/session-resume-command.d.ts +0 -11
- package/dist/src/cli/commands/session-resume-command.js +0 -83
- package/dist/src/cli/commands/share-commands.d.ts +0 -17
- package/dist/src/cli/commands/share-commands.js +0 -296
- package/dist/src/cli/commands/skill-conformance-commands.d.ts +0 -9
- package/dist/src/cli/commands/skill-conformance-commands.js +0 -39
- package/dist/src/cli/commands/skill-loop-engineering-readiness-commands.d.ts +0 -67
- package/dist/src/cli/commands/skill-loop-engineering-readiness-commands.js +0 -173
- package/dist/src/cli/commands/skill-search-commands.d.ts +0 -25
- package/dist/src/cli/commands/skill-search-commands.js +0 -68
- package/dist/src/cli/commands/skill-visibility.d.ts +0 -8
- package/dist/src/cli/commands/skill-visibility.js +0 -63
- package/dist/src/cli/commands/slice-commands.d.ts +0 -24
- package/dist/src/cli/commands/slice-commands.js +0 -492
- package/dist/src/cli/commands/slice-integrate-commands.d.ts +0 -11
- package/dist/src/cli/commands/slice-integrate-commands.js +0 -74
- package/dist/src/cli/commands/slice-review-commands.d.ts +0 -23
- package/dist/src/cli/commands/slice-review-commands.js +0 -162
- package/dist/src/cli/commands/smoke-commands.d.ts +0 -21
- package/dist/src/cli/commands/smoke-commands.js +0 -203
- package/dist/src/cli/commands/sop-commands.d.ts +0 -3
- package/dist/src/cli/commands/sop-commands.js +0 -215
- package/dist/src/cli/commands/statusline-commands.d.ts +0 -3
- package/dist/src/cli/commands/statusline-commands.js +0 -169
- package/dist/src/cli/commands/sub-agent-commands.d.ts +0 -22
- package/dist/src/cli/commands/sub-agent-commands.js +0 -19
- package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +0 -55
- package/dist/src/cli/commands/sub-agent-dispatch-guard.js +0 -57
- package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
- package/dist/src/cli/commands/sub-agent-shared.js +0 -67
- package/dist/src/cli/commands/test-commands.d.ts +0 -47
- package/dist/src/cli/commands/test-commands.js +0 -204
- package/dist/src/cli/commands/understand-commands.d.ts +0 -3
- package/dist/src/cli/commands/understand-commands.js +0 -148
- package/dist/src/cli/commands/upgrade-commands.d.ts +0 -23
- package/dist/src/cli/commands/upgrade-commands.js +0 -119
- 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/verdict-aggregate-command.d.ts +0 -14
- package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
- package/dist/src/cli/commands/worker-commands.d.ts +0 -3
- package/dist/src/cli/commands/worker-commands.js +0 -52
- package/dist/src/cli/commands/workflow-commands.d.ts +0 -3
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- package/dist/src/cli/commands/workflow-plan-commands.d.ts +0 -39
- package/dist/src/cli/commands/workflow-plan-commands.js +0 -163
- package/dist/src/cli/commands/workspace/clean-command.d.ts +0 -14
- package/dist/src/cli/commands/workspace/clean-command.js +0 -49
- package/dist/src/cli/commands/workspace/helpers.d.ts +0 -28
- package/dist/src/cli/commands/workspace/helpers.js +0 -87
- 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/commands/workspace/migrate-command.d.ts +0 -11
- package/dist/src/cli/commands/workspace/migrate-command.js +0 -91
- package/dist/src/cli/commands/workspace/reconcile-command.d.ts +0 -14
- package/dist/src/cli/commands/workspace/reconcile-command.js +0 -103
- package/dist/src/cli/commands/workspace-commands.d.ts +0 -18
- package/dist/src/cli/commands/workspace-commands.js +0 -50
- package/dist/src/cli/index.d.ts +0 -1
- package/dist/src/cli/index.js +0 -30
- package/dist/src/cli/program.d.ts +0 -5
- package/dist/src/cli/program.js +0 -408
- package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +0 -28
- package/dist/src/hooks/pre-tool-use-sub-agent.js +0 -105
- package/dist/src/lib/render/message-renderer.d.ts +0 -20
- package/dist/src/lib/render/message-renderer.js +0 -80
- package/dist/src/services/adapter/adapter-registry.d.ts +0 -48
- package/dist/src/services/adapter/adapter-registry.js +0 -186
- package/dist/src/services/adapter/adapter.d.ts +0 -27
- package/dist/src/services/adapter/adapter.js +0 -5
- package/dist/src/services/adapter/auto-adapter.d.ts +0 -11
- package/dist/src/services/adapter/auto-adapter.js +0 -15
- package/dist/src/services/adapter/claude-adapter.d.ts +0 -14
- package/dist/src/services/adapter/claude-adapter.js +0 -40
- package/dist/src/services/adapter/codex-adapter.d.ts +0 -14
- package/dist/src/services/adapter/codex-adapter.js +0 -14
- package/dist/src/services/adapter/copilot-adapter.d.ts +0 -14
- package/dist/src/services/adapter/copilot-adapter.js +0 -14
- package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
- package/dist/src/services/agent/ecc-agent-service.js +0 -143
- package/dist/src/services/artifacts/artifact-lint-service.d.ts +0 -23
- package/dist/src/services/artifacts/artifact-lint-service.js +0 -99
- package/dist/src/services/artifacts/artifact-prerequisites.d.ts +0 -78
- package/dist/src/services/artifacts/artifact-prerequisites.js +0 -491
- package/dist/src/services/artifacts/artifact-service.d.ts +0 -43
- package/dist/src/services/artifacts/artifact-service.js +0 -98
- package/dist/src/services/artifacts/artifact-templates.d.ts +0 -30
- package/dist/src/services/artifacts/artifact-templates.js +0 -302
- package/dist/src/services/artifacts/repair-cycle-service.d.ts +0 -23
- package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
- package/dist/src/services/artifacts/request-artifact-service.d.ts +0 -116
- package/dist/src/services/artifacts/request-artifact-service.js +0 -451
- package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +0 -51
- package/dist/src/services/artifacts/request-artifact-state-helpers.js +0 -114
- package/dist/src/services/artifacts/workspace-service.d.ts +0 -34
- package/dist/src/services/artifacts/workspace-service.js +0 -272
- package/dist/src/services/audit/artifact-writer.d.ts +0 -93
- package/dist/src/services/audit/artifact-writer.js +0 -303
- package/dist/src/services/audit/audit-goal-service.d.ts +0 -35
- package/dist/src/services/audit/audit-goal-service.js +0 -75
- package/dist/src/services/audit/audit-goal-types.d.ts +0 -40
- package/dist/src/services/audit/audit-goal-types.js +0 -15
- package/dist/src/services/audit/backing-detector.d.ts +0 -24
- package/dist/src/services/audit/backing-detector.js +0 -59
- package/dist/src/services/audit/classifier.d.ts +0 -38
- package/dist/src/services/audit/classifier.js +0 -134
- package/dist/src/services/audit/decision-writer.d.ts +0 -76
- package/dist/src/services/audit/decision-writer.js +0 -217
- 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/code-ban.d.ts +0 -23
- package/dist/src/services/audit/enforcers/code-ban.js +0 -27
- package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +0 -24
- package/dist/src/services/audit/enforcers/design-draft-confirm.js +0 -58
- package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +0 -21
- package/dist/src/services/audit/enforcers/lint-audit-regression.js +0 -86
- package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +0 -32
- package/dist/src/services/audit/enforcers/lint-catalog-governance.js +0 -48
- package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +0 -16
- package/dist/src/services/audit/enforcers/lint-cli-back.js +0 -35
- package/dist/src/services/audit/enforcers/lint-output-style.d.ts +0 -11
- package/dist/src/services/audit/enforcers/lint-output-style.js +0 -94
- package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +0 -6
- package/dist/src/services/audit/enforcers/lint-reference-integrity.js +0 -83
- package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +0 -30
- package/dist/src/services/audit/enforcers/lint-reference-shape.js +0 -272
- package/dist/src/services/audit/enforcers/lint-style.d.ts +0 -49
- package/dist/src/services/audit/enforcers/lint-style.js +0 -173
- package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +0 -4
- package/dist/src/services/audit/enforcers/lint-workflow-shape.js +0 -100
- package/dist/src/services/audit/enforcers/login-gate.d.ts +0 -23
- package/dist/src/services/audit/enforcers/login-gate.js +0 -40
- package/dist/src/services/audit/enforcers/mock-placement.d.ts +0 -25
- package/dist/src/services/audit/enforcers/mock-placement.js +0 -48
- package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +0 -21
- package/dist/src/services/audit/enforcers/no-root-pollution.js +0 -56
- package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +0 -22
- package/dist/src/services/audit/enforcers/pre-rd-scan.js +0 -23
- package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +0 -25
- package/dist/src/services/audit/enforcers/prototype-fidelity.js +0 -75
- package/dist/src/services/audit/enforcers/resume-detection.d.ts +0 -21
- package/dist/src/services/audit/enforcers/resume-detection.js +0 -52
- package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +0 -25
- package/dist/src/services/audit/enforcers/sub-agent-sid.js +0 -63
- package/dist/src/services/audit/prose-ratio-calculator.d.ts +0 -45
- package/dist/src/services/audit/prose-ratio-calculator.js +0 -52
- package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +0 -21
- package/dist/src/services/audit/red-line-catalog-p2-a.js +0 -229
- package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +0 -19
- package/dist/src/services/audit/red-line-catalog-p2-b.js +0 -225
- 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/red-lines-service.d.ts +0 -23
- package/dist/src/services/audit/red-lines-service.js +0 -464
- package/dist/src/services/audit/scanners/openspec-scanner.d.ts +0 -15
- package/dist/src/services/audit/scanners/openspec-scanner.js +0 -55
- package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +0 -16
- package/dist/src/services/audit/scanners/rules-tree-scanner.js +0 -56
- package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +0 -17
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +0 -68
- package/dist/src/services/audit/static-service.d.ts +0 -60
- package/dist/src/services/audit/static-service.js +0 -130
- package/dist/src/services/audit/types.d.ts +0 -86
- package/dist/src/services/audit/types.js +0 -13
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +0 -151
- package/dist/src/services/audit-independent/perf-audit-service.js +0 -316
- package/dist/src/services/audit-independent/security-audit-service.d.ts +0 -155
- package/dist/src/services/audit-independent/security-audit-service.js +0 -316
- package/dist/src/services/classify/classify-service.d.ts +0 -42
- package/dist/src/services/classify/classify-service.js +0 -122
- package/dist/src/services/classify/classify-types.d.ts +0 -79
- package/dist/src/services/classify/classify-types.js +0 -90
- package/dist/src/services/code/auto-compact-orchestrator.d.ts +0 -98
- package/dist/src/services/code/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/code/batch-heartbeat-poller.d.ts +0 -51
- package/dist/src/services/code/batch-heartbeat-poller.js +0 -88
- package/dist/src/services/code/dag-orchestrator.d.ts +0 -128
- package/dist/src/services/code/dag-orchestrator.js +0 -304
- package/dist/src/services/code/emit-handoff.d.ts +0 -49
- package/dist/src/services/code/emit-handoff.js +0 -79
- package/dist/src/services/code/job-shape-decision.d.ts +0 -71
- package/dist/src/services/code/job-shape-decision.js +0 -151
- package/dist/src/services/code/mode-gate.d.ts +0 -163
- package/dist/src/services/code/mode-gate.js +0 -212
- package/dist/src/services/code/post-compact-detector.d.ts +0 -61
- package/dist/src/services/code/post-compact-detector.js +0 -240
- package/dist/src/services/code/status-line-renderer.d.ts +0 -34
- package/dist/src/services/code/status-line-renderer.js +0 -55
- package/dist/src/services/code/step-08-gate.d.ts +0 -90
- package/dist/src/services/code/step-08-gate.js +0 -136
- package/dist/src/services/code/user-touchpoint-classifier.d.ts +0 -44
- package/dist/src/services/code/user-touchpoint-classifier.js +0 -145
- package/dist/src/services/code-review/ecc-bridge.d.ts +0 -148
- package/dist/src/services/code-review/ecc-bridge.js +0 -242
- package/dist/src/services/code-review/ocr-service.d.ts +0 -129
- package/dist/src/services/code-review/ocr-service.js +0 -369
- package/dist/src/services/codegraph/codegraph-process-runner.d.ts +0 -2
- package/dist/src/services/codegraph/codegraph-process-runner.js +0 -93
- package/dist/src/services/codegraph/codegraph-service.d.ts +0 -43
- package/dist/src/services/codegraph/codegraph-service.js +0 -160
- package/dist/src/services/compact/decision-tables.d.ts +0 -66
- package/dist/src/services/compact/decision-tables.js +0 -127
- package/dist/src/services/compact/request-transition-hook.d.ts +0 -20
- package/dist/src/services/compact/request-transition-hook.js +0 -110
- package/dist/src/services/compact/suggest-service.d.ts +0 -74
- package/dist/src/services/compact/suggest-service.js +0 -203
- package/dist/src/services/complexity/complexity-estimator.d.ts +0 -34
- package/dist/src/services/complexity/complexity-estimator.js +0 -64
- package/dist/src/services/config/config-migration.d.ts +0 -45
- package/dist/src/services/config/config-migration.js +0 -154
- package/dist/src/services/config/config-restore.d.ts +0 -10
- package/dist/src/services/config/config-restore.js +0 -47
- package/dist/src/services/config/config-rollback.d.ts +0 -13
- package/dist/src/services/config/config-rollback.js +0 -26
- package/dist/src/services/config/config-safety.d.ts +0 -40
- package/dist/src/services/config/config-safety.js +0 -359
- package/dist/src/services/config/config-service.d.ts +0 -69
- package/dist/src/services/config/config-service.js +0 -814
- package/dist/src/services/config/config-types.d.ts +0 -119
- package/dist/src/services/config/config-types.js +0 -18
- package/dist/src/services/config/model-routing.d.ts +0 -57
- package/dist/src/services/config/model-routing.js +0 -93
- package/dist/src/services/config/provider-service.d.ts +0 -48
- package/dist/src/services/config/provider-service.js +0 -143
- package/dist/src/services/config/proxy-service.d.ts +0 -21
- package/dist/src/services/config/proxy-service.js +0 -44
- package/dist/src/services/config/sidecar-store.d.ts +0 -25
- package/dist/src/services/config/sidecar-store.js +0 -61
- package/dist/src/services/config/workspace-state-service.d.ts +0 -30
- package/dist/src/services/config/workspace-state-service.js +0 -142
- package/dist/src/services/context/artifact-meta.d.ts +0 -72
- package/dist/src/services/context/artifact-meta.js +0 -105
- 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-reader.d.ts +0 -51
- package/dist/src/services/context/auto-compact-reader.js +0 -164
- package/dist/src/services/context/auto-compact-types.d.ts +0 -143
- package/dist/src/services/context/auto-compact-types.js +0 -36
- package/dist/src/services/context/collector.d.ts +0 -24
- package/dist/src/services/context/collector.js +0 -133
- package/dist/src/services/context/context-builder.d.ts +0 -30
- package/dist/src/services/context/context-builder.js +0 -78
- package/dist/src/services/context/context-guard.d.ts +0 -49
- package/dist/src/services/context/context-guard.js +0 -91
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/context/context-schema.js +0 -73
- package/dist/src/services/context/dispatch-context-guard.d.ts +0 -27
- package/dist/src/services/context/dispatch-context-guard.js +0 -192
- package/dist/src/services/context/doc-retriever.d.ts +0 -26
- package/dist/src/services/context/doc-retriever.js +0 -51
- package/dist/src/services/context/headroom-client.d.ts +0 -34
- package/dist/src/services/context/headroom-client.js +0 -117
- package/dist/src/services/context/headroom-fetcher.d.ts +0 -6
- package/dist/src/services/context/headroom-fetcher.js +0 -28
- package/dist/src/services/context/headroom-prefs.d.ts +0 -46
- package/dist/src/services/context/headroom-prefs.js +0 -34
- package/dist/src/services/context/index.d.ts +0 -7
- package/dist/src/services/context/index.js +0 -6
- package/dist/src/services/context/main-session-monitor.d.ts +0 -89
- package/dist/src/services/context/main-session-monitor.js +0 -142
- package/dist/src/services/context/renderer.d.ts +0 -20
- package/dist/src/services/context/renderer.js +0 -30
- package/dist/src/services/context/shared-channel.d.ts +0 -93
- package/dist/src/services/context/shared-channel.js +0 -308
- package/dist/src/services/context/threshold.d.ts +0 -35
- package/dist/src/services/context/threshold.js +0 -76
- package/dist/src/services/context/tokenizer.d.ts +0 -12
- package/dist/src/services/context/tokenizer.js +0 -43
- package/dist/src/services/context/types.d.ts +0 -93
- package/dist/src/services/context/types.js +0 -9
- package/dist/src/services/crystallization/crystallization-service.d.ts +0 -239
- package/dist/src/services/crystallization/crystallization-service.js +0 -397
- package/dist/src/services/crystallization/crystallization-store.d.ts +0 -75
- package/dist/src/services/crystallization/crystallization-store.js +0 -193
- package/dist/src/services/crystallization/crystallization-types.d.ts +0 -313
- package/dist/src/services/crystallization/crystallization-types.js +0 -299
- package/dist/src/services/crystallization/evidence-brief-builder.d.ts +0 -237
- package/dist/src/services/crystallization/evidence-brief-builder.js +0 -240
- package/dist/src/services/dashboard/project-dashboard-service.d.ts +0 -91
- package/dist/src/services/dashboard/project-dashboard-service.js +0 -147
- package/dist/src/services/dispatch/batch-counter.d.ts +0 -27
- package/dist/src/services/dispatch/batch-counter.js +0 -102
- package/dist/src/services/dispatch/contract-store.d.ts +0 -63
- package/dist/src/services/dispatch/contract-store.js +0 -157
- package/dist/src/services/dispatch/dispatch-record-writer.d.ts +0 -138
- package/dist/src/services/dispatch/dispatch-record-writer.js +0 -460
- package/dist/src/services/dispatch/heartbeat-truncator.d.ts +0 -26
- package/dist/src/services/dispatch/heartbeat-truncator.js +0 -13
- package/dist/src/services/dispatch/leak-detector.d.ts +0 -11
- package/dist/src/services/dispatch/leak-detector.js +0 -72
- package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
- package/dist/src/services/dispatch/slice-dag.js +0 -238
- package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +0 -239
- package/dist/src/services/dispatch/sub-agent-dispatcher.js +0 -382
- 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/doc/doc-generator.d.ts +0 -38
- package/dist/src/services/doc/doc-generator.js +0 -122
- package/dist/src/services/doctor/doctor-service.d.ts +0 -149
- package/dist/src/services/doctor/doctor-service.js +0 -929
- package/dist/src/services/evolution/evolution-service.d.ts +0 -137
- package/dist/src/services/evolution/evolution-service.js +0 -281
- package/dist/src/services/evolution/evolution-store.d.ts +0 -57
- package/dist/src/services/evolution/evolution-store.js +0 -232
- package/dist/src/services/evolution/evolution-types.d.ts +0 -706
- package/dist/src/services/evolution/evolution-types.js +0 -286
- package/dist/src/services/evolution/independent-evaluator-runner.d.ts +0 -90
- package/dist/src/services/evolution/independent-evaluator-runner.js +0 -106
- package/dist/src/services/evolution/regression-skeptic-runner.d.ts +0 -64
- package/dist/src/services/evolution/regression-skeptic-runner.js +0 -113
- package/dist/src/services/feedback/feedback-promotion-service.d.ts +0 -123
- package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
- package/dist/src/services/filesystem/file-lock.d.ts +0 -11
- package/dist/src/services/filesystem/file-lock.js +0 -129
- package/dist/src/services/final-review/final-review-service.d.ts +0 -12
- package/dist/src/services/final-review/final-review-service.js +0 -52
- package/dist/src/services/final-review/final-review-types.d.ts +0 -42
- package/dist/src/services/final-review/final-review-types.js +0 -18
- package/dist/src/services/fixture/fixture-capture-service.d.ts +0 -87
- package/dist/src/services/fixture/fixture-capture-service.js +0 -317
- package/dist/src/services/fixture/fixture-sanitize-service.d.ts +0 -117
- package/dist/src/services/fixture/fixture-sanitize-service.js +0 -161
- package/dist/src/services/fixture/index.d.ts +0 -8
- package/dist/src/services/fixture/index.js +0 -8
- package/dist/src/services/fork/fork-sync-state.d.ts +0 -85
- package/dist/src/services/fork/fork-sync-state.js +0 -130
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +0 -15
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +0 -56
- package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +0 -68
- package/dist/src/services/fuzzy-matching/fzf-pick-service.js +0 -158
- package/dist/src/services/fuzzy-matching/types.d.ts +0 -20
- package/dist/src/services/fuzzy-matching/types.js +0 -1
- package/dist/src/services/handoff/handoff-parser.d.ts +0 -28
- package/dist/src/services/handoff/handoff-parser.js +0 -69
- package/dist/src/services/handoff/handoff-types.d.ts +0 -39
- package/dist/src/services/handoff/handoff-types.js +0 -19
- package/dist/src/services/handoff/handoff-writer.d.ts +0 -23
- package/dist/src/services/handoff/handoff-writer.js +0 -30
- package/dist/src/services/hooks/auto-compact-hook-install.d.ts +0 -104
- package/dist/src/services/hooks/auto-compact-hook-install.js +0 -157
- package/dist/src/services/hooks/output.d.ts +0 -92
- package/dist/src/services/hooks/output.js +0 -111
- package/dist/src/services/hooks/presence-marker-detector.d.ts +0 -16
- package/dist/src/services/hooks/presence-marker-detector.js +0 -105
- package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +0 -18
- package/dist/src/services/ide/adapters/claude-code-adapter.js +0 -103
- package/dist/src/services/ide/adapters/codex-adapter.d.ts +0 -46
- package/dist/src/services/ide/adapters/codex-adapter.js +0 -97
- package/dist/src/services/ide/adapters/cursor-adapter.d.ts +0 -36
- package/dist/src/services/ide/adapters/cursor-adapter.js +0 -84
- package/dist/src/services/ide/adapters/hermes-adapter.d.ts +0 -21
- package/dist/src/services/ide/adapters/hermes-adapter.js +0 -51
- package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +0 -14
- package/dist/src/services/ide/adapters/openclaw-adapter.js +0 -42
- package/dist/src/services/ide/adapters/trae-adapter.d.ts +0 -42
- package/dist/src/services/ide/adapters/trae-adapter.js +0 -83
- package/dist/src/services/ide/adapters/zcode-adapter.d.ts +0 -40
- package/dist/src/services/ide/adapters/zcode-adapter.js +0 -220
- package/dist/src/services/ide/current-model-detector.d.ts +0 -14
- package/dist/src/services/ide/current-model-detector.js +0 -60
- package/dist/src/services/ide/hook-protocol.d.ts +0 -47
- package/dist/src/services/ide/hook-protocol.js +0 -74
- package/dist/src/services/ide/hook-translator.d.ts +0 -72
- package/dist/src/services/ide/hook-translator.js +0 -128
- package/dist/src/services/ide/ide-detector.d.ts +0 -10
- package/dist/src/services/ide/ide-detector.js +0 -19
- package/dist/src/services/ide/ide-registry.d.ts +0 -14
- package/dist/src/services/ide/ide-registry.js +0 -63
- package/dist/src/services/ide/ide-types.d.ts +0 -253
- package/dist/src/services/ide/ide-types.js +0 -2
- package/dist/src/services/ide/resource-profile.d.ts +0 -52
- package/dist/src/services/ide/resource-profile.js +0 -33
- package/dist/src/services/ide/shared/atomic-json.d.ts +0 -15
- package/dist/src/services/ide/shared/atomic-json.js +0 -58
- package/dist/src/services/ide/shared/safe-path.d.ts +0 -11
- package/dist/src/services/ide/shared/safe-path.js +0 -29
- package/dist/src/services/impact/impact-scan-service.d.ts +0 -66
- package/dist/src/services/impact/impact-scan-service.js +0 -197
- package/dist/src/services/job/job-event-emitter.d.ts +0 -30
- package/dist/src/services/job/job-event-emitter.js +0 -5
- package/dist/src/services/job/job-orchestrator.d.ts +0 -50
- package/dist/src/services/job/job-orchestrator.js +0 -104
- 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/job/job-resource-snapshot.d.ts +0 -7
- package/dist/src/services/job/job-resource-snapshot.js +0 -75
- package/dist/src/services/job/job-rotation.d.ts +0 -17
- package/dist/src/services/job/job-rotation.js +0 -30
- package/dist/src/services/job/job-state-store.d.ts +0 -24
- package/dist/src/services/job/job-state-store.js +0 -60
- package/dist/src/services/job/job-types.d.ts +0 -444
- package/dist/src/services/job/job-types.js +0 -87
- package/dist/src/services/job/subagent-job-wrapper.d.ts +0 -35
- package/dist/src/services/job/subagent-job-wrapper.js +0 -30
- package/dist/src/services/legacy/legacy-detector.d.ts +0 -34
- package/dist/src/services/legacy/legacy-detector.js +0 -111
- package/dist/src/services/log/log-commands-service.d.ts +0 -54
- package/dist/src/services/log/log-commands-service.js +0 -83
- package/dist/src/services/log/logger.d.ts +0 -103
- package/dist/src/services/log/logger.js +0 -224
- package/dist/src/services/log/redact.d.ts +0 -32
- package/dist/src/services/log/redact.js +0 -89
- package/dist/src/services/log/retention.d.ts +0 -34
- package/dist/src/services/log/retention.js +0 -78
- package/dist/src/services/loop/evaluator-dispatcher.d.ts +0 -50
- package/dist/src/services/loop/evaluator-dispatcher.js +0 -552
- package/dist/src/services/loop/loop-bee-relation-service.d.ts +0 -107
- package/dist/src/services/loop/loop-bee-relation-service.js +0 -211
- package/dist/src/services/loop/loop-bee-relation-store.d.ts +0 -53
- package/dist/src/services/loop/loop-bee-relation-store.js +0 -130
- package/dist/src/services/loop/loop-bee-relation-types.d.ts +0 -118
- package/dist/src/services/loop/loop-bee-relation-types.js +0 -114
- package/dist/src/services/loop/loop-release-service.d.ts +0 -46
- package/dist/src/services/loop/loop-release-service.js +0 -66
- package/dist/src/services/loop/loop-release-store.d.ts +0 -55
- package/dist/src/services/loop/loop-release-store.js +0 -134
- package/dist/src/services/loop/loop-release-types.d.ts +0 -250
- package/dist/src/services/loop/loop-release-types.js +0 -162
- package/dist/src/services/loop/monotonic-guard.d.ts +0 -80
- package/dist/src/services/loop/monotonic-guard.js +0 -232
- package/dist/src/services/loop/monotonic-runner.d.ts +0 -58
- package/dist/src/services/loop/monotonic-runner.js +0 -231
- package/dist/src/services/loop/run-driver.d.ts +0 -70
- package/dist/src/services/loop/run-driver.js +0 -400
- package/dist/src/services/loop/spec-service.d.ts +0 -90
- package/dist/src/services/loop/spec-service.js +0 -497
- package/dist/src/services/memory/llm-reranker.d.ts +0 -174
- package/dist/src/services/memory/llm-reranker.js +0 -284
- package/dist/src/services/memory/memory-search-service.d.ts +0 -93
- package/dist/src/services/memory/memory-search-service.js +0 -117
- 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/memory/project-memory-service.d.ts +0 -167
- package/dist/src/services/memory/project-memory-service.js +0 -817
- package/dist/src/services/migrate-skill-name/migrate.d.ts +0 -17
- package/dist/src/services/migrate-skill-name/migrate.js +0 -152
- package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
- package/dist/src/services/migrate-skill-name/schema.js +0 -25
- package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +0 -44
- package/dist/src/services/migration/v2-10-to-v2-11-service.js +0 -190
- package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +0 -41
- package/dist/src/services/migration/v2-10-to-v2-11-types.js +0 -23
- package/dist/src/services/mode/bypass-tracker.d.ts +0 -4
- package/dist/src/services/mode/bypass-tracker.js +0 -31
- package/dist/src/services/mode/mode-enforcement.d.ts +0 -14
- package/dist/src/services/mode/mode-enforcement.js +0 -84
- package/dist/src/services/mut/assert-scanner.d.ts +0 -6
- package/dist/src/services/mut/assert-scanner.js +0 -116
- package/dist/src/services/mut/index.d.ts +0 -8
- package/dist/src/services/mut/index.js +0 -7
- package/dist/src/services/mut/mut-runner.d.ts +0 -39
- package/dist/src/services/mut/mut-runner.js +0 -29
- package/dist/src/services/mut/production-stryker.d.ts +0 -2
- package/dist/src/services/mut/production-stryker.js +0 -75
- package/dist/src/services/mut/report-builder.d.ts +0 -11
- package/dist/src/services/mut/report-builder.js +0 -110
- package/dist/src/services/mut/report-loader.d.ts +0 -31
- package/dist/src/services/mut/report-loader.js +0 -78
- package/dist/src/services/mut/thresholds.d.ts +0 -21
- package/dist/src/services/mut/thresholds.js +0 -22
- package/dist/src/services/mut/types.d.ts +0 -336
- package/dist/src/services/mut/types.js +0 -59
- package/dist/src/services/observability/aggregation.d.ts +0 -64
- package/dist/src/services/observability/aggregation.js +0 -217
- package/dist/src/services/observability/jsonl-store.d.ts +0 -59
- package/dist/src/services/observability/jsonl-store.js +0 -120
- package/dist/src/services/observability/observability-service.d.ts +0 -95
- package/dist/src/services/observability/observability-service.js +0 -119
- package/dist/src/services/observability/report-formatter.d.ts +0 -42
- package/dist/src/services/observability/report-formatter.js +0 -156
- package/dist/src/services/openspec/openspec-archive-service.d.ts +0 -12
- package/dist/src/services/openspec/openspec-archive-service.js +0 -28
- package/dist/src/services/openspec/openspec-bridge-service.d.ts +0 -16
- package/dist/src/services/openspec/openspec-bridge-service.js +0 -76
- package/dist/src/services/openspec/openspec-init-service.d.ts +0 -23
- package/dist/src/services/openspec/openspec-init-service.js +0 -122
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +0 -31
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +0 -95
- package/dist/src/services/openspec/openspec-render-service.d.ts +0 -38
- package/dist/src/services/openspec/openspec-render-service.js +0 -130
- package/dist/src/services/openspec/openspec-scan-service.d.ts +0 -6
- package/dist/src/services/openspec/openspec-scan-service.js +0 -123
- package/dist/src/services/openspec/openspec-types.d.ts +0 -39
- package/dist/src/services/openspec/openspec-types.js +0 -1
- package/dist/src/services/openspec/openspec-validate-service.d.ts +0 -27
- package/dist/src/services/openspec/openspec-validate-service.js +0 -77
- package/dist/src/services/perf/perf-baseline-service.d.ts +0 -70
- package/dist/src/services/perf/perf-baseline-service.js +0 -214
- package/dist/src/services/polyrepo/polyrepo-dispatcher.d.ts +0 -34
- package/dist/src/services/polyrepo/polyrepo-dispatcher.js +0 -119
- package/dist/src/services/polyrepo/polyrepo-scanner.d.ts +0 -9
- package/dist/src/services/polyrepo/polyrepo-scanner.js +0 -94
- package/dist/src/services/polyrepo/polyrepo-service.d.ts +0 -34
- package/dist/src/services/polyrepo/polyrepo-service.js +0 -49
- package/dist/src/services/polyrepo/polyrepo-types.d.ts +0 -55
- package/dist/src/services/polyrepo/polyrepo-types.js +0 -1
- package/dist/src/services/prd/handoff-auto-regen.d.ts +0 -22
- package/dist/src/services/prd/handoff-auto-regen.js +0 -73
- package/dist/src/services/prd/handoff-service.d.ts +0 -54
- package/dist/src/services/prd/handoff-service.js +0 -142
- package/dist/src/services/prd/handoff-types.d.ts +0 -64
- package/dist/src/services/prd/handoff-types.js +0 -22
- package/dist/src/services/prd/prd-blocks-checker.d.ts +0 -51
- package/dist/src/services/prd/prd-blocks-checker.js +0 -130
- package/dist/src/services/prd/project-scan-reader.d.ts +0 -24
- package/dist/src/services/prd/project-scan-reader.js +0 -150
- package/dist/src/services/prd/project-scan-sediment.d.ts +0 -97
- package/dist/src/services/prd/project-scan-sediment.js +0 -445
- package/dist/src/services/prd/project-scan-types.d.ts +0 -66
- package/dist/src/services/prd/project-scan-types.js +0 -20
- package/dist/src/services/preferences/preferences-service.d.ts +0 -38
- package/dist/src/services/preferences/preferences-service.js +0 -198
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/preferences/preferences-types.js +0 -53
- package/dist/src/services/profiles/profile-service.d.ts +0 -6
- package/dist/src/services/profiles/profile-service.js +0 -19
- package/dist/src/services/progress/progress-service.d.ts +0 -125
- package/dist/src/services/progress/progress-service.js +0 -192
- package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
- package/dist/src/services/providers/minimax-provider-service.js +0 -143
- 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/proxy/proxy-service.d.ts +0 -7
- package/dist/src/services/proxy/proxy-service.js +0 -31
- package/dist/src/services/qa/browser-event-logger.d.ts +0 -40
- package/dist/src/services/qa/browser-event-logger.js +0 -54
- package/dist/src/services/qa/browser-restart-detector.d.ts +0 -74
- package/dist/src/services/qa/browser-restart-detector.js +0 -138
- package/dist/src/services/qa/browser-reuse-hint.d.ts +0 -18
- package/dist/src/services/qa/browser-reuse-hint.js +0 -18
- package/dist/src/services/qa/browser-wrapper-service.d.ts +0 -37
- package/dist/src/services/qa/browser-wrapper-service.js +0 -88
- package/dist/src/services/qa/qa-business-review-state.d.ts +0 -47
- package/dist/src/services/qa/qa-business-review-state.js +0 -96
- package/dist/src/services/rd/ast-gate.d.ts +0 -19
- package/dist/src/services/rd/ast-gate.js +0 -71
- package/dist/src/services/rd/impl.d.ts +0 -9
- package/dist/src/services/rd/impl.js +0 -57
- package/dist/src/services/rd/rd-service.d.ts +0 -129
- package/dist/src/services/rd/rd-service.js +0 -441
- package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +0 -122
- package/dist/src/services/rd/reviewer-dispatch-policy.js +0 -148
- 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/strategic-stage.d.ts +0 -4
- package/dist/src/services/rd/strategic-stage.js +0 -15
- package/dist/src/services/rd/strategy.d.ts +0 -13
- package/dist/src/services/rd/strategy.js +0 -60
- package/dist/src/services/rd/tactical-stage.d.ts +0 -33
- package/dist/src/services/rd/tactical-stage.js +0 -62
- package/dist/src/services/rd/types.d.ts +0 -252
- package/dist/src/services/rd/types.js +0 -47
- package/dist/src/services/recommendations/capability-availability.d.ts +0 -5
- package/dist/src/services/recommendations/capability-availability.js +0 -40
- package/dist/src/services/recommendations/capability-map-service.d.ts +0 -7
- package/dist/src/services/recommendations/capability-map-service.js +0 -131
- package/dist/src/services/recommendations/capability-seed-items.d.ts +0 -2
- package/dist/src/services/recommendations/capability-seed-items.js +0 -140
- package/dist/src/services/recommendations/capability-seed-mappings.d.ts +0 -2
- package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
- package/dist/src/services/recommendations/capability-seed-sources.d.ts +0 -2
- package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
- package/dist/src/services/recommendations/recommendation-service.d.ts +0 -8
- package/dist/src/services/recommendations/recommendation-service.js +0 -106
- package/dist/src/services/recommendations/recommendation-types.d.ts +0 -129
- package/dist/src/services/recommendations/recommendation-types.js +0 -1
- package/dist/src/services/recommendations/seed-capability-catalog.d.ts +0 -3
- package/dist/src/services/recommendations/seed-capability-catalog.js +0 -3
- package/dist/src/services/refactor/refactor-service.d.ts +0 -9
- package/dist/src/services/refactor/refactor-service.js +0 -36
- package/dist/src/services/release/release-state.d.ts +0 -70
- package/dist/src/services/release/release-state.js +0 -140
- package/dist/src/services/retrospective/retrospective-index.d.ts +0 -37
- package/dist/src/services/retrospective/retrospective-index.js +0 -110
- package/dist/src/services/retrospective/retrospective-search-service.d.ts +0 -55
- package/dist/src/services/retrospective/retrospective-search-service.js +0 -107
- package/dist/src/services/retrospective/retrospective-show.d.ts +0 -40
- package/dist/src/services/retrospective/retrospective-show.js +0 -109
- package/dist/src/services/reviewer/model-family.d.ts +0 -18
- package/dist/src/services/reviewer/model-family.js +0 -70
- package/dist/src/services/reviewer/providers/anthropic.d.ts +0 -2
- package/dist/src/services/reviewer/providers/anthropic.js +0 -61
- package/dist/src/services/reviewer/providers/ollama.d.ts +0 -26
- package/dist/src/services/reviewer/providers/ollama.js +0 -38
- package/dist/src/services/reviewer/providers/openai.d.ts +0 -2
- package/dist/src/services/reviewer/providers/openai.js +0 -63
- package/dist/src/services/reviewer/reviewer-config.d.ts +0 -34
- package/dist/src/services/reviewer/reviewer-config.js +0 -100
- package/dist/src/services/reviewer/reviewer-service.d.ts +0 -56
- package/dist/src/services/reviewer/reviewer-service.js +0 -263
- package/dist/src/services/reviewer/selection-strategies.d.ts +0 -27
- package/dist/src/services/reviewer/selection-strategies.js +0 -53
- package/dist/src/services/role/role-registry.d.ts +0 -38
- package/dist/src/services/role/role-registry.js +0 -83
- package/dist/src/services/runtime/runtime-detector.d.ts +0 -15
- package/dist/src/services/runtime/runtime-detector.js +0 -62
- package/dist/src/services/runtime/runtime-service.d.ts +0 -59
- package/dist/src/services/runtime/runtime-service.js +0 -51
- package/dist/src/services/runtime/vendor-adapter.d.ts +0 -59
- package/dist/src/services/runtime/vendor-adapter.js +0 -1
- package/dist/src/services/runtime/vendors/claude-code.d.ts +0 -7
- package/dist/src/services/runtime/vendors/claude-code.js +0 -39
- package/dist/src/services/runtime/vendors/codex.d.ts +0 -7
- package/dist/src/services/runtime/vendors/codex.js +0 -43
- package/dist/src/services/runtime/vendors/copilot.d.ts +0 -7
- package/dist/src/services/runtime/vendors/copilot.js +0 -40
- package/dist/src/services/sc/index.d.ts +0 -1
- package/dist/src/services/sc/index.js +0 -1
- package/dist/src/services/sc/sc-service.d.ts +0 -131
- package/dist/src/services/sc/sc-service.js +0 -552
- package/dist/src/services/scan/acceptance-coverage-service.d.ts +0 -42
- package/dist/src/services/scan/acceptance-coverage-service.js +0 -140
- package/dist/src/services/scan/api-surface-service.d.ts +0 -69
- package/dist/src/services/scan/api-surface-service.js +0 -239
- package/dist/src/services/scan/archetype-service.d.ts +0 -5
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/diff-scope-service.d.ts +0 -40
- package/dist/src/services/scan/diff-scope-service.js +0 -198
- package/dist/src/services/scan/existing-system-service.d.ts +0 -7
- package/dist/src/services/scan/existing-system-service.js +0 -300
- package/dist/src/services/scan/file-size-scan.d.ts +0 -23
- package/dist/src/services/scan/file-size-scan.js +0 -68
- package/dist/src/services/scan/karpathy-service.d.ts +0 -60
- package/dist/src/services/scan/karpathy-service.js +0 -228
- package/dist/src/services/scan/libraries-service.d.ts +0 -24
- package/dist/src/services/scan/libraries-service.js +0 -419
- package/dist/src/services/scan/libraries-types.d.ts +0 -59
- package/dist/src/services/scan/libraries-types.js +0 -9
- package/dist/src/services/scan/orphan-service.d.ts +0 -76
- package/dist/src/services/scan/orphan-service.js +0 -538
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/scan/scan-types.js +0 -1
- package/dist/src/services/scan/type-sanity-service.d.ts +0 -23
- package/dist/src/services/scan/type-sanity-service.js +0 -116
- package/dist/src/services/security/safe-settings-path.d.ts +0 -12
- package/dist/src/services/security/safe-settings-path.js +0 -104
- package/dist/src/services/sediment/dispose-confirm.d.ts +0 -9
- package/dist/src/services/sediment/dispose-confirm.js +0 -5
- package/dist/src/services/sediment/json-schema.d.ts +0 -247
- package/dist/src/services/sediment/json-schema.js +0 -26
- package/dist/src/services/sediment/manifest-lint.d.ts +0 -13
- package/dist/src/services/sediment/manifest-lint.js +0 -11
- package/dist/src/services/sediment/pool-paths.d.ts +0 -22
- package/dist/src/services/sediment/pool-paths.js +0 -25
- package/dist/src/services/sediment/pool-read.d.ts +0 -20
- package/dist/src/services/sediment/pool-read.js +0 -73
- package/dist/src/services/sediment/pool-rebuild-index.d.ts +0 -15
- package/dist/src/services/sediment/pool-rebuild-index.js +0 -28
- package/dist/src/services/sediment/pool-write.d.ts +0 -14
- package/dist/src/services/sediment/pool-write.js +0 -25
- package/dist/src/services/sediment/promotion-gate.d.ts +0 -12
- package/dist/src/services/sediment/promotion-gate.js +0 -20
- package/dist/src/services/sediment/types.d.ts +0 -52
- package/dist/src/services/sediment/types.js +0 -1
- package/dist/src/services/session/binding-status-service.d.ts +0 -56
- package/dist/src/services/session/binding-status-service.js +0 -106
- package/dist/src/services/session/binding-store.d.ts +0 -161
- package/dist/src/services/session/binding-store.js +0 -509
- package/dist/src/services/session/caller-binding-service.d.ts +0 -70
- package/dist/src/services/session/caller-binding-service.js +0 -148
- package/dist/src/services/session/caller-id-types.d.ts +0 -77
- package/dist/src/services/session/caller-id-types.js +0 -46
- package/dist/src/services/session/getSessionDir.d.ts +0 -1
- package/dist/src/services/session/getSessionDir.js +0 -27
- package/dist/src/services/session/index.d.ts +0 -6
- package/dist/src/services/session/index.js +0 -7
- package/dist/src/services/session/platform-fallbacks.d.ts +0 -31
- package/dist/src/services/session/platform-fallbacks.js +0 -35
- package/dist/src/services/session/resolve-caller-id.d.ts +0 -57
- package/dist/src/services/session/resolve-caller-id.js +0 -88
- package/dist/src/services/session/session-binding-bridge.d.ts +0 -76
- package/dist/src/services/session/session-binding-bridge.js +0 -247
- package/dist/src/services/session/session-checkpoint-service.d.ts +0 -57
- package/dist/src/services/session/session-checkpoint-service.js +0 -143
- package/dist/src/services/session/session-manager.d.ts +0 -168
- package/dist/src/services/session/session-manager.js +0 -502
- package/dist/src/services/session/session-resume-service.d.ts +0 -25
- package/dist/src/services/session/session-resume-service.js +0 -101
- package/dist/src/services/share/bundle-reader.d.ts +0 -100
- package/dist/src/services/share/bundle-reader.js +0 -434
- package/dist/src/services/share/bundle-types.d.ts +0 -392
- package/dist/src/services/share/bundle-types.js +0 -318
- package/dist/src/services/share/bundle-writer.d.ts +0 -97
- package/dist/src/services/share/bundle-writer.js +0 -429
- package/dist/src/services/share/run-state-contract.d.ts +0 -133
- package/dist/src/services/share/run-state-contract.js +0 -138
- package/dist/src/services/signal/cancel-handler.d.ts +0 -14
- package/dist/src/services/signal/cancel-handler.js +0 -76
- package/dist/src/services/skill/resume-detector.d.ts +0 -54
- package/dist/src/services/skill/resume-detector.js +0 -334
- package/dist/src/services/skill/skill-scheduler.d.ts +0 -40
- package/dist/src/services/skill/skill-scheduler.js +0 -53
- package/dist/src/services/skill/skill-search-service.d.ts +0 -88
- package/dist/src/services/skill/skill-search-service.js +0 -228
- package/dist/src/services/skillhub/release-diff.d.ts +0 -18
- package/dist/src/services/skillhub/release-diff.js +0 -38
- package/dist/src/services/skillhub/release-export.d.ts +0 -8
- package/dist/src/services/skillhub/release-export.js +0 -31
- package/dist/src/services/skillhub/release-gc-blobs.d.ts +0 -13
- package/dist/src/services/skillhub/release-gc-blobs.js +0 -32
- package/dist/src/services/skillhub/release-import.d.ts +0 -7
- package/dist/src/services/skillhub/release-import.js +0 -64
- package/dist/src/services/skillhub/release-retain.d.ts +0 -23
- package/dist/src/services/skillhub/release-retain.js +0 -94
- package/dist/src/services/skillhub/sqlite-store.d.ts +0 -22
- package/dist/src/services/skillhub/sqlite-store.js +0 -63
- package/dist/src/services/skillhub/tar-runtime.d.ts +0 -21
- package/dist/src/services/skillhub/tar-runtime.js +0 -91
- package/dist/src/services/skillhub/types.d.ts +0 -115
- package/dist/src/services/skillhub/types.js +0 -1
- package/dist/src/services/skills/hooks-settings-service.d.ts +0 -137
- package/dist/src/services/skills/hooks-settings-service.js +0 -396
- package/dist/src/services/skills/skill-conformance-service.d.ts +0 -40
- package/dist/src/services/skills/skill-conformance-service.js +0 -139
- package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
- package/dist/src/services/skills/skill-presence-service.js +0 -474
- package/dist/src/services/skills/skill-registry.d.ts +0 -17
- package/dist/src/services/skills/skill-registry.js +0 -67
- package/dist/src/services/skills/skill-runbook-service.d.ts +0 -11
- package/dist/src/services/skills/skill-runbook-service.js +0 -128
- package/dist/src/services/skills/skill-statusline-renderer.d.ts +0 -6
- package/dist/src/services/skills/skill-statusline-renderer.js +0 -55
- package/dist/src/services/skills/skill-statusline-service.d.ts +0 -24
- package/dist/src/services/skills/skill-statusline-service.js +0 -110
- package/dist/src/services/skills/statusline-settings-service.d.ts +0 -59
- package/dist/src/services/skills/statusline-settings-service.js +0 -141
- package/dist/src/services/skills/sync-service.d.ts +0 -86
- package/dist/src/services/skills/sync-service.js +0 -271
- package/dist/src/services/slice/calibration-store.d.ts +0 -39
- package/dist/src/services/slice/calibration-store.js +0 -68
- package/dist/src/services/slice/cross-pass-edge-merger.d.ts +0 -53
- package/dist/src/services/slice/cross-pass-edge-merger.js +0 -246
- package/dist/src/services/slice/granularity-decider.d.ts +0 -37
- package/dist/src/services/slice/granularity-decider.js +0 -40
- package/dist/src/services/slice/llm-arbitrator.d.ts +0 -35
- package/dist/src/services/slice/llm-arbitrator.js +0 -63
- package/dist/src/services/slice/multi-pass-orchestrator.d.ts +0 -67
- package/dist/src/services/slice/multi-pass-orchestrator.js +0 -225
- package/dist/src/services/slice/schema-router.d.ts +0 -44
- package/dist/src/services/slice/schema-router.js +0 -61
- package/dist/src/services/slice/slice-archive-service.d.ts +0 -20
- package/dist/src/services/slice/slice-archive-service.js +0 -111
- package/dist/src/services/slice/slice-benchmark-service.d.ts +0 -19
- package/dist/src/services/slice/slice-benchmark-service.js +0 -60
- package/dist/src/services/slice/slice-check-service.d.ts +0 -2
- package/dist/src/services/slice/slice-check-service.js +0 -459
- package/dist/src/services/slice/slice-check-types.d.ts +0 -104
- package/dist/src/services/slice/slice-check-types.js +0 -28
- package/dist/src/services/slice/slice-decompose-runners.d.ts +0 -23
- package/dist/src/services/slice/slice-decompose-runners.js +0 -174
- package/dist/src/services/slice/slice-decompose-service.d.ts +0 -24
- package/dist/src/services/slice/slice-decompose-service.js +0 -532
- package/dist/src/services/slice/slice-decompose-types.d.ts +0 -263
- package/dist/src/services/slice/slice-decompose-types.js +0 -30
- package/dist/src/services/slice/slice-integration.d.ts +0 -43
- package/dist/src/services/slice/slice-integration.js +0 -106
- package/dist/src/services/slice/slice-pick-service.d.ts +0 -32
- package/dist/src/services/slice/slice-pick-service.js +0 -75
- package/dist/src/services/slice/slice-review-state.d.ts +0 -70
- package/dist/src/services/slice/slice-review-state.js +0 -109
- package/dist/src/services/slice/slice-topology-types.d.ts +0 -115
- package/dist/src/services/slice/slice-topology-types.js +0 -20
- package/dist/src/services/smoke/smoke-paths-state.d.ts +0 -73
- package/dist/src/services/smoke/smoke-paths-state.js +0 -117
- package/dist/src/services/sop/gate-enforce-service.d.ts +0 -33
- package/dist/src/services/sop/gate-enforce-service.js +0 -168
- package/dist/src/services/sop/sop-advance-service.d.ts +0 -74
- package/dist/src/services/sop/sop-advance-service.js +0 -115
- package/dist/src/services/sop/sop-check-service.d.ts +0 -45
- package/dist/src/services/sop/sop-check-service.js +0 -181
- package/dist/src/services/sop/sop-paths.d.ts +0 -62
- package/dist/src/services/sop/sop-paths.js +0 -92
- package/dist/src/services/sop/sop-registry-service.d.ts +0 -46
- package/dist/src/services/sop/sop-registry-service.js +0 -89
- package/dist/src/services/sop/sop-service.d.ts +0 -55
- package/dist/src/services/sop/sop-service.js +0 -222
- package/dist/src/services/sop/sop-types.d.ts +0 -95
- package/dist/src/services/sop/sop-types.js +0 -11
- package/dist/src/services/standards/ide-aware-standards-service.d.ts +0 -94
- package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
- package/dist/src/services/standards/loop-engineering-lint.d.ts +0 -38
- package/dist/src/services/standards/loop-engineering-lint.js +0 -101
- package/dist/src/services/standards/loop-engineering-readiness-lint.d.ts +0 -111
- package/dist/src/services/standards/loop-engineering-readiness-lint.js +0 -248
- package/dist/src/services/standards/migrate-claude-rules-service.d.ts +0 -19
- package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
- package/dist/src/services/standards/migrate-service.d.ts +0 -63
- package/dist/src/services/standards/migrate-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-context.d.ts +0 -24
- package/dist/src/services/standards/project-context.js +0 -314
- package/dist/src/services/standards/project-standards-service.d.ts +0 -114
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/tech/tech-service.d.ts +0 -69
- package/dist/src/services/tech/tech-service.js +0 -299
- package/dist/src/services/test-cache/test-cache-service.d.ts +0 -70
- package/dist/src/services/test-cache/test-cache-service.js +0 -175
- package/dist/src/services/understand/hybrid-types.d.ts +0 -32
- package/dist/src/services/understand/hybrid-types.js +0 -1
- package/dist/src/services/understand/understand-hybrid-service.d.ts +0 -10
- package/dist/src/services/understand/understand-hybrid-service.js +0 -100
- package/dist/src/services/understand/understand-scan-service.d.ts +0 -28
- package/dist/src/services/understand/understand-scan-service.js +0 -170
- package/dist/src/services/understand/understand-types.d.ts +0 -50
- package/dist/src/services/understand/understand-types.js +0 -1
- package/dist/src/services/upgrade/1x-detector-service.d.ts +0 -7
- package/dist/src/services/upgrade/1x-detector-service.js +0 -94
- package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +0 -56
- package/dist/src/services/upgrade/gitignore-migrate-service.js +0 -170
- package/dist/src/services/upgrade/upgrade-service.d.ts +0 -81
- package/dist/src/services/upgrade/upgrade-service.js +0 -403
- package/dist/src/services/verdict/envelopes.d.ts +0 -93
- package/dist/src/services/verdict/envelopes.js +0 -349
- package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
- package/dist/src/services/verdict/verdict-aggregator.js +0 -112
- package/dist/src/services/workflow/artifact-paths.d.ts +0 -59
- package/dist/src/services/workflow/artifact-paths.js +0 -166
- package/dist/src/services/workflow/autonomous-resume-writer.d.ts +0 -16
- package/dist/src/services/workflow/autonomous-resume-writer.js +0 -170
- 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/plan-reader.d.ts +0 -29
- package/dist/src/services/workflow/plan-reader.js +0 -174
- package/dist/src/services/workflow/plan-refresher.d.ts +0 -32
- package/dist/src/services/workflow/plan-refresher.js +0 -353
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +0 -55
- package/dist/src/services/workflow/plan-trigger-detector.js +0 -142
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +0 -19
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +0 -300
- 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-loader.d.ts +0 -63
- package/dist/src/services/workflow/workflow-loader.js +0 -168
- package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
- package/dist/src/services/workflow/workflow-router-service.js +0 -233
- package/dist/src/services/workflow/workflow-skip-service.d.ts +0 -106
- package/dist/src/services/workflow/workflow-skip-service.js +0 -209
- package/dist/src/services/workflow/workflow-spec.d.ts +0 -116
- package/dist/src/services/workflow/workflow-spec.js +0 -431
- package/dist/src/services/workflow/workflow-state-store.d.ts +0 -27
- package/dist/src/services/workflow/workflow-state-store.js +0 -95
- 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/services/workspace/migrate-1-4-1-service.d.ts +0 -44
- package/dist/src/services/workspace/migrate-1-4-1-service.js +0 -195
- package/dist/src/services/workspace/migrate-service.d.ts +0 -2
- package/dist/src/services/workspace/migrate-service.js +0 -613
- package/dist/src/services/workspace/migrate-types.d.ts +0 -127
- package/dist/src/services/workspace/migrate-types.js +0 -21
- package/dist/src/services/workspace/reconcile-service.d.ts +0 -188
- package/dist/src/services/workspace/reconcile-service.js +0 -683
- package/dist/src/services/workspace/reconcile-types.d.ts +0 -130
- package/dist/src/services/workspace/reconcile-types.js +0 -13
- package/dist/src/services/workspace/sid-naming-guard.d.ts +0 -17
- package/dist/src/services/workspace/sid-naming-guard.js +0 -34
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +0 -45
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +0 -194
- package/dist/src/services/workspace/workspace-clean-service.d.ts +0 -28
- package/dist/src/services/workspace/workspace-clean-service.js +0 -46
- package/dist/src/services/workspace/workspace-service.d.ts +0 -177
- package/dist/src/services/workspace/workspace-service.js +0 -432
- package/dist/src/services/workspace/workspace-state-service.d.ts +0 -7
- package/dist/src/services/workspace/workspace-state-service.js +0 -43
- package/dist/src/shared/format-md-compact.d.ts +0 -32
- package/dist/src/shared/format-md-compact.js +0 -297
- package/dist/src/shared/frontmatter.d.ts +0 -6
- package/dist/src/shared/frontmatter.js +0 -165
- package/dist/src/shared/fs-utils.d.ts +0 -4
- package/dist/src/shared/fs-utils.js +0 -16
- package/dist/src/shared/fs.d.ts +0 -4
- package/dist/src/shared/fs.js +0 -26
- package/dist/src/shared/incrementing-number.d.ts +0 -23
- package/dist/src/shared/incrementing-number.js +0 -68
- package/dist/src/shared/json-schema-mini.d.ts +0 -10
- package/dist/src/shared/json-schema-mini.js +0 -113
- package/dist/src/shared/path-safety.d.ts +0 -21
- package/dist/src/shared/path-safety.js +0 -54
- package/dist/src/shared/path-utils.d.ts +0 -13
- package/dist/src/shared/path-utils.js +0 -56
- package/dist/src/shared/paths.d.ts +0 -6
- package/dist/src/shared/paths.js +0 -50
- package/dist/src/shared/planner-response.d.ts +0 -21
- package/dist/src/shared/planner-response.js +0 -26
- package/dist/src/shared/platform.d.ts +0 -6
- package/dist/src/shared/platform.js +0 -11
- package/dist/src/shared/process.d.ts +0 -5
- package/dist/src/shared/process.js +0 -12
- package/dist/src/shared/result.d.ts +0 -22
- package/dist/src/shared/result.js +0 -46
- package/dist/src/shared/stale-policy.d.ts +0 -67
- package/dist/src/shared/stale-policy.js +0 -85
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/dist/src/skills/peaks-maker/index.d.ts +0 -5
- package/dist/src/skills/peaks-maker/index.js +0 -32
|
@@ -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-code-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-code-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-code-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,29 +0,0 @@
|
|
|
1
|
-
import { type ResultEnvelope } from '../../shared/result.js';
|
|
2
|
-
export type PlanType = 'security' | 'perf';
|
|
3
|
-
/** Back-compat env-var. When set to "1", fall back to legacy paths. */
|
|
4
|
-
export declare const BACK_COMPAT_FLAG = "PEAKS_PLAN_LEGACY_FALLBACK";
|
|
5
|
-
/** F-1 (slice 025 security): canonical session-id shape. */
|
|
6
|
-
export declare const SESSION_ID_PATTERN: RegExp;
|
|
7
|
-
export interface ReadPlanArgs {
|
|
8
|
-
readonly type: PlanType;
|
|
9
|
-
readonly project: string;
|
|
10
|
-
readonly sessionId: string;
|
|
11
|
-
}
|
|
12
|
-
export interface ReadPlanData {
|
|
13
|
-
readonly type: PlanType;
|
|
14
|
-
readonly exists: boolean;
|
|
15
|
-
readonly path: string;
|
|
16
|
-
readonly hash: string | null;
|
|
17
|
-
readonly refreshedAt: string | null;
|
|
18
|
-
/** `'canonical' | 'legacy' | 'missing'` — surfaced to the slice workflow
|
|
19
|
-
* so it can warn the user about a back-compat fallback. */
|
|
20
|
-
readonly source: 'canonical' | 'legacy' | 'missing';
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Normalize a markdown body for hashing. Sections sorted, blank lines
|
|
24
|
-
* collapsed, leading/trailing whitespace stripped. Hash is sha256[0:12].
|
|
25
|
-
*/
|
|
26
|
-
export declare function normalizePlanBody(body: string): string;
|
|
27
|
-
/** Compute the deterministic plan hash on a normalized body. */
|
|
28
|
-
export declare function hashNormalizedBody(body: string): string;
|
|
29
|
-
export declare function readPlan(args: ReadPlanArgs): ResultEnvelope<ReadPlanData>;
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `peaks workflow plan read` — slice 025 (Security + Perf Plan/Result split).
|
|
3
|
-
*
|
|
4
|
-
* Returns the envelope `{ exists, path, hash, refreshedAt }` for the
|
|
5
|
-
* session-scoped security-test-plan or perf-baseline plan. The hash is
|
|
6
|
-
* computed on the **normalized** body (sections sorted, blank lines
|
|
7
|
-
* collapsed) so it is independent of cosmetic re-ordering; mtime is
|
|
8
|
-
* surfaced as ISO-8601.
|
|
9
|
-
*
|
|
10
|
-
* Back-compat: when the BACK_COMPAT_FLAG env var is "1" and the
|
|
11
|
-
* legacy path (`.peaks/_runtime/<planFile>` at the project root) exists but
|
|
12
|
-
* the canonical session path does not, the reader falls back to the
|
|
13
|
-
* legacy path and reports `source: "legacy"`.
|
|
14
|
-
*/
|
|
15
|
-
import { createHash } from 'node:crypto';
|
|
16
|
-
import { existsSync, readFileSync, realpathSync, statSync } from 'node:fs';
|
|
17
|
-
import { join, sep } from 'node:path';
|
|
18
|
-
import { fail, ok } from '../../shared/result.js';
|
|
19
|
-
import { getSessionDir } from '../session/getSessionDir.js';
|
|
20
|
-
/** Back-compat env-var. When set to "1", fall back to legacy paths. */
|
|
21
|
-
export const BACK_COMPAT_FLAG = 'PEAKS_PLAN_LEGACY_FALLBACK';
|
|
22
|
-
/** F-1 (slice 025 security): canonical session-id shape. */
|
|
23
|
-
export const SESSION_ID_PATTERN = /^\d{4}-\d{2}-\d{2}-[a-z][a-z0-9-]*[a-z0-9]$/;
|
|
24
|
-
const PLAN_FILE = {
|
|
25
|
-
security: 'security-test-plan.md',
|
|
26
|
-
perf: 'perf-baseline.md'
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Normalize a markdown body for hashing. Sections sorted, blank lines
|
|
30
|
-
* collapsed, leading/trailing whitespace stripped. Hash is sha256[0:12].
|
|
31
|
-
*/
|
|
32
|
-
export function normalizePlanBody(body) {
|
|
33
|
-
const lines = body
|
|
34
|
-
.split(/\r?\n/)
|
|
35
|
-
.map((line) => line.trim())
|
|
36
|
-
.filter((line) => line.length > 0);
|
|
37
|
-
return lines.sort().join('\n');
|
|
38
|
-
}
|
|
39
|
-
/** Compute the deterministic plan hash on a normalized body. */
|
|
40
|
-
export function hashNormalizedBody(body) {
|
|
41
|
-
const normalized = normalizePlanBody(body);
|
|
42
|
-
return createHash('sha256').update(normalized, 'utf8').digest('hex').slice(0, 12);
|
|
43
|
-
}
|
|
44
|
-
function canonicalPath(args) {
|
|
45
|
-
return join(getSessionDir(args.projectRoot, args.sessionId), 'qa', PLAN_FILE[args.type]);
|
|
46
|
-
}
|
|
47
|
-
function legacyPath(args) {
|
|
48
|
-
return join(args.projectRoot, '.peaks', PLAN_FILE[args.type]);
|
|
49
|
-
}
|
|
50
|
-
/** Build the data envelope for a path that exists. */
|
|
51
|
-
function buildData(args) {
|
|
52
|
-
const stats = statSync(args.path);
|
|
53
|
-
return {
|
|
54
|
-
type: args.type,
|
|
55
|
-
exists: true,
|
|
56
|
-
path: args.path,
|
|
57
|
-
hash: hashNormalizedBody(readFileSync(args.path, 'utf8')),
|
|
58
|
-
refreshedAt: stats.mtime.toISOString(),
|
|
59
|
-
source: args.source
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* F-2 (slice 025 security): resolve symlinks and confirm the real path
|
|
64
|
-
* still lives under the expected base directory. A canonical path
|
|
65
|
-
* may itself be a symlink (or a directory in the path chain may be),
|
|
66
|
-
* which would let a malicious or accidental symlink escape the
|
|
67
|
-
* `.peaks/_runtime/<sessionId>/` containment. We reject anything
|
|
68
|
-
* whose real path falls outside the expected base.
|
|
69
|
-
*
|
|
70
|
-
* The caller passes the expected base:
|
|
71
|
-
* - session dir for canonical reads (`.peaks/_runtime/<sid>/qa/...`)
|
|
72
|
-
* - project root for legacy back-compat reads (`.peaks/_runtime/<planFile>`)
|
|
73
|
-
*/
|
|
74
|
-
function assertContained(args) {
|
|
75
|
-
let real;
|
|
76
|
-
try {
|
|
77
|
-
real = realpathSync(args.path);
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// If realpath fails (e.g. broken symlink), treat as escape — never
|
|
81
|
-
// return "ok" without a verified real path.
|
|
82
|
-
return {
|
|
83
|
-
ok: false,
|
|
84
|
-
code: 'SYMLINK_ESCAPE',
|
|
85
|
-
message: `resolved path escapes base directory: cannot resolve ${args.path}`
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// Slice 2026-06-13-repair-pre-existing-test-failures: realpath the
|
|
89
|
-
// expectedBase too. On macOS the OS exposes /tmp and
|
|
90
|
-
// /var/folders/... as symlinks to /private/tmp and
|
|
91
|
-
// /private/var/folders/.... `mkdtempSync` returns the unresolved
|
|
92
|
-
// form; the file inside resolves through the symlink. Without
|
|
93
|
-
// symmetric realpath on both sides, the prefix check incorrectly
|
|
94
|
-
// rejects a file that is genuinely inside the base directory.
|
|
95
|
-
// Falls back to the raw expectedBase when the base itself does
|
|
96
|
-
// not yet exist (e.g. the canonical session dir before first
|
|
97
|
-
// write), preserving the pre-fix behavior for that case.
|
|
98
|
-
let expectedPrefix;
|
|
99
|
-
try {
|
|
100
|
-
expectedPrefix = join(realpathSync(args.expectedBase), sep);
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
expectedPrefix = join(args.expectedBase, sep);
|
|
104
|
-
}
|
|
105
|
-
if (!real.startsWith(expectedPrefix)) {
|
|
106
|
-
return {
|
|
107
|
-
ok: false,
|
|
108
|
-
code: 'SYMLINK_ESCAPE',
|
|
109
|
-
message: `resolved path escapes base directory: ${real} is not under ${expectedPrefix}`
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return { ok: true, real };
|
|
113
|
-
}
|
|
114
|
-
export function readPlan(args) {
|
|
115
|
-
// F-1 (slice 025 security): reject path-traversal payloads before any
|
|
116
|
-
// filesystem call. The CLI also validates, but the service is the
|
|
117
|
-
// authoritative gate — every caller (CLI, skill, integration test)
|
|
118
|
-
// benefits from the same rejection shape.
|
|
119
|
-
if (!SESSION_ID_PATTERN.test(args.sessionId)) {
|
|
120
|
-
return fail('workflow.plan.read', 'INVALID_SESSION_ID', 'session id must match YYYY-MM-DD-slug pattern', {
|
|
121
|
-
type: args.type,
|
|
122
|
-
exists: false,
|
|
123
|
-
path: '',
|
|
124
|
-
hash: null,
|
|
125
|
-
refreshedAt: null,
|
|
126
|
-
source: 'missing'
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
const canonical = canonicalPath({ projectRoot: args.project, sessionId: args.sessionId, type: args.type });
|
|
130
|
-
if (existsSync(canonical)) {
|
|
131
|
-
const guard = assertContained({
|
|
132
|
-
expectedBase: getSessionDir(args.project, args.sessionId),
|
|
133
|
-
path: canonical
|
|
134
|
-
});
|
|
135
|
-
if (!guard.ok) {
|
|
136
|
-
return fail('workflow.plan.read', guard.code, guard.message, {
|
|
137
|
-
type: args.type,
|
|
138
|
-
exists: false,
|
|
139
|
-
path: canonical,
|
|
140
|
-
hash: null,
|
|
141
|
-
refreshedAt: null,
|
|
142
|
-
source: 'missing'
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return ok('workflow.plan.read', buildData({ type: args.type, path: canonical, source: 'canonical' }));
|
|
146
|
-
}
|
|
147
|
-
const legacy = legacyPath({ projectRoot: args.project, type: args.type });
|
|
148
|
-
const backCompatEnabled = process.env[BACK_COMPAT_FLAG] === '1';
|
|
149
|
-
if (backCompatEnabled && existsSync(legacy)) {
|
|
150
|
-
const guard = assertContained({
|
|
151
|
-
expectedBase: args.project,
|
|
152
|
-
path: legacy
|
|
153
|
-
});
|
|
154
|
-
if (!guard.ok) {
|
|
155
|
-
return fail('workflow.plan.read', guard.code, guard.message, {
|
|
156
|
-
type: args.type,
|
|
157
|
-
exists: false,
|
|
158
|
-
path: legacy,
|
|
159
|
-
hash: null,
|
|
160
|
-
refreshedAt: null,
|
|
161
|
-
source: 'missing'
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
return ok('workflow.plan.read', buildData({ type: args.type, path: legacy, source: 'legacy' }));
|
|
165
|
-
}
|
|
166
|
-
return ok('workflow.plan.read', {
|
|
167
|
-
type: args.type,
|
|
168
|
-
exists: false,
|
|
169
|
-
path: canonical,
|
|
170
|
-
hash: null,
|
|
171
|
-
refreshedAt: null,
|
|
172
|
-
source: 'missing'
|
|
173
|
-
});
|
|
174
|
-
}
|