peaks-loop 4.0.0-beta → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +5 -0
- package/CHANGELOG.md +533 -87
- package/README-en.md +184 -56
- package/README.md +184 -46
- package/bin/peaks.js +1 -1
- package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
- package/dist/cli/commands/_cli-error-envelope.js +50 -0
- package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
- package/dist/cli/commands/adapter-commands-s2a.js +92 -0
- package/dist/cli/commands/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +404 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/code-commands.d.ts +80 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/core/skill-command.js +300 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +150 -0
- package/dist/cli/commands/sediment-commands.js +649 -0
- package/dist/cli/commands/session-auto-compact-hook-command.js +127 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
- package/dist/cli/commands/skill-search-commands.d.ts +25 -0
- package/dist/cli/commands/skill-search-commands.js +68 -0
- package/dist/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/workflow-commands.js +544 -0
- package/dist/cli/commands/workspace/init-command.d.ts +139 -0
- package/dist/cli/commands/workspace/init-command.js +505 -0
- package/dist/cli/program.js +408 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
- package/dist/services/audit/enforcers/code-ban.js +27 -0
- package/dist/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/services/audit/red-line-catalog.js +195 -0
- package/dist/services/audit/types.d.ts +86 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +98 -0
- package/dist/services/code/auto-compact-orchestrator.js +343 -0
- package/dist/services/code/dag-orchestrator.d.ts +128 -0
- package/dist/services/code/dag-orchestrator.js +304 -0
- package/dist/services/code/emit-handoff.d.ts +49 -0
- package/dist/services/code/emit-handoff.js +79 -0
- package/dist/services/code/job-shape-decision.d.ts +71 -0
- package/dist/services/code/job-shape-decision.js +151 -0
- package/dist/services/code/mode-gate.d.ts +163 -0
- package/dist/services/code/mode-gate.js +212 -0
- package/dist/services/code/post-compact-detector.d.ts +61 -0
- package/dist/services/code/post-compact-detector.js +240 -0
- package/dist/services/code/step-08-gate.d.ts +90 -0
- package/dist/services/code/step-08-gate.js +136 -0
- package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
- package/dist/services/code/user-touchpoint-classifier.js +145 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/services/context/auto-compact-dispatcher.js +240 -0
- package/dist/services/context/auto-compact-types.d.ts +143 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/crystallization/crystallization-service.d.ts +239 -0
- package/dist/services/crystallization/crystallization-service.js +397 -0
- package/dist/services/crystallization/crystallization-store.d.ts +75 -0
- package/dist/services/crystallization/crystallization-store.js +193 -0
- package/dist/services/crystallization/crystallization-types.d.ts +313 -0
- package/dist/services/crystallization/crystallization-types.js +299 -0
- package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
- package/dist/services/crystallization/evidence-brief-builder.js +240 -0
- package/dist/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/services/dispatch/test-tool-detection.js +46 -0
- package/dist/services/evolution/evolution-service.d.ts +137 -0
- package/dist/services/evolution/evolution-service.js +281 -0
- package/dist/services/evolution/evolution-store.d.ts +57 -0
- package/dist/services/evolution/evolution-store.js +232 -0
- package/dist/services/evolution/evolution-types.d.ts +706 -0
- package/dist/services/evolution/evolution-types.js +286 -0
- package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
- package/dist/services/evolution/independent-evaluator-runner.js +106 -0
- package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
- package/dist/services/evolution/regression-skeptic-runner.js +113 -0
- package/dist/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/services/filesystem/file-lock.js +152 -0
- package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
- package/dist/services/ide/adapters/zcode-adapter.js +220 -0
- package/dist/services/ide/current-model-detector.d.ts +14 -0
- package/dist/services/ide/current-model-detector.js +60 -0
- package/dist/services/ide/ide-registry.js +63 -0
- package/dist/services/ide/ide-types.d.ts +253 -0
- package/dist/services/job/job-progress-store.d.ts +60 -0
- package/dist/services/job/job-progress-store.js +70 -0
- package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
- package/dist/services/loop/loop-bee-relation-service.js +211 -0
- package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
- package/dist/services/loop/loop-bee-relation-store.js +130 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
- package/dist/services/loop/loop-bee-relation-types.js +114 -0
- package/dist/services/loop/loop-release-service.d.ts +46 -0
- package/dist/services/loop/loop-release-service.js +66 -0
- package/dist/services/loop/loop-release-store.d.ts +55 -0
- package/dist/services/loop/loop-release-store.js +134 -0
- package/dist/services/loop/loop-release-types.d.ts +250 -0
- package/dist/services/loop/loop-release-types.js +162 -0
- package/dist/services/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
- package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
- package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
- package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-service.js +49 -0
- package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/preferences/preferences-service.d.ts +38 -0
- package/dist/services/preferences/preferences-types.d.ts +148 -0
- package/dist/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/services/providers/minimax-worker-service.js +83 -0
- package/dist/services/rd/rd-service.js +441 -0
- package/dist/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/services/rd/standards-diagnostic.js +166 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/recommendations/capability-seed-items.js +140 -0
- package/dist/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/services/recommendations/recommendation-service.js +106 -0
- package/dist/services/refactor/refactor-service.d.ts +9 -0
- package/dist/services/runtime/runtime-detector.d.ts +15 -0
- package/dist/services/runtime/runtime-detector.js +62 -0
- package/dist/services/runtime/runtime-service.d.ts +59 -0
- package/dist/services/runtime/runtime-service.js +51 -0
- package/dist/services/runtime/vendor-adapter.d.ts +59 -0
- package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
- package/dist/services/runtime/vendors/claude-code.js +39 -0
- package/dist/services/runtime/vendors/codex.d.ts +7 -0
- package/dist/services/runtime/vendors/codex.js +43 -0
- package/dist/services/runtime/vendors/copilot.d.ts +7 -0
- package/dist/services/runtime/vendors/copilot.js +40 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/share/bundle-reader.d.ts +100 -0
- package/dist/services/share/bundle-reader.js +434 -0
- package/dist/services/share/bundle-types.d.ts +392 -0
- package/dist/services/share/bundle-types.js +318 -0
- package/dist/services/share/bundle-writer.d.ts +97 -0
- package/dist/services/share/bundle-writer.js +429 -0
- package/dist/services/share/run-state-contract.d.ts +133 -0
- package/dist/services/share/run-state-contract.js +138 -0
- package/dist/services/signal/cancel-handler.js +76 -0
- package/dist/services/skill/resume-detector.js +334 -0
- package/dist/services/skill/skill-search-service.d.ts +88 -0
- package/dist/services/skill/skill-search-service.js +228 -0
- package/dist/services/skillhub/release-import.js +64 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
- package/dist/services/standards/loop-engineering-lint.js +101 -0
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
- package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/missing-standards-detector.d.ts +81 -0
- package/dist/services/standards/missing-standards-detector.js +139 -0
- package/dist/services/standards/project-standards-service.js +693 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/1x-detector-service.js +94 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +233 -0
- package/dist/services/workspace/claude-settings-template.d.ts +101 -0
- package/dist/services/workspace/claude-settings-template.js +254 -0
- package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
- package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
- package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
- package/dist/services/workspace/templates/project-scan/index.js +60 -0
- package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
- package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
- package/dist/shared/version.d.ts +1 -0
- package/dist/shared/version.js +1 -0
- package/examples/video-demo/README.md +142 -0
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- package/output-styles/peaks-skill-swarm.md +3 -3
- package/package.json +28 -10
- package/scripts/copy-templates.mjs +64 -0
- package/scripts/install-skills.mjs +13 -10
- package/skills/bee/peaks-qa/SKILL.md +1 -1
- package/skills/bee/peaks-qa/references/artifact-per-request.md +3 -3
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +6 -6
- package/skills/bee/peaks-rd/SKILL.md +1 -1
- package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
- package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +1 -1
- package/skills/bee/peaks-rd/references/rd-runbook.md +3 -3
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +11 -11
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +3 -3
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
- package/skills/bee/peaks-sc/SKILL.md +1 -1
- package/skills/bee/peaks-txt/SKILL.md +3 -3
- package/skills/bee/peaks-ui/SKILL.md +10 -10
- package/skills/peaks-code/SKILL.md +58 -62
- package/skills/peaks-code/references/anchoring-and-session-info.md +2 -2
- package/skills/peaks-code/references/artifact-contracts.md +1 -1
- package/skills/peaks-code/references/boundaries.md +3 -3
- package/skills/peaks-code/references/codegraph-orchestration.md +1 -1
- package/skills/peaks-code/references/dag-orchestrator.md +7 -7
- package/skills/peaks-code/references/external-references.md +2 -4
- package/skills/peaks-code/references/external-skill-invocation.md +1 -1
- package/skills/peaks-code/references/fanout-mandatory.md +3 -3
- package/skills/peaks-code/references/fast-mode.md +2 -2
- package/skills/peaks-code/references/frontend-only-mode.md +9 -9
- package/skills/peaks-code/references/job-loop.md +1 -1
- package/skills/peaks-code/references/local-artifact-workspace.md +2 -2
- package/skills/peaks-code/references/micro-cycle.md +14 -14
- package/skills/peaks-code/references/mode-selection-with-stale-presence.md +5 -5
- package/skills/peaks-code/references/mode-selection.md +3 -3
- package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
- package/skills/peaks-code/references/project-scan-checklist.md +3 -1
- package/skills/peaks-code/references/quality-gate-cheatsheet.md +1 -1
- package/skills/peaks-code/references/refactor-mode.md +1 -1
- package/skills/peaks-code/references/runbook.md +18 -20
- package/skills/peaks-code/references/standards-preflight.md +1 -1
- package/skills/peaks-code/references/step-0-55-1x-detection.md +3 -2
- package/skills/peaks-code/references/step-0-8-gate.md +11 -11
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/sub-agent-dispatch.md +8 -8
- package/skills/peaks-code/references/swarm-dispatch-contract.md +18 -18
- package/skills/peaks-code/references/workflow-gates-and-types.md +6 -6
- package/skills/peaks-code/references/workflow.md +5 -5
- package/skills/peaks-content/SKILL.md +272 -0
- package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
- package/skills/peaks-resume/SKILL.md +2 -2
- package/skills/peaks-slice-decompose/SKILL.md +61 -1
- package/skills/peaks-solo/SKILL.md +197 -0
- package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
- package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
- package/skills/peaks-solo/references/triage-decision-table.md +31 -0
- package/skills/peaks-status/SKILL.md +2 -2
- package/skills/peaks-test/SKILL.md +2 -2
- package/dist/src/cli/commands/core/skill-command.js +0 -275
- package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
- package/dist/src/cli/commands/hook-handle.js +0 -157
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/loop-commands.d.ts +0 -21
- package/dist/src/cli/commands/loop-commands.js +0 -128
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/sediment-commands.js +0 -640
- package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/src/cli/commands/solo-commands.d.ts +0 -80
- package/dist/src/cli/commands/solo-commands.js +0 -798
- package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +0 -18
- package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
- package/dist/src/cli/commands/workspace/init-command.js +0 -436
- package/dist/src/cli/program.js +0 -368
- package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +0 -29
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +0 -71
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +0 -23
- package/dist/src/services/audit/enforcers/solo-code-ban.js +0 -27
- package/dist/src/services/audit/red-line-catalog.d.ts +0 -51
- package/dist/src/services/audit/red-line-catalog.js +0 -195
- package/dist/src/services/audit/types.d.ts +0 -86
- package/dist/src/services/config/model-routing.d.ts +0 -4
- package/dist/src/services/config/model-routing.js +0 -17
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +0 -37
- package/dist/src/services/context/auto-compact-dispatcher.js +0 -240
- package/dist/src/services/context/auto-compact-types.d.ts +0 -143
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
- package/dist/src/services/dispatch/test-tool-detection.d.ts +0 -36
- package/dist/src/services/dispatch/test-tool-detection.js +0 -46
- package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
- package/dist/src/services/filesystem/file-lock.js +0 -129
- package/dist/src/services/ide/ide-registry.js +0 -60
- package/dist/src/services/ide/ide-types.d.ts +0 -230
- package/dist/src/services/job/job-progress-store.d.ts +0 -60
- package/dist/src/services/job/job-progress-store.js +0 -70
- package/dist/src/services/memory/project-context-service.d.ts +0 -11
- package/dist/src/services/memory/project-context-service.js +0 -148
- package/dist/src/services/preferences/preferences-service.d.ts +0 -38
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/src/services/providers/minimax-worker-service.js +0 -83
- package/dist/src/services/rd/rd-service.js +0 -438
- package/dist/src/services/rd/standards-diagnostic.d.ts +0 -76
- package/dist/src/services/rd/standards-diagnostic.js +0 -166
- package/dist/src/services/rd/types.d.ts +0 -252
- package/dist/src/services/recommendations/capability-seed-items.js +0 -140
- package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
- package/dist/src/services/recommendations/recommendation-service.js +0 -106
- package/dist/src/services/refactor/refactor-service.d.ts +0 -9
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/signal/cancel-handler.js +0 -76
- package/dist/src/services/skill/resume-detector.js +0 -334
- package/dist/src/services/skillhub/release-import.js +0 -59
- package/dist/src/services/skillhub/release-retain.js +0 -89
- package/dist/src/services/skillhub/sqlite-store.js +0 -47
- package/dist/src/services/skillhub/types.d.ts +0 -105
- package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +0 -98
- package/dist/src/services/solo/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/solo/dag-orchestrator.d.ts +0 -128
- package/dist/src/services/solo/dag-orchestrator.js +0 -304
- package/dist/src/services/solo/emit-handoff.d.ts +0 -49
- package/dist/src/services/solo/emit-handoff.js +0 -79
- package/dist/src/services/solo/job-shape-decision.d.ts +0 -71
- package/dist/src/services/solo/job-shape-decision.js +0 -151
- package/dist/src/services/solo/mode-gate.d.ts +0 -163
- package/dist/src/services/solo/mode-gate.js +0 -212
- package/dist/src/services/solo/post-compact-detector.d.ts +0 -61
- package/dist/src/services/solo/post-compact-detector.js +0 -240
- package/dist/src/services/solo/step-08-gate.d.ts +0 -90
- package/dist/src/services/solo/step-08-gate.js +0 -136
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +0 -44
- package/dist/src/services/solo/user-touchpoint-classifier.js +0 -145
- package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
- package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
- package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
- package/dist/src/services/standards/missing-standards-detector.js +0 -132
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/upgrade/1x-detector-service.js +0 -94
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +0 -90
- package/dist/src/services/workflow/pipeline-verify-service.js +0 -449
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +0 -100
- package/dist/src/services/workflow/workflow-autonomous-service.js +0 -306
- package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
- package/dist/src/services/workflow/workflow-router-service.js +0 -227
- package/dist/src/services/workspace/claude-settings-template.d.ts +0 -101
- package/dist/src/services/workspace/claude-settings-template.js +0 -254
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/skills/peaks-code/references/openspec-workflow.md +0 -81
- /package/dist/{src/cli → cli}/cli-helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/cli-helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/agent-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/worker-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/worker-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/index.js +0 -0
- /package/dist/{src/cli → cli}/program.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
- /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
- /package/dist/{src/services → services}/agent/ecc-agent-service.d.ts +0 -0
- /package/dist/{src/services → services}/agent/ecc-agent-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.js +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
- /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
- /package/dist/{src/services → services}/audit/classifier.js +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/static-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/static-service.js +0 -0
- /package/dist/{src/services → services}/audit/types.js +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.js +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-types.js +0 -0
- /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.d.ts +0 -0
- /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.js +0 -0
- /package/dist/{src/services/solo → services/code}/status-line-renderer.d.ts +0 -0
- /package/dist/{src/services/solo → services/code}/status-line-renderer.js +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
- /package/dist/{src/services → services}/code-review/ocr-service.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ocr-service.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
- /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-migration.js +0 -0
- /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-restore.js +0 -0
- /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-rollback.js +0 -0
- /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-safety.js +0 -0
- /package/dist/{src/services → services}/config/config-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-service.js +0 -0
- /package/dist/{src/services → services}/config/config-types.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-types.js +0 -0
- /package/dist/{src/services → services}/config/provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/provider-service.js +0 -0
- /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/proxy-service.js +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
- /package/dist/{src/services → services}/context/collector.d.ts +0 -0
- /package/dist/{src/services → services}/context/collector.js +0 -0
- /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-builder.js +0 -0
- /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-guard.js +0 -0
- /package/dist/{src/services → services}/context/context-schema.js +0 -0
- /package/dist/{src/services → services}/context/dispatch-context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/dispatch-context-guard.js +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
- /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-client.js +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
- /package/dist/{src/services → services}/context/index.d.ts +0 -0
- /package/dist/{src/services → services}/context/index.js +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
- /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
- /package/dist/{src/services → services}/context/renderer.js +0 -0
- /package/dist/{src/services → services}/context/shared-channel.d.ts +0 -0
- /package/dist/{src/services → services}/context/shared-channel.js +0 -0
- /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
- /package/dist/{src/services → services}/context/threshold.js +0 -0
- /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
- /package/dist/{src/services → services}/context/tokenizer.js +0 -0
- /package/dist/{src/services → services}/context/types.d.ts +0 -0
- /package/dist/{src/services → services}/context/types.js +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.js +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.js +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.js +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
- /package/dist/{src/services → services}/doctor/doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/doctor/doctor-service.js +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
- /package/dist/{src/services → services}/filesystem/file-lock.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.js +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
- /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/index.js +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
- /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/output.js +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
- /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-types.js +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
- /package/dist/{src/services → services}/job/job-resource-snapshot.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-resource-snapshot.js +0 -0
- /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-rotation.js +0 -0
- /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-state-store.js +0 -0
- /package/dist/{src/services → services}/job/job-types.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-types.js +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
- /package/dist/{src/services → services}/log/logger.d.ts +0 -0
- /package/dist/{src/services → services}/log/logger.js +0 -0
- /package/dist/{src/services → services}/log/redact.d.ts +0 -0
- /package/dist/{src/services → services}/log/redact.js +0 -0
- /package/dist/{src/services → services}/log/retention.d.ts +0 -0
- /package/dist/{src/services → services}/log/retention.js +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
- /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
- /package/dist/{src/services → services}/loop/run-driver.js +0 -0
- /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/spec-service.js +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
- /package/dist/{src/services → services}/mut/assert-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/assert-scanner.js +0 -0
- /package/dist/{src/services → services}/mut/index.d.ts +0 -0
- /package/dist/{src/services → services}/mut/index.js +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.js +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.d.ts +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.js +0 -0
- /package/dist/{src/services → services}/mut/report-builder.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-builder.js +0 -0
- /package/dist/{src/services → services}/mut/report-loader.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-loader.js +0 -0
- /package/dist/{src/services → services}/mut/thresholds.d.ts +0 -0
- /package/dist/{src/services → services}/mut/thresholds.js +0 -0
- /package/dist/{src/services → services}/mut/types.d.ts +0 -0
- /package/dist/{src/services → services}/mut/types.js +0 -0
- /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
- /package/dist/{src/services → services}/observability/aggregation.js +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
- /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
- /package/dist/{src/services → services}/observability/observability-service.js +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.js +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
- /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-service.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-types.js +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
- /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
- /package/dist/{src/services → services}/progress/progress-service.js +0 -0
- /package/dist/{src/services → services}/providers/minimax-provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/providers/minimax-provider-service.js +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
- /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
- /package/dist/{src/services → services}/rd/impl.js +0 -0
- /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
- /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategy.js +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
- /package/dist/{src/services → services}/rd/types.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.js +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
- /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
- /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
- /package/dist/{src/services → services}/release/release-state.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
- /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
- /package/dist/{src/services → services}/role/role-registry.js +0 -0
- /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
- /package/dist/{src/services → services}/sc/index.d.ts +0 -0
- /package/dist/{src/services → services}/sc/index.js +0 -0
- /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
- /package/dist/{src/services → services}/sc/sc-service.js +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.js +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
- /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.js +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
- /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
- /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
- /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
- /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-store.js +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
- /package/dist/{src/services → services}/session/index.d.ts +0 -0
- /package/dist/{src/services → services}/session/index.js +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
- /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-manager.js +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
- /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-registry.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-registry.js +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/sync-service.js +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
- /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
- /package/dist/{src/services → services}/slice/schema-router.js +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-types.js +0 -0
- /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
- /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
- /package/dist/{src/services → services}/standards/project-context.js +0 -0
- /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.js +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
- /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.js +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.js +0 -0
- /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.js +0 -0
- /package/dist/{src/services → services}/verdict/envelopes.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/envelopes.js +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
- /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
- /package/dist/{src/shared → shared}/frontmatter.js +0 -0
- /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs-utils.js +0 -0
- /package/dist/{src/shared → shared}/fs.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs.js +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
- /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-safety.js +0 -0
- /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-utils.js +0 -0
- /package/dist/{src/shared → shared}/paths.d.ts +0 -0
- /package/dist/{src/shared → shared}/paths.js +0 -0
- /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
- /package/dist/{src/shared → shared}/planner-response.js +0 -0
- /package/dist/{src/shared → shared}/platform.d.ts +0 -0
- /package/dist/{src/shared → shared}/platform.js +0 -0
- /package/dist/{src/shared → shared}/process.d.ts +0 -0
- /package/dist/{src/shared → shared}/process.js +0 -0
- /package/dist/{src/shared → shared}/result.d.ts +0 -0
- /package/dist/{src/shared → shared}/result.js +0 -0
- /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
- /package/dist/{src/shared → shared}/stale-policy.js +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v3.1.2 — On-disk slice progress mirror.
|
|
3
|
+
*
|
|
4
|
+
* After each `peaks job checkpoint --state done`, the orchestrator writes
|
|
5
|
+
* `.peaks/_runtime/<sessionId>/job/<jid>/progress.json` so the next LLM
|
|
6
|
+
* turn (after compact or resume) can read it before any Bash call lands.
|
|
7
|
+
*
|
|
8
|
+
* Shape (schemaVersion 1):
|
|
9
|
+
* {
|
|
10
|
+
* jobId, done, total, currentSlice, lastCommitSha, updatedAt
|
|
11
|
+
* }
|
|
12
|
+
*
|
|
13
|
+
* The `peaks code gate-step-08` hook reads this file in its case-1 path
|
|
14
|
+
* (job-shape.json says isJob=true) and surfaces `Next: slice #N+1 of M
|
|
15
|
+
* (<currentSlice>)` to stdout. The LLM cannot "wake up cold" — the
|
|
16
|
+
* next-slice context is mechanically injected on every Bash call.
|
|
17
|
+
*
|
|
18
|
+
* Karpathy §2 (Simplicity First): ~50 lines, single-purpose writer +
|
|
19
|
+
* reader. Schema is zod-validated on read so a stale on-disk copy
|
|
20
|
+
* from an earlier peaks-loop release fails loud (no silent fallback).
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
23
|
+
import { join } from 'node:path';
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
export const JOB_PROGRESS_SCHEMA_VERSION = 1;
|
|
26
|
+
export const JobProgressSchema = z.object({
|
|
27
|
+
schemaVersion: z.literal(JOB_PROGRESS_SCHEMA_VERSION),
|
|
28
|
+
jobId: z.string(),
|
|
29
|
+
done: z.number().int().nonnegative(),
|
|
30
|
+
total: z.number().int().positive(),
|
|
31
|
+
currentSlice: z.string(),
|
|
32
|
+
lastCommitSha: z.string().nullable(),
|
|
33
|
+
updatedAt: z.string().datetime()
|
|
34
|
+
});
|
|
35
|
+
export function writeJobProgress(projectRoot, sessionId, input) {
|
|
36
|
+
const dir = join(projectRoot, '.peaks', '_runtime', sessionId, 'job', input.jobId);
|
|
37
|
+
mkdirSync(dir, { recursive: true });
|
|
38
|
+
const record = {
|
|
39
|
+
schemaVersion: JOB_PROGRESS_SCHEMA_VERSION,
|
|
40
|
+
jobId: input.jobId,
|
|
41
|
+
done: input.done,
|
|
42
|
+
total: input.total,
|
|
43
|
+
currentSlice: input.currentSlice,
|
|
44
|
+
lastCommitSha: input.lastCommitSha,
|
|
45
|
+
updatedAt: input.updatedAt ?? new Date().toISOString()
|
|
46
|
+
};
|
|
47
|
+
const path = join(dir, 'progress.json');
|
|
48
|
+
writeFileSync(path, JSON.stringify(record, null, 2) + '\n', 'utf8');
|
|
49
|
+
return record;
|
|
50
|
+
}
|
|
51
|
+
export function readJobProgress(projectRoot, sessionId, jobId) {
|
|
52
|
+
const path = join(projectRoot, '.peaks', '_runtime', sessionId, 'job', jobId, 'progress.json');
|
|
53
|
+
if (!existsSync(path)) {
|
|
54
|
+
throw new Error(`JobProgressStore: no progress for ${jobId} at ${path}`);
|
|
55
|
+
}
|
|
56
|
+
const raw = readFileSync(path, 'utf8');
|
|
57
|
+
return JobProgressSchema.parse(JSON.parse(raw));
|
|
58
|
+
}
|
|
59
|
+
export function tryReadJobProgress(projectRoot, sessionId, jobId) {
|
|
60
|
+
const path = join(projectRoot, '.peaks', '_runtime', sessionId, 'job', jobId, 'progress.json');
|
|
61
|
+
if (!existsSync(path))
|
|
62
|
+
return null;
|
|
63
|
+
try {
|
|
64
|
+
const raw = readFileSync(path, 'utf8');
|
|
65
|
+
return JobProgressSchema.parse(JSON.parse(raw));
|
|
66
|
+
}
|
|
67
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import { ZodError } from "zod";
|
|
3
|
+
import { type LoopBeeRelation, type LoopBeeRelationInput, type LoopBeeRelationRole } from "./loop-bee-relation-types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Domain error thrown by LoopBeeRelationService when an invariant is
|
|
6
|
+
* violated. The error code is machine-readable; the message is
|
|
7
|
+
* NL-friendly. The CLI layer (M5) maps these into user-facing prompts.
|
|
8
|
+
*/
|
|
9
|
+
export type LoopBeeRelationIntegrityErrorCode = "LOOP_RETIRED" | "DUP_RELATION" | "TWO_MAIN_BEES" | "FK_LOOP_NOT_FOUND" | "FK_BEE_NOT_FOUND";
|
|
10
|
+
export declare class LoopBeeRelationIntegrityError extends Error {
|
|
11
|
+
readonly code: LoopBeeRelationIntegrityErrorCode;
|
|
12
|
+
readonly findings: ReadonlyArray<{
|
|
13
|
+
path: string;
|
|
14
|
+
message: string;
|
|
15
|
+
}>;
|
|
16
|
+
constructor(code: LoopBeeRelationIntegrityErrorCode, message: string, findings?: ReadonlyArray<{
|
|
17
|
+
path: string;
|
|
18
|
+
message: string;
|
|
19
|
+
}>);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* LoopBeeRelationService — thin service over the loop_bee_relation
|
|
23
|
+
* store. M2 keeps the surface narrow: create / listByLoop / listByBee /
|
|
24
|
+
* updateRole / remove. Promotion, evaluation, and crystallization
|
|
25
|
+
* flows land in later slices.
|
|
26
|
+
*
|
|
27
|
+
* Integrity rules enforced here (spec §4.6 + RL-3):
|
|
28
|
+
*
|
|
29
|
+
* 1. The referenced loop_release row must exist (FK to loop_release.id).
|
|
30
|
+
* — enforced at DB level (FK constraint).
|
|
31
|
+
* — surfaced as FK_LOOP_NOT_FOUND for friendlier errors.
|
|
32
|
+
*
|
|
33
|
+
* 2. The referenced bee_release row must exist (FK to bee_release.id).
|
|
34
|
+
* — enforced at DB level (FK constraint).
|
|
35
|
+
* — surfaced as FK_BEE_NOT_FOUND for friendlier errors.
|
|
36
|
+
*
|
|
37
|
+
* 3. Cannot relate a bee to a retired loop.
|
|
38
|
+
* — enforced in service by checking loop_release.lifecycle_status.
|
|
39
|
+
* — Throws LoopBeeRelationIntegrityError(LOOP_RETIRED).
|
|
40
|
+
*
|
|
41
|
+
* 4. A loop cannot have two `main` bees.
|
|
42
|
+
* — enforced at DB level via partial unique index.
|
|
43
|
+
* — surfaced as TWO_MAIN_BEES for friendlier errors.
|
|
44
|
+
*
|
|
45
|
+
* 5. (loop_release_id, bee_release_id) must be unique per row.
|
|
46
|
+
* — enforced at DB level (UNIQUE).
|
|
47
|
+
* — surfaced as DUP_RELATION for friendlier errors.
|
|
48
|
+
*
|
|
49
|
+
* The constructor takes an open better-sqlite3 database (the existing
|
|
50
|
+
* `peaks state` boundary) so callers do not have to thread a path
|
|
51
|
+
* through this layer; this matches the LoopReleaseService pattern.
|
|
52
|
+
*
|
|
53
|
+
* All write paths re-validate the input via the Zod schema, mirroring
|
|
54
|
+
* the boundary-check discipline used elsewhere.
|
|
55
|
+
*/
|
|
56
|
+
export declare class LoopBeeRelationService {
|
|
57
|
+
private readonly db;
|
|
58
|
+
constructor(db: Database.Database);
|
|
59
|
+
/**
|
|
60
|
+
* Persist a new LoopBeeRelation row.
|
|
61
|
+
*
|
|
62
|
+
* Throws:
|
|
63
|
+
* - ZodError if the input fails schema validation.
|
|
64
|
+
* - LoopBeeRelationIntegrityError(LOOP_RETIRED) if the loop's
|
|
65
|
+
* lifecycle_status is "retired".
|
|
66
|
+
* - LoopBeeRelationIntegrityError(FK_LOOP_NOT_FOUND) if the loop
|
|
67
|
+
* row does not exist.
|
|
68
|
+
* - LoopBeeRelationIntegrityError(FK_BEE_NOT_FOUND) if the bee
|
|
69
|
+
* row does not exist.
|
|
70
|
+
* - LoopBeeRelationIntegrityError(DUP_RELATION) if a relation
|
|
71
|
+
* for the same (loop, bee) already exists.
|
|
72
|
+
* - LoopBeeRelationIntegrityError(TWO_MAIN_BEES) if a `main` row
|
|
73
|
+
* already exists for the loop.
|
|
74
|
+
*/
|
|
75
|
+
create(input: LoopBeeRelationInput): LoopBeeRelation;
|
|
76
|
+
/** Read a LoopBeeRelation row by id; returns undefined if absent. */
|
|
77
|
+
read(id: number): LoopBeeRelation | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* List relations for a given loop. Filter by `role` when supplied.
|
|
80
|
+
*/
|
|
81
|
+
listByLoop(opts: {
|
|
82
|
+
loop_release_id: string;
|
|
83
|
+
role?: LoopBeeRelationRole;
|
|
84
|
+
}): LoopBeeRelation[];
|
|
85
|
+
/**
|
|
86
|
+
* List relations for a given bee. Filter by `role` when supplied.
|
|
87
|
+
*/
|
|
88
|
+
listByBee(opts: {
|
|
89
|
+
bee_release_id: number;
|
|
90
|
+
role?: LoopBeeRelationRole;
|
|
91
|
+
}): LoopBeeRelation[];
|
|
92
|
+
/**
|
|
93
|
+
* Update the role of an existing relation. The storage-level partial
|
|
94
|
+
* unique index on `main` re-asserts "at most one main per loop" if
|
|
95
|
+
* the new role is `main`. Returns the updated row or undefined if
|
|
96
|
+
* the id is absent.
|
|
97
|
+
*/
|
|
98
|
+
updateRole(id: number, newRole: LoopBeeRelationRole): LoopBeeRelation | undefined;
|
|
99
|
+
/** Remove a relation by id. Returns true if a row was deleted. */
|
|
100
|
+
remove(id: number): boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convenience: re-export the Zod error class guard so callers can do
|
|
104
|
+
* `if (err instanceof ZodError)`. Avoids forcing every caller to import
|
|
105
|
+
* zod directly.
|
|
106
|
+
*/
|
|
107
|
+
export declare function isZodError(err: unknown): err is ZodError;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { ZodError } from "zod";
|
|
2
|
+
import { LoopBeeRelationSchema, } from "./loop-bee-relation-types.js";
|
|
3
|
+
import { ensureLoopBeeRelationTable, insertLoopBeeRelation, listLoopBeeRelationsByLoop, listLoopBeeRelationsByBee, updateLoopBeeRelationRole, removeLoopBeeRelation, getLoopBeeRelation, } from "./loop-bee-relation-store.js";
|
|
4
|
+
export class LoopBeeRelationIntegrityError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
findings;
|
|
7
|
+
constructor(code, message, findings = []) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "LoopBeeRelationIntegrityError";
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.findings = findings;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* LoopBeeRelationService — thin service over the loop_bee_relation
|
|
16
|
+
* store. M2 keeps the surface narrow: create / listByLoop / listByBee /
|
|
17
|
+
* updateRole / remove. Promotion, evaluation, and crystallization
|
|
18
|
+
* flows land in later slices.
|
|
19
|
+
*
|
|
20
|
+
* Integrity rules enforced here (spec §4.6 + RL-3):
|
|
21
|
+
*
|
|
22
|
+
* 1. The referenced loop_release row must exist (FK to loop_release.id).
|
|
23
|
+
* — enforced at DB level (FK constraint).
|
|
24
|
+
* — surfaced as FK_LOOP_NOT_FOUND for friendlier errors.
|
|
25
|
+
*
|
|
26
|
+
* 2. The referenced bee_release row must exist (FK to bee_release.id).
|
|
27
|
+
* — enforced at DB level (FK constraint).
|
|
28
|
+
* — surfaced as FK_BEE_NOT_FOUND for friendlier errors.
|
|
29
|
+
*
|
|
30
|
+
* 3. Cannot relate a bee to a retired loop.
|
|
31
|
+
* — enforced in service by checking loop_release.lifecycle_status.
|
|
32
|
+
* — Throws LoopBeeRelationIntegrityError(LOOP_RETIRED).
|
|
33
|
+
*
|
|
34
|
+
* 4. A loop cannot have two `main` bees.
|
|
35
|
+
* — enforced at DB level via partial unique index.
|
|
36
|
+
* — surfaced as TWO_MAIN_BEES for friendlier errors.
|
|
37
|
+
*
|
|
38
|
+
* 5. (loop_release_id, bee_release_id) must be unique per row.
|
|
39
|
+
* — enforced at DB level (UNIQUE).
|
|
40
|
+
* — surfaced as DUP_RELATION for friendlier errors.
|
|
41
|
+
*
|
|
42
|
+
* The constructor takes an open better-sqlite3 database (the existing
|
|
43
|
+
* `peaks state` boundary) so callers do not have to thread a path
|
|
44
|
+
* through this layer; this matches the LoopReleaseService pattern.
|
|
45
|
+
*
|
|
46
|
+
* All write paths re-validate the input via the Zod schema, mirroring
|
|
47
|
+
* the boundary-check discipline used elsewhere.
|
|
48
|
+
*/
|
|
49
|
+
export class LoopBeeRelationService {
|
|
50
|
+
db;
|
|
51
|
+
constructor(db) {
|
|
52
|
+
this.db = db;
|
|
53
|
+
// Idempotent — safe to call on every constructor invocation; the
|
|
54
|
+
// openStateDb pipeline already applied the SQL migration, but a
|
|
55
|
+
// caller-built DB (e.g. tests) needs this.
|
|
56
|
+
ensureLoopBeeRelationTable(this.db);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Persist a new LoopBeeRelation row.
|
|
60
|
+
*
|
|
61
|
+
* Throws:
|
|
62
|
+
* - ZodError if the input fails schema validation.
|
|
63
|
+
* - LoopBeeRelationIntegrityError(LOOP_RETIRED) if the loop's
|
|
64
|
+
* lifecycle_status is "retired".
|
|
65
|
+
* - LoopBeeRelationIntegrityError(FK_LOOP_NOT_FOUND) if the loop
|
|
66
|
+
* row does not exist.
|
|
67
|
+
* - LoopBeeRelationIntegrityError(FK_BEE_NOT_FOUND) if the bee
|
|
68
|
+
* row does not exist.
|
|
69
|
+
* - LoopBeeRelationIntegrityError(DUP_RELATION) if a relation
|
|
70
|
+
* for the same (loop, bee) already exists.
|
|
71
|
+
* - LoopBeeRelationIntegrityError(TWO_MAIN_BEES) if a `main` row
|
|
72
|
+
* already exists for the loop.
|
|
73
|
+
*/
|
|
74
|
+
create(input) {
|
|
75
|
+
const parsed = LoopBeeRelationSchema.omit({
|
|
76
|
+
id: true,
|
|
77
|
+
created_at: true,
|
|
78
|
+
}).parse(input);
|
|
79
|
+
// (a) Verify the loop_release row exists and is not retired.
|
|
80
|
+
const loopRow = this.db
|
|
81
|
+
.prepare("SELECT lifecycle_status FROM loop_release WHERE id = ?")
|
|
82
|
+
.get(parsed.loop_release_id);
|
|
83
|
+
if (!loopRow) {
|
|
84
|
+
throw new LoopBeeRelationIntegrityError("FK_LOOP_NOT_FOUND", `loop_release row '${parsed.loop_release_id}' does not exist`, [{ path: "loop_release_id", message: "loop_release row not found" }]);
|
|
85
|
+
}
|
|
86
|
+
if (loopRow.lifecycle_status === "retired") {
|
|
87
|
+
throw new LoopBeeRelationIntegrityError("LOOP_RETIRED", `cannot relate bee to retired loop '${parsed.loop_release_id}'`, [
|
|
88
|
+
{
|
|
89
|
+
path: "loop_release_id",
|
|
90
|
+
message: "loop_release.lifecycle_status is 'retired'; retirement severs new relations",
|
|
91
|
+
},
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
// (b) Verify the bee_release row exists.
|
|
95
|
+
const beeRow = this.db
|
|
96
|
+
.prepare("SELECT id FROM bee_release WHERE id = ?")
|
|
97
|
+
.get(parsed.bee_release_id);
|
|
98
|
+
if (!beeRow) {
|
|
99
|
+
throw new LoopBeeRelationIntegrityError("FK_BEE_NOT_FOUND", `bee_release row ${parsed.bee_release_id} does not exist`, [
|
|
100
|
+
{
|
|
101
|
+
path: "bee_release_id",
|
|
102
|
+
message: "bee_release row not found",
|
|
103
|
+
},
|
|
104
|
+
]);
|
|
105
|
+
}
|
|
106
|
+
// (c) Insert; the storage-layer partial unique index will raise
|
|
107
|
+
// SQLITE_CONSTRAINT if (a) another `main` row exists for this
|
|
108
|
+
// loop, or (b) the same (loop, bee) pair already exists. Map those
|
|
109
|
+
// to friendly error codes.
|
|
110
|
+
try {
|
|
111
|
+
return insertLoopBeeRelation(this.db, parsed);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
const code = typeof err === "object" && err !== null && "code" in err
|
|
115
|
+
? err.code
|
|
116
|
+
: undefined;
|
|
117
|
+
// Partial unique index on (loop_release_id) WHERE role='main'.
|
|
118
|
+
// better-sqlite3 surfaces this as SQLITE_CONSTRAINT_UNIQUE with
|
|
119
|
+
// a message naming only `loop_bee_relation.loop_release_id`
|
|
120
|
+
// (the column the partial index covers), NOT the index name.
|
|
121
|
+
// It is distinguished from the (loop_release_id, bee_release_id)
|
|
122
|
+
// composite UNIQUE violation by the absence of bee_release_id
|
|
123
|
+
// in the message.
|
|
124
|
+
if (code === "SQLITE_CONSTRAINT_UNIQUE") {
|
|
125
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
126
|
+
if (msg.includes("loop_bee_relation.bee_release_id")) {
|
|
127
|
+
// Composite UNIQUE(loop_release_id, bee_release_id).
|
|
128
|
+
throw new LoopBeeRelationIntegrityError("DUP_RELATION", `relation between loop '${parsed.loop_release_id}' and bee ${parsed.bee_release_id} already exists`, [
|
|
129
|
+
{
|
|
130
|
+
path: "loop_release_id,bee_release_id",
|
|
131
|
+
message: "duplicate relation",
|
|
132
|
+
},
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
// Otherwise: partial unique index on (loop_release_id) WHERE role='main'.
|
|
136
|
+
throw new LoopBeeRelationIntegrityError("TWO_MAIN_BEES", `loop '${parsed.loop_release_id}' already has a main bee`, [
|
|
137
|
+
{
|
|
138
|
+
path: "role",
|
|
139
|
+
message: "at most one main bee per loop; promote / retire the existing main first",
|
|
140
|
+
},
|
|
141
|
+
]);
|
|
142
|
+
}
|
|
143
|
+
// FK violations from better-sqlite3 (foreign_keys = ON).
|
|
144
|
+
if (code === "SQLITE_CONSTRAINT_FOREIGNKEY") {
|
|
145
|
+
// Distinguish by re-checking which row is missing; the friendly
|
|
146
|
+
// pre-check above should have caught these, but defense in depth.
|
|
147
|
+
const loopStill = this.db
|
|
148
|
+
.prepare("SELECT 1 FROM loop_release WHERE id = ?")
|
|
149
|
+
.get(parsed.loop_release_id);
|
|
150
|
+
if (!loopStill) {
|
|
151
|
+
throw new LoopBeeRelationIntegrityError("FK_LOOP_NOT_FOUND", `loop_release row '${parsed.loop_release_id}' does not exist`, [{ path: "loop_release_id", message: "FK violation" }]);
|
|
152
|
+
}
|
|
153
|
+
throw new LoopBeeRelationIntegrityError("FK_BEE_NOT_FOUND", `bee_release row ${parsed.bee_release_id} does not exist`, [{ path: "bee_release_id", message: "FK violation" }]);
|
|
154
|
+
}
|
|
155
|
+
// Re-throw unexpected errors unchanged.
|
|
156
|
+
throw err;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/** Read a LoopBeeRelation row by id; returns undefined if absent. */
|
|
160
|
+
read(id) {
|
|
161
|
+
return getLoopBeeRelation(this.db, id);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* List relations for a given loop. Filter by `role` when supplied.
|
|
165
|
+
*/
|
|
166
|
+
listByLoop(opts) {
|
|
167
|
+
return listLoopBeeRelationsByLoop(this.db, opts.loop_release_id, opts.role);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* List relations for a given bee. Filter by `role` when supplied.
|
|
171
|
+
*/
|
|
172
|
+
listByBee(opts) {
|
|
173
|
+
return listLoopBeeRelationsByBee(this.db, opts.bee_release_id, opts.role);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Update the role of an existing relation. The storage-level partial
|
|
177
|
+
* unique index on `main` re-asserts "at most one main per loop" if
|
|
178
|
+
* the new role is `main`. Returns the updated row or undefined if
|
|
179
|
+
* the id is absent.
|
|
180
|
+
*/
|
|
181
|
+
updateRole(id, newRole) {
|
|
182
|
+
// The TS type already enforces the four-value union. Try update;
|
|
183
|
+
// if partial unique index trips, raise friendly error.
|
|
184
|
+
try {
|
|
185
|
+
return updateLoopBeeRelationRole(this.db, id, newRole);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
const code = typeof err === "object" && err !== null && "code" in err
|
|
189
|
+
? err.code
|
|
190
|
+
: undefined;
|
|
191
|
+
if (code === "SQLITE_CONSTRAINT_UNIQUE") {
|
|
192
|
+
const existing = getLoopBeeRelation(this.db, id);
|
|
193
|
+
const loopId = existing?.loop_release_id ?? "<unknown>";
|
|
194
|
+
throw new LoopBeeRelationIntegrityError("TWO_MAIN_BEES", `loop '${loopId}' already has a main bee`, [{ path: "role", message: "at most one main bee per loop" }]);
|
|
195
|
+
}
|
|
196
|
+
throw err;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/** Remove a relation by id. Returns true if a row was deleted. */
|
|
200
|
+
remove(id) {
|
|
201
|
+
return removeLoopBeeRelation(this.db, id);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Convenience: re-export the Zod error class guard so callers can do
|
|
206
|
+
* `if (err instanceof ZodError)`. Avoids forcing every caller to import
|
|
207
|
+
* zod directly.
|
|
208
|
+
*/
|
|
209
|
+
export function isZodError(err) {
|
|
210
|
+
return err instanceof ZodError;
|
|
211
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type Database from "better-sqlite3";
|
|
2
|
+
import type { LoopBeeRelation, LoopBeeRelationRole } from "./loop-bee-relation-types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Low-level SQLite access for the `loop_bee_relation` table. The
|
|
5
|
+
* migration is registered with the existing `openStateDb()` pipeline
|
|
6
|
+
* via `src/services/skillhub/migrations/003-loop-bee-relation.sql`
|
|
7
|
+
* (it applies every `*.sql` file in lexicographic order). The function
|
|
8
|
+
* `ensureLoopBeeRelationTable` below is a belt-and-suspenders re-applier
|
|
9
|
+
* for callers that pass a database they built themselves (e.g. tests).
|
|
10
|
+
*
|
|
11
|
+
* Defense in depth:
|
|
12
|
+
* - FK constraints enforce loop_release and bee_release referential
|
|
13
|
+
* integrity (better-sqlite3 + foreign_keys = ON).
|
|
14
|
+
* - Partial unique index `WHERE role = 'main'` enforces "at most one
|
|
15
|
+
* main bee per loop" at the storage layer (the service layer adds
|
|
16
|
+
* a friendlier error path on top).
|
|
17
|
+
* - UNIQUE (loop_release_id, bee_release_id) prevents accidental
|
|
18
|
+
* duplicate relations between the same loop and same bee release.
|
|
19
|
+
* - The migration does NOT touch any 4.x `bee_release` column (AC-3).
|
|
20
|
+
* - Lifecycle_status check on loop_release is NOT a DB-level constraint
|
|
21
|
+
* (the retirement rule is enforced in the service layer — see
|
|
22
|
+
* `LoopBeeRelationService.create`) so the DB stays decoupled from
|
|
23
|
+
* cross-table policies that need richer error reporting.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Re-apply the loop_bee_relation table migration against an already-open
|
|
27
|
+
* database. Used by tests that build their own DB without the
|
|
28
|
+
* openStateDb pipeline. Idempotent.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ensureLoopBeeRelationTable(db: Database.Database): void;
|
|
31
|
+
/**
|
|
32
|
+
* Insert a LoopBeeRelation row. The row's `schema_version` is taken from
|
|
33
|
+
* the input (must equal `peaks.loop-bee-relation/1`); `id` and
|
|
34
|
+
* `created_at` are stamped here, so callers cannot backdate a row.
|
|
35
|
+
*
|
|
36
|
+
* Idempotent in the UNIQUE sense — re-inserting the same
|
|
37
|
+
* (loop_release_id, bee_release_id) pair throws a UNIQUE-constraint
|
|
38
|
+
* error; inserting two `main` rows for the same loop throws a partial
|
|
39
|
+
* unique index error.
|
|
40
|
+
*
|
|
41
|
+
* Returns the persisted row (with `id` filled in).
|
|
42
|
+
*/
|
|
43
|
+
export declare function insertLoopBeeRelation(db: Database.Database, row: Omit<LoopBeeRelation, "id" | "created_at">): LoopBeeRelation;
|
|
44
|
+
/** Read a single LoopBeeRelation row by id; returns undefined if absent. */
|
|
45
|
+
export declare function getLoopBeeRelation(db: Database.Database, id: number): LoopBeeRelation | undefined;
|
|
46
|
+
/** List LoopBeeRelation rows for a given loop_release_id (optionally filtered by role). */
|
|
47
|
+
export declare function listLoopBeeRelationsByLoop(db: Database.Database, loop_release_id: string, role?: LoopBeeRelationRole): LoopBeeRelation[];
|
|
48
|
+
/** List LoopBeeRelation rows for a given bee_release_id (optionally filtered by role). */
|
|
49
|
+
export declare function listLoopBeeRelationsByBee(db: Database.Database, bee_release_id: number, role?: LoopBeeRelationRole): LoopBeeRelation[];
|
|
50
|
+
/** Update the role of an existing relation. Returns the new row, or undefined if absent. */
|
|
51
|
+
export declare function updateLoopBeeRelationRole(db: Database.Database, id: number, newRole: LoopBeeRelationRole): LoopBeeRelation | undefined;
|
|
52
|
+
/** Remove a LoopBeeRelation row by id. Returns true if a row was deleted. */
|
|
53
|
+
export declare function removeLoopBeeRelation(db: Database.Database, id: number): boolean;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level SQLite access for the `loop_bee_relation` table. The
|
|
3
|
+
* migration is registered with the existing `openStateDb()` pipeline
|
|
4
|
+
* via `src/services/skillhub/migrations/003-loop-bee-relation.sql`
|
|
5
|
+
* (it applies every `*.sql` file in lexicographic order). The function
|
|
6
|
+
* `ensureLoopBeeRelationTable` below is a belt-and-suspenders re-applier
|
|
7
|
+
* for callers that pass a database they built themselves (e.g. tests).
|
|
8
|
+
*
|
|
9
|
+
* Defense in depth:
|
|
10
|
+
* - FK constraints enforce loop_release and bee_release referential
|
|
11
|
+
* integrity (better-sqlite3 + foreign_keys = ON).
|
|
12
|
+
* - Partial unique index `WHERE role = 'main'` enforces "at most one
|
|
13
|
+
* main bee per loop" at the storage layer (the service layer adds
|
|
14
|
+
* a friendlier error path on top).
|
|
15
|
+
* - UNIQUE (loop_release_id, bee_release_id) prevents accidental
|
|
16
|
+
* duplicate relations between the same loop and same bee release.
|
|
17
|
+
* - The migration does NOT touch any 4.x `bee_release` column (AC-3).
|
|
18
|
+
* - Lifecycle_status check on loop_release is NOT a DB-level constraint
|
|
19
|
+
* (the retirement rule is enforced in the service layer — see
|
|
20
|
+
* `LoopBeeRelationService.create`) so the DB stays decoupled from
|
|
21
|
+
* cross-table policies that need richer error reporting.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Re-apply the loop_bee_relation table migration against an already-open
|
|
25
|
+
* database. Used by tests that build their own DB without the
|
|
26
|
+
* openStateDb pipeline. Idempotent.
|
|
27
|
+
*/
|
|
28
|
+
export function ensureLoopBeeRelationTable(db) {
|
|
29
|
+
db.exec(`
|
|
30
|
+
CREATE TABLE IF NOT EXISTS loop_bee_relation (
|
|
31
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
32
|
+
loop_release_id TEXT NOT NULL REFERENCES loop_release(id) ON DELETE CASCADE,
|
|
33
|
+
bee_release_id INTEGER NOT NULL REFERENCES bee_release(id) ON DELETE CASCADE,
|
|
34
|
+
role TEXT NOT NULL CHECK (role IN ('main','supporting','candidate','retired')),
|
|
35
|
+
reason TEXT NOT NULL,
|
|
36
|
+
schema_version TEXT NOT NULL CHECK (schema_version = 'peaks.loop-bee-relation/1'),
|
|
37
|
+
created_at TEXT NOT NULL,
|
|
38
|
+
UNIQUE(loop_release_id, bee_release_id)
|
|
39
|
+
);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_loop_id ON loop_bee_relation(loop_release_id);
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_bee_id ON loop_bee_relation(bee_release_id);
|
|
42
|
+
CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_loop_role ON loop_bee_relation(loop_release_id, role);
|
|
43
|
+
-- Partial unique index: at most one main bee per loop. SQLite supports
|
|
44
|
+
-- partial indexes; this is the storage-level enforcement of the
|
|
45
|
+
-- "exactly one main" invariant. Multiple supporting / candidate /
|
|
46
|
+
-- retired rows per loop remain allowed.
|
|
47
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_loop_bee_relation_one_main_per_loop
|
|
48
|
+
ON loop_bee_relation(loop_release_id) WHERE role = 'main';
|
|
49
|
+
`);
|
|
50
|
+
}
|
|
51
|
+
function rowToLoopBeeRelation(row) {
|
|
52
|
+
return {
|
|
53
|
+
id: row.id,
|
|
54
|
+
loop_release_id: row.loop_release_id,
|
|
55
|
+
bee_release_id: row.bee_release_id,
|
|
56
|
+
role: row.role,
|
|
57
|
+
reason: row.reason,
|
|
58
|
+
schema_version: row.schema_version,
|
|
59
|
+
created_at: row.created_at,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Insert a LoopBeeRelation row. The row's `schema_version` is taken from
|
|
64
|
+
* the input (must equal `peaks.loop-bee-relation/1`); `id` and
|
|
65
|
+
* `created_at` are stamped here, so callers cannot backdate a row.
|
|
66
|
+
*
|
|
67
|
+
* Idempotent in the UNIQUE sense — re-inserting the same
|
|
68
|
+
* (loop_release_id, bee_release_id) pair throws a UNIQUE-constraint
|
|
69
|
+
* error; inserting two `main` rows for the same loop throws a partial
|
|
70
|
+
* unique index error.
|
|
71
|
+
*
|
|
72
|
+
* Returns the persisted row (with `id` filled in).
|
|
73
|
+
*/
|
|
74
|
+
export function insertLoopBeeRelation(db, row) {
|
|
75
|
+
const createdAt = new Date().toISOString();
|
|
76
|
+
const stmt = db.prepare(`INSERT INTO loop_bee_relation (
|
|
77
|
+
loop_release_id, bee_release_id, role, reason, schema_version, created_at
|
|
78
|
+
) VALUES (?, ?, ?, ?, ?, ?)`);
|
|
79
|
+
const info = stmt.run(row.loop_release_id, row.bee_release_id, row.role, row.reason, row.schema_version, createdAt);
|
|
80
|
+
return {
|
|
81
|
+
id: Number(info.lastInsertRowid),
|
|
82
|
+
loop_release_id: row.loop_release_id,
|
|
83
|
+
bee_release_id: row.bee_release_id,
|
|
84
|
+
role: row.role,
|
|
85
|
+
reason: row.reason,
|
|
86
|
+
schema_version: row.schema_version,
|
|
87
|
+
created_at: createdAt,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** Read a single LoopBeeRelation row by id; returns undefined if absent. */
|
|
91
|
+
export function getLoopBeeRelation(db, id) {
|
|
92
|
+
const row = db
|
|
93
|
+
.prepare("SELECT * FROM loop_bee_relation WHERE id = ?")
|
|
94
|
+
.get(id);
|
|
95
|
+
if (!row)
|
|
96
|
+
return undefined;
|
|
97
|
+
return rowToLoopBeeRelation(row);
|
|
98
|
+
}
|
|
99
|
+
/** List LoopBeeRelation rows for a given loop_release_id (optionally filtered by role). */
|
|
100
|
+
export function listLoopBeeRelationsByLoop(db, loop_release_id, role) {
|
|
101
|
+
const sql = role === undefined
|
|
102
|
+
? "SELECT * FROM loop_bee_relation WHERE loop_release_id = ? ORDER BY id ASC"
|
|
103
|
+
: "SELECT * FROM loop_bee_relation WHERE loop_release_id = ? AND role = ? ORDER BY id ASC";
|
|
104
|
+
const params = role === undefined ? [loop_release_id] : [loop_release_id, role];
|
|
105
|
+
const rows = db.prepare(sql).all(...params);
|
|
106
|
+
return rows.map(rowToLoopBeeRelation);
|
|
107
|
+
}
|
|
108
|
+
/** List LoopBeeRelation rows for a given bee_release_id (optionally filtered by role). */
|
|
109
|
+
export function listLoopBeeRelationsByBee(db, bee_release_id, role) {
|
|
110
|
+
const sql = role === undefined
|
|
111
|
+
? "SELECT * FROM loop_bee_relation WHERE bee_release_id = ? ORDER BY id ASC"
|
|
112
|
+
: "SELECT * FROM loop_bee_relation WHERE bee_release_id = ? AND role = ? ORDER BY id ASC";
|
|
113
|
+
const params = role === undefined ? [bee_release_id] : [bee_release_id, role];
|
|
114
|
+
const rows = db.prepare(sql).all(...params);
|
|
115
|
+
return rows.map(rowToLoopBeeRelation);
|
|
116
|
+
}
|
|
117
|
+
/** Update the role of an existing relation. Returns the new row, or undefined if absent. */
|
|
118
|
+
export function updateLoopBeeRelationRole(db, id, newRole) {
|
|
119
|
+
const stmt = db.prepare("UPDATE loop_bee_relation SET role = ? WHERE id = ?");
|
|
120
|
+
const info = stmt.run(newRole, id);
|
|
121
|
+
if (info.changes === 0)
|
|
122
|
+
return undefined;
|
|
123
|
+
return getLoopBeeRelation(db, id);
|
|
124
|
+
}
|
|
125
|
+
/** Remove a LoopBeeRelation row by id. Returns true if a row was deleted. */
|
|
126
|
+
export function removeLoopBeeRelation(db, id) {
|
|
127
|
+
const stmt = db.prepare("DELETE FROM loop_bee_relation WHERE id = ?");
|
|
128
|
+
const info = stmt.run(id);
|
|
129
|
+
return info.changes > 0;
|
|
130
|
+
}
|