peaks-loop 4.0.54 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README-en.md +16 -1
- package/README.md +15 -1
- package/config/eslint/.peaks-rules.cjs +158 -13
- package/config/eslint/tsconfig.lint.json +47 -0
- package/dist/cli/cli-envelope.d.ts +114 -0
- package/dist/cli/cli-envelope.js +85 -0
- package/dist/cli/cli-helpers.d.ts +1 -1
- package/dist/cli/cli-helpers.js +8 -4
- package/dist/cli/commands/_cli-error-envelope.js +1 -1
- package/dist/cli/commands/_register.js +85 -38
- package/dist/cli/commands/_super.js +40 -7
- package/dist/cli/commands/adapter-commands-s2a.js +8 -7
- package/dist/cli/commands/adapter-commands.d.ts +2 -2
- package/dist/cli/commands/adapter-commands.js +7 -8
- package/dist/cli/commands/api-diff-commands.js +5 -4
- package/dist/cli/commands/asset-commands.d.ts +2 -2
- package/dist/cli/commands/asset-commands.js +135 -132
- package/dist/cli/commands/audit-commands.d.ts +1 -1
- package/dist/cli/commands/audit-commands.js +75 -32
- package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
- package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
- package/dist/cli/commands/baseline-commands.js +34 -9
- package/dist/cli/commands/bee-commands.d.ts +1 -1
- package/dist/cli/commands/bee-commands.js +18 -21
- package/dist/cli/commands/best-practice-scan-command.js +6 -34
- package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
- package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
- package/dist/cli/commands/capability-commands.d.ts +1 -1
- package/dist/cli/commands/capability-commands.js +14 -4
- package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
- package/dist/cli/commands/changeset-commands.js +21 -18
- package/dist/cli/commands/code-gate-command.js +9 -2
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
- package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
- package/dist/cli/commands/code-job-shape-commands.js +21 -45
- package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
- package/dist/cli/commands/code-mode-gate-commands.js +19 -199
- package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
- package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
- package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
- package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
- package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
- package/dist/cli/commands/code-review-commands.js +18 -3
- package/dist/cli/commands/code-run-command.js +44 -7
- package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
- package/dist/cli/commands/code-runtime-commands.js +105 -73
- package/dist/cli/commands/codegraph-commands.js +11 -6
- package/dist/cli/commands/codegraph-status-command.js +6 -2
- package/dist/cli/commands/compact-command.js +52 -26
- package/dist/cli/commands/complexity-commands.js +6 -7
- package/dist/cli/commands/config-commands.d.ts +1 -1
- package/dist/cli/commands/config-commands.js +33 -9
- package/dist/cli/commands/container-commands.js +39 -15
- package/dist/cli/commands/context-commands.d.ts +1 -1
- package/dist/cli/commands/context-commands.js +40 -13
- package/dist/cli/commands/core/artifacts-command.js +11 -3
- package/dist/cli/commands/core/binding-commands.js +9 -6
- package/dist/cli/commands/core/doctor-command.js +7 -4
- package/dist/cli/commands/core/memory-command.js +47 -21
- package/dist/cli/commands/core/proxy-command.js +3 -1
- package/dist/cli/commands/core/session-command.js +16 -8
- package/dist/cli/commands/core/skill-command.js +31 -16
- package/dist/cli/commands/core/standards-command.js +55 -13
- package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
- package/dist/cli/commands/cron-commands-actions.js +128 -0
- package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
- package/dist/cli/commands/cron-commands-schedule.js +151 -0
- package/dist/cli/commands/cron-commands.d.ts +35 -32
- package/dist/cli/commands/cron-commands.js +167 -211
- package/dist/cli/commands/cron-scheduler-commands.js +40 -20
- package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
- package/dist/cli/commands/cron-scheduler-persist.js +171 -0
- package/dist/cli/commands/dashboard-long-run.js +45 -14
- package/dist/cli/commands/dashboard-summary.js +15 -5
- package/dist/cli/commands/dispatch-commands.js +65 -32
- package/dist/cli/commands/dispatch-from-dag.js +9 -10
- package/dist/cli/commands/doc-commands.js +8 -9
- package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
- package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
- package/dist/cli/commands/e2e-verify-env.js +19 -0
- package/dist/cli/commands/e2e-verify.d.ts +3 -14
- package/dist/cli/commands/e2e-verify.js +49 -29
- package/dist/cli/commands/ecc-commands.d.ts +1 -1
- package/dist/cli/commands/ecc-commands.js +8 -17
- package/dist/cli/commands/evidence-commands.js +10 -6
- package/dist/cli/commands/evolution-commands.d.ts +2 -2
- package/dist/cli/commands/evolution-commands.js +109 -115
- package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
- package/dist/cli/commands/feedback-commands-helpers.js +33 -0
- package/dist/cli/commands/feedback-commands.js +15 -38
- package/dist/cli/commands/final-review-commands.d.ts +1 -1
- package/dist/cli/commands/final-review-commands.js +24 -22
- package/dist/cli/commands/fixture-commands.d.ts +1 -1
- package/dist/cli/commands/fixture-commands.js +17 -6
- package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
- package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
- package/dist/cli/commands/fork-commands.js +19 -51
- package/dist/cli/commands/fresh-context-commands.js +3 -1
- package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
- package/dist/cli/commands/gate-commands-enforce.js +210 -0
- package/dist/cli/commands/gate-commands.d.ts +1 -1
- package/dist/cli/commands/gate-commands.js +85 -205
- package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
- package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
- package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
- package/dist/cli/commands/heartbeat-commands-action.js +192 -0
- package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
- package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
- package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
- package/dist/cli/commands/heartbeat-commands.js +19 -198
- package/dist/cli/commands/hook-handle.d.ts +1 -1
- package/dist/cli/commands/hook-handle.js +46 -13
- package/dist/cli/commands/hooks-commands.d.ts +1 -1
- package/dist/cli/commands/hooks-commands.js +18 -6
- package/dist/cli/commands/ide-commands.d.ts +1 -1
- package/dist/cli/commands/ide-commands.js +5 -3
- package/dist/cli/commands/impact-commands.js +8 -2
- package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
- package/dist/cli/commands/job-add-slice-command.js +151 -0
- package/dist/cli/commands/job-commands.d.ts +64 -0
- package/dist/cli/commands/job-commands.js +134 -63
- package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
- package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
- package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
- package/dist/cli/commands/lease-metrics-commands.js +21 -61
- package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
- package/dist/cli/commands/lease-stats-commands.js +9 -6
- package/dist/cli/commands/lint-commands.d.ts +9 -3
- package/dist/cli/commands/lint-commands.js +15 -8
- package/dist/cli/commands/log-commands.d.ts +1 -1
- package/dist/cli/commands/log-commands.js +8 -6
- package/dist/cli/commands/loop-commands.d.ts +1 -1
- package/dist/cli/commands/loop-commands.js +50 -50
- package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
- package/dist/cli/commands/loop-eval-commands.js +101 -30
- package/dist/cli/commands/memory-commands.js +21 -13
- package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
- package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
- package/dist/cli/commands/mut-commands-helpers.js +43 -0
- package/dist/cli/commands/mut-commands.js +16 -58
- package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
- package/dist/cli/commands/observability-commands-queries.js +113 -0
- package/dist/cli/commands/observability-commands.d.ts +1 -1
- package/dist/cli/commands/observability-commands.js +7 -92
- package/dist/cli/commands/openspec-commands.d.ts +1 -1
- package/dist/cli/commands/openspec-commands.js +20 -8
- package/dist/cli/commands/outer-cache-commands.js +18 -7
- package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
- package/dist/cli/commands/perf-audit-commands.js +12 -7
- package/dist/cli/commands/perf-commands.d.ts +1 -1
- package/dist/cli/commands/perf-commands.js +5 -5
- package/dist/cli/commands/playwright-commands.d.ts +1 -1
- package/dist/cli/commands/playwright-commands.js +20 -8
- package/dist/cli/commands/polyrepo-commands.js +21 -19
- package/dist/cli/commands/prd-blocks-commands.js +1 -3
- package/dist/cli/commands/prd-commands.d.ts +1 -1
- package/dist/cli/commands/prd-commands.js +8 -4
- package/dist/cli/commands/preferences-commands.js +13 -12
- package/dist/cli/commands/primer-command.js +5 -5
- package/dist/cli/commands/project-commands.d.ts +1 -1
- package/dist/cli/commands/project-commands.js +33 -9
- package/dist/cli/commands/qa-business-review-commands.js +16 -12
- package/dist/cli/commands/qa-commands.d.ts +1 -1
- package/dist/cli/commands/qa-commands.js +3 -5
- package/dist/cli/commands/release-commands.d.ts +3 -1
- package/dist/cli/commands/release-commands.js +33 -22
- package/dist/cli/commands/request-commands.js +47 -30
- package/dist/cli/commands/request-format-helpers.js +1 -1
- package/dist/cli/commands/retrospective-commands.d.ts +18 -11
- package/dist/cli/commands/retrospective-commands.js +24 -173
- package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
- package/dist/cli/commands/retrospective-index-command.js +99 -0
- package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
- package/dist/cli/commands/retrospective-project-root.js +15 -0
- package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
- package/dist/cli/commands/retrospective-search-command.js +97 -0
- package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
- package/dist/cli/commands/retrospective-show-command.js +80 -0
- package/dist/cli/commands/reviewer-commands.d.ts +1 -1
- package/dist/cli/commands/role-commands.js +14 -9
- package/dist/cli/commands/runtime-commands.js +14 -7
- package/dist/cli/commands/sc-commands.d.ts +1 -1
- package/dist/cli/commands/sc-commands.js +39 -6
- package/dist/cli/commands/scan-commands.js +36 -13
- package/dist/cli/commands/security-audit-commands.d.ts +1 -1
- package/dist/cli/commands/security-audit-commands.js +12 -7
- package/dist/cli/commands/sediment-commands.d.ts +2 -2
- package/dist/cli/commands/sediment-commands.js +146 -139
- package/dist/cli/commands/session-24h-mode.js +15 -2
- package/dist/cli/commands/session-checkpoint-command.js +1 -1
- package/dist/cli/commands/session-migrate-skill-name.js +1 -1
- package/dist/cli/commands/shadcn-commands.d.ts +1 -1
- package/dist/cli/commands/shadcn-commands.js +3 -1
- package/dist/cli/commands/share-commands.js +38 -39
- package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
- package/dist/cli/commands/skill-conformance-commands.js +1 -1
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
- package/dist/cli/commands/skill-visibility.js +2 -2
- package/dist/cli/commands/slice-commands.d.ts +1 -1
- package/dist/cli/commands/slice-commands.js +36 -12
- package/dist/cli/commands/slice-integrate-commands.js +6 -7
- package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
- package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
- package/dist/cli/commands/slice-review-commands.js +16 -24
- package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
- package/dist/cli/commands/smoke-commands-add-path.js +39 -0
- package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-define.js +97 -0
- package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
- package/dist/cli/commands/smoke-commands-run.js +119 -0
- package/dist/cli/commands/smoke-commands.d.ts +10 -1
- package/dist/cli/commands/smoke-commands.js +17 -179
- package/dist/cli/commands/sop-commands.d.ts +1 -1
- package/dist/cli/commands/sop-commands.js +38 -10
- package/dist/cli/commands/statusline-commands.d.ts +1 -1
- package/dist/cli/commands/statusline-commands.js +21 -10
- package/dist/cli/commands/sub-agent/detached.js +3 -3
- package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
- package/dist/cli/commands/sub-agent-shared.js +1 -1
- package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
- package/dist/cli/commands/swarm-commands.d.ts +1 -1
- package/dist/cli/commands/swarm-commands.js +13 -6
- package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
- package/dist/cli/commands/tech-commands-helpers.js +24 -0
- package/dist/cli/commands/tech-commands.d.ts +2 -29
- package/dist/cli/commands/tech-commands.js +15 -28
- package/dist/cli/commands/test-commands.js +27 -7
- package/dist/cli/commands/upgrade-commands.d.ts +1 -1
- package/dist/cli/commands/user-touchpoint-commands.js +1 -3
- package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
- package/dist/cli/commands/verdict-aggregate-command.js +20 -7
- package/dist/cli/commands/vm-commands.js +48 -19
- package/dist/cli/commands/wave-plan-commands.js +5 -2
- package/dist/cli/commands/web-commands.js +14 -4
- package/dist/cli/commands/web-lifecycle-commands.js +5 -3
- package/dist/cli/commands/workflow-commands.d.ts +1 -1
- package/dist/cli/commands/workflow-commands.js +64 -29
- package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
- package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
- package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
- package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
- package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
- package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
- package/dist/cli/commands/workflow-plan-commands.js +15 -141
- package/dist/cli/commands/workspace/clean-command.js +4 -1
- package/dist/cli/commands/workspace/helpers.js +2 -1
- package/dist/cli/commands/workspace/init-command.js +80 -20
- package/dist/cli/commands/workspace/reconcile-command.js +3 -1
- package/dist/cli/commands/workspace-commands.d.ts +1 -1
- package/dist/cli/commands/workspace-commands.js +1 -1
- package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-auth-commands.js +16 -169
- package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
- package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
- package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
- package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
- package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
- package/dist/cli/commands/worktree-lease-commands.js +65 -37
- package/dist/cli/index.js +6 -2
- package/dist/cli/program.js +6 -3
- package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
- package/dist/reporters/bdd-reporter.js +9 -3
- package/dist/services/24h-mode/auto-engage.d.ts +19 -0
- package/dist/services/24h-mode/auto-engage.js +35 -0
- package/dist/services/24h-mode/decider.js +5 -1
- package/dist/services/24h-mode/store.js +4 -2
- package/dist/services/adapter/adapter-registry.js +20 -8
- package/dist/services/adapter/adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.d.ts +2 -2
- package/dist/services/adapter/auto-adapter.js +1 -1
- package/dist/services/adapter/claude-adapter.d.ts +1 -1
- package/dist/services/adapter/claude-adapter.js +8 -8
- package/dist/services/adapter/codex-adapter.d.ts +2 -2
- package/dist/services/adapter/codex-adapter.js +20 -8
- package/dist/services/adapter/copilot-adapter.d.ts +2 -2
- package/dist/services/adapter/copilot-adapter.js +20 -8
- package/dist/services/artifacts/artifact-prerequisites.js +10 -8
- package/dist/services/artifacts/artifact-service.js +3 -1
- package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
- package/dist/services/artifacts/artifact-template-bodies.js +165 -0
- package/dist/services/artifacts/artifact-templates.js +26 -168
- package/dist/services/artifacts/request-artifact-service.js +14 -7
- package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
- package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
- package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
- package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
- package/dist/services/artifacts/workspace-service.d.ts +3 -22
- package/dist/services/artifacts/workspace-service.js +10 -60
- package/dist/services/audit/artifact-writer.js +21 -21
- package/dist/services/audit/audit-goal-service.js +2 -2
- package/dist/services/audit/backing-detector.js +7 -4
- package/dist/services/audit/classifier.js +3 -3
- package/dist/services/audit/decision-writer.js +13 -9
- package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
- package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
- package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
- package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
- package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
- package/dist/services/audit/enforcers/lint-output-style.js +4 -2
- package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
- package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
- package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
- package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
- package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
- package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
- package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
- package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
- package/dist/services/audit/enforcers/lint-style.js +44 -11
- package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
- package/dist/services/audit/enforcers/login-gate.js +2 -6
- package/dist/services/audit/enforcers/mock-placement.js +2 -2
- package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
- package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
- package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
- package/dist/services/audit/enforcers/resume-detection.js +5 -4
- package/dist/services/audit/prose-ratio-calculator.js +1 -1
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
- package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
- package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
- package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
- package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
- package/dist/services/audit/red-line-catalog.js +26 -38
- package/dist/services/audit/red-lines-service.js +64 -49
- package/dist/services/audit/scanners/openspec-scanner.js +2 -2
- package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
- package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
- package/dist/services/audit/static-service.js +3 -3
- package/dist/services/audit-independent/index.d.ts +2 -2
- package/dist/services/audit-independent/index.js +2 -2
- package/dist/services/audit-independent/perf-audit-service.js +19 -8
- package/dist/services/audit-independent/security-audit-service.js +31 -16
- package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
- package/dist/services/best-practice/output-formatter.js +7 -1
- package/dist/services/capability-audit-service/cross-check.js +11 -5
- package/dist/services/capability-audit-service/runner.js +15 -7
- package/dist/services/capability-baseline/store.js +16 -4
- package/dist/services/capability-baseline/types.js +15 -3
- package/dist/services/capability-baseline/validator.js +43 -7
- package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
- package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
- package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
- package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
- package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
- package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
- package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
- package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
- package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
- package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
- package/dist/services/capability-guard-runner/diff.js +1 -5
- package/dist/services/changeset/changeset-check-service.js +1 -3
- package/dist/services/classify/classify-service.js +20 -8
- package/dist/services/classify/classify-types.js +22 -9
- package/dist/services/code/auto-compact-lifecycle.js +62 -39
- package/dist/services/code/auto-compact-modes.js +2 -2
- package/dist/services/code/auto-compact-orchestrator.js +14 -9
- package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
- package/dist/services/code/batch-heartbeat-poller.js +17 -1
- package/dist/services/code/compact-event-settle-types.d.ts +80 -0
- package/dist/services/code/compact-event-settle-types.js +20 -0
- package/dist/services/code/compact-event-settle.d.ts +3 -68
- package/dist/services/code/compact-event-settle.js +14 -10
- package/dist/services/code/dag-orchestrator.js +32 -26
- package/dist/services/code/job-shape-decision.js +3 -1
- package/dist/services/code/mode-gate-types.d.ts +57 -0
- package/dist/services/code/mode-gate-types.js +67 -0
- package/dist/services/code/mode-gate.d.ts +4 -58
- package/dist/services/code/mode-gate.js +24 -60
- package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
- package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
- package/dist/services/code/orchestrator-can-do-probes.js +77 -0
- package/dist/services/code/orchestrator-can-do.d.ts +11 -22
- package/dist/services/code/orchestrator-can-do.js +37 -137
- package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
- package/dist/services/code/post-compact-checkpoint.js +57 -0
- package/dist/services/code/post-compact-detector.js +16 -48
- package/dist/services/code/step-08-gate.d.ts +4 -3
- package/dist/services/code/step-08-gate.js +21 -9
- package/dist/services/code-review/ecc-bridge.js +23 -23
- package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
- package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
- package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
- package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
- package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
- package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
- package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
- package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
- package/dist/services/codegraph/codegraph-process-runner.js +12 -1
- package/dist/services/codegraph/codegraph-service.js +9 -1
- package/dist/services/compact/request-transition-hook.js +2 -1
- package/dist/services/compact/suggest-service.d.ts +3 -61
- package/dist/services/compact/suggest-service.js +9 -12
- package/dist/services/compact/suggest-types.d.ts +76 -0
- package/dist/services/compact/suggest-types.js +10 -0
- package/dist/services/compact-history/compact-history-service.js +2 -2
- package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
- package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
- package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
- package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
- package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
- package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
- package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
- package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
- package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
- package/dist/services/config/config-migration.js +2 -2
- package/dist/services/config/config-restore.js +1 -1
- package/dist/services/config/config-rollback.js +1 -1
- package/dist/services/config/config-safety.js +28 -10
- package/dist/services/config/config-service.js +114 -31
- package/dist/services/config/model-routing.js +5 -2
- package/dist/services/config/proxy-service.js +6 -1
- package/dist/services/config/workspace-state-service.js +17 -5
- package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
- package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
- package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
- package/dist/services/context/auto-compact-reader-input.js +8 -0
- package/dist/services/context/auto-compact-reader.d.ts +2 -24
- package/dist/services/context/auto-compact-reader.js +4 -1
- package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
- package/dist/services/context/auto-compact-thresholds.js +19 -0
- package/dist/services/context/auto-compact-types.d.ts +2 -46
- package/dist/services/context/auto-compact-types.js +1 -11
- package/dist/services/context/build-dispatch-system-prompt.js +2 -2
- package/dist/services/context/collector.js +8 -10
- package/dist/services/context/context-audit-hint.js +7 -5
- package/dist/services/context/context-audit-keys.d.ts +15 -0
- package/dist/services/context/context-audit-keys.js +77 -0
- package/dist/services/context/context-audit-limits.d.ts +20 -0
- package/dist/services/context/context-audit-limits.js +31 -0
- package/dist/services/context/context-audit-scan.d.ts +19 -0
- package/dist/services/context/context-audit-scan.js +246 -0
- package/dist/services/context/context-audit-types.d.ts +65 -0
- package/dist/services/context/context-audit-types.js +10 -0
- package/dist/services/context/context-audit.d.ts +13 -59
- package/dist/services/context/context-audit.js +38 -254
- package/dist/services/context/context-builder.js +4 -4
- package/dist/services/context/context-schema.d.ts +1 -1
- package/dist/services/context/context-schema.js +13 -13
- package/dist/services/context/doc-retriever.js +2 -2
- package/dist/services/context/harness-context-witness.js +43 -24
- package/dist/services/context/harness-window-config.js +27 -7
- package/dist/services/context/ide-detect.js +2 -1
- package/dist/services/context/index.d.ts +1 -1
- package/dist/services/context/memory-index-reader.js +3 -9
- package/dist/services/context/memory-preflight-config.js +3 -5
- package/dist/services/context/memory-preflight-service.d.ts +2 -20
- package/dist/services/context/memory-preflight-service.js +37 -68
- package/dist/services/context/memory-preflight-support.d.ts +48 -0
- package/dist/services/context/memory-preflight-support.js +56 -0
- package/dist/services/context/post-compact-reinjection.js +3 -3
- package/dist/services/context/renderer.js +7 -3
- package/dist/services/context/spillover-store.js +3 -1
- package/dist/services/context/summary-view.js +1 -1
- package/dist/services/context/threshold.js +2 -2
- package/dist/services/context/tokenizer.js +3 -3
- package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
- package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
- package/dist/services/crystallization/crystallization-service.d.ts +7 -7
- package/dist/services/crystallization/crystallization-service.js +56 -55
- package/dist/services/crystallization/crystallization-store.d.ts +2 -2
- package/dist/services/crystallization/crystallization-store.js +37 -20
- package/dist/services/crystallization/crystallization-types.d.ts +4 -56
- package/dist/services/crystallization/crystallization-types.js +31 -184
- package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
- package/dist/services/crystallization/evidence-brief-builder.js +32 -38
- package/dist/services/crystallization/index.d.ts +4 -4
- package/dist/services/crystallization/index.js +4 -4
- package/dist/services/dashboard/project-dashboard-service.js +7 -1
- package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
- package/dist/services/dispatch/await-batch-helpers.js +206 -0
- package/dist/services/dispatch/await-batch.d.ts +50 -7
- package/dist/services/dispatch/await-batch.js +97 -194
- package/dist/services/dispatch/batch-counter.js +2 -1
- package/dist/services/dispatch/conflict-replay.js +2 -2
- package/dist/services/dispatch/contract-store.js +5 -2
- package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
- package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
- package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
- package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
- package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
- package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
- package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
- package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
- package/dist/services/dispatch/dispatch-record-writer.js +54 -26
- package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
- package/dist/services/dispatch/e2e-fixtures.js +1 -1
- package/dist/services/dispatch/isolation-lease.js +39 -17
- package/dist/services/dispatch/merge-back-runner.js +51 -11
- package/dist/services/dispatch/service-shutdown.js +4 -1
- package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
- package/dist/services/dispatch/slice-dag-types.js +41 -0
- package/dist/services/dispatch/slice-dag.d.ts +3 -109
- package/dist/services/dispatch/slice-dag.js +13 -36
- package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
- package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
- package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
- package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
- package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
- package/dist/services/dispatch/test-tool-detection.js +12 -1
- package/dist/services/doc/doc-generator.js +19 -4
- package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
- package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
- package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
- package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
- package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
- package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
- package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
- package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
- package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
- package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
- package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
- package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
- package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
- package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
- package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
- package/dist/services/doctor/doctor-service/index.js +4 -2
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
- package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
- package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
- package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
- package/dist/services/doctor/doctor-service/probe-types.js +14 -0
- package/dist/services/doctor/doctor-service/types.d.ts +7 -197
- package/dist/services/doctor/index.d.ts +1 -1
- package/dist/services/doctor/index.js +1 -1
- package/dist/services/env/shell-probe.js +8 -2
- package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
- package/dist/services/evidence/evidence-body-builders.js +197 -0
- package/dist/services/evidence/evidence-generator.js +6 -187
- package/dist/services/evolution/evolution-constraints.d.ts +43 -0
- package/dist/services/evolution/evolution-constraints.js +54 -0
- package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
- package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
- package/dist/services/evolution/evolution-service.d.ts +6 -6
- package/dist/services/evolution/evolution-service.js +58 -58
- package/dist/services/evolution/evolution-store.d.ts +2 -2
- package/dist/services/evolution/evolution-store.js +37 -51
- package/dist/services/evolution/evolution-types.d.ts +2 -22
- package/dist/services/evolution/evolution-types.js +41 -101
- package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
- package/dist/services/evolution/independent-evaluator-runner.js +20 -22
- package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
- package/dist/services/evolution/regression-skeptic-runner.js +18 -18
- package/dist/services/feedback/feedback-promotion-service.js +48 -12
- package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
- package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
- package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
- package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
- package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
- package/dist/services/feedback/promotion-source-comments.js +61 -0
- package/dist/services/final-review/final-review-contract.d.ts +26 -0
- package/dist/services/final-review/final-review-contract.js +14 -0
- package/dist/services/final-review/final-review-delivery.d.ts +63 -0
- package/dist/services/final-review/final-review-delivery.js +124 -0
- package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
- package/dist/services/final-review/final-review-evidence-budget.js +218 -0
- package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
- package/dist/services/final-review/final-review-evidence-collect.js +230 -0
- package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
- package/dist/services/final-review/final-review-evidence-sources.js +139 -0
- package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
- package/dist/services/final-review/final-review-fifth-dim.js +20 -0
- package/dist/services/final-review/final-review-gates.d.ts +119 -0
- package/dist/services/final-review/final-review-gates.js +214 -0
- package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
- package/dist/services/final-review/final-review-output-budget.js +161 -0
- package/dist/services/final-review/final-review-prompt.d.ts +35 -0
- package/dist/services/final-review/final-review-prompt.js +112 -0
- package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
- package/dist/services/final-review/final-review-reviewer.js +95 -0
- package/dist/services/final-review/final-review-runner.d.ts +3 -0
- package/dist/services/final-review/final-review-runner.js +158 -0
- package/dist/services/final-review/final-review-service.d.ts +119 -373
- package/dist/services/final-review/final-review-service.js +48 -1380
- package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
- package/dist/services/final-review/final-review-verdicts.js +91 -0
- package/dist/services/final-review/index.d.ts +3 -3
- package/dist/services/final-review/index.js +2 -2
- package/dist/services/final-review/pre-post-diff.js +32 -29
- package/dist/services/fixture/fixture-capture-service.js +14 -6
- package/dist/services/fresh-context/trigger-scan.js +13 -2
- package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
- package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
- package/dist/services/hooks/pre-tool-code-gate.js +2 -2
- package/dist/services/hooks/presence-marker-detector.js +12 -2
- package/dist/services/hooks/worktree-authorization-gate.js +21 -7
- package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
- package/dist/services/ide/adapters/codex-adapter.js +3 -5
- package/dist/services/ide/adapters/cursor-adapter.js +3 -5
- package/dist/services/ide/adapters/hermes-adapter.js +2 -4
- package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
- package/dist/services/ide/adapters/qoder-adapter.js +2 -4
- package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
- package/dist/services/ide/adapters/trae-adapter.js +3 -5
- package/dist/services/ide/adapters/zcode-adapter.js +8 -7
- package/dist/services/ide/current-model-detector.js +2 -1
- package/dist/services/ide/ide-compact-types.d.ts +153 -0
- package/dist/services/ide/ide-compact-types.js +1 -0
- package/dist/services/ide/ide-registry.js +1 -1
- package/dist/services/ide/ide-types.d.ts +7 -145
- package/dist/services/ide/resource-profile.js +1 -1
- package/dist/services/ide/shared/atomic-json.js +2 -1
- package/dist/services/impact/impact-scan-service.js +12 -5
- package/dist/services/job/job-commit-verification.d.ts +73 -0
- package/dist/services/job/job-commit-verification.js +72 -0
- package/dist/services/job/job-orchestrator.d.ts +42 -0
- package/dist/services/job/job-orchestrator.js +110 -10
- package/dist/services/job/job-progress-store.d.ts +75 -5
- package/dist/services/job/job-progress-store.js +83 -6
- package/dist/services/job/job-rotation.d.ts +1 -1
- package/dist/services/job/job-rotation.js +5 -1
- package/dist/services/job/job-state-store.js +2 -2
- package/dist/services/job/job-types.js +49 -20
- package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
- package/dist/services/job/subagent-job-wrapper.js +5 -1
- package/dist/services/job-snapshot/snapshot.js +2 -2
- package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
- package/dist/services/legacy/legacy-detector.js +51 -5
- package/dist/services/lint/detect-eslint.js +10 -4
- package/dist/services/lint/detect-ocr-18.js +11 -3
- package/dist/services/lint/eslint-runner-support.d.ts +22 -0
- package/dist/services/lint/eslint-runner-support.js +185 -0
- package/dist/services/lint/eslint-runner-types.d.ts +69 -0
- package/dist/services/lint/eslint-runner-types.js +11 -0
- package/dist/services/lint/eslint-runner.d.ts +4 -56
- package/dist/services/lint/eslint-runner.js +24 -178
- package/dist/services/lint/npx-resolver.js +1 -3
- package/dist/services/lint/ocr-18-acquire.js +15 -4
- package/dist/services/lint/ocr-multilang-adapter.js +4 -5
- package/dist/services/llm/anthropic-runner.js +4 -1
- package/dist/services/log/log-commands-service.js +2 -6
- package/dist/services/log/logger.js +15 -12
- package/dist/services/log/retention.js +3 -2
- package/dist/services/loop/evaluator-dispatcher.js +78 -42
- package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
- package/dist/services/loop/loop-bee-relation-service.js +36 -40
- package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
- package/dist/services/loop/loop-bee-relation-store.js +9 -11
- package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
- package/dist/services/loop/loop-bee-relation-types.js +14 -25
- package/dist/services/loop/loop-release-service.d.ts +2 -2
- package/dist/services/loop/loop-release-service.js +3 -3
- package/dist/services/loop/loop-release-store.d.ts +2 -2
- package/dist/services/loop/loop-release-store.js +4 -6
- package/dist/services/loop/loop-release-types.d.ts +1 -1
- package/dist/services/loop/loop-release-types.js +21 -31
- package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
- package/dist/services/loop/monotonic-guard-types.js +9 -0
- package/dist/services/loop/monotonic-guard.d.ts +2 -43
- package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
- package/dist/services/loop/monotonic-runner-types.js +17 -0
- package/dist/services/loop/monotonic-runner.d.ts +3 -34
- package/dist/services/loop/monotonic-runner.js +10 -20
- package/dist/services/loop/run-driver.js +16 -8
- package/dist/services/loop/spec-service.d.ts +0 -5
- package/dist/services/loop/spec-service.js +49 -9
- package/dist/services/memory/llm-reranker-core.d.ts +108 -0
- package/dist/services/memory/llm-reranker-core.js +105 -0
- package/dist/services/memory/llm-reranker.d.ts +3 -94
- package/dist/services/memory/llm-reranker.js +13 -102
- package/dist/services/memory/memory-ingest-service.d.ts +1 -22
- package/dist/services/memory/memory-ingest-service.js +29 -76
- package/dist/services/memory/memory-ingest-support.d.ts +23 -0
- package/dist/services/memory/memory-ingest-support.js +81 -0
- package/dist/services/memory/memory-rotate-service.js +41 -8
- package/dist/services/memory/memory-search-service.js +8 -4
- package/dist/services/memory/project-context-service.js +26 -5
- package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
- package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
- package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
- package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
- package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
- package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
- package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
- package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
- package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
- package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
- package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
- package/dist/services/memory/project-memory-service/store/paths.js +2 -1
- package/dist/services/memory/project-memory-service/types.d.ts +3 -31
- package/dist/services/memory/project-memory-service/types.js +1 -76
- package/dist/services/migrate-skill-name/migrate.js +1 -1
- package/dist/services/migrate-skill-name/schema.js +1 -1
- package/dist/services/mode/mode-enforcement.js +4 -2
- package/dist/services/mode/mode-status-service.d.ts +27 -9
- package/dist/services/mode/mode-status-service.js +64 -12
- package/dist/services/observability/aggregation-helpers.d.ts +22 -0
- package/dist/services/observability/aggregation-helpers.js +65 -0
- package/dist/services/observability/aggregation-types.d.ts +66 -0
- package/dist/services/observability/aggregation-types.js +34 -0
- package/dist/services/observability/aggregation.d.ts +5 -53
- package/dist/services/observability/aggregation.js +17 -80
- package/dist/services/observability/jsonl-store.js +2 -1
- package/dist/services/observability/observability-schema.d.ts +71 -0
- package/dist/services/observability/observability-schema.js +64 -0
- package/dist/services/observability/observability-service.d.ts +3 -56
- package/dist/services/observability/observability-service.js +9 -49
- package/dist/services/openspec/coverage-evidence-reader.js +18 -11
- package/dist/services/openspec/openspec-archive-service.js +31 -24
- package/dist/services/openspec/openspec-init-service.js +8 -2
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
- package/dist/services/openspec/openspec-scan-service.js +4 -1
- package/dist/services/openspec/openspec-validate-service.js +26 -5
- package/dist/services/perf/perf-baseline-service.js +2 -6
- package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
- package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
- package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
- package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
- package/dist/services/prd/handoff-frontmatter.js +1 -1
- package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
- package/dist/services/prd/handoff-path-resolution.js +101 -0
- package/dist/services/prd/handoff-service.d.ts +1 -37
- package/dist/services/prd/handoff-service.js +16 -148
- package/dist/services/prd/prd-blocks-checker.js +28 -8
- package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
- package/dist/services/prd/project-scan-reader.js +1 -4
- package/dist/services/prd/project-scan-sediment.js +1 -4
- package/dist/services/preferences/preferences-service.js +6 -8
- package/dist/services/preferences/preferences-types.js +4 -4
- package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
- package/dist/services/qa/bdd-test-style-contract.js +37 -0
- package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
- package/dist/services/qa/bdd-test-style-verifier.js +5 -31
- package/dist/services/qa/browser-event-logger.js +2 -1
- package/dist/services/qa/qa-business-review-state.js +20 -5
- package/dist/services/qa/screenshot-archive-service.js +1 -3
- package/dist/services/rd/ast-gate.js +2 -2
- package/dist/services/rd/impl.js +1 -1
- package/dist/services/rd/rd-service.js +117 -43
- package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
- package/dist/services/rd/standards-diagnostic.js +4 -1
- package/dist/services/rd/strategy.js +10 -3
- package/dist/services/rd/tactical-stage.js +2 -2
- package/dist/services/rd/types.js +9 -7
- package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
- package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
- package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
- package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
- package/dist/services/recommendations/capability-map-service.js +10 -2
- package/dist/services/recommendations/capability-seed-items.js +81 -14
- package/dist/services/recommendations/capability-seed-mappings.js +420 -48
- package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
- package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
- package/dist/services/recommendations/capability-seed-sources.js +127 -32
- package/dist/services/release/release-state.d.ts +2 -2
- package/dist/services/release/release-state.js +44 -15
- package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
- package/dist/services/release/version-precheck-layer-changeset.js +43 -0
- package/dist/services/release/version-precheck-service.d.ts +11 -36
- package/dist/services/release/version-precheck-service.js +20 -104
- package/dist/services/release/version-precheck-support.d.ts +53 -0
- package/dist/services/release/version-precheck-support.js +64 -0
- package/dist/services/retrospective/retrospective-index.js +17 -3
- package/dist/services/retrospective/retrospective-search-service.js +6 -2
- package/dist/services/retrospective/retrospective-show.js +4 -1
- package/dist/services/reviewer/model-family.js +7 -1
- package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
- package/dist/services/reviewer/providers/anthropic.js +10 -1
- package/dist/services/reviewer/providers/openai.d.ts +5 -0
- package/dist/services/reviewer/providers/openai.js +10 -1
- package/dist/services/reviewer/reviewer-config.js +4 -2
- package/dist/services/reviewer/reviewer-service.d.ts +2 -36
- package/dist/services/reviewer/reviewer-service.js +2 -1
- package/dist/services/reviewer/reviewer-types.d.ts +43 -0
- package/dist/services/reviewer/reviewer-types.js +1 -0
- package/dist/services/role/role-registry.js +9 -1
- package/dist/services/runtime/runtime-detector.js +4 -1
- package/dist/services/runtime/vendors/claude-code.js +14 -6
- package/dist/services/runtime/vendors/codex.js +11 -3
- package/dist/services/runtime/vendors/copilot.js +11 -3
- package/dist/services/sc/sc-service.js +28 -15
- package/dist/services/scan/acceptance-coverage-service.js +4 -1
- package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
- package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
- package/dist/services/scan/api-diff-openapi.d.ts +16 -2
- package/dist/services/scan/api-diff-openapi.js +19 -123
- package/dist/services/scan/api-diff-recorded.js +16 -3
- package/dist/services/scan/api-diff-service.js +49 -16
- package/dist/services/scan/api-diff-types.js +12 -3
- package/dist/services/scan/api-surface-helpers.d.ts +13 -0
- package/dist/services/scan/api-surface-helpers.js +31 -0
- package/dist/services/scan/api-surface-service.d.ts +2 -45
- package/dist/services/scan/api-surface-service.js +15 -26
- package/dist/services/scan/api-surface-types.d.ts +54 -0
- package/dist/services/scan/api-surface-types.js +10 -0
- package/dist/services/scan/archetype-detection.d.ts +37 -0
- package/dist/services/scan/archetype-detection.js +142 -0
- package/dist/services/scan/archetype-service.js +36 -125
- package/dist/services/scan/diff-scope-service.js +35 -15
- package/dist/services/scan/existing-system-service.js +16 -99
- package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
- package/dist/services/scan/existing-system-visual-tokens.js +123 -0
- package/dist/services/scan/file-size-policy.d.ts +86 -0
- package/dist/services/scan/file-size-policy.js +184 -0
- package/dist/services/scan/file-size-scan.d.ts +30 -3
- package/dist/services/scan/file-size-scan.js +47 -9
- package/dist/services/scan/karpathy-service.js +6 -1
- package/dist/services/scan/orphan-service.js +86 -20
- package/dist/services/scan/type-sanity-service.js +104 -10
- package/dist/services/sediment/dispose-confirm.d.ts +2 -2
- package/dist/services/sediment/dispose-confirm.js +2 -2
- package/dist/services/sediment/json-schema.d.ts +1 -1
- package/dist/services/sediment/json-schema.js +25 -13
- package/dist/services/sediment/manifest-lint.d.ts +1 -12
- package/dist/services/sediment/manifest-lint.js +1 -7
- package/dist/services/sediment/pool-paths.js +13 -9
- package/dist/services/sediment/pool-read.d.ts +1 -1
- package/dist/services/sediment/pool-read.js +42 -18
- package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
- package/dist/services/sediment/pool-rebuild-index.js +5 -5
- package/dist/services/sediment/pool-write.d.ts +1 -1
- package/dist/services/sediment/pool-write.js +7 -7
- package/dist/services/sediment/promotion-gate.d.ts +1 -1
- package/dist/services/sediment/promotion-gate.js +9 -9
- package/dist/services/sediment/types.d.ts +8 -8
- package/dist/services/session/binding-status-service.js +14 -4
- package/dist/services/session/caller-binding-service.js +2 -1
- package/dist/services/session/getSessionDir.js +4 -1
- package/dist/services/session/index.d.ts +1 -1
- package/dist/services/session/index.js +1 -1
- package/dist/services/session/resolve-caller-id.js +7 -5
- package/dist/services/session/session-binding-bridge.js +26 -25
- package/dist/services/session/session-checkpoint-service.js +1 -1
- package/dist/services/session/session-file-schema.d.ts +70 -0
- package/dist/services/session/session-file-schema.js +68 -0
- package/dist/services/session/session-manager.d.ts +6 -6
- package/dist/services/session/session-manager.js +30 -29
- package/dist/services/session/session-resume-service.js +2 -1
- package/dist/services/share/bundle-format-constants.d.ts +85 -0
- package/dist/services/share/bundle-format-constants.js +100 -0
- package/dist/services/share/bundle-reader.d.ts +3 -3
- package/dist/services/share/bundle-reader.js +75 -68
- package/dist/services/share/bundle-types.d.ts +3 -70
- package/dist/services/share/bundle-types.js +38 -107
- package/dist/services/share/bundle-writer.d.ts +3 -3
- package/dist/services/share/bundle-writer.js +101 -91
- package/dist/services/share/run-state-contract.d.ts +1 -1
- package/dist/services/share/run-state-contract.js +7 -13
- package/dist/services/signal/cancel-handler.js +2 -1
- package/dist/services/skill/resume-detector.js +6 -4
- package/dist/services/skill/skill-scheduler.js +3 -1
- package/dist/services/skill/skill-search-service.js +4 -4
- package/dist/services/skillhub/release-diff.d.ts +2 -2
- package/dist/services/skillhub/release-diff.js +6 -10
- package/dist/services/skillhub/release-export.d.ts +2 -2
- package/dist/services/skillhub/release-export.js +15 -17
- package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
- package/dist/services/skillhub/release-gc-blobs.js +4 -4
- package/dist/services/skillhub/release-import.d.ts +2 -2
- package/dist/services/skillhub/release-import.js +13 -12
- package/dist/services/skillhub/release-retain.d.ts +3 -3
- package/dist/services/skillhub/release-retain.js +22 -22
- package/dist/services/skillhub/sqlite-store.d.ts +1 -1
- package/dist/services/skillhub/sqlite-store.js +12 -11
- package/dist/services/skillhub/tar-runtime.js +15 -15
- package/dist/services/skillhub/types.d.ts +4 -4
- package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
- package/dist/services/skills/hooks-settings-service.js +61 -19
- package/dist/services/skills/presence-lease-service.js +26 -16
- package/dist/services/skills/presence-lease-types.d.ts +1 -1
- package/dist/services/skills/presence-lease-types.js +1 -1
- package/dist/services/skills/skill-conformance-service.js +40 -8
- package/dist/services/skills/skill-presence-service.js +16 -14
- package/dist/services/skills/skill-runbook-service.js +2 -1
- package/dist/services/skills/skill-statusline-model.d.ts +128 -0
- package/dist/services/skills/skill-statusline-model.js +163 -0
- package/dist/services/skills/skill-statusline-renderer.js +4 -3
- package/dist/services/skills/skill-statusline-service.d.ts +3 -100
- package/dist/services/skills/skill-statusline-service.js +56 -163
- package/dist/services/skills/statusline-palette.js +11 -6
- package/dist/services/skills/statusline-settings-service.js +2 -1
- package/dist/services/skills/sync-service-support.d.ts +65 -0
- package/dist/services/skills/sync-service-support.js +50 -0
- package/dist/services/skills/sync-service.d.ts +3 -66
- package/dist/services/skills/sync-service.js +15 -53
- package/dist/services/slice/calibration-store.js +8 -2
- package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
- package/dist/services/slice/cross-pass-edge-merger.js +13 -63
- package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
- package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
- package/dist/services/slice/granularity-decider.js +2 -2
- package/dist/services/slice/slice-archive-service.js +8 -3
- package/dist/services/slice/slice-check-service.js +19 -8
- package/dist/services/slice/slice-decompose-runners.js +61 -23
- package/dist/services/slice/slice-decompose-service.js +4 -4
- package/dist/services/slice/slice-review-state.js +8 -2
- package/dist/services/smoke/smoke-paths-state.js +9 -2
- package/dist/services/sop/gate-enforce-service.js +9 -2
- package/dist/services/sop/sop-advance-service.js +14 -2
- package/dist/services/sop/sop-check-service.js +16 -4
- package/dist/services/sop/sop-paths.js +3 -1
- package/dist/services/sop/sop-registry-service.js +5 -1
- package/dist/services/sop/sop-service.js +29 -7
- package/dist/services/sop/sop-types.js +5 -1
- package/dist/services/standards/ide-aware-standards-service.js +2 -2
- package/dist/services/standards/loop-engineering-lint.js +12 -5
- package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
- package/dist/services/standards/migrate-claude-rules-service.js +9 -7
- package/dist/services/standards/missing-standards-detector.js +1 -3
- package/dist/services/standards/project-context-support.d.ts +50 -0
- package/dist/services/standards/project-context-support.js +244 -0
- package/dist/services/standards/project-context-types.d.ts +30 -0
- package/dist/services/standards/project-context-types.js +11 -0
- package/dist/services/standards/project-context.d.ts +10 -22
- package/dist/services/standards/project-context.js +27 -214
- package/dist/services/standards/project-standards-service.js +43 -12
- package/dist/services/standards/standards-render-common.d.ts +15 -0
- package/dist/services/standards/standards-render-common.js +49 -0
- package/dist/services/standards/standards-render.d.ts +1 -2
- package/dist/services/standards/standards-render.js +31 -58
- package/dist/services/standards/ui-library-dispatch-block.js +1 -1
- package/dist/services/tech/tech-change-id-service.js +7 -7
- package/dist/services/tech/tech-service.js +73 -26
- package/dist/services/test-cache/test-cache-service.js +8 -3
- package/dist/services/upgrade/1x-detector-service.js +5 -3
- package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
- package/dist/services/upgrade/upgrade-service.js +36 -13
- package/dist/services/verdict/envelope-parsers.d.ts +84 -0
- package/dist/services/verdict/envelope-parsers.js +146 -0
- package/dist/services/verdict/envelopes.d.ts +50 -60
- package/dist/services/verdict/envelopes.js +18 -156
- package/dist/services/verdict/verdict-aggregator.js +27 -3
- package/dist/services/vm/vm-lease.js +15 -3
- package/dist/services/web/aria-node.d.ts +27 -0
- package/dist/services/web/aria-node.js +1 -0
- package/dist/services/web/browser-acquire.js +3 -1
- package/dist/services/web/browser-cache-probe.d.ts +18 -0
- package/dist/services/web/browser-cache-probe.js +110 -0
- package/dist/services/web/browser-session-manager.js +6 -2
- package/dist/services/web/daemon-registry.js +4 -1
- package/dist/services/web/playwright-loader.d.ts +2 -70
- package/dist/services/web/playwright-types.d.ts +75 -0
- package/dist/services/web/playwright-types.js +1 -0
- package/dist/services/web/snapshot-pruner.d.ts +2 -23
- package/dist/services/web/snapshot-pruner.js +8 -3
- package/dist/services/web/web-daemon-service.js +1 -3
- package/dist/services/web/web-install-service.d.ts +3 -32
- package/dist/services/web/web-install-service.js +21 -100
- package/dist/services/web/web-install-types.d.ts +31 -0
- package/dist/services/web/web-install-types.js +13 -0
- package/dist/services/web/web-login-profile.js +7 -5
- package/dist/services/web/web-protocol.js +3 -1
- package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
- package/dist/services/workflow/pipeline-verify-service.js +17 -6
- package/dist/services/workflow/plan-reader.js +5 -1
- package/dist/services/workflow/plan-refresher.js +20 -6
- package/dist/services/workflow/plan-trigger-detector.js +31 -8
- package/dist/services/workflow/provision-dispatch-node.js +8 -3
- package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
- package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
- package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
- package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
- package/dist/services/workflow/workflow-autonomous-service.js +25 -13
- package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
- package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
- package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
- package/dist/services/workflow/workflow-graph-store.js +30 -107
- package/dist/services/workflow/workflow-graph-types.js +3 -3
- package/dist/services/workflow/workflow-inflight-probe.js +14 -7
- package/dist/services/workflow/workflow-loader.js +5 -1
- package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
- package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
- package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
- package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
- package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
- package/dist/services/workflow/workflow-router-service.js +169 -27
- package/dist/services/workflow/workflow-skip-service.js +14 -4
- package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
- package/dist/services/workflow/workflow-spec-builders.js +121 -0
- package/dist/services/workflow/workflow-spec.d.ts +7 -6
- package/dist/services/workflow/workflow-spec.js +22 -116
- package/dist/services/workflow/workflow-state-store.js +2 -1
- package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
- package/dist/services/workspace/migrate-service.js +66 -16
- package/dist/services/workspace/reconcile-migrate.js +6 -2
- package/dist/services/workspace/reconcile-service.js +37 -16
- package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
- package/dist/services/workspace/workspace-clean-service.js +4 -1
- package/dist/services/workspace/workspace-service.js +11 -3
- package/dist/services/workspace/workspace-state-service.js +1 -1
- package/dist/services/worktree/git-worktree-parser.js +13 -3
- package/dist/services/worktree/host-worktree-reconciler.js +8 -4
- package/dist/services/worktree/long-path-cleanup.js +23 -6
- package/dist/services/worktree/worktree-gc-guard.js +3 -1
- package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
- package/dist/services/worktree/worktree-lease-types.js +10 -0
- package/dist/services/worktree/worktree-lease.d.ts +2 -44
- package/dist/shared/array-guards.d.ts +30 -0
- package/dist/shared/array-guards.js +32 -0
- package/dist/shared/format-md-compact-internals.d.ts +26 -0
- package/dist/shared/format-md-compact-internals.js +125 -0
- package/dist/shared/format-md-compact.js +1 -117
- package/dist/shared/fs-utils.js +2 -1
- package/dist/shared/incrementing-number.js +3 -3
- package/dist/shared/json-parse.d.ts +71 -0
- package/dist/shared/json-parse.js +32 -0
- package/dist/shared/json-schema-mini.js +3 -1
- package/dist/shared/path-safety.js +3 -1
- package/dist/shared/path-utils.d.ts +20 -0
- package/dist/shared/path-utils.js +26 -0
- package/dist/shared/planner-response.js +3 -3
- package/dist/shared/stale-policy.js +1 -3
- package/dist/skills/peaks-maker/index.js +11 -11
- package/package.json +31 -8
- package/scripts/clean-dist.mjs +1 -2
- package/scripts/copy-templates.mjs +2 -4
- package/scripts/install-skills.mjs +305 -125
- package/scripts/sync-version.mjs +25 -8
- package/scripts/watch.mjs +8 -2
- package/skills/peaks-code/SKILL.md +1 -1
|
@@ -16,7 +16,7 @@ export function tokenize(collector, docRetriever, now = new Date()) {
|
|
|
16
16
|
blastRadius: doc.sections.map((s) => s.title),
|
|
17
17
|
conflictScore: 0, // v1: no cross-source conflict detection yet
|
|
18
18
|
timeDecayScore: freshDecayScore(doc.fetchedAt, now),
|
|
19
|
-
tags: ['fetched', doc.source, doc.stale ? 'stale' : 'fresh']
|
|
19
|
+
tags: ['fetched', doc.source, doc.stale ? 'stale' : 'fresh']
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
for (const mem of collector.memoryEntries) {
|
|
@@ -26,7 +26,7 @@ export function tokenize(collector, docRetriever, now = new Date()) {
|
|
|
26
26
|
blastRadius: [mem.title],
|
|
27
27
|
conflictScore: 0,
|
|
28
28
|
timeDecayScore: mem.relevanceScore,
|
|
29
|
-
tags: ['memory']
|
|
29
|
+
tags: ['memory']
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
for (const file of collector.files) {
|
|
@@ -36,7 +36,7 @@ export function tokenize(collector, docRetriever, now = new Date()) {
|
|
|
36
36
|
blastRadius: [file.path],
|
|
37
37
|
conflictScore: 0,
|
|
38
38
|
timeDecayScore: 1,
|
|
39
|
-
tags: [file.kind]
|
|
39
|
+
tags: [file.kind]
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
return Object.freeze({ metadata: Object.freeze(metadata) });
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crystallization evidence-brief schema — hoisted VERBATIM out of
|
|
3
|
+
* `crystallization-types.ts` so that file clears the 300 raw-line cap.
|
|
4
|
+
* Nothing here was rewritten: same constraints, same `.superRefine`
|
|
5
|
+
* guard, same issue message, same MISSING_BRIEF_SECTION mapping.
|
|
6
|
+
*
|
|
7
|
+
* `crystallization-types.ts` re-exports every public name from this
|
|
8
|
+
* path, so `EvidenceBriefSchema` / `EvidenceBrief` /
|
|
9
|
+
* `hasAllFourBriefSections` / `parseEvidenceBrief` /
|
|
10
|
+
* `safeParseEvidenceBrief` stay importable from their original module
|
|
11
|
+
* and from `crystallization/index.js`.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/** Brief-section cap; the event-level free-text columns in
|
|
15
|
+
* `crystallization-types.ts` reuse the same bound. */
|
|
16
|
+
export declare const CRYS_BRIEF_SECTION_MAX = 4000;
|
|
17
|
+
/**
|
|
18
|
+
* EvidenceBrief — the 4-section brief (spec §4.7).
|
|
19
|
+
*
|
|
20
|
+
* Hard shape invariant: ALL FOUR KEYS must be present at parse
|
|
21
|
+
* time, with non-empty NL content. The `.refine(...)` guard is
|
|
22
|
+
* what makes a brief a "brief" — without it, the projection is
|
|
23
|
+
* not a brief and the recommendation MUST NOT be rendered
|
|
24
|
+
* (service layer enforces this; Zod makes it a parse-time
|
|
25
|
+
* guarantee).
|
|
26
|
+
*
|
|
27
|
+
* Field semantics:
|
|
28
|
+
* - what_happened — 1-2 sentence factual account of the run.
|
|
29
|
+
* - why_it_matters — 1-2 sentence explanation of why this is
|
|
30
|
+
* worth promoting.
|
|
31
|
+
* - what_learned — 1-2 sentence learning: failure modes
|
|
32
|
+
* encoded, preferences extracted.
|
|
33
|
+
* - what_action — 1-sentence recommended action with
|
|
34
|
+
* rationale.
|
|
35
|
+
*/
|
|
36
|
+
export declare const EvidenceBriefSchema: z.ZodObject<{
|
|
37
|
+
what_happened: z.ZodString;
|
|
38
|
+
why_it_matters: z.ZodString;
|
|
39
|
+
what_learned: z.ZodString;
|
|
40
|
+
what_action: z.ZodString;
|
|
41
|
+
}, z.core.$strict>;
|
|
42
|
+
export type EvidenceBrief = z.infer<typeof EvidenceBriefSchema>;
|
|
43
|
+
/**
|
|
44
|
+
* Helper for downstream code that needs to know whether a parsed
|
|
45
|
+
* brief satisfies the 4-section rule. Useful for the CLI when a
|
|
46
|
+
* payload arrived from the LLM and the brief-section guard has
|
|
47
|
+
* already passed — it returns the section count, always 4 here.
|
|
48
|
+
*/
|
|
49
|
+
export declare function hasAllFourBriefSections(brief: EvidenceBrief): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Convenience: strict-parse an unknown payload as a standalone
|
|
52
|
+
* EvidenceBrief. Throws ZodError on failure.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseEvidenceBrief(input: unknown): EvidenceBrief;
|
|
55
|
+
/**
|
|
56
|
+
* Safe-parse twin of parseEvidenceBrief. Same Result-like envelope
|
|
57
|
+
* shape; same MISSING_BRIEF_SECTION code mapping (covers both
|
|
58
|
+
* refine-guard failures and per-section missing/empty failures).
|
|
59
|
+
*/
|
|
60
|
+
export declare function safeParseEvidenceBrief(input: unknown): {
|
|
61
|
+
ok: true;
|
|
62
|
+
row: EvidenceBrief;
|
|
63
|
+
} | {
|
|
64
|
+
ok: false;
|
|
65
|
+
code?: 'MISSING_BRIEF_SECTION';
|
|
66
|
+
findings: Array<{
|
|
67
|
+
path: string;
|
|
68
|
+
message: string;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Decide whether a ZodIssue[] is a "brief section" failure: every
|
|
73
|
+
* issue points at one of the four required keys (the section is
|
|
74
|
+
* missing, or empty after trim), OR the explicit refine-guard issue
|
|
75
|
+
* is present. Used by both `safeParseCrystallizationEvent` and
|
|
76
|
+
* `safeParseEvidenceBrief` so callers see a single
|
|
77
|
+
* `MISSING_BRIEF_SECTION` code regardless of which Zod boundary
|
|
78
|
+
* caught the failure.
|
|
79
|
+
*/
|
|
80
|
+
export declare function isBriefSectionFailure(issues: ReadonlyArray<z.ZodIssue>): boolean;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crystallization evidence-brief schema — hoisted VERBATIM out of
|
|
3
|
+
* `crystallization-types.ts` so that file clears the 300 raw-line cap.
|
|
4
|
+
* Nothing here was rewritten: same constraints, same `.superRefine`
|
|
5
|
+
* guard, same issue message, same MISSING_BRIEF_SECTION mapping.
|
|
6
|
+
*
|
|
7
|
+
* `crystallization-types.ts` re-exports every public name from this
|
|
8
|
+
* path, so `EvidenceBriefSchema` / `EvidenceBrief` /
|
|
9
|
+
* `hasAllFourBriefSections` / `parseEvidenceBrief` /
|
|
10
|
+
* `safeParseEvidenceBrief` stay importable from their original module
|
|
11
|
+
* and from `crystallization/index.js`.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/* ---------------------------------------------------------------------- */
|
|
15
|
+
/* PRD-002b slice 2 — schema-limit constants extracted from inline */
|
|
16
|
+
/* `.max(N)` / `.length(N)` calls so the no-magic-numbers rule stops */
|
|
17
|
+
/* flagging the constraint values. Names describe the field, not the */
|
|
18
|
+
/* number. Bytewise-identical to the original literals. */
|
|
19
|
+
/* ---------------------------------------------------------------------- */
|
|
20
|
+
/** Brief-section cap; the event-level free-text columns in
|
|
21
|
+
* `crystallization-types.ts` reuse the same bound. */
|
|
22
|
+
export const CRYS_BRIEF_SECTION_MAX = 4000;
|
|
23
|
+
/* ---------------------------------------------------------------------- */
|
|
24
|
+
/* EvidenceBrief — §4.7 / §10 RL-7. REQUIRED 4-section shape. */
|
|
25
|
+
/* ---------------------------------------------------------------------- */
|
|
26
|
+
/**
|
|
27
|
+
* The four brief sections. Spec §4.7 lists them as NL short
|
|
28
|
+
* sections; the service layer mandates 1-2 sentences (what_action
|
|
29
|
+
* is a single sentence per the spec). The Zod constraints below
|
|
30
|
+
* enforce NON-EMPTY strings. The brief-section guard (see
|
|
31
|
+
* `EvidenceBriefSchema.refine` below) rejects any payload missing
|
|
32
|
+
* one of the four keys, regardless of section content — it is
|
|
33
|
+
* the canonical hard gate per spec §10 RL-7.
|
|
34
|
+
*/
|
|
35
|
+
const BriefSectionSchema = z
|
|
36
|
+
.string()
|
|
37
|
+
.trim()
|
|
38
|
+
.min(1, 'brief section must be non-empty natural language')
|
|
39
|
+
.max(CRYS_BRIEF_SECTION_MAX);
|
|
40
|
+
/**
|
|
41
|
+
* EvidenceBrief — the 4-section brief (spec §4.7).
|
|
42
|
+
*
|
|
43
|
+
* Hard shape invariant: ALL FOUR KEYS must be present at parse
|
|
44
|
+
* time, with non-empty NL content. The `.refine(...)` guard is
|
|
45
|
+
* what makes a brief a "brief" — without it, the projection is
|
|
46
|
+
* not a brief and the recommendation MUST NOT be rendered
|
|
47
|
+
* (service layer enforces this; Zod makes it a parse-time
|
|
48
|
+
* guarantee).
|
|
49
|
+
*
|
|
50
|
+
* Field semantics:
|
|
51
|
+
* - what_happened — 1-2 sentence factual account of the run.
|
|
52
|
+
* - why_it_matters — 1-2 sentence explanation of why this is
|
|
53
|
+
* worth promoting.
|
|
54
|
+
* - what_learned — 1-2 sentence learning: failure modes
|
|
55
|
+
* encoded, preferences extracted.
|
|
56
|
+
* - what_action — 1-sentence recommended action with
|
|
57
|
+
* rationale.
|
|
58
|
+
*/
|
|
59
|
+
export const EvidenceBriefSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
what_happened: BriefSectionSchema,
|
|
62
|
+
why_it_matters: BriefSectionSchema,
|
|
63
|
+
what_learned: BriefSectionSchema,
|
|
64
|
+
what_action: BriefSectionSchema
|
|
65
|
+
})
|
|
66
|
+
.strict()
|
|
67
|
+
.superRefine((b, ctx) => {
|
|
68
|
+
const ok = typeof b.what_happened === 'string' &&
|
|
69
|
+
b.what_happened.trim().length > 0 &&
|
|
70
|
+
typeof b.why_it_matters === 'string' &&
|
|
71
|
+
b.why_it_matters.trim().length > 0 &&
|
|
72
|
+
typeof b.what_learned === 'string' &&
|
|
73
|
+
b.what_learned.trim().length > 0 &&
|
|
74
|
+
typeof b.what_action === 'string' &&
|
|
75
|
+
b.what_action.trim().length > 0;
|
|
76
|
+
if (!ok) {
|
|
77
|
+
ctx.addIssue({
|
|
78
|
+
code: 'custom',
|
|
79
|
+
path: [],
|
|
80
|
+
message: 'evidence_brief must contain all 4 sections (what_happened, why_it_matters, what_learned, what_action) with non-empty content (spec §4.7 / RL-7)'
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Helper for downstream code that needs to know whether a parsed
|
|
86
|
+
* brief satisfies the 4-section rule. Useful for the CLI when a
|
|
87
|
+
* payload arrived from the LLM and the brief-section guard has
|
|
88
|
+
* already passed — it returns the section count, always 4 here.
|
|
89
|
+
*/
|
|
90
|
+
export function hasAllFourBriefSections(brief) {
|
|
91
|
+
return (typeof brief.what_happened === 'string' &&
|
|
92
|
+
brief.what_happened.trim().length > 0 &&
|
|
93
|
+
typeof brief.why_it_matters === 'string' &&
|
|
94
|
+
brief.why_it_matters.trim().length > 0 &&
|
|
95
|
+
typeof brief.what_learned === 'string' &&
|
|
96
|
+
brief.what_learned.trim().length > 0 &&
|
|
97
|
+
typeof brief.what_action === 'string' &&
|
|
98
|
+
brief.what_action.trim().length > 0);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Convenience: strict-parse an unknown payload as a standalone
|
|
102
|
+
* EvidenceBrief. Throws ZodError on failure.
|
|
103
|
+
*/
|
|
104
|
+
export function parseEvidenceBrief(input) {
|
|
105
|
+
return EvidenceBriefSchema.parse(input);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Safe-parse twin of parseEvidenceBrief. Same Result-like envelope
|
|
109
|
+
* shape; same MISSING_BRIEF_SECTION code mapping (covers both
|
|
110
|
+
* refine-guard failures and per-section missing/empty failures).
|
|
111
|
+
*/
|
|
112
|
+
export function safeParseEvidenceBrief(input) {
|
|
113
|
+
const r = EvidenceBriefSchema.safeParse(input);
|
|
114
|
+
if (r.success)
|
|
115
|
+
return { ok: true, row: r.data };
|
|
116
|
+
const findings = r.error.issues.map((i) => ({
|
|
117
|
+
path: i.path.join('.'),
|
|
118
|
+
message: i.message
|
|
119
|
+
}));
|
|
120
|
+
const isBrief = isBriefSectionFailure(r.error.issues);
|
|
121
|
+
return isBrief ? { ok: false, code: 'MISSING_BRIEF_SECTION', findings } : { ok: false, findings };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Decide whether a ZodIssue[] is a "brief section" failure: every
|
|
125
|
+
* issue points at one of the four required keys (the section is
|
|
126
|
+
* missing, or empty after trim), OR the explicit refine-guard issue
|
|
127
|
+
* is present. Used by both `safeParseCrystallizationEvent` and
|
|
128
|
+
* `safeParseEvidenceBrief` so callers see a single
|
|
129
|
+
* `MISSING_BRIEF_SECTION` code regardless of which Zod boundary
|
|
130
|
+
* caught the failure.
|
|
131
|
+
*/
|
|
132
|
+
export function isBriefSectionFailure(issues) {
|
|
133
|
+
if (issues.length === 0)
|
|
134
|
+
return false;
|
|
135
|
+
// Explicit refine guard (EvidenceBriefSchema.refine message).
|
|
136
|
+
if (issues.some((i) => i.message.includes('evidence_brief must contain all 4 sections'))) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
// Per-section Zod failures (min(1) on each section key, or
|
|
140
|
+
// too_small, or invalid_type). Each issue's path will be either
|
|
141
|
+
// the section key (`what_happened`) OR the parent `evidence_brief`
|
|
142
|
+
// — Zod reports missing-key issues against the parent object.
|
|
143
|
+
return issues.every((i) => {
|
|
144
|
+
const path = i.path.join('.');
|
|
145
|
+
if (path === 'evidence_brief')
|
|
146
|
+
return true;
|
|
147
|
+
if (i.path.length >= 2 && i.path[0] === 'evidence_brief') {
|
|
148
|
+
const key = i.path[i.path.length - 1];
|
|
149
|
+
return (key === 'what_happened' ||
|
|
150
|
+
key === 'why_it_matters' ||
|
|
151
|
+
key === 'what_learned' ||
|
|
152
|
+
key === 'what_action');
|
|
153
|
+
}
|
|
154
|
+
return (path === 'what_happened' ||
|
|
155
|
+
path === 'why_it_matters' ||
|
|
156
|
+
path === 'what_learned' ||
|
|
157
|
+
path === 'what_action');
|
|
158
|
+
});
|
|
159
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type Database from
|
|
2
|
-
import { z } from
|
|
3
|
-
import { type CrystallizationEvent, type CrystallizationEventInput, type CrystallizationEventStatus, type EvidenceBrief } from
|
|
4
|
-
import { listCrystallizationEvents } from
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { type CrystallizationEvent, type CrystallizationEventInput, type CrystallizationEventStatus, type EvidenceBrief } from './crystallization-types.js';
|
|
4
|
+
import { listCrystallizationEvents } from './crystallization-store.js';
|
|
5
5
|
type LoopReleaseZodSchema = {
|
|
6
6
|
parse: (input: unknown) => unknown;
|
|
7
7
|
};
|
|
@@ -72,9 +72,9 @@ export declare const CrystallizationTaskStateSchema: z.ZodObject<{
|
|
|
72
72
|
evidence_collected: z.ZodLiteral<true>;
|
|
73
73
|
}, z.core.$strip>;
|
|
74
74
|
export type CrystallizationTaskState = z.infer<typeof CrystallizationTaskStateSchema>;
|
|
75
|
-
export type CrystallizationIntegrityErrorCode =
|
|
75
|
+
export type CrystallizationIntegrityErrorCode = 'CRYSTALLIZATION_PRE_RUN' | 'CRYSTALLIZATION_INVALID_TASK_STATE' | 'CRYSTALLIZATION_TX_FAILED' | 'MISSING_BRIEF_SECTION';
|
|
76
76
|
export declare class CrystallizationIntegrityError extends Error {
|
|
77
|
-
readonly code: CrystallizationIntegrityErrorCode |
|
|
77
|
+
readonly code: CrystallizationIntegrityErrorCode | 'MISSING_BRIEF_SECTION';
|
|
78
78
|
readonly findings: ReadonlyArray<{
|
|
79
79
|
path: string;
|
|
80
80
|
message: string;
|
|
@@ -115,7 +115,7 @@ export interface CrystallizePayload {
|
|
|
115
115
|
/** Optional user decision summary (spec §4.5). */
|
|
116
116
|
user_decision_summary?: string;
|
|
117
117
|
/** Trigger classification (spec §5.4). */
|
|
118
|
-
trigger: CrystallizationEventInput[
|
|
118
|
+
trigger: CrystallizationEventInput['trigger'];
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
121
|
* Minimum bee_release payload the service needs to create a main bee
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { z, ZodError } from
|
|
2
|
-
import { CrystallizationEventSchema, EvidenceBriefSchema
|
|
3
|
-
import { BriefSectionError } from
|
|
4
|
-
import { CRYSTALLIZATION_SCHEMA_VERSION, ensureCrystallizationEventTable, getCrystallizationEvent, listCrystallizationEvents, newCrystallizationId, updateCrystallizationEventStatus
|
|
1
|
+
import { z, ZodError } from 'zod';
|
|
2
|
+
import { CrystallizationEventSchema, EvidenceBriefSchema } from './crystallization-types.js';
|
|
3
|
+
import { BriefSectionError } from './evidence-brief-builder.js';
|
|
4
|
+
import { CRYSTALLIZATION_SCHEMA_VERSION, ensureCrystallizationEventTable, getCrystallizationEvent, listCrystallizationEvents, newCrystallizationId, updateCrystallizationEventStatus } from './crystallization-store.js';
|
|
5
5
|
/**
|
|
6
6
|
* CrystallizationService — spec §5 (post-run crystallization)
|
|
7
7
|
* + §4.5 + §4.7 + §10 RL-2 / RL-3 / RL-7.
|
|
@@ -50,11 +50,11 @@ import { CRYSTALLIZATION_SCHEMA_VERSION, ensureCrystallizationEventTable, getCry
|
|
|
50
50
|
/* Pre-run task gate — AC-4 / RL-2 */
|
|
51
51
|
/* ---------------------------------------------------------------------- */
|
|
52
52
|
export const CRYSTALLIZATION_TASK_STATUSES = [
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
'completed',
|
|
54
|
+
'in_progress',
|
|
55
|
+
'scratch',
|
|
56
|
+
'blocked',
|
|
57
|
+
'failed'
|
|
58
58
|
];
|
|
59
59
|
/**
|
|
60
60
|
* The pre-run task state the service requires. Crystallization is
|
|
@@ -64,22 +64,22 @@ export const CRYSTALLIZATION_TASK_STATUSES = [
|
|
|
64
64
|
*/
|
|
65
65
|
export const CrystallizationTaskStateSchema = z.object({
|
|
66
66
|
task_id: z.string().trim().min(1).max(256),
|
|
67
|
-
task_status: z.literal(
|
|
68
|
-
error: () => "task_status must be 'completed' for crystallization (AC-4 / RL-2)"
|
|
67
|
+
task_status: z.literal('completed', {
|
|
68
|
+
error: () => "task_status must be 'completed' for crystallization (AC-4 / RL-2)"
|
|
69
69
|
}),
|
|
70
70
|
gates_passed: z.literal(true, {
|
|
71
|
-
error: () =>
|
|
71
|
+
error: () => 'gates_passed must be true for crystallization (AC-4 / RL-2)'
|
|
72
72
|
}),
|
|
73
73
|
evidence_collected: z.literal(true, {
|
|
74
|
-
error: () =>
|
|
75
|
-
})
|
|
74
|
+
error: () => 'evidence_collected must be true for crystallization (AC-4 / RL-2)'
|
|
75
|
+
})
|
|
76
76
|
});
|
|
77
77
|
export class CrystallizationIntegrityError extends Error {
|
|
78
78
|
code;
|
|
79
79
|
findings;
|
|
80
80
|
constructor(code, message, findings = []) {
|
|
81
81
|
super(message);
|
|
82
|
-
this.name =
|
|
82
|
+
this.name = 'CrystallizationIntegrityError';
|
|
83
83
|
this.code = code;
|
|
84
84
|
this.findings = findings;
|
|
85
85
|
}
|
|
@@ -99,22 +99,20 @@ export class CrystallizationIntegrityError extends Error {
|
|
|
99
99
|
const BeeNameSchema = z
|
|
100
100
|
.string()
|
|
101
101
|
.trim()
|
|
102
|
-
.min(1,
|
|
102
|
+
.min(1, 'bee_name is required')
|
|
103
103
|
.max(200)
|
|
104
104
|
.regex(/^[a-z0-9][a-z0-9._-]*$/, {
|
|
105
|
-
message:
|
|
105
|
+
message: 'bee_name must be kebab-/snake-case starting with a lowercase letter or digit'
|
|
106
106
|
});
|
|
107
107
|
const BeeCrystallizeInputSchema = z.object({
|
|
108
108
|
bee_name: BeeNameSchema,
|
|
109
|
-
version: z
|
|
110
|
-
|
|
111
|
-
.regex(/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/, {
|
|
112
|
-
message: "version must be a semver string (e.g. 0.1.0)",
|
|
109
|
+
version: z.string().regex(/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/, {
|
|
110
|
+
message: 'version must be a semver string (e.g. 0.1.0)'
|
|
113
111
|
}),
|
|
114
112
|
description: z.string().trim().min(1).max(4000),
|
|
115
113
|
user_intent_raw: z.string().trim().max(4000).optional(),
|
|
116
114
|
parent_version: z.string().trim().max(64).optional(),
|
|
117
|
-
changelog: z.string().trim().max(8000).optional()
|
|
115
|
+
changelog: z.string().trim().max(8000).optional()
|
|
118
116
|
});
|
|
119
117
|
export class CrystallizationService {
|
|
120
118
|
db;
|
|
@@ -170,23 +168,23 @@ export class CrystallizationService {
|
|
|
170
168
|
catch (err) {
|
|
171
169
|
if (err instanceof ZodError) {
|
|
172
170
|
const findings = err.issues.map((i) => ({
|
|
173
|
-
path: i.path.join(
|
|
174
|
-
message: i.message
|
|
171
|
+
path: i.path.join('.'),
|
|
172
|
+
message: i.message
|
|
175
173
|
}));
|
|
176
174
|
const first = err.issues[0];
|
|
177
|
-
throw new CrystallizationIntegrityError(
|
|
175
|
+
throw new CrystallizationIntegrityError('CRYSTALLIZATION_PRE_RUN', `pre-run gate failed: ${first?.message ?? 'invalid task state'}`, findings);
|
|
178
176
|
}
|
|
179
177
|
throw err;
|
|
180
178
|
}
|
|
181
179
|
// Defense in depth — re-assert at the service boundary.
|
|
182
|
-
if (parsed.task_status !==
|
|
180
|
+
if (parsed.task_status !== 'completed' ||
|
|
183
181
|
parsed.gates_passed !== true ||
|
|
184
182
|
parsed.evidence_collected !== true) {
|
|
185
|
-
throw new CrystallizationIntegrityError(
|
|
183
|
+
throw new CrystallizationIntegrityError('CRYSTALLIZATION_PRE_RUN', 'pre-run gate failed: task must be completed with gates_passed=true AND evidence_collected=true (AC-4 / RL-2)', [
|
|
186
184
|
{
|
|
187
|
-
path:
|
|
188
|
-
message: "task_status must equal 'completed' and gates_passed and evidence_collected must both be true"
|
|
189
|
-
}
|
|
185
|
+
path: 'task',
|
|
186
|
+
message: "task_status must equal 'completed' and gates_passed and evidence_collected must both be true"
|
|
187
|
+
}
|
|
190
188
|
]);
|
|
191
189
|
}
|
|
192
190
|
return parsed;
|
|
@@ -235,11 +233,11 @@ export class CrystallizationService {
|
|
|
235
233
|
if (err instanceof ZodError || err instanceof BriefSectionError) {
|
|
236
234
|
const findings = err instanceof ZodError
|
|
237
235
|
? err.issues.map((i) => ({
|
|
238
|
-
path: i.path.join(
|
|
239
|
-
message: i.message
|
|
236
|
+
path: i.path.join('.'),
|
|
237
|
+
message: i.message
|
|
240
238
|
}))
|
|
241
239
|
: err.findings;
|
|
242
|
-
throw new CrystallizationIntegrityError(
|
|
240
|
+
throw new CrystallizationIntegrityError('MISSING_BRIEF_SECTION', 'evidence_brief is missing at least one of the 4 required sections (spec §4.7 / RL-7)', [...findings]);
|
|
243
241
|
}
|
|
244
242
|
throw err;
|
|
245
243
|
}
|
|
@@ -252,14 +250,16 @@ export class CrystallizationService {
|
|
|
252
250
|
// account the LLM authored). We validate the shape WITHOUT
|
|
253
251
|
// bee_release_id (which is filled in by the bee insert below),
|
|
254
252
|
// then validate the final tuple after the SQL writes.
|
|
255
|
-
const relationInputShape = this.opts.loopBeeRelationSchema
|
|
253
|
+
const relationInputShape = this.opts.loopBeeRelationSchema
|
|
254
|
+
.omit({
|
|
256
255
|
id: true,
|
|
257
256
|
created_at: true,
|
|
258
|
-
bee_release_id: true
|
|
259
|
-
})
|
|
257
|
+
bee_release_id: true
|
|
258
|
+
})
|
|
259
|
+
.parse({
|
|
260
260
|
loop_release_id: loopRow.id,
|
|
261
|
-
role:
|
|
262
|
-
reason: payload.bee_relation_reason
|
|
261
|
+
role: 'main',
|
|
262
|
+
reason: payload.bee_relation_reason
|
|
263
263
|
});
|
|
264
264
|
const eventId = newCrystallizationId();
|
|
265
265
|
const eventCreatedAt = new Date().toISOString();
|
|
@@ -280,7 +280,7 @@ export class CrystallizationService {
|
|
|
280
280
|
user_intent_raw, description, parent_version, changelog,
|
|
281
281
|
shareable, desktop_visible
|
|
282
282
|
) VALUES (?, ?, 'user', ?, ?, ?, ?, ?, ?, 1, 1)`);
|
|
283
|
-
const beeInfo = beeInsert.run(beeRow.bee_name, beeRow.version, eventCreatedAt,
|
|
283
|
+
const beeInfo = beeInsert.run(beeRow.bee_name, beeRow.version, eventCreatedAt, 'llm', beeRow.user_intent_raw ?? null, beeRow.description, beeRow.parent_version ?? null, beeRow.changelog ?? null);
|
|
284
284
|
beeReleaseId = Number(beeInfo.lastInsertRowid);
|
|
285
285
|
// Update the bee_release_pointer row so the latest version is
|
|
286
286
|
// discoverable via list tooling.
|
|
@@ -296,18 +296,20 @@ export class CrystallizationService {
|
|
|
296
296
|
entrypoint_preamble, promotion, min_cycles,
|
|
297
297
|
requires_human, requires_smoke, retire_on_misses
|
|
298
298
|
) VALUES (?, ?, ?, '[]', '', 'candidate', NULL, 0, 0, NULL)`)
|
|
299
|
-
.run(beeReleaseId,
|
|
299
|
+
.run(beeReleaseId, 'peaks.bee/1', beeRow.description);
|
|
300
300
|
// 4. Insert the loop_bee_relation row (FKs now valid). Re-parse
|
|
301
301
|
// through the input schema so the bee_release_id is validated
|
|
302
302
|
// too — defense in depth. `id` is autoincrement (not in input).
|
|
303
|
-
const fullRelation = this.opts.loopBeeRelationSchema
|
|
303
|
+
const fullRelation = this.opts.loopBeeRelationSchema
|
|
304
|
+
.omit({
|
|
304
305
|
id: true,
|
|
305
|
-
created_at: true
|
|
306
|
-
})
|
|
306
|
+
created_at: true
|
|
307
|
+
})
|
|
308
|
+
.parse({
|
|
307
309
|
loop_release_id: relationInputShape.loop_release_id,
|
|
308
310
|
bee_release_id: beeReleaseId,
|
|
309
311
|
role: relationInputShape.role,
|
|
310
|
-
reason: relationInputShape.reason
|
|
312
|
+
reason: relationInputShape.reason
|
|
311
313
|
});
|
|
312
314
|
const relationRow = this.opts.insertLoopBeeRelation(this.db, fullRelation);
|
|
313
315
|
relationId = relationRow.id;
|
|
@@ -318,13 +320,13 @@ export class CrystallizationService {
|
|
|
318
320
|
evidence_brief: brief,
|
|
319
321
|
evidence_bullets: payload.evidence_bullets ?? [],
|
|
320
322
|
source_trace_pointers: payload.source_trace_pointers ?? [],
|
|
321
|
-
evaluator_summary: payload.evaluator_summary ??
|
|
322
|
-
user_decision_summary: payload.user_decision_summary ??
|
|
323
|
+
evaluator_summary: payload.evaluator_summary ?? '',
|
|
324
|
+
user_decision_summary: payload.user_decision_summary ?? '',
|
|
323
325
|
created_loop_release_id: loopReleaseId,
|
|
324
326
|
created_bee_release_id: beeReleaseId,
|
|
325
327
|
// updated_* are not set on a CREATE crystallization; they will
|
|
326
328
|
// be set on future UPDATE crystallizations.
|
|
327
|
-
lifecycle_status:
|
|
329
|
+
lifecycle_status: 'candidate'
|
|
328
330
|
};
|
|
329
331
|
const persisted = insertCrystallizationEventRaw(this.db, eventInput, eventId, eventCreatedAt);
|
|
330
332
|
eventPersistedId = persisted.id;
|
|
@@ -336,16 +338,15 @@ export class CrystallizationService {
|
|
|
336
338
|
// Map known SQLite constraint errors to friendlier codes; raise
|
|
337
339
|
// CrystallizationIntegrityError so the CLI can render the JSON
|
|
338
340
|
// envelope.
|
|
339
|
-
if (err instanceof CrystallizationIntegrityError ||
|
|
340
|
-
err instanceof BriefSectionError) {
|
|
341
|
+
if (err instanceof CrystallizationIntegrityError || err instanceof BriefSectionError) {
|
|
341
342
|
throw err;
|
|
342
343
|
}
|
|
343
344
|
const message = err instanceof Error ? err.message : String(err);
|
|
344
|
-
throw new CrystallizationIntegrityError(
|
|
345
|
+
throw new CrystallizationIntegrityError('CRYSTALLIZATION_TX_FAILED', `crystallization transaction failed: ${message}`, [
|
|
345
346
|
{
|
|
346
|
-
path:
|
|
347
|
-
message:
|
|
348
|
-
}
|
|
347
|
+
path: 'tx',
|
|
348
|
+
message: 'transaction rolled back; verify loop/bee ids are unique and FK targets exist'
|
|
349
|
+
}
|
|
349
350
|
]);
|
|
350
351
|
}
|
|
351
352
|
// Silence the unused-variable lint; the parsed task is the source
|
|
@@ -356,7 +357,7 @@ export class CrystallizationService {
|
|
|
356
357
|
bee_release_id: beeReleaseId,
|
|
357
358
|
loop_bee_relation_id: relationId,
|
|
358
359
|
crystallization_event_id: eventPersistedId,
|
|
359
|
-
loop_release_lifecycle_status:
|
|
360
|
+
loop_release_lifecycle_status: 'candidate'
|
|
360
361
|
};
|
|
361
362
|
}
|
|
362
363
|
}
|
|
@@ -370,7 +371,7 @@ function insertCrystallizationEventRaw(db, row, id, createdAt) {
|
|
|
370
371
|
...row,
|
|
371
372
|
id,
|
|
372
373
|
schema_version: CRYSTALLIZATION_SCHEMA_VERSION,
|
|
373
|
-
created_at: createdAt
|
|
374
|
+
created_at: createdAt
|
|
374
375
|
});
|
|
375
376
|
const stmt = db.prepare(`INSERT INTO crystallization_event (
|
|
376
377
|
id, trigger, evidence_brief_json, evidence_bullets_json,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type Database from
|
|
2
|
-
import { type CrystallizationEvent, type CrystallizationEventInput, type CrystallizationEventStatus } from
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import { type CrystallizationEvent, type CrystallizationEventInput, type CrystallizationEventStatus } from './crystallization-types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Low-level SQLite access for the `crystallization_event` table.
|
|
5
5
|
* The migration is registered with the existing `openStateDb()`
|