@cleocode/core 2026.5.134 → 2026.6.1
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/binaries/README.md +49 -27
- package/dist/agents/{agent-registry.d.ts → agent-capacity-tracker.d.ts} +2 -2
- package/dist/agents/agent-capacity-tracker.d.ts.map +1 -0
- package/dist/agents/{agent-registry.js → agent-capacity-tracker.js} +2 -2
- package/dist/agents/agent-capacity-tracker.js.map +1 -0
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +4 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/seed-install.d.ts +1 -1
- package/dist/agents/seed-install.d.ts.map +1 -1
- package/dist/agents/seed-install.js +42 -36
- package/dist/agents/seed-install.js.map +1 -1
- package/dist/caamp-export.d.ts +18 -0
- package/dist/caamp-export.d.ts.map +1 -0
- package/dist/caamp-export.js +18 -0
- package/dist/caamp-export.js.map +1 -0
- package/dist/conduit/http-transport.d.ts +7 -13
- package/dist/conduit/http-transport.d.ts.map +1 -1
- package/dist/conduit/http-transport.js +12 -59
- package/dist/conduit/http-transport.js.map +1 -1
- package/dist/conduit/local-transport.d.ts +1 -1
- package/dist/conduit/local-transport.d.ts.map +1 -1
- package/dist/conduit/local-transport.js +69 -43
- package/dist/conduit/local-transport.js.map +1 -1
- package/dist/dispatch/mutate-projection.d.ts.map +1 -1
- package/dist/dispatch/mutate-projection.js +11 -0
- package/dist/dispatch/mutate-projection.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +7 -0
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +5 -0
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/export-document.js +40526 -281
- package/dist/docs/export-document.js.map +6 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +12 -7
- package/dist/docs/supersede.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +10 -9
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/git-shim-export.d.ts +18 -0
- package/dist/git-shim-export.d.ts.map +1 -0
- package/dist/git-shim-export.js +18 -0
- package/dist/git-shim-export.js.map +1 -0
- package/dist/hooks/payload-schemas.d.ts +2 -2
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +39 -32
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +11 -3
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +14 -5
- package/dist/internal.js.map +1 -1
- package/dist/lafs-export.d.ts +18 -0
- package/dist/lafs-export.d.ts.map +1 -0
- package/dist/lafs-export.js +18 -0
- package/dist/lafs-export.js.map +1 -0
- package/dist/lifecycle/effective-stage.js +1 -1
- package/dist/lifecycle/index.js +1 -1
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/rollup.js +1 -1
- package/dist/llm/credential-pool.d.ts +17 -0
- package/dist/llm/credential-pool.d.ts.map +1 -1
- package/dist/llm/credential-pool.js +40 -1
- package/dist/llm/credential-pool.js.map +1 -1
- package/dist/llm/plugin-facade.d.ts.map +1 -1
- package/dist/llm/plugin-facade.js +43392 -354
- package/dist/llm/plugin-facade.js.map +6 -1
- package/dist/llm/role-executor.d.ts +8 -0
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +96 -4
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +56 -1
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/transports/codex-oauth-headers.d.ts +51 -0
- package/dist/llm/transports/codex-oauth-headers.d.ts.map +1 -0
- package/dist/llm/transports/codex-oauth-headers.js +89 -0
- package/dist/llm/transports/codex-oauth-headers.js.map +1 -0
- package/dist/memory/claude-mem-migration.d.ts.map +1 -1
- package/dist/memory/claude-mem-migration.js +1 -3
- package/dist/memory/claude-mem-migration.js.map +1 -1
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +77 -23
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +12 -6
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/learnings.d.ts +2 -2
- package/dist/memory/nexus-plasticity.d.ts +21 -9
- package/dist/memory/nexus-plasticity.d.ts.map +1 -1
- package/dist/memory/nexus-plasticity.js +44 -22
- package/dist/memory/nexus-plasticity.js.map +1 -1
- package/dist/memory/patterns.d.ts +2 -2
- package/dist/memory/redaction.d.ts +19 -3
- package/dist/memory/redaction.d.ts.map +1 -1
- package/dist/memory/redaction.js +64 -129
- package/dist/memory/redaction.js.map +6 -1
- package/dist/metrics/token-service.d.ts +8 -2
- package/dist/metrics/token-service.d.ts.map +1 -1
- package/dist/metrics/token-service.js +1 -1
- package/dist/metrics/token-service.js.map +1 -1
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +6 -8
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/api-extractors/http-extractor.d.ts.map +1 -1
- package/dist/nexus/api-extractors/http-extractor.js +3 -3
- package/dist/nexus/api-extractors/http-extractor.js.map +1 -1
- package/dist/nexus/clusters.d.ts.map +1 -1
- package/dist/nexus/clusters.js +3 -2
- package/dist/nexus/clusters.js.map +1 -1
- package/dist/nexus/context.d.ts.map +1 -1
- package/dist/nexus/context.js +10 -16
- package/dist/nexus/context.js.map +1 -1
- package/dist/nexus/diff.d.ts.map +1 -1
- package/dist/nexus/diff.js +6 -4
- package/dist/nexus/diff.js.map +1 -1
- package/dist/nexus/export.d.ts.map +1 -1
- package/dist/nexus/export.js +7 -4
- package/dist/nexus/export.js.map +1 -1
- package/dist/nexus/flows.d.ts.map +1 -1
- package/dist/nexus/flows.js +3 -1
- package/dist/nexus/flows.js.map +1 -1
- package/dist/nexus/impact.d.ts +1 -1
- package/dist/nexus/impact.d.ts.map +1 -1
- package/dist/nexus/impact.js +31 -17
- package/dist/nexus/impact.js.map +1 -1
- package/dist/nexus/living-brain.d.ts.map +1 -1
- package/dist/nexus/living-brain.js +27 -15
- package/dist/nexus/living-brain.js.map +1 -1
- package/dist/nexus/nexus-bridge.d.ts.map +1 -1
- package/dist/nexus/nexus-bridge.js +28 -29
- package/dist/nexus/nexus-bridge.js.map +1 -1
- package/dist/nexus/plasticity-queries.d.ts +4 -2
- package/dist/nexus/plasticity-queries.d.ts.map +1 -1
- package/dist/nexus/plasticity-queries.js +27 -15
- package/dist/nexus/plasticity-queries.js.map +1 -1
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +6 -2
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +65 -30
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/route-analysis.d.ts +3 -2
- package/dist/nexus/route-analysis.d.ts.map +1 -1
- package/dist/nexus/route-analysis.js +11 -10
- package/dist/nexus/route-analysis.js.map +1 -1
- package/dist/nexus/sigil.d.ts.map +1 -1
- package/dist/nexus/sigil.js +60 -13
- package/dist/nexus/sigil.js.map +1 -1
- package/dist/nexus/user-profile.d.ts +2 -1
- package/dist/nexus/user-profile.d.ts.map +1 -1
- package/dist/nexus/user-profile.js +8 -4
- package/dist/nexus/user-profile.js.map +1 -1
- package/dist/orchestrate/index.d.ts +1 -1
- package/dist/orchestrate/index.d.ts.map +1 -1
- package/dist/orchestrate/index.js +1 -1
- package/dist/orchestrate/index.js.map +1 -1
- package/dist/orchestrate/plan.d.ts +3 -3
- package/dist/orchestrate/plan.d.ts.map +1 -1
- package/dist/orchestrate/plan.js +7 -7
- package/dist/orchestrate/plan.js.map +1 -1
- package/dist/orchestrate/spawn-ops.js +2 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/classify.d.ts +2 -2
- package/dist/orchestration/classify.js +3 -3
- package/dist/orchestration/classify.js.map +1 -1
- package/dist/orchestration/validate-spawn.d.ts.map +1 -1
- package/dist/orchestration/validate-spawn.js +5 -5
- package/dist/orchestration/validate-spawn.js.map +1 -1
- package/dist/paths-export.d.ts +18 -0
- package/dist/paths-export.d.ts.map +1 -0
- package/dist/paths-export.js +18 -0
- package/dist/paths-export.js.map +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +24 -11
- package/dist/paths.js.map +1 -1
- package/dist/playbooks/index.d.ts +1 -0
- package/dist/playbooks/index.d.ts.map +1 -1
- package/dist/playbooks/index.js +4 -0
- package/dist/playbooks/index.js.map +1 -1
- package/dist/playbooks/skill-node-executor.d.ts +155 -0
- package/dist/playbooks/skill-node-executor.d.ts.map +1 -0
- package/dist/playbooks/skill-node-executor.js +156 -0
- package/dist/playbooks/skill-node-executor.js.map +1 -0
- package/dist/repair.d.ts +3 -7
- package/dist/repair.d.ts.map +1 -1
- package/dist/repair.js +5 -43
- package/dist/repair.js.map +1 -1
- package/dist/sagas/migrate-containment.js +7 -7
- package/dist/sagas/migrate-containment.js.map +1 -1
- package/dist/scaffold/ensure-dirs.d.ts +8 -2
- package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
- package/dist/scaffold/ensure-dirs.js +24 -11
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/scaffold/project-detection.d.ts +5 -1
- package/dist/scaffold/project-detection.d.ts.map +1 -1
- package/dist/scaffold/project-detection.js +9 -5
- package/dist/scaffold/project-detection.js.map +1 -1
- package/dist/sentient/hygiene-scan.js +6 -6
- package/dist/sentient/hygiene-scan.js.map +1 -1
- package/dist/sentient/proposal-dedup.js +2 -2
- package/dist/sentient/proposal-rate-limiter.js +1 -1
- package/dist/sentient/propose-tick.js +5 -5
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/stage-drift-tick.js +3 -3
- package/dist/sentient/stage-drift-tick.js.map +1 -1
- package/dist/sequence/index.d.ts.map +1 -1
- package/dist/sequence/index.js +6 -2
- package/dist/sequence/index.js.map +1 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +18 -4
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/setup/sections/verification.js +2 -2
- package/dist/setup/sections/verification.js.map +1 -1
- package/dist/shutdown.d.ts +91 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +120 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/skills/index.d.ts +2 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/skill-executor-adapter.d.ts +136 -0
- package/dist/skills/skill-executor-adapter.d.ts.map +1 -0
- package/dist/skills/skill-executor-adapter.js +137 -0
- package/dist/skills/skill-executor-adapter.js.map +1 -0
- package/dist/skills/usage-recorder.d.ts.map +1 -1
- package/dist/skills/usage-recorder.js +30 -0
- package/dist/skills/usage-recorder.js.map +1 -1
- package/dist/skills-export.d.ts +23 -0
- package/dist/skills-export.d.ts.map +1 -0
- package/dist/skills-export.js +23 -0
- package/dist/skills-export.js.map +1 -0
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +8 -3
- package/dist/stats/index.js.map +1 -1
- package/dist/store/agent-doctor.d.ts +3 -3
- package/dist/store/agent-doctor.d.ts.map +1 -1
- package/dist/store/agent-doctor.js +18 -13
- package/dist/store/agent-doctor.js.map +1 -1
- package/dist/store/agent-install.d.ts +6 -5
- package/dist/store/agent-install.d.ts.map +1 -1
- package/dist/store/agent-install.js +20 -16
- package/dist/store/agent-install.js.map +1 -1
- package/dist/store/agent-registry-accessor.d.ts +66 -28
- package/dist/store/agent-registry-accessor.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.js +248 -167
- package/dist/store/agent-registry-accessor.js.map +1 -1
- package/dist/store/agent-registry-store.d.ts +242 -0
- package/dist/store/agent-registry-store.d.ts.map +1 -0
- package/dist/store/agent-registry-store.js +501 -0
- package/dist/store/agent-registry-store.js.map +1 -0
- package/dist/store/agent-resolver.d.ts +8 -8
- package/dist/store/agent-resolver.d.ts.map +1 -1
- package/dist/store/agent-resolver.js +19 -17
- package/dist/store/agent-resolver.js.map +1 -1
- package/dist/store/backup-pack.d.ts.map +1 -1
- package/dist/store/backup-pack.js +24 -8
- package/dist/store/backup-pack.js.map +1 -1
- package/dist/store/conduit-sqlite.d.ts +181 -74
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +307 -528
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/cross-db-cleanup.d.ts +5 -5
- package/dist/store/cross-db-cleanup.d.ts.map +1 -1
- package/dist/store/cross-db-cleanup.js +12 -10
- package/dist/store/cross-db-cleanup.js.map +1 -1
- package/dist/store/data-accessor.d.ts +4 -4
- package/dist/store/data-accessor.js +5 -5
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/data-safety-central.d.ts +83 -1
- package/dist/store/data-safety-central.d.ts.map +1 -1
- package/dist/store/data-safety-central.js +257 -0
- package/dist/store/data-safety-central.js.map +1 -1
- package/dist/store/db-helpers.d.ts +8 -2
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +6 -2
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +46 -4
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +103 -9
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/__fixtures__/representative-fixture.d.ts +116 -0
- package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -0
- package/dist/store/exodus/__fixtures__/representative-fixture.js +274 -0
- package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -0
- package/dist/store/exodus/index.d.ts +3 -1
- package/dist/store/exodus/index.d.ts.map +1 -1
- package/dist/store/exodus/index.js +3 -1
- package/dist/store/exodus/index.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts +120 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +923 -119
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +189 -0
- package/dist/store/exodus/on-open.d.ts.map +1 -0
- package/dist/store/exodus/on-open.js +464 -0
- package/dist/store/exodus/on-open.js.map +1 -0
- package/dist/store/exodus/table-name-map.d.ts +173 -0
- package/dist/store/exodus/table-name-map.d.ts.map +1 -0
- package/dist/store/exodus/table-name-map.js +660 -0
- package/dist/store/exodus/table-name-map.js.map +1 -0
- package/dist/store/exodus/verify-migration.d.ts +72 -0
- package/dist/store/exodus/verify-migration.d.ts.map +1 -0
- package/dist/store/exodus/verify-migration.js +678 -0
- package/dist/store/exodus/verify-migration.js.map +1 -0
- package/dist/store/exodus/verify.d.ts +32 -8
- package/dist/store/exodus/verify.d.ts.map +1 -1
- package/dist/store/exodus/verify.js +48 -142
- package/dist/store/exodus/verify.js.map +1 -1
- package/dist/store/index.d.ts +2 -3
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +2 -3
- package/dist/store/index.js.map +1 -1
- package/dist/store/memory-accessor.d.ts +31 -0
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js +38 -0
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/memory-sqlite.d.ts +86 -13
- package/dist/store/memory-sqlite.d.ts.map +1 -1
- package/dist/store/memory-sqlite.js +326 -528
- package/dist/store/memory-sqlite.js.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.d.ts +1 -1
- package/dist/store/migrate-signaldock-to-conduit.d.ts.map +1 -1
- package/dist/store/migrate-signaldock-to-conduit.js +126 -35
- package/dist/store/migrate-signaldock-to-conduit.js.map +1 -1
- package/dist/store/migration-manager.d.ts +49 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +167 -67
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/migration-sqlite.d.ts +1 -1
- package/dist/store/migration-sqlite.d.ts.map +1 -1
- package/dist/store/migration-sqlite.js +32 -3
- package/dist/store/migration-sqlite.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts +152 -29
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +496 -177
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +32 -32
- package/dist/store/open-cleo-db.d.ts +37 -40
- package/dist/store/open-cleo-db.d.ts.map +1 -1
- package/dist/store/open-cleo-db.js +76 -153
- package/dist/store/open-cleo-db.js.map +1 -1
- package/dist/store/role-accessors-impl.d.ts +4 -4
- package/dist/store/role-accessors-impl.d.ts.map +1 -1
- package/dist/store/role-accessors-impl.js +18 -15
- package/dist/store/role-accessors-impl.js.map +1 -1
- package/dist/store/schema/{signaldock-schema.d.ts → agent-registry-schema.d.ts} +15 -5
- package/dist/store/schema/agent-registry-schema.d.ts.map +1 -0
- package/dist/store/schema/{signaldock-schema.js → agent-registry-schema.js} +15 -5
- package/dist/store/schema/agent-registry-schema.js.map +1 -0
- package/dist/store/schema/agent-schema.d.ts +1 -1
- package/dist/store/schema/agent-schema.js +4 -4
- package/dist/store/schema/agent-schema.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/audit.d.ts +15 -5
- package/dist/store/schema/audit.d.ts.map +1 -1
- package/dist/store/schema/audit.js +12 -2
- package/dist/store/schema/audit.js.map +1 -1
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/{signaldock.d.ts → agent-registry.d.ts} +277 -271
- package/dist/store/schema/cleo-global/agent-registry.d.ts.map +1 -0
- package/dist/store/schema/cleo-global/{signaldock.js → agent-registry.js} +136 -125
- package/dist/store/schema/cleo-global/agent-registry.js.map +1 -0
- package/dist/store/schema/cleo-global/index.d.ts +29 -22
- package/dist/store/schema/cleo-global/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/index.js +29 -22
- package/dist/store/schema/cleo-global/index.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +36 -1034
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +32 -337
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +16 -0
- package/dist/store/schema/cleo-global/skills.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/skills.js +11 -0
- package/dist/store/schema/cleo-global/skills.js.map +1 -1
- package/dist/store/schema/{cleo-project → cleo-global}/telemetry.d.ts +33 -17
- package/dist/store/schema/cleo-global/telemetry.d.ts.map +1 -0
- package/dist/store/schema/{cleo-project → cleo-global}/telemetry.js +30 -18
- package/dist/store/schema/cleo-global/telemetry.js.map +1 -0
- package/dist/store/schema/cleo-project/audit.d.ts +8 -8
- package/dist/store/schema/cleo-project/audit.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/audit.js +2 -6
- package/dist/store/schema/cleo-project/audit.js.map +1 -1
- package/dist/store/schema/cleo-project/docs.d.ts +1 -1
- package/dist/store/schema/cleo-project/index.d.ts +29 -12
- package/dist/store/schema/cleo-project/index.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/index.js +29 -12
- package/dist/store/schema/cleo-project/index.js.map +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
- package/dist/store/schema/cleo-project/nexus-graph.d.ts +1067 -0
- package/dist/store/schema/cleo-project/nexus-graph.d.ts.map +1 -0
- package/dist/store/schema/cleo-project/nexus-graph.js +407 -0
- package/dist/store/schema/cleo-project/nexus-graph.js.map +1 -0
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts +385 -0
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -0
- package/dist/store/schema/cleo-project/provenance-orphans.js +142 -0
- package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -0
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
- package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +3 -3
- package/dist/store/schema/cleo-shared/brain.d.ts +711 -494
- package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
- package/dist/store/schema/cleo-shared/brain.js +215 -134
- package/dist/store/schema/cleo-shared/brain.js.map +1 -1
- package/dist/store/schema/conduit-schema.d.ts +63 -51
- package/dist/store/schema/conduit-schema.d.ts.map +1 -1
- package/dist/store/schema/conduit-schema.js +23 -11
- package/dist/store/schema/conduit-schema.js.map +1 -1
- package/dist/store/schema/goal.d.ts +3 -2
- package/dist/store/schema/goal.d.ts.map +1 -1
- package/dist/store/schema/goal.js +3 -2
- package/dist/store/schema/goal.js.map +1 -1
- package/dist/store/schema/index.d.ts +1 -0
- package/dist/store/schema/index.d.ts.map +1 -1
- package/dist/store/schema/index.js +1 -0
- package/dist/store/schema/index.js.map +1 -1
- package/dist/store/schema/lifecycle.d.ts +2 -2
- package/dist/store/schema/memory-schema.d.ts +2 -2
- package/dist/store/schema/nexus-schema.d.ts +174 -115
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +175 -55
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/schema/provenance/releases.d.ts +1 -1
- package/dist/store/schema/schema-utils.d.ts +78 -0
- package/dist/store/schema/schema-utils.d.ts.map +1 -0
- package/dist/store/schema/schema-utils.js +49 -0
- package/dist/store/schema/schema-utils.js.map +1 -0
- package/dist/store/schema/skills-schema.d.ts +81 -44
- package/dist/store/schema/skills-schema.d.ts.map +1 -1
- package/dist/store/schema/skills-schema.js +49 -16
- package/dist/store/schema/skills-schema.js.map +1 -1
- package/dist/store/schema/tasks.d.ts +3 -3
- package/dist/store/skills-db.d.ts +90 -50
- package/dist/store/skills-db.d.ts.map +1 -1
- package/dist/store/skills-db.js +132 -146
- package/dist/store/skills-db.js.map +1 -1
- package/dist/store/sqlite-backup.d.ts +2 -2
- package/dist/store/sqlite-backup.d.ts.map +1 -1
- package/dist/store/sqlite-backup.js +11 -10
- package/dist/store/sqlite-backup.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +25 -18
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +72 -12
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +153 -89
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +4 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +60 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts +2 -2
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +10 -5
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +17 -6
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +8 -8
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +241 -208
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +11 -6
- package/dist/system/health.js.map +1 -1
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +58 -12
- package/dist/system/project-health.js.map +1 -1
- package/dist/tasks/add.d.ts +8 -0
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +101 -0
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/cancelled-child-waiver-audit.d.ts +47 -0
- package/dist/tasks/cancelled-child-waiver-audit.d.ts.map +1 -0
- package/dist/tasks/cancelled-child-waiver-audit.js +34 -0
- package/dist/tasks/cancelled-child-waiver-audit.js.map +1 -0
- package/dist/tasks/complete.d.ts +22 -2
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +71 -6
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/compute-task-view.js +1 -1
- package/dist/tasks/session-scope.d.ts +5 -0
- package/dist/tasks/session-scope.d.ts.map +1 -1
- package/dist/tasks/session-scope.js +4 -0
- package/dist/tasks/session-scope.js.map +1 -1
- package/dist/tools/guard.d.ts +71 -1
- package/dist/tools/guard.d.ts.map +1 -1
- package/dist/tools/guard.js +73 -1
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/index.d.ts +21 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +25 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +22 -13
- package/dist/upgrade.js.map +1 -1
- package/dist/workgraph/containment.js +18 -18
- package/dist/workgraph/relations.js +2 -2
- package/dist/worktree/list.d.ts +1 -1
- package/dist/worktree/list.d.ts.map +1 -1
- package/dist/worktree/list.js +19 -21
- package/dist/worktree/list.js.map +1 -1
- package/dist/worktree-export.d.ts +18 -0
- package/dist/worktree-export.d.ts.map +1 -0
- package/dist/worktree-export.js +18 -0
- package/dist/worktree-export.js.map +1 -0
- package/migrations/drizzle-agent-registry/20260412000000_initial-global-agent-registry/migration.sql +29 -0
- package/migrations/drizzle-brain/20260601000001_t11522-brain-task-observations/migration.sql +28 -0
- package/migrations/drizzle-brain/20260601000002_t11522-inline-only-brain-tables/migration.sql +75 -0
- package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/migration.sql +49 -144
- package/migrations/drizzle-cleo-global/20260531000001_t11363-consolidation-cleo-global/snapshot.json +8 -8
- package/migrations/drizzle-cleo-global/20260531000002_t11546-brain-usage-log/migration.sql +16 -0
- package/migrations/drizzle-cleo-global/20260601000001_t11544-skills-usage-project-id/migration.sql +12 -0
- package/migrations/drizzle-cleo-global/20260602000001_t11622-agent-registry-rename/migration.sql +80 -0
- package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/migration.sql +26 -167
- package/migrations/drizzle-cleo-project/20260531000001_t11363-consolidation-cleo-project/snapshot.json +8 -8
- package/migrations/drizzle-cleo-project/20260531000002_t11546-brain-usage-log/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260601000001_t11549-agent-credentials-brain-release-links/migration.sql +49 -0
- package/migrations/drizzle-cleo-project/20260601000002_t11538-project-nexus-graph/migration.sql +140 -0
- package/migrations/drizzle-cleo-project/20260602000002_t11649-token-usage-transport-mcp/migration.sql +146 -0
- package/migrations/drizzle-conduit/20260601000003_t11523-conduit-inline-schema/migration.sql +82 -0
- package/migrations/drizzle-nexus/20260421200001_t1165-baseline-reset/migration.sql +26 -8
- package/migrations/drizzle-nexus/20260601000001_t11545-nexus-relation-weights-partition/migration.sql +97 -0
- package/package.json +45 -13
- package/scripts/install-supervisor-binary.mjs +50 -201
- package/scripts/napi-binary-picker.mjs +267 -0
- package/dist/agents/agent-registry.d.ts.map +0 -1
- package/dist/agents/agent-registry.js.map +0 -1
- package/dist/store/data-safety.d.ts +0 -92
- package/dist/store/data-safety.d.ts.map +0 -1
- package/dist/store/data-safety.js +0 -274
- package/dist/store/data-safety.js.map +0 -1
- package/dist/store/schema/cleo-global/signaldock.d.ts.map +0 -1
- package/dist/store/schema/cleo-global/signaldock.js.map +0 -1
- package/dist/store/schema/cleo-project/telemetry.d.ts.map +0 -1
- package/dist/store/schema/cleo-project/telemetry.js.map +0 -1
- package/dist/store/schema/signaldock-schema.d.ts.map +0 -1
- package/dist/store/schema/signaldock-schema.js.map +0 -1
- package/dist/store/signaldock-sqlite.d.ts +0 -173
- package/dist/store/signaldock-sqlite.d.ts.map +0 -1
- package/dist/store/signaldock-sqlite.js +0 -445
- package/dist/store/signaldock-sqlite.js.map +0 -1
- package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -46
- package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +0 -49
- package/migrations/drizzle-nexus/20260415000001_t622-project-registry-paths/migration.sql +0 -12
- package/migrations/drizzle-nexus/20260419000001_t998-nexus-plasticity/migration.sql +0 -13
- package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/migration.sql +0 -16
- package/migrations/drizzle-nexus/20260423052640_t1077-add-user-profile-table/snapshot.json +0 -1531
- package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/migration.sql +0 -13
- package/migrations/drizzle-nexus/20260424140538_t1148-add-sigils-table/snapshot.json +0 -1652
- package/migrations/drizzle-nexus/20260504000001_t1839-fts5-nexus-symbols/migration.sql +0 -68
- package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/migration.sql +0 -20
- package/migrations/drizzle-nexus/20260507135519_t9163-nexus-is-external/snapshot.json +0 -1652
- package/migrations/drizzle-nexus/20260526222449_t11025-project-id-aliases/migration.sql +0 -16
- package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/migration.sql +0 -209
- package/migrations/drizzle-signaldock/20260412000000_initial-global-signaldock/snapshot.json +0 -2060
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-migration.js","sourceRoot":"","sources":["../../../src/store/exodus/verify-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,31 +4,55 @@
|
|
|
4
4
|
* `runExodusVerify()` checks equivalence between source legacy DBs and the
|
|
5
5
|
* consolidated dual-scope `cleo.db` after a migration.
|
|
6
6
|
*
|
|
7
|
-
* ##
|
|
7
|
+
* ## DRY — built on the reusable CORE primitive (T11551 AC2)
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The row-count parity, name-mapping, rowid-safe ordering, and
|
|
10
|
+
* column-intersection content-checksum logic that the exodus campaign hardened
|
|
11
|
+
* (T11531/32/33) now lives in the generic {@link verifyMigration} primitive
|
|
12
|
+
* (`./verify-migration.ts`). `runExodusVerify` DELEGATES to that primitive and
|
|
13
|
+
* adapts the {@link VerifyMigrationResult} into the exodus-specific
|
|
14
|
+
* {@link ExodusVerifyResult} shape (which keys tables by `tableName`).
|
|
15
|
+
*
|
|
16
|
+
* `verifyMigration` additionally surfaces a `PRAGMA foreign_key_check` result
|
|
17
|
+
* and an enum/type-drift report — both of which fold into the exodus `ok`
|
|
18
|
+
* verdict and `error` string here, so a referential orphan or an un-normalised
|
|
19
|
+
* enum value now FAILS `cleo exodus verify` rather than passing silently.
|
|
20
|
+
*
|
|
21
|
+
* ## FALSE-PASS guard (T11531, preserved by the primitive)
|
|
22
|
+
*
|
|
23
|
+
* The primitive always populates `error` when `ok === false`, so any caller
|
|
24
|
+
* checking only `result.error` still sees the failure.
|
|
13
25
|
*
|
|
14
26
|
* @task T11248 (E5 · AC7 · SG-DB-SUBSTRATE-V2)
|
|
27
|
+
* @task T11531 (verify hardening — parity gate)
|
|
28
|
+
* @task T11532 (P0 rowid crash + name-mapping + explicit skip for virtual tables)
|
|
29
|
+
* @task T11533 (P0 nexus_nodes hash-drift fix — column-intersection digest)
|
|
30
|
+
* @task T11551 (DHQ-045 — delegate parity to reusable CORE verifyMigration())
|
|
15
31
|
* @saga T11242
|
|
16
32
|
*/
|
|
17
33
|
import type { ExodusVerifyResult, LegacyDbDescriptor } from './types.js';
|
|
18
34
|
/**
|
|
19
35
|
* Run equivalence verification after an exodus migration.
|
|
20
36
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
37
|
+
* Thin adapter over {@link verifyMigration}: it forwards the source descriptors
|
|
38
|
+
* and consolidated target paths to the generic primitive, then re-shapes the
|
|
39
|
+
* per-table parity entries into the exodus {@link ExodusVerifyResult} contract
|
|
40
|
+
* (keyed by `tableName`). The primitive's foreign-key and enum-drift checks are
|
|
41
|
+
* already reflected in `result.ok` and `result.error`.
|
|
23
42
|
*
|
|
24
43
|
* @param sources - Legacy source descriptors (from `buildExodusPlan()`).
|
|
25
44
|
* @param projectDbPath - Absolute path to the consolidated project `cleo.db`.
|
|
26
45
|
* @param globalDbPath - Absolute path to the consolidated global `cleo.db`.
|
|
27
46
|
* @param onProgress - Optional progress callback.
|
|
28
47
|
*
|
|
29
|
-
* @returns {@link ExodusVerifyResult}
|
|
48
|
+
* @returns {@link ExodusVerifyResult} — `ok: false` with `error` populated when
|
|
49
|
+
* any data-bearing table has mismatched counts/content, any FK orphan exists,
|
|
50
|
+
* or any enum/type drift is detected.
|
|
30
51
|
*
|
|
31
52
|
* @task T11248 (AC7)
|
|
53
|
+
* @task T11531 (parity gate hardening)
|
|
54
|
+
* @task T11532 (name-mapping + rowid fix)
|
|
55
|
+
* @task T11551 (delegates to reusable CORE verifyMigration())
|
|
32
56
|
*/
|
|
33
57
|
export declare function runExodusVerify(sources: LegacyDbDescriptor[], projectDbPath: string, globalDbPath: string, onProgress?: (msg: string) => void): ExodusVerifyResult;
|
|
34
58
|
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/verify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/store/exodus/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAe,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGtF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACjC,kBAAkB,CAsBpB"}
|
|
@@ -4,165 +4,71 @@
|
|
|
4
4
|
* `runExodusVerify()` checks equivalence between source legacy DBs and the
|
|
5
5
|
* consolidated dual-scope `cleo.db` after a migration.
|
|
6
6
|
*
|
|
7
|
-
* ##
|
|
7
|
+
* ## DRY — built on the reusable CORE primitive (T11551 AC2)
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* The row-count parity, name-mapping, rowid-safe ordering, and
|
|
10
|
+
* column-intersection content-checksum logic that the exodus campaign hardened
|
|
11
|
+
* (T11531/32/33) now lives in the generic {@link verifyMigration} primitive
|
|
12
|
+
* (`./verify-migration.ts`). `runExodusVerify` DELEGATES to that primitive and
|
|
13
|
+
* adapts the {@link VerifyMigrationResult} into the exodus-specific
|
|
14
|
+
* {@link ExodusVerifyResult} shape (which keys tables by `tableName`).
|
|
15
|
+
*
|
|
16
|
+
* `verifyMigration` additionally surfaces a `PRAGMA foreign_key_check` result
|
|
17
|
+
* and an enum/type-drift report — both of which fold into the exodus `ok`
|
|
18
|
+
* verdict and `error` string here, so a referential orphan or an un-normalised
|
|
19
|
+
* enum value now FAILS `cleo exodus verify` rather than passing silently.
|
|
20
|
+
*
|
|
21
|
+
* ## FALSE-PASS guard (T11531, preserved by the primitive)
|
|
22
|
+
*
|
|
23
|
+
* The primitive always populates `error` when `ok === false`, so any caller
|
|
24
|
+
* checking only `result.error` still sees the failure.
|
|
13
25
|
*
|
|
14
26
|
* @task T11248 (E5 · AC7 · SG-DB-SUBSTRATE-V2)
|
|
27
|
+
* @task T11531 (verify hardening — parity gate)
|
|
28
|
+
* @task T11532 (P0 rowid crash + name-mapping + explicit skip for virtual tables)
|
|
29
|
+
* @task T11533 (P0 nexus_nodes hash-drift fix — column-intersection digest)
|
|
30
|
+
* @task T11551 (DHQ-045 — delegate parity to reusable CORE verifyMigration())
|
|
15
31
|
* @saga T11242
|
|
16
32
|
*/
|
|
17
|
-
import {
|
|
18
|
-
import { createRequire } from 'node:module';
|
|
19
|
-
import { getLogger } from '../../logger.js';
|
|
20
|
-
import { openCleoDbSnapshot } from '../open-cleo-db.js';
|
|
21
|
-
const log = getLogger('exodus-verify');
|
|
22
|
-
const _require = createRequire(import.meta.url);
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
// Digest helper (AC7)
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
/**
|
|
27
|
-
* Compute an ordered canonical-JSON SHA-256 digest (32 hex chars) for all rows
|
|
28
|
-
* in a table.
|
|
29
|
-
*
|
|
30
|
-
* Rows are fetched `ORDER BY rowid` so the ordering is deterministic. Each row
|
|
31
|
-
* is canonicalized as `JSON.stringify(row)` and appended to the hash.
|
|
32
|
-
*/
|
|
33
|
-
function computeTableDigest(db, tableName) {
|
|
34
|
-
const { createHash } = _require('node:crypto');
|
|
35
|
-
const hasher = createHash('sha256');
|
|
36
|
-
const rows = db.prepare(`SELECT * FROM "${tableName}" ORDER BY rowid`).all();
|
|
37
|
-
for (const row of rows) {
|
|
38
|
-
hasher.update(JSON.stringify(row));
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
count: rows.length,
|
|
42
|
-
hash: hasher.digest('hex').slice(0, 32),
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
// ---------------------------------------------------------------------------
|
|
46
|
-
// Table listing
|
|
47
|
-
// ---------------------------------------------------------------------------
|
|
48
|
-
function listTables(db) {
|
|
49
|
-
const rows = db
|
|
50
|
-
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' AND name NOT LIKE '__drizzle_%' ORDER BY name")
|
|
51
|
-
.all();
|
|
52
|
-
return rows.map((r) => r.name);
|
|
53
|
-
}
|
|
54
|
-
// ---------------------------------------------------------------------------
|
|
55
|
-
// Main verify runner
|
|
56
|
-
// ---------------------------------------------------------------------------
|
|
33
|
+
import { verifyMigration } from './verify-migration.js';
|
|
57
34
|
/**
|
|
58
35
|
* Run equivalence verification after an exodus migration.
|
|
59
36
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
37
|
+
* Thin adapter over {@link verifyMigration}: it forwards the source descriptors
|
|
38
|
+
* and consolidated target paths to the generic primitive, then re-shapes the
|
|
39
|
+
* per-table parity entries into the exodus {@link ExodusVerifyResult} contract
|
|
40
|
+
* (keyed by `tableName`). The primitive's foreign-key and enum-drift checks are
|
|
41
|
+
* already reflected in `result.ok` and `result.error`.
|
|
62
42
|
*
|
|
63
43
|
* @param sources - Legacy source descriptors (from `buildExodusPlan()`).
|
|
64
44
|
* @param projectDbPath - Absolute path to the consolidated project `cleo.db`.
|
|
65
45
|
* @param globalDbPath - Absolute path to the consolidated global `cleo.db`.
|
|
66
46
|
* @param onProgress - Optional progress callback.
|
|
67
47
|
*
|
|
68
|
-
* @returns {@link ExodusVerifyResult}
|
|
48
|
+
* @returns {@link ExodusVerifyResult} — `ok: false` with `error` populated when
|
|
49
|
+
* any data-bearing table has mismatched counts/content, any FK orphan exists,
|
|
50
|
+
* or any enum/type drift is detected.
|
|
69
51
|
*
|
|
70
52
|
* @task T11248 (AC7)
|
|
53
|
+
* @task T11531 (parity gate hardening)
|
|
54
|
+
* @task T11532 (name-mapping + rowid fix)
|
|
55
|
+
* @task T11551 (delegates to reusable CORE verifyMigration())
|
|
71
56
|
*/
|
|
72
57
|
export function runExodusVerify(sources, projectDbPath, globalDbPath, onProgress) {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
const projectSnap = openCleoDbSnapshot(projectDbPath, { readOnly: true });
|
|
91
|
-
const globalSnap = openCleoDbSnapshot(globalDbPath, { readOnly: true });
|
|
92
|
-
try {
|
|
93
|
-
for (const src of sources) {
|
|
94
|
-
if (!existsSync(src.path)) {
|
|
95
|
-
onProgress?.(`Skipping ${src.name} (not present)`);
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
const srcSnap = openCleoDbSnapshot(src.path, { readOnly: true });
|
|
99
|
-
const targetSnap = src.targetScope === 'project' ? projectSnap : globalSnap;
|
|
100
|
-
const scope = src.targetScope;
|
|
101
|
-
try {
|
|
102
|
-
const sourceTables = listTables(srcSnap.db);
|
|
103
|
-
const targetTables = new Set(listTables(targetSnap.db));
|
|
104
|
-
for (const tableName of sourceTables) {
|
|
105
|
-
onProgress?.(`Verifying ${src.name}.${tableName}…`);
|
|
106
|
-
if (!targetTables.has(tableName)) {
|
|
107
|
-
// Table missing in target (E6 will populate it — treat as skipped rows = 0)
|
|
108
|
-
const srcResult = computeTableDigest(srcSnap.db, tableName);
|
|
109
|
-
const result = {
|
|
110
|
-
tableName,
|
|
111
|
-
scope,
|
|
112
|
-
sourceCount: srcResult.count,
|
|
113
|
-
targetCount: 0,
|
|
114
|
-
sourceHash: srcResult.hash,
|
|
115
|
-
targetHash: '',
|
|
116
|
-
hashMatch: srcResult.count === 0, // only ok if source was empty
|
|
117
|
-
countMatch: srcResult.count === 0,
|
|
118
|
-
};
|
|
119
|
-
if (!result.countMatch) {
|
|
120
|
-
overallOk = false;
|
|
121
|
-
log.warn({ tableName, sourceDb: src.name }, 'Table missing in consolidated DB');
|
|
122
|
-
}
|
|
123
|
-
tableResults.push(result);
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
const srcDigest = computeTableDigest(srcSnap.db, tableName);
|
|
127
|
-
const tgtDigest = computeTableDigest(targetSnap.db, tableName);
|
|
128
|
-
const countMatch = srcDigest.count === tgtDigest.count;
|
|
129
|
-
const hashMatch = srcDigest.hash === tgtDigest.hash;
|
|
130
|
-
if (!countMatch || !hashMatch) {
|
|
131
|
-
overallOk = false;
|
|
132
|
-
log.warn({
|
|
133
|
-
tableName,
|
|
134
|
-
srcCount: srcDigest.count,
|
|
135
|
-
tgtCount: tgtDigest.count,
|
|
136
|
-
countMatch,
|
|
137
|
-
hashMatch,
|
|
138
|
-
}, 'Equivalence check failed');
|
|
139
|
-
}
|
|
140
|
-
tableResults.push({
|
|
141
|
-
tableName,
|
|
142
|
-
scope,
|
|
143
|
-
sourceCount: srcDigest.count,
|
|
144
|
-
targetCount: tgtDigest.count,
|
|
145
|
-
sourceHash: srcDigest.hash,
|
|
146
|
-
targetHash: tgtDigest.hash,
|
|
147
|
-
hashMatch,
|
|
148
|
-
countMatch,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
finally {
|
|
153
|
-
srcSnap.close();
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (err) {
|
|
158
|
-
const error = err instanceof Error ? err.message : String(err);
|
|
159
|
-
log.error({ err }, 'Exodus verify failed');
|
|
160
|
-
return { ok: false, tables: tableResults, error };
|
|
161
|
-
}
|
|
162
|
-
finally {
|
|
163
|
-
projectSnap.close();
|
|
164
|
-
globalSnap.close();
|
|
165
|
-
}
|
|
166
|
-
return { ok: overallOk, tables: tableResults };
|
|
58
|
+
const result = verifyMigration(sources, projectDbPath, globalDbPath, onProgress);
|
|
59
|
+
return {
|
|
60
|
+
ok: result.ok,
|
|
61
|
+
tables: result.tables.map((t) => ({
|
|
62
|
+
tableName: t.targetTable,
|
|
63
|
+
scope: t.scope,
|
|
64
|
+
sourceCount: t.sourceCount,
|
|
65
|
+
targetCount: t.targetCount,
|
|
66
|
+
sourceHash: t.sourceHash,
|
|
67
|
+
targetHash: t.targetHash,
|
|
68
|
+
hashMatch: t.hashMatch,
|
|
69
|
+
countMatch: t.countMatch,
|
|
70
|
+
})),
|
|
71
|
+
...(result.error !== undefined ? { error: result.error } : {}),
|
|
72
|
+
};
|
|
167
73
|
}
|
|
168
74
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/store/exodus/verify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/store/exodus/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA6B,EAC7B,aAAqB,EACrB,YAAoB,EACpB,UAAkC;IAElC,MAAM,MAAM,GAA0B,eAAe,CACnD,OAAO,EACP,aAAa,EACb,YAAY,EACZ,UAAU,CACX,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,CAAC,CAAC,WAAW;YACxB,KAAK,EAAE,CAAC,CAAC,KAAoB;YAC7B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { atomicWrite, atomicWriteJson, safeReadFile } from './atomic.js';
|
|
9
9
|
export { createBackup, listBackups, restoreFromBackup } from './backup.js';
|
|
10
|
-
export { forceCheckpointBeforeOperation } from './data-safety.js';
|
|
11
10
|
export type { SafetyOptions } from './data-safety-central.js';
|
|
12
|
-
export { DataSafetyError, disableSafety, enableSafety, forceSafetyCheckpoint, getSafetyStats, resetSafetyStats, runDataIntegrityCheck, } from './data-safety-central.js';
|
|
11
|
+
export { DataSafetyError, disableSafety, enableSafety, forceCheckpointBeforeOperation, forceSafetyCheckpoint, getSafetyStats, resetSafetyStats, runDataIntegrityCheck, } from './data-safety-central.js';
|
|
13
12
|
export type { SaveJsonOptions } from './json.js';
|
|
14
13
|
export { appendJsonl, computeChecksum, readJson, readJsonRequired, saveJson, } from './json.js';
|
|
15
14
|
export type { ReleaseFn } from './lock.js';
|
|
@@ -19,7 +18,7 @@ export type { AddTaskOptions, AddTaskResult, AnalysisResult, ArchiveTasksOptions
|
|
|
19
18
|
export { createStoreProvider } from './provider.js';
|
|
20
19
|
export { getSafetyStatus, isSafetyEnabled, SafetyDataAccessor, wrapWithSafety, } from './safety-data-accessor.js';
|
|
21
20
|
export type { NewSkillRow, SkillRow, SkillSourceType, } from './schema/skills-schema.js';
|
|
22
|
-
export { closeSkillsDb, getDefaultSkillsDbPath, getSkillRow, getSkillsNativeDb, listSkillsBySource, openSkillsDb, resetSkillsDbState,
|
|
21
|
+
export { closeSkillsDb, getDefaultSkillsDbPath, getSkillRow, getSkillsNativeDb, listSkillsBySource, openSkillsDb, resetSkillsDbState, SKILLS_DB_FILENAME, SKILLS_SCHEMA_VERSION, upsertSkillRow, } from './skills-db.js';
|
|
23
22
|
export { listBrainBackups, listSqliteBackups, listSqliteBackupsAll, vacuumIntoBackup, vacuumIntoBackupAll, } from './sqlite-backup.js';
|
|
24
23
|
export { UmbrellaDataAccessor } from './umbrella-data-accessor.js';
|
|
25
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3E,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3E,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,8BAA8B,EAC9B,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,WAAW,EACX,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,WAAW,EACX,QAAQ,EACR,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,eAAe,EAAE,aAAa,CAAC,CAG3F"}
|
package/dist/store/index.js
CHANGED
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { atomicWrite, atomicWriteJson, safeReadFile } from './atomic.js';
|
|
9
9
|
export { createBackup, listBackups, restoreFromBackup } from './backup.js';
|
|
10
|
-
export { forceCheckpointBeforeOperation } from './data-safety.js';
|
|
11
|
-
export { DataSafetyError, disableSafety, enableSafety, forceSafetyCheckpoint, getSafetyStats, resetSafetyStats, runDataIntegrityCheck, } from './data-safety-central.js';
|
|
10
|
+
export { DataSafetyError, disableSafety, enableSafety, forceCheckpointBeforeOperation, forceSafetyCheckpoint, getSafetyStats, resetSafetyStats, runDataIntegrityCheck, } from './data-safety-central.js';
|
|
12
11
|
export { appendJsonl, computeChecksum, readJson, readJsonRequired, saveJson, } from './json.js';
|
|
13
12
|
export { acquireLock, isLocked, withLock } from './lock.js';
|
|
14
13
|
export { openCleoDb } from './open-cleo-db.js';
|
|
@@ -16,7 +15,7 @@ export { createStoreProvider } from './provider.js';
|
|
|
16
15
|
// Safety-enabled DataAccessor exports (@task T4745)
|
|
17
16
|
export { getSafetyStatus, isSafetyEnabled, SafetyDataAccessor, wrapWithSafety, } from './safety-data-accessor.js';
|
|
18
17
|
// Skills DB helpers (per-user skills.db chokepoint — T9651 / T9657)
|
|
19
|
-
export { closeSkillsDb, getDefaultSkillsDbPath, getSkillRow, getSkillsNativeDb, listSkillsBySource, openSkillsDb, resetSkillsDbState,
|
|
18
|
+
export { closeSkillsDb, getDefaultSkillsDbPath, getSkillRow, getSkillsNativeDb, listSkillsBySource, openSkillsDb, resetSkillsDbState, SKILLS_DB_FILENAME, SKILLS_SCHEMA_VERSION, upsertSkillRow, } from './skills-db.js';
|
|
20
19
|
export { listBrainBackups, listSqliteBackups, listSqliteBackupsAll, vacuumIntoBackup, vacuumIntoBackupAll, } from './sqlite-backup.js';
|
|
21
20
|
export { UmbrellaDataAccessor } from './umbrella-data-accessor.js';
|
|
22
21
|
/**
|
package/dist/store/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,8BAA8B,EAC9B,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,WAAW,EACX,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAkC,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAyB/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAMnC,oEAAoE;AACpE,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAY;IACzC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -15,6 +15,37 @@ export declare class BrainDataAccessor {
|
|
|
15
15
|
private db;
|
|
16
16
|
constructor(db: NodeSQLiteDatabase<typeof brainSchema>);
|
|
17
17
|
addDecision(row: NewBrainDecisionRow): Promise<BrainDecisionRow>;
|
|
18
|
+
/**
|
|
19
|
+
* Insert a decision while allocating the next sequential `Dnnn` id
|
|
20
|
+
* **atomically inside the INSERT statement** (T11552).
|
|
21
|
+
*
|
|
22
|
+
* The `id` value is computed by an in-SQL subquery
|
|
23
|
+
* (`MAX(numeric suffix) + 1`) evaluated as part of the same INSERT, so the
|
|
24
|
+
* id read and the row write are a single indivisible operation. Two
|
|
25
|
+
* concurrent callers therefore can never read the same `MAX(id)` and collide
|
|
26
|
+
* on the primary key — unlike a read-then-write in application code, which
|
|
27
|
+
* yields the event loop between the `SELECT MAX(id)` and the `INSERT` and so
|
|
28
|
+
* races (the original defect).
|
|
29
|
+
*
|
|
30
|
+
* Properties:
|
|
31
|
+
* - **Race-free under concurrency** — node:sqlite executes the statement
|
|
32
|
+
* synchronously and atomically; no JS `await` boundary splits read from write.
|
|
33
|
+
* - **Numeric ordering** — `CAST(substr(id,2) AS INTEGER)` so the sequence
|
|
34
|
+
* advances correctly past `D999 → D1000` (lexical ordering would regress).
|
|
35
|
+
* - **Legacy-id tolerant** — `GLOB 'D[0-9]*'` restricts the max scan to
|
|
36
|
+
* canonical `Dnnn` ids, ignoring foreign shapes like `D-abcd`.
|
|
37
|
+
* - **Never silently drops** — uses a real INSERT (not `INSERT OR IGNORE`)
|
|
38
|
+
* and returns the persisted row.
|
|
39
|
+
*
|
|
40
|
+
* The caller MUST NOT pre-set a meaningful `row.id`; any value present is
|
|
41
|
+
* overridden by the computed id.
|
|
42
|
+
*
|
|
43
|
+
* @param row - The decision row to insert (its `id` field is ignored).
|
|
44
|
+
* @returns The persisted decision row, including the allocated `id`.
|
|
45
|
+
*
|
|
46
|
+
* @task T11552
|
|
47
|
+
*/
|
|
48
|
+
addDecisionWithSequentialId(row: NewBrainDecisionRow): Promise<BrainDecisionRow>;
|
|
18
49
|
getDecision(id: string): Promise<BrainDecisionRow | null>;
|
|
19
50
|
findDecisions(params?: {
|
|
20
51
|
type?: (typeof brainSchema.BRAIN_DECISION_TYPES)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-accessor.d.ts","sourceRoot":"","sources":["../../src/store/memory-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,iBAAiB;IAChB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,kBAAkB,CAAC,OAAO,WAAW,CAAC;IAMxD,WAAW,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-accessor.d.ts","sourceRoot":"","sources":["../../src/store/memory-accessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,44 @@ export class BrainDataAccessor {
|
|
|
28
28
|
.where(eq(brainSchema.brainDecisions.id, row.id));
|
|
29
29
|
return result[0];
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Insert a decision while allocating the next sequential `Dnnn` id
|
|
33
|
+
* **atomically inside the INSERT statement** (T11552).
|
|
34
|
+
*
|
|
35
|
+
* The `id` value is computed by an in-SQL subquery
|
|
36
|
+
* (`MAX(numeric suffix) + 1`) evaluated as part of the same INSERT, so the
|
|
37
|
+
* id read and the row write are a single indivisible operation. Two
|
|
38
|
+
* concurrent callers therefore can never read the same `MAX(id)` and collide
|
|
39
|
+
* on the primary key — unlike a read-then-write in application code, which
|
|
40
|
+
* yields the event loop between the `SELECT MAX(id)` and the `INSERT` and so
|
|
41
|
+
* races (the original defect).
|
|
42
|
+
*
|
|
43
|
+
* Properties:
|
|
44
|
+
* - **Race-free under concurrency** — node:sqlite executes the statement
|
|
45
|
+
* synchronously and atomically; no JS `await` boundary splits read from write.
|
|
46
|
+
* - **Numeric ordering** — `CAST(substr(id,2) AS INTEGER)` so the sequence
|
|
47
|
+
* advances correctly past `D999 → D1000` (lexical ordering would regress).
|
|
48
|
+
* - **Legacy-id tolerant** — `GLOB 'D[0-9]*'` restricts the max scan to
|
|
49
|
+
* canonical `Dnnn` ids, ignoring foreign shapes like `D-abcd`.
|
|
50
|
+
* - **Never silently drops** — uses a real INSERT (not `INSERT OR IGNORE`)
|
|
51
|
+
* and returns the persisted row.
|
|
52
|
+
*
|
|
53
|
+
* The caller MUST NOT pre-set a meaningful `row.id`; any value present is
|
|
54
|
+
* overridden by the computed id.
|
|
55
|
+
*
|
|
56
|
+
* @param row - The decision row to insert (its `id` field is ignored).
|
|
57
|
+
* @returns The persisted decision row, including the allocated `id`.
|
|
58
|
+
*
|
|
59
|
+
* @task T11552
|
|
60
|
+
*/
|
|
61
|
+
async addDecisionWithSequentialId(row) {
|
|
62
|
+
const nextId = sql `'D' || printf('%03d', COALESCE((SELECT MAX(CAST(substr(${brainSchema.brainDecisions.id}, 2) AS INTEGER)) FROM ${brainSchema.brainDecisions} WHERE ${brainSchema.brainDecisions.id} GLOB 'D[0-9]*'), 0) + 1)`;
|
|
63
|
+
const inserted = await this.db
|
|
64
|
+
.insert(brainSchema.brainDecisions)
|
|
65
|
+
.values({ ...row, id: nextId })
|
|
66
|
+
.returning();
|
|
67
|
+
return inserted[0];
|
|
68
|
+
}
|
|
31
69
|
async getDecision(id) {
|
|
32
70
|
const result = await this.db
|
|
33
71
|
.select()
|