peaks-loop 4.0.0-beta.6 → 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 +152 -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/scripts/install-skills.mjs +13 -10
- 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 +35 -45
- 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/skills/peaks-slice-decompose/SKILL.md +61 -1
- 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/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 -401
- 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 -4
- package/dist/src/services/config/model-routing.js +0 -17
- 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/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 -60
- package/dist/src/services/ide/ide-types.d.ts +0 -230
- 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 -438
- 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 -227
- 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,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* v2.15.0 slice 002 — AC-3: feedback-promotion service.
|
|
3
|
-
*
|
|
4
|
-
* `.peaks/memory/<name>.md` memories with `metadata.type === 'feedback'`
|
|
5
|
-
* are user-given rules. They are advisory (LLM-readable) until promoted
|
|
6
|
-
* to at least one enforcement layer (peaks-sop gate / peaks-hooks
|
|
7
|
-
* PreToolUse / mode-gate hardFloorCategory). This service is the
|
|
8
|
-
* primitive behind the `peaks feedback promote` and
|
|
9
|
-
* `peaks feedback check-unpromoted` CLI commands.
|
|
10
|
-
*
|
|
11
|
-
* Promotion tracking convention: a feedback memory is considered
|
|
12
|
-
* "promoted" when one of the following is true:
|
|
13
|
-
*
|
|
14
|
-
* (a) The memory file contains an HTML comment near the top of the
|
|
15
|
-
* body: `<!-- peaks-feedback-promoted: layer=<A|B|C> -->`.
|
|
16
|
-
* Written by `peaks feedback promote` so a single read of the
|
|
17
|
-
* memory file is enough to determine promotion state.
|
|
18
|
-
*
|
|
19
|
-
* (b) A sibling `.peaks/memory/<name>.promotion.json` exists with
|
|
20
|
-
* `{ layer: "A" | "B" | "C", ... }`. Written as a sidecar for
|
|
21
|
-
* tooling that prefers machine-readable state over embedded
|
|
22
|
-
* comments (e.g. `verify-pipeline` Gate H).
|
|
23
|
-
*
|
|
24
|
-
* The comment marker is the SOURCE OF TRUTH for human review; the
|
|
25
|
-
* sidecar is the source of truth for the scanner. Either is enough
|
|
26
|
-
* to mark a feedback memory as promoted.
|
|
27
|
-
*/
|
|
28
|
-
export type PromotionLayer = 'A' | 'B' | 'C';
|
|
29
|
-
export declare const PROMOTION_LAYERS: readonly PromotionLayer[];
|
|
30
|
-
export type PromotionLayerDetail = {
|
|
31
|
-
layer: PromotionLayer;
|
|
32
|
-
label: string;
|
|
33
|
-
/** One-line description of what kind of rule belongs on this layer. */
|
|
34
|
-
description: string;
|
|
35
|
-
};
|
|
36
|
-
export declare const PROMOTION_LAYER_DETAILS: readonly PromotionLayerDetail[];
|
|
37
|
-
export type FeedbackMemory = {
|
|
38
|
-
/** File basename (without `.md`). */
|
|
39
|
-
name: string;
|
|
40
|
-
/** Absolute path to the .md file. */
|
|
41
|
-
path: string;
|
|
42
|
-
/** Parsed frontmatter. */
|
|
43
|
-
frontmatter: {
|
|
44
|
-
name?: string;
|
|
45
|
-
description?: string;
|
|
46
|
-
kind?: string;
|
|
47
|
-
};
|
|
48
|
-
/** Body text (after the closing `---`). */
|
|
49
|
-
body: string;
|
|
50
|
-
/** Parsed promotion marker (from comment OR sidecar). null when unpromoted. */
|
|
51
|
-
promotion: {
|
|
52
|
-
layer: PromotionLayer;
|
|
53
|
-
source: 'comment' | 'sidecar';
|
|
54
|
-
detail: string;
|
|
55
|
-
} | null;
|
|
56
|
-
};
|
|
57
|
-
export type UnpromotedFeedbackEntry = {
|
|
58
|
-
name: string;
|
|
59
|
-
path: string;
|
|
60
|
-
reason: string;
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Parse a single `.peaks/memory/<file>.md` into a FeedbackMemory, or
|
|
64
|
-
* `null` when the file is missing / unreadable / not a feedback memory.
|
|
65
|
-
*
|
|
66
|
-
* The "is this a feedback memory?" check is intentionally narrow: only
|
|
67
|
-
* frontmatter with `metadata.type === 'feedback'` OR top-level
|
|
68
|
-
* `type: feedback` qualifies. Other memory kinds (project / rule /
|
|
69
|
-
* decision / reference / convention / module / lesson) are skipped.
|
|
70
|
-
*/
|
|
71
|
-
export declare function parseFeedbackMemory(filePath: string): FeedbackMemory | null;
|
|
72
|
-
/**
|
|
73
|
-
* Scan `.peaks/memory/*.md` for feedback memories and return those
|
|
74
|
-
* that are NOT promoted to any enforcement layer. Pure read; the
|
|
75
|
-
* CLI command emits the warning list + (with `--strict`) a non-zero
|
|
76
|
-
* exit code.
|
|
77
|
-
*/
|
|
78
|
-
export declare function listUnpromotedFeedback(opts: {
|
|
79
|
-
projectRoot: string;
|
|
80
|
-
}): UnpromotedFeedbackEntry[];
|
|
81
|
-
/**
|
|
82
|
-
* Generate the code stub for a given layer. Returns a Markdown
|
|
83
|
-
* snippet the LLM / human can paste into the appropriate file. Pure
|
|
84
|
-
* function — does NOT touch disk. The CLI command wraps this with
|
|
85
|
-
* the disk write / envelope emission.
|
|
86
|
-
*/
|
|
87
|
-
export declare function generatePromotionStub(opts: {
|
|
88
|
-
layer: PromotionLayer;
|
|
89
|
-
feedbackName: string;
|
|
90
|
-
feedbackBody: string;
|
|
91
|
-
}): {
|
|
92
|
-
snippet: string;
|
|
93
|
-
targetFiles: string[];
|
|
94
|
-
};
|
|
95
|
-
export type FeedbackPromoteEnvelope = {
|
|
96
|
-
name: string;
|
|
97
|
-
feedbackPath: string;
|
|
98
|
-
layer: PromotionLayer;
|
|
99
|
-
layerDetail: string;
|
|
100
|
-
generatedFiles: string[];
|
|
101
|
-
snippet: string;
|
|
102
|
-
promotedAt: string;
|
|
103
|
-
promotedBy: string;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Write the promotion marker + sidecar. Also writes the envelope to
|
|
107
|
-
* `.peaks/_runtime/<sid>/rd/feedback-promote-<name>.json` for QA
|
|
108
|
-
* auditing. Returns the envelope so the CLI can emit it.
|
|
109
|
-
*
|
|
110
|
-
* The promotion marker is embedded in the memory file (so it
|
|
111
|
-
* travels with the file across git history); the sidecar is a
|
|
112
|
-
* machine-readable mirror. Both are written; either alone is
|
|
113
|
-
* enough for the scanner.
|
|
114
|
-
*/
|
|
115
|
-
export declare function promoteFeedback(opts: {
|
|
116
|
-
feedbackPath: string;
|
|
117
|
-
layer: PromotionLayer;
|
|
118
|
-
promotedBy: string;
|
|
119
|
-
sessionId: string;
|
|
120
|
-
projectRoot: string;
|
|
121
|
-
dryRun?: boolean;
|
|
122
|
-
}): FeedbackPromoteEnvelope;
|
|
123
|
-
export declare function isPromotionLayer(value: string): value is PromotionLayer;
|
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* v2.15.0 slice 002 — AC-3: feedback-promotion service.
|
|
3
|
-
*
|
|
4
|
-
* `.peaks/memory/<name>.md` memories with `metadata.type === 'feedback'`
|
|
5
|
-
* are user-given rules. They are advisory (LLM-readable) until promoted
|
|
6
|
-
* to at least one enforcement layer (peaks-sop gate / peaks-hooks
|
|
7
|
-
* PreToolUse / mode-gate hardFloorCategory). This service is the
|
|
8
|
-
* primitive behind the `peaks feedback promote` and
|
|
9
|
-
* `peaks feedback check-unpromoted` CLI commands.
|
|
10
|
-
*
|
|
11
|
-
* Promotion tracking convention: a feedback memory is considered
|
|
12
|
-
* "promoted" when one of the following is true:
|
|
13
|
-
*
|
|
14
|
-
* (a) The memory file contains an HTML comment near the top of the
|
|
15
|
-
* body: `<!-- peaks-feedback-promoted: layer=<A|B|C> -->`.
|
|
16
|
-
* Written by `peaks feedback promote` so a single read of the
|
|
17
|
-
* memory file is enough to determine promotion state.
|
|
18
|
-
*
|
|
19
|
-
* (b) A sibling `.peaks/memory/<name>.promotion.json` exists with
|
|
20
|
-
* `{ layer: "A" | "B" | "C", ... }`. Written as a sidecar for
|
|
21
|
-
* tooling that prefers machine-readable state over embedded
|
|
22
|
-
* comments (e.g. `verify-pipeline` Gate H).
|
|
23
|
-
*
|
|
24
|
-
* The comment marker is the SOURCE OF TRUTH for human review; the
|
|
25
|
-
* sidecar is the source of truth for the scanner. Either is enough
|
|
26
|
-
* to mark a feedback memory as promoted.
|
|
27
|
-
*/
|
|
28
|
-
import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
29
|
-
import { dirname, join, resolve } from 'node:path';
|
|
30
|
-
export const PROMOTION_LAYERS = ['A', 'B', 'C'];
|
|
31
|
-
export const PROMOTION_LAYER_DETAILS = [
|
|
32
|
-
{ layer: 'A', label: 'peaks-sop gate', description: 'Append to sops/*.md and reference from a peaks-sop check. Procedural rules.' },
|
|
33
|
-
{ layer: 'B', label: 'peaks-hooks PreToolUse', description: 'Append a matcher to .peaks/.claude-settings-template.json. Tool-call interception.' },
|
|
34
|
-
{ layer: 'C', label: 'mode-gate hardFloorCategory', description: 'Extend HardFloorCategory + shouldPauseAtGate. Always pauses regardless of mode.' }
|
|
35
|
-
];
|
|
36
|
-
const COMMENT_MARKER_RE = /<!--\s*peaks-feedback-promoted:\s*layer=([ABC])\s*-->/;
|
|
37
|
-
/**
|
|
38
|
-
* Parse a single `.peaks/memory/<file>.md` into a FeedbackMemory, or
|
|
39
|
-
* `null` when the file is missing / unreadable / not a feedback memory.
|
|
40
|
-
*
|
|
41
|
-
* The "is this a feedback memory?" check is intentionally narrow: only
|
|
42
|
-
* frontmatter with `metadata.type === 'feedback'` OR top-level
|
|
43
|
-
* `type: feedback` qualifies. Other memory kinds (project / rule /
|
|
44
|
-
* decision / reference / convention / module / lesson) are skipped.
|
|
45
|
-
*/
|
|
46
|
-
export function parseFeedbackMemory(filePath) {
|
|
47
|
-
if (!existsSync(filePath))
|
|
48
|
-
return null;
|
|
49
|
-
let raw;
|
|
50
|
-
try {
|
|
51
|
-
raw = readFileSync(filePath, 'utf8');
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
throw new Error(`failed to read feedback memory at ${filePath}: ${err.message}`, { cause: err });
|
|
55
|
-
}
|
|
56
|
-
const normalized = raw.replace(/\r\n/g, '\n');
|
|
57
|
-
if (!normalized.startsWith('---\n'))
|
|
58
|
-
return null;
|
|
59
|
-
const endIndex = normalized.indexOf('\n---\n', 4);
|
|
60
|
-
if (endIndex < 0)
|
|
61
|
-
return null;
|
|
62
|
-
const frontmatterRaw = normalized.slice(4, endIndex);
|
|
63
|
-
const body = normalized.slice(endIndex + '\n---\n'.length).trim();
|
|
64
|
-
let name;
|
|
65
|
-
let description;
|
|
66
|
-
let kind;
|
|
67
|
-
for (const rawLine of frontmatterRaw.split('\n')) {
|
|
68
|
-
const line = rawLine.trim();
|
|
69
|
-
if (line.startsWith('name:'))
|
|
70
|
-
name = line.slice('name:'.length).trim();
|
|
71
|
-
else if (line.startsWith('description:'))
|
|
72
|
-
description = line.slice('description:'.length).trim();
|
|
73
|
-
else if (line.startsWith('type:'))
|
|
74
|
-
kind = line.slice('type:'.length).trim();
|
|
75
|
-
else if (line.startsWith(' type:'))
|
|
76
|
-
kind = line.slice(' type:'.length).trim();
|
|
77
|
-
}
|
|
78
|
-
if (kind !== 'feedback')
|
|
79
|
-
return null;
|
|
80
|
-
// Comment marker (preferred — embedded in the file itself).
|
|
81
|
-
let promotion = null;
|
|
82
|
-
const commentMatch = COMMENT_MARKER_RE.exec(body);
|
|
83
|
-
if (commentMatch) {
|
|
84
|
-
const layer = commentMatch[1];
|
|
85
|
-
const detail = PROMOTION_LAYER_DETAILS.find((l) => l.layer === layer);
|
|
86
|
-
promotion = {
|
|
87
|
-
layer,
|
|
88
|
-
source: 'comment',
|
|
89
|
-
detail: detail?.label ?? layer
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// Sidecar fallback: `<basename>.promotion.json`.
|
|
94
|
-
const sidecarPath = filePath.replace(/\.md$/, '.promotion.json');
|
|
95
|
-
if (existsSync(sidecarPath)) {
|
|
96
|
-
try {
|
|
97
|
-
const sidecar = JSON.parse(readFileSync(sidecarPath, 'utf8'));
|
|
98
|
-
if (sidecar.layer === 'A' || sidecar.layer === 'B' || sidecar.layer === 'C') {
|
|
99
|
-
const detail = PROMOTION_LAYER_DETAILS.find((l) => l.layer === sidecar.layer);
|
|
100
|
-
promotion = {
|
|
101
|
-
layer: sidecar.layer,
|
|
102
|
-
source: 'sidecar',
|
|
103
|
-
detail: detail?.label ?? sidecar.layer
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (err) {
|
|
108
|
-
// malformed sidecar — warn but do not fail the whole parse
|
|
109
|
-
console.warn(`parseFeedbackMemory: malformed sidecar at ${sidecarPath}: ${err.message}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return {
|
|
114
|
-
name: name ?? basename(filePath),
|
|
115
|
-
path: filePath,
|
|
116
|
-
frontmatter: {
|
|
117
|
-
...(name !== undefined ? { name } : {}),
|
|
118
|
-
...(description !== undefined ? { description } : {}),
|
|
119
|
-
...(kind !== undefined ? { kind } : {})
|
|
120
|
-
},
|
|
121
|
-
body,
|
|
122
|
-
promotion
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
function basename(p) {
|
|
126
|
-
const lastSlash = Math.max(p.lastIndexOf('/'), p.lastIndexOf('\\'));
|
|
127
|
-
const base = lastSlash >= 0 ? p.slice(lastSlash + 1) : p;
|
|
128
|
-
return base.endsWith('.md') ? base.slice(0, -3) : base;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Scan `.peaks/memory/*.md` for feedback memories and return those
|
|
132
|
-
* that are NOT promoted to any enforcement layer. Pure read; the
|
|
133
|
-
* CLI command emits the warning list + (with `--strict`) a non-zero
|
|
134
|
-
* exit code.
|
|
135
|
-
*/
|
|
136
|
-
export function listUnpromotedFeedback(opts) {
|
|
137
|
-
const memoryDir = resolve(opts.projectRoot, '.peaks', 'memory');
|
|
138
|
-
if (!existsSync(memoryDir))
|
|
139
|
-
return [];
|
|
140
|
-
const out = [];
|
|
141
|
-
for (const entry of readdirSync(memoryDir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name))) {
|
|
142
|
-
if (!entry.isFile() || !entry.name.endsWith('.md'))
|
|
143
|
-
continue;
|
|
144
|
-
if (entry.name.startsWith('.'))
|
|
145
|
-
continue; // skip dotfiles (e.g. .index.json)
|
|
146
|
-
const parsed = parseFeedbackMemory(join(memoryDir, entry.name));
|
|
147
|
-
if (parsed === null)
|
|
148
|
-
continue;
|
|
149
|
-
// v2.18.4 fix: skip closed feedback memories (frontmatter `closedAt: <iso>`).
|
|
150
|
-
// Closed memories declare their own "Do not re-introduce this memory as a
|
|
151
|
-
// live blocker" in the body; counting them as unpromoted would (a) force
|
|
152
|
-
// operators to promote or delete a deliberately archived record and (b)
|
|
153
|
-
// contradict the memory's own lifecycle. Verify-pipeline Gate H now
|
|
154
|
-
// honours the closed state and reports `0 unpromoted` for closed records.
|
|
155
|
-
if (isClosedMemory(join(memoryDir, entry.name)))
|
|
156
|
-
continue;
|
|
157
|
-
if (parsed.promotion === null) {
|
|
158
|
-
out.push({
|
|
159
|
-
name: parsed.name,
|
|
160
|
-
path: parsed.path,
|
|
161
|
-
reason: 'no promotion marker (comment or sidecar) found — see `peaks feedback promote`'
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return out;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* v2.18.4 helper: detect a closed feedback memory by reading the raw
|
|
169
|
-
* frontmatter and checking for a non-empty `closedAt:` field. The check
|
|
170
|
-
* is intentionally narrow (top-level `closedAt:` only, not `metadata.closedAt`)
|
|
171
|
-
* because that is the documented convention — memories archived in the
|
|
172
|
-
* `[[review-memories-extract-and-memory-index]]` family all use top-level.
|
|
173
|
-
*
|
|
174
|
-
* Returns `true` when the file is unreadable or has no frontmatter (the
|
|
175
|
-
* conservative answer; such files fall through to the normal unpromoted scan).
|
|
176
|
-
*/
|
|
177
|
-
function isClosedMemory(filePath) {
|
|
178
|
-
if (!existsSync(filePath))
|
|
179
|
-
return false;
|
|
180
|
-
let raw;
|
|
181
|
-
try {
|
|
182
|
-
raw = readFileSync(filePath, 'utf8');
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
const normalized = raw.replace(/\r\n/g, '\n');
|
|
188
|
-
if (!normalized.startsWith('---\n'))
|
|
189
|
-
return false;
|
|
190
|
-
const endIndex = normalized.indexOf('\n---\n', 4);
|
|
191
|
-
if (endIndex < 0)
|
|
192
|
-
return false;
|
|
193
|
-
const frontmatter = normalized.slice(4, endIndex);
|
|
194
|
-
for (const rawLine of frontmatter.split('\n')) {
|
|
195
|
-
const line = rawLine.trim();
|
|
196
|
-
if (line.startsWith('closedAt:')) {
|
|
197
|
-
const value = line.slice('closedAt:'.length).trim();
|
|
198
|
-
if (value.length > 0 && value !== '""' && value !== "''")
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Generate the code stub for a given layer. Returns a Markdown
|
|
206
|
-
* snippet the LLM / human can paste into the appropriate file. Pure
|
|
207
|
-
* function — does NOT touch disk. The CLI command wraps this with
|
|
208
|
-
* the disk write / envelope emission.
|
|
209
|
-
*/
|
|
210
|
-
export function generatePromotionStub(opts) {
|
|
211
|
-
const { layer, feedbackName } = opts;
|
|
212
|
-
if (layer === 'A') {
|
|
213
|
-
return {
|
|
214
|
-
snippet: `# SOP entry for feedback "${feedbackName}"\n\n<!-- Append the rule + acceptance criteria below. Reference from a new peaks-sop gate. -->\n\n## Rule\n\n${opts.feedbackBody.split('\n').slice(0, 5).join('\n')}\n\n## Enforcement\n\nAdd a check to sops/<name>.md and reference from .claude/rules/.`,
|
|
215
|
-
targetFiles: [`sops/${feedbackName}.md`]
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
if (layer === 'B') {
|
|
219
|
-
return {
|
|
220
|
-
snippet: `{\n "matcher": "Bash",\n "hooks": [\n {\n "type": "command",\n "command": "node -e \\"process.exit(0)\\""\n }\n ]\n}\n<!-- Append the rule-specific matcher to .peaks/.claude-settings-template.json -->`,
|
|
221
|
-
targetFiles: ['.peaks/.claude-settings-template.json']
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
// layer === 'C'
|
|
225
|
-
return {
|
|
226
|
-
snippet: `// src/services/code/mode-gate.ts\n// 1. Add to HardFloorCategory union: '${feedbackName}-rule'\n// 2. Add to HARD_FLOOR_CATEGORIES\n// 3. Wire shouldPauseAtGate to recognise the new category\n// Tests: tests/unit/services/code/<name>-hard-floor.test.ts (≥6 cases per AC-4)`,
|
|
227
|
-
targetFiles: ['src/services/code/mode-gate.ts', `tests/unit/services/code/${feedbackName}-hard-floor.test.ts`]
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Write the promotion marker + sidecar. Also writes the envelope to
|
|
232
|
-
* `.peaks/_runtime/<sid>/rd/feedback-promote-<name>.json` for QA
|
|
233
|
-
* auditing. Returns the envelope so the CLI can emit it.
|
|
234
|
-
*
|
|
235
|
-
* The promotion marker is embedded in the memory file (so it
|
|
236
|
-
* travels with the file across git history); the sidecar is a
|
|
237
|
-
* machine-readable mirror. Both are written; either alone is
|
|
238
|
-
* enough for the scanner.
|
|
239
|
-
*/
|
|
240
|
-
export function promoteFeedback(opts) {
|
|
241
|
-
const parsed = parseFeedbackMemory(opts.feedbackPath);
|
|
242
|
-
if (parsed === null) {
|
|
243
|
-
throw new Error(`Not a feedback memory: ${opts.feedbackPath}`);
|
|
244
|
-
}
|
|
245
|
-
const stub = generatePromotionStub({
|
|
246
|
-
layer: opts.layer,
|
|
247
|
-
feedbackName: parsed.name,
|
|
248
|
-
feedbackBody: parsed.body
|
|
249
|
-
});
|
|
250
|
-
const now = new Date().toISOString();
|
|
251
|
-
const envelope = {
|
|
252
|
-
name: parsed.name,
|
|
253
|
-
feedbackPath: parsed.path,
|
|
254
|
-
layer: opts.layer,
|
|
255
|
-
layerDetail: PROMOTION_LAYER_DETAILS.find((l) => l.layer === opts.layer)?.label ?? opts.layer,
|
|
256
|
-
generatedFiles: stub.targetFiles,
|
|
257
|
-
snippet: stub.snippet,
|
|
258
|
-
promotedAt: now,
|
|
259
|
-
promotedBy: opts.promotedBy
|
|
260
|
-
};
|
|
261
|
-
if (opts.dryRun === true) {
|
|
262
|
-
return envelope;
|
|
263
|
-
}
|
|
264
|
-
// 1. Embed comment marker in the memory file.
|
|
265
|
-
const raw = readFileSync(opts.feedbackPath, 'utf8');
|
|
266
|
-
const normalized = raw.replace(/\r\n/g, '\n');
|
|
267
|
-
const endIndex = normalized.indexOf('\n---\n', 4);
|
|
268
|
-
if (endIndex >= 0) {
|
|
269
|
-
const body = normalized.slice(endIndex + '\n---\n'.length);
|
|
270
|
-
// If a marker already exists, replace it. Otherwise insert one
|
|
271
|
-
// at the top of the body.
|
|
272
|
-
const marker = `<!-- peaks-feedback-promoted: layer=${opts.layer} -->`;
|
|
273
|
-
const newBody = COMMENT_MARKER_RE.test(body)
|
|
274
|
-
? body.replace(COMMENT_MARKER_RE, marker)
|
|
275
|
-
: `${marker}\n${body}`;
|
|
276
|
-
const newContent = normalized.slice(0, endIndex + '\n---\n'.length) + newBody;
|
|
277
|
-
writeFileSync(opts.feedbackPath, newContent, 'utf8');
|
|
278
|
-
}
|
|
279
|
-
// 2. Sidecar (machine-readable mirror).
|
|
280
|
-
const sidecarPath = opts.feedbackPath.replace(/\.md$/, '.promotion.json');
|
|
281
|
-
writeFileSync(sidecarPath, JSON.stringify({
|
|
282
|
-
name: parsed.name,
|
|
283
|
-
layer: opts.layer,
|
|
284
|
-
layerDetail: envelope.layerDetail,
|
|
285
|
-
generatedFiles: stub.targetFiles,
|
|
286
|
-
promotedAt: now,
|
|
287
|
-
promotedBy: opts.promotedBy
|
|
288
|
-
}, null, 2), 'utf8');
|
|
289
|
-
// 3. Envelope to `.peaks/_runtime/<sid>/rd/`.
|
|
290
|
-
const envelopePath = join(opts.projectRoot, '.peaks', '_runtime', opts.sessionId, 'rd', `feedback-promote-${parsed.name}.json`);
|
|
291
|
-
const envelopeDir = dirname(envelopePath);
|
|
292
|
-
if (!existsSync(envelopeDir)) {
|
|
293
|
-
mkdirSync(envelopeDir, { recursive: true });
|
|
294
|
-
}
|
|
295
|
-
writeFileSync(envelopePath, JSON.stringify(envelope, null, 2), 'utf8');
|
|
296
|
-
return envelope;
|
|
297
|
-
}
|
|
298
|
-
export function isPromotionLayer(value) {
|
|
299
|
-
return value === 'A' || value === 'B' || value === 'C';
|
|
300
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare class LockTimeoutError extends Error {
|
|
2
|
-
readonly code = "LOCK_TIMEOUT";
|
|
3
|
-
readonly lockPath: string;
|
|
4
|
-
constructor(lockPath: string, attempts: number);
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Run `fn` while holding an exclusive lock on a sidecar file at
|
|
8
|
-
* `<filePath>.lock`. The lock is released in `finally` (close fd +
|
|
9
|
-
* unlink lock file). Throws LockTimeoutError after MAX_LOCK_RETRIES.
|
|
10
|
-
*/
|
|
11
|
-
export declare function withFileLockSync<T>(filePath: string, fn: () => T): T;
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-process file lock — sync, atomic, no third-party deps.
|
|
3
|
-
*
|
|
4
|
-
* Used by writeSharedEntry (shared-channel.ts) and appendHeartbeat /
|
|
5
|
-
* markCompleted (dispatch-record-writer.ts) to guard the
|
|
6
|
-
* read-modify-write sequence against lost updates from concurrent
|
|
7
|
-
* writers (slice 2026-06-23-audit-3rd finding #2 + #3).
|
|
8
|
-
*
|
|
9
|
-
* Mechanism: write a sidecar `.lock` file next to the target via
|
|
10
|
-
* `fs.openSync(path, 'wx')`. The `wx` flag maps to O_CREAT|O_EXCL on
|
|
11
|
-
* POSIX (atomic) and `CreateFileW(... CREATE_NEW)` on Windows (also
|
|
12
|
-
* atomic). The second opener fails with EEXIST. We retry with capped
|
|
13
|
-
* exponential backoff up to MAX_LOCK_RETRIES, falling through to
|
|
14
|
-
* LOCK_TIMEOUT if the lock cannot be acquired.
|
|
15
|
-
*
|
|
16
|
-
* Stale-lock reaping: a crashed previous holder leaves a `.lock` file
|
|
17
|
-
* behind. We reap locks older than LOCK_STALE_MS by unlinking before
|
|
18
|
-
* retrying. This trades a one-time stale-lock window for bounded
|
|
19
|
-
* recovery without leaking orphan locks.
|
|
20
|
-
*
|
|
21
|
-
* Why not fs.flock? Node's `fs.flock` is POSIX-only; on Windows it
|
|
22
|
-
* throws ERR_FEATURE_UNAVAILABLE_ON_PLATFORM. The `.lock` file
|
|
23
|
-
* pattern works uniformly across platforms and survives process
|
|
24
|
-
* crashes (the file remains; the next acquirer reaps it).
|
|
25
|
-
*/
|
|
26
|
-
import { closeSync, existsSync, mkdirSync, openSync, statSync, unlinkSync } from 'node:fs';
|
|
27
|
-
import { dirname, resolve } from 'node:path';
|
|
28
|
-
const MAX_LOCK_RETRIES = 100;
|
|
29
|
-
const LOCK_RETRY_BASE_MS = 5;
|
|
30
|
-
const LOCK_RETRY_MAX_MS = 50;
|
|
31
|
-
const LOCK_STALE_MS = 30_000;
|
|
32
|
-
export class LockTimeoutError extends Error {
|
|
33
|
-
code = 'LOCK_TIMEOUT';
|
|
34
|
-
lockPath;
|
|
35
|
-
constructor(lockPath, attempts) {
|
|
36
|
-
super(`LOCK_TIMEOUT: failed to acquire ${lockPath} after ${attempts} retries ` +
|
|
37
|
-
`(a prior holder may be alive or the lock is stale; it will be reaped ` +
|
|
38
|
-
`after ${LOCK_STALE_MS}ms of inactivity)`);
|
|
39
|
-
this.lockPath = lockPath;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Run `fn` while holding an exclusive lock on a sidecar file at
|
|
44
|
-
* `<filePath>.lock`. The lock is released in `finally` (close fd +
|
|
45
|
-
* unlink lock file). Throws LockTimeoutError after MAX_LOCK_RETRIES.
|
|
46
|
-
*/
|
|
47
|
-
export function withFileLockSync(filePath, fn) {
|
|
48
|
-
const target = resolve(filePath);
|
|
49
|
-
const lockPath = `${target}.lock`;
|
|
50
|
-
// Ensure the parent dir exists before openSync('wx') — first-write
|
|
51
|
-
// callers (e.g. writeSharedEntry on a fresh batch) reach the lock
|
|
52
|
-
// BEFORE writeAtomic's mkdirSync(dir, { recursive: true }) runs.
|
|
53
|
-
const dir = dirname(target);
|
|
54
|
-
if (!existsSync(dir)) {
|
|
55
|
-
mkdirSync(dir, { recursive: true });
|
|
56
|
-
}
|
|
57
|
-
let attempts = 0;
|
|
58
|
-
let fd = null;
|
|
59
|
-
while (attempts < MAX_LOCK_RETRIES) {
|
|
60
|
-
// Stale-lock reap: if the lock file is older than LOCK_STALE_MS, the
|
|
61
|
-
// previous holder must have crashed. Unlink and retry without
|
|
62
|
-
// counting this attempt against MAX_LOCK_RETRIES (only EEXIST from
|
|
63
|
-
// a non-stale holder consumes a retry).
|
|
64
|
-
if (isStaleLock(lockPath)) {
|
|
65
|
-
try {
|
|
66
|
-
unlinkSync(lockPath);
|
|
67
|
-
}
|
|
68
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
69
|
-
// race: another process reaped it; loop and try to acquire.
|
|
70
|
-
}
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
fd = openSync(lockPath, 'wx');
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
const code = err.code;
|
|
79
|
-
if (code !== 'EEXIST')
|
|
80
|
-
throw err;
|
|
81
|
-
attempts += 1;
|
|
82
|
-
// Exponential backoff capped at LOCK_RETRY_MAX_MS.
|
|
83
|
-
const wait = Math.min(LOCK_RETRY_BASE_MS * 2 ** Math.min(attempts, 6), LOCK_RETRY_MAX_MS);
|
|
84
|
-
spinSleep(wait);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (fd === null) {
|
|
88
|
-
throw new LockTimeoutError(lockPath, attempts);
|
|
89
|
-
}
|
|
90
|
-
try {
|
|
91
|
-
return fn();
|
|
92
|
-
}
|
|
93
|
-
finally {
|
|
94
|
-
try {
|
|
95
|
-
closeSync(fd);
|
|
96
|
-
}
|
|
97
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
98
|
-
// fd may already be closed by the OS on a crash; ignore.
|
|
99
|
-
}
|
|
100
|
-
try {
|
|
101
|
-
unlinkSync(lockPath);
|
|
102
|
-
}
|
|
103
|
-
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
104
|
-
// Best-effort: stale .lock is harmless; the next acquirer reaps.
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function isStaleLock(lockPath) {
|
|
109
|
-
try {
|
|
110
|
-
const s = statSync(lockPath);
|
|
111
|
-
return Date.now() - s.mtimeMs > LOCK_STALE_MS;
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Synchronous sleep via busy-wait. Bounded by MAX_LOCK_RETRIES *
|
|
119
|
-
* LOCK_RETRY_MAX_MS = 5s worst case. The alternative — async sleep —
|
|
120
|
-
* would force every lock consumer to become async, which is a much
|
|
121
|
-
* larger refactor for a slice whose lock contention is rare (concurrent
|
|
122
|
-
* `peaks sub-agent share` for the same batch).
|
|
123
|
-
*/
|
|
124
|
-
function spinSleep(ms) {
|
|
125
|
-
const end = Date.now() + ms;
|
|
126
|
-
while (Date.now() < end) {
|
|
127
|
-
/* intentional spin */
|
|
128
|
-
}
|
|
129
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { LlmRunner } from '../audit/audit-goal-service.js';
|
|
2
|
-
import type { FinalReviewOutput } from './final-review-types.js';
|
|
3
|
-
export interface PrepareFinalReviewOptions {
|
|
4
|
-
readonly projectRoot: string;
|
|
5
|
-
readonly sessionId: string;
|
|
6
|
-
readonly llmRunner: LlmRunner;
|
|
7
|
-
}
|
|
8
|
-
export declare class IncompleteFinalReviewError extends Error {
|
|
9
|
-
readonly code: "INCOMPLETE_FINAL_REVIEW";
|
|
10
|
-
constructor(message: string);
|
|
11
|
-
}
|
|
12
|
-
export declare function prepareFinalReview(rid: string, opts: PrepareFinalReviewOptions): Promise<FinalReviewOutput>;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
const REQUIRED_DIMENSIONS = [
|
|
4
|
-
'functional-completeness',
|
|
5
|
-
'problem-resolution',
|
|
6
|
-
'no-new-bugs',
|
|
7
|
-
'existing-functionality-intact'
|
|
8
|
-
];
|
|
9
|
-
const SYSTEM_PROMPT = `You are preparing a 4-dimension business review for human acceptance. Produce a JSON response with EXACTLY these fields:
|
|
10
|
-
- rid (string)
|
|
11
|
-
- generatedAt (ISO timestamp)
|
|
12
|
-
- dimensions (array of EXACTLY 4 objects, one per dimension: functional-completeness, problem-resolution, no-new-bugs, existing-functionality-intact; each with dimension, verdict (pass | fail | inconclusive), summary, evidence (list of {kind, description, [artifact], [link]}), confidence (high | medium | low))
|
|
13
|
-
- overallSummary (one paragraph)
|
|
14
|
-
- allPass (boolean)
|
|
15
|
-
- needsAttention (list of dimension names that need human attention)
|
|
16
|
-
|
|
17
|
-
Output ONLY valid JSON, no prose.`;
|
|
18
|
-
export class IncompleteFinalReviewError extends Error {
|
|
19
|
-
code = 'INCOMPLETE_FINAL_REVIEW';
|
|
20
|
-
constructor(message) {
|
|
21
|
-
super(message);
|
|
22
|
-
this.name = 'IncompleteFinalReviewError';
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export async function prepareFinalReview(rid, opts) {
|
|
26
|
-
const auditGoalPath = join(opts.projectRoot, '.peaks', '_runtime', opts.sessionId, 'audit-goal', `${rid}.json`);
|
|
27
|
-
let approvedGoal;
|
|
28
|
-
try {
|
|
29
|
-
approvedGoal = JSON.parse(readFileSync(auditGoalPath, 'utf8'));
|
|
30
|
-
}
|
|
31
|
-
catch (err) {
|
|
32
|
-
throw new Error(`Cannot read approved goal from ${auditGoalPath}: ${err.message}`);
|
|
33
|
-
}
|
|
34
|
-
const userPrompt = `Approved goal's success criteria: ${JSON.stringify(approvedGoal.successCriteria)}\n\nPrepare the 4-dim review evidence.`;
|
|
35
|
-
const response = await opts.llmRunner.call(SYSTEM_PROMPT, userPrompt, {
|
|
36
|
-
maxTokens: 3000
|
|
37
|
-
});
|
|
38
|
-
let parsed;
|
|
39
|
-
try {
|
|
40
|
-
parsed = JSON.parse(response.output);
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
throw new IncompleteFinalReviewError(`LLM output is not valid JSON: ${err.message}`);
|
|
44
|
-
}
|
|
45
|
-
const output = parsed;
|
|
46
|
-
const presentDimensions = new Set(output.dimensions.map((d) => d.dimension));
|
|
47
|
-
const missing = REQUIRED_DIMENSIONS.filter(d => !presentDimensions.has(d));
|
|
48
|
-
if (missing.length > 0) {
|
|
49
|
-
throw new IncompleteFinalReviewError(`Missing required dimensions: ${missing.join(', ')}`);
|
|
50
|
-
}
|
|
51
|
-
return output;
|
|
52
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `prepareFinalReview()` — the 4-dimension business review primitive that gates
|
|
3
|
-
* end-of-workflow human acceptance in the 10% human / 90% LLM workflow.
|
|
4
|
-
*
|
|
5
|
-
* Contract:
|
|
6
|
-
* - Reads the approved audit-goal JSON from
|
|
7
|
-
* `.peaks/_runtime/<sessionId>/audit-goal/<rid>.json`.
|
|
8
|
-
* - Calls an injected `LlmRunner` exactly once with a 4-dim review prompt.
|
|
9
|
-
* - Parses the LLM output as JSON and validates that the `dimensions`
|
|
10
|
-
* array covers ALL four required dimensions
|
|
11
|
-
* (functional-completeness, problem-resolution, no-new-bugs,
|
|
12
|
-
* existing-functionality-intact).
|
|
13
|
-
* - Throws `IncompleteFinalReviewError` if the JSON is malformed or any
|
|
14
|
-
* required dimension is missing. Callers MUST treat this as a gate
|
|
15
|
-
* failure (return to human for re-prompting) — autonomous work must
|
|
16
|
-
* never proceed on a partial review.
|
|
17
|
-
*/
|
|
18
|
-
export type DimensionKind = 'functional-completeness' | 'problem-resolution' | 'no-new-bugs' | 'existing-functionality-intact';
|
|
19
|
-
export type DimensionVerdict = 'pass' | 'fail' | 'inconclusive';
|
|
20
|
-
export type EvidenceKind = 'test-result' | 'test-coverage' | 'manual-spot-check' | 'pre-post-diff' | 'regression-suite' | 'ac-mapping';
|
|
21
|
-
export type DimensionConfidence = 'high' | 'medium' | 'low';
|
|
22
|
-
export interface EvidenceItem {
|
|
23
|
-
readonly kind: EvidenceKind;
|
|
24
|
-
readonly description: string;
|
|
25
|
-
readonly artifact?: string;
|
|
26
|
-
readonly link?: string;
|
|
27
|
-
}
|
|
28
|
-
export interface DimensionEvidence {
|
|
29
|
-
readonly dimension: DimensionKind;
|
|
30
|
-
readonly verdict: DimensionVerdict;
|
|
31
|
-
readonly summary: string;
|
|
32
|
-
readonly evidence: readonly EvidenceItem[];
|
|
33
|
-
readonly confidence: DimensionConfidence;
|
|
34
|
-
}
|
|
35
|
-
export interface FinalReviewOutput {
|
|
36
|
-
readonly rid: string;
|
|
37
|
-
readonly generatedAt: string;
|
|
38
|
-
readonly dimensions: readonly DimensionEvidence[];
|
|
39
|
-
readonly overallSummary: string;
|
|
40
|
-
readonly allPass: boolean;
|
|
41
|
-
readonly needsAttention: readonly DimensionKind[];
|
|
42
|
-
}
|