@cleocode/core 2026.9.7 → 2026.9.9
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/dist/audit/reconstruct.d.ts +13 -43
- package/dist/audit/reconstruct.d.ts.map +1 -1
- package/dist/audit/reconstruct.js +295 -290
- package/dist/audit/reconstruct.js.map +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +8 -2
- package/dist/bootstrap.js.map +1 -1
- package/dist/dispatch/mutate-projection.d.ts.map +1 -1
- package/dist/dispatch/mutate-projection.js +12 -0
- package/dist/dispatch/mutate-projection.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +29 -6
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +109 -139
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +3 -2
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +4 -3
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/export-document.js +5100 -2297
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/projection.d.ts +67 -0
- package/dist/docs/projection.d.ts.map +1 -0
- package/dist/docs/projection.js +370 -0
- package/dist/docs/projection.js.map +1 -0
- package/dist/doctor/acceptance-drift.d.ts +6 -2
- package/dist/doctor/acceptance-drift.d.ts.map +1 -1
- package/dist/doctor/acceptance-drift.js +43 -5
- package/dist/doctor/acceptance-drift.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +41 -0
- package/dist/doctor/knowledge-summary.d.ts.map +1 -0
- package/dist/doctor/knowledge-summary.js +81 -0
- package/dist/doctor/knowledge-summary.js.map +1 -0
- package/dist/doctor/knowledge.d.ts +192 -0
- package/dist/doctor/knowledge.d.ts.map +1 -0
- package/dist/doctor/knowledge.js +1864 -0
- package/dist/doctor/knowledge.js.map +1 -0
- package/dist/git/work-tree.d.ts +64 -0
- package/dist/git/work-tree.d.ts.map +1 -0
- package/dist/git/work-tree.js +111 -0
- package/dist/git/work-tree.js.map +1 -0
- package/dist/hooks/handlers/task-hooks.d.ts +8 -5
- package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/task-hooks.js +15 -60
- package/dist/hooks/handlers/task-hooks.js.map +1 -1
- package/dist/identity/cleo-identity.d.ts +13 -0
- package/dist/identity/cleo-identity.d.ts.map +1 -1
- package/dist/identity/cleo-identity.js +20 -6
- package/dist/identity/cleo-identity.js.map +1 -1
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +29 -13
- package/dist/injection.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.js +124 -120
- package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
- package/dist/llm/plugin-facade.js +4018 -1726
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/brain-backfill.d.ts +27 -12
- package/dist/memory/brain-backfill.d.ts.map +1 -1
- package/dist/memory/brain-backfill.js +325 -134
- package/dist/memory/brain-backfill.js.map +1 -1
- package/dist/memory/brain-doctor.d.ts +21 -0
- package/dist/memory/brain-doctor.d.ts.map +1 -1
- package/dist/memory/brain-doctor.js +111 -53
- package/dist/memory/brain-doctor.js.map +1 -1
- package/dist/memory/brain-links.d.ts.map +1 -1
- package/dist/memory/brain-links.js +31 -4
- package/dist/memory/brain-links.js.map +1 -1
- package/dist/memory/brain-reasoning.d.ts.map +1 -1
- package/dist/memory/brain-reasoning.js +28 -2
- package/dist/memory/brain-reasoning.js.map +1 -1
- package/dist/memory/brain-reconciler.d.ts +14 -19
- package/dist/memory/brain-reconciler.d.ts.map +1 -1
- package/dist/memory/brain-reconciler.js +70 -97
- package/dist/memory/brain-reconciler.js.map +1 -1
- package/dist/memory/brain-search.d.ts +2 -0
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +59 -29
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-similarity.d.ts.map +1 -1
- package/dist/memory/brain-similarity.js +5 -4
- package/dist/memory/brain-similarity.js.map +1 -1
- package/dist/memory/brain-stub-prune.d.ts +31 -9
- package/dist/memory/brain-stub-prune.d.ts.map +1 -1
- package/dist/memory/brain-stub-prune.js +65 -18
- package/dist/memory/brain-stub-prune.js.map +1 -1
- package/dist/memory/brain-writer-handlers.d.ts +10 -1
- package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
- package/dist/memory/brain-writer-handlers.js +23 -3
- package/dist/memory/brain-writer-handlers.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts +31 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +166 -24
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/brain-writer-worker.js +8 -1
- package/dist/memory/brain-writer-worker.js.map +1 -1
- package/dist/memory/decision-cross-link.d.ts +39 -0
- package/dist/memory/decision-cross-link.d.ts.map +1 -1
- package/dist/memory/decision-cross-link.js +316 -0
- package/dist/memory/decision-cross-link.js.map +1 -1
- package/dist/memory/decisions.d.ts +4 -1
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +7 -24
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/dispatch-trace.d.ts +12 -5
- package/dist/memory/dispatch-trace.d.ts.map +1 -1
- package/dist/memory/dispatch-trace.js +17 -7
- package/dist/memory/dispatch-trace.js.map +1 -1
- package/dist/memory/eligibility.d.ts +51 -0
- package/dist/memory/eligibility.d.ts.map +1 -0
- package/dist/memory/eligibility.js +77 -0
- package/dist/memory/eligibility.js.map +1 -0
- package/dist/memory/engine-compat.d.ts +2 -0
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +10 -0
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/memory/extraction-gate.d.ts +21 -7
- package/dist/memory/extraction-gate.d.ts.map +1 -1
- package/dist/memory/extraction-gate.js +178 -216
- package/dist/memory/extraction-gate.js.map +1 -1
- package/dist/memory/graph-auto-populate.d.ts +38 -5
- package/dist/memory/graph-auto-populate.d.ts.map +1 -1
- package/dist/memory/graph-auto-populate.js +182 -60
- package/dist/memory/graph-auto-populate.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts +14 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +66 -28
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/index.d.ts +1 -19
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -50
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/learnings.js +2 -23
- package/dist/memory/learnings.js.map +1 -1
- package/dist/memory/manifest-filter.d.ts +21 -0
- package/dist/memory/manifest-filter.d.ts.map +1 -0
- package/dist/memory/manifest-filter.js +51 -0
- package/dist/memory/manifest-filter.js.map +1 -0
- package/dist/memory/manifest-ingestion.d.ts +28 -30
- package/dist/memory/manifest-ingestion.d.ts.map +1 -1
- package/dist/memory/manifest-ingestion.js +104 -235
- package/dist/memory/manifest-ingestion.js.map +1 -1
- package/dist/memory/observer-reflector.d.ts +2 -0
- package/dist/memory/observer-reflector.d.ts.map +1 -1
- package/dist/memory/observer-reflector.js +6 -49
- package/dist/memory/observer-reflector.js.map +1 -1
- package/dist/memory/patterns.d.ts +10 -0
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/memory/patterns.js +25 -33
- package/dist/memory/patterns.js.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.d.ts +72 -9
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +508 -412
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.js +16 -15
- package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
- package/dist/memory/retrieval/fetch.d.ts +7 -0
- package/dist/memory/retrieval/fetch.d.ts.map +1 -1
- package/dist/memory/retrieval/fetch.js +14 -11
- package/dist/memory/retrieval/fetch.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts +7 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +58 -4
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/retrieval/search.d.ts +14 -1
- package/dist/memory/retrieval/search.d.ts.map +1 -1
- package/dist/memory/retrieval/search.js +133 -69
- package/dist/memory/retrieval/search.js.map +1 -1
- package/dist/memory/retrieval/telemetry.d.ts +31 -0
- package/dist/memory/retrieval/telemetry.d.ts.map +1 -0
- package/dist/memory/retrieval/telemetry.js +53 -0
- package/dist/memory/retrieval/telemetry.js.map +1 -0
- package/dist/nexus/analyze-orchestrator.d.ts +41 -9
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +257 -58
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/api-contracts.d.ts +2 -6
- package/dist/nexus/api-contracts.d.ts.map +1 -1
- package/dist/nexus/api-contracts.js +11 -2
- package/dist/nexus/api-contracts.js.map +1 -1
- package/dist/nexus/context.d.ts.map +1 -1
- package/dist/nexus/context.js +14 -37
- package/dist/nexus/context.js.map +1 -1
- package/dist/nexus/diff.d.ts.map +1 -1
- package/dist/nexus/diff.js +2 -1
- package/dist/nexus/diff.js.map +1 -1
- package/dist/nexus/identity.d.ts +29 -3
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +63 -12
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/impact.d.ts +21 -19
- package/dist/nexus/impact.d.ts.map +1 -1
- package/dist/nexus/impact.js +96 -192
- package/dist/nexus/impact.js.map +1 -1
- package/dist/nexus/knowledge.d.ts +80 -0
- package/dist/nexus/knowledge.d.ts.map +1 -0
- package/dist/nexus/knowledge.js +786 -0
- package/dist/nexus/knowledge.js.map +1 -0
- package/dist/nexus/living-brain.d.ts +8 -5
- package/dist/nexus/living-brain.d.ts.map +1 -1
- package/dist/nexus/living-brain.js +252 -188
- package/dist/nexus/living-brain.js.map +1 -1
- package/dist/nexus/registry.d.ts +11 -2
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +144 -128
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/source-roots.d.ts +16 -0
- package/dist/nexus/source-roots.d.ts.map +1 -0
- package/dist/nexus/source-roots.js +174 -0
- package/dist/nexus/source-roots.js.map +1 -0
- package/dist/nexus/task-evidence.d.ts +22 -0
- package/dist/nexus/task-evidence.d.ts.map +1 -0
- package/dist/nexus/task-evidence.js +210 -0
- package/dist/nexus/task-evidence.js.map +1 -0
- package/dist/nexus/tasks-bridge.d.ts +14 -7
- package/dist/nexus/tasks-bridge.d.ts.map +1 -1
- package/dist/nexus/tasks-bridge.js +81 -40
- package/dist/nexus/tasks-bridge.js.map +1 -1
- package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
- package/dist/orchestrate/lifecycle-ops.js +170 -120
- package/dist/orchestrate/lifecycle-ops.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts +6 -7
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +509 -532
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts +15 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +21 -10
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +35 -3
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +64 -35
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +24 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +31 -11
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +16 -41
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/unblock.d.ts +15 -1
- package/dist/orchestration/unblock.d.ts.map +1 -1
- package/dist/orchestration/unblock.js +23 -12
- package/dist/orchestration/unblock.js.map +1 -1
- package/dist/orchestration/validate-spawn.d.ts.map +1 -1
- package/dist/orchestration/validate-spawn.js +3 -3
- package/dist/orchestration/validate-spawn.js.map +1 -1
- package/dist/orchestration/waves.d.ts +29 -13
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +43 -55
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +17 -163
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +145 -496
- package/dist/paths.js.map +1 -1
- package/dist/project-info.d.ts +2 -11
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +3 -31
- package/dist/project-info.js.map +1 -1
- package/dist/project-scope.d.ts +239 -0
- package/dist/project-scope.d.ts.map +1 -0
- package/dist/project-scope.js +473 -0
- package/dist/project-scope.js.map +1 -0
- package/dist/release/pr-evidence.d.ts +16 -3
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +53 -7
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +4 -2
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/render/orchestration/audit-reconstruct.d.ts +11 -0
- package/dist/render/orchestration/audit-reconstruct.d.ts.map +1 -1
- package/dist/render/orchestration/audit-reconstruct.js +21 -6
- package/dist/render/orchestration/audit-reconstruct.js.map +1 -1
- package/dist/render/tasks/show.js +2 -1
- package/dist/render/tasks/show.js.map +1 -1
- package/dist/resources/spawn-wrapper.d.ts +82 -14
- package/dist/resources/spawn-wrapper.d.ts.map +1 -1
- package/dist/resources/spawn-wrapper.js +585 -27
- package/dist/resources/spawn-wrapper.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +4026 -1734
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sequence/index.d.ts.map +1 -1
- package/dist/sequence/index.js +76 -68
- package/dist/sequence/index.js.map +1 -1
- package/dist/session/canon-lint.d.ts +24 -3
- package/dist/session/canon-lint.d.ts.map +1 -1
- package/dist/session/canon-lint.js +72 -31
- package/dist/session/canon-lint.js.map +1 -1
- package/dist/session/engine-ops.d.ts +1 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +6 -2
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +11 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +76 -8
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/handoff.d.ts +3 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +2 -0
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/shutdown-deadline.d.ts +24 -33
- package/dist/shutdown-deadline.d.ts.map +1 -1
- package/dist/shutdown-deadline.js +71 -14
- package/dist/shutdown-deadline.js.map +1 -1
- package/dist/shutdown.d.ts +21 -10
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +91 -35
- package/dist/shutdown.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/orchestrator/validator.d.ts +87 -20
- package/dist/skills/orchestrator/validator.d.ts.map +1 -1
- package/dist/skills/orchestrator/validator.js +330 -241
- package/dist/skills/orchestrator/validator.js.map +1 -1
- package/dist/store/agent-resolver.d.ts.map +1 -1
- package/dist/store/agent-resolver.js +16 -9
- package/dist/store/agent-resolver.js.map +1 -1
- package/dist/store/attachment-store.d.ts +4 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +20 -3
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/background-jobs.d.ts +426 -105
- package/dist/store/background-jobs.d.ts.map +1 -1
- package/dist/store/background-jobs.js +1208 -252
- package/dist/store/background-jobs.js.map +1 -1
- package/dist/store/background-ops.d.ts +145 -8
- package/dist/store/background-ops.d.ts.map +1 -1
- package/dist/store/background-ops.js +459 -15
- package/dist/store/background-ops.js.map +1 -1
- package/dist/store/backup-inspect.d.ts +48 -4
- package/dist/store/backup-inspect.d.ts.map +1 -1
- package/dist/store/backup-inspect.js +384 -4
- package/dist/store/backup-inspect.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +19 -2
- package/dist/store/converters.js.map +1 -1
- package/dist/store/data-accessor.d.ts +9 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js +22 -5
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/data-safety-central.d.ts.map +1 -1
- package/dist/store/data-safety-central.js +272 -232
- package/dist/store/data-safety-central.js.map +1 -1
- package/dist/store/db-helpers.d.ts +19 -3
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +42 -58
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +63 -4
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +166 -19
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/archive.d.ts +21 -7
- package/dist/store/exodus/archive.d.ts.map +1 -1
- package/dist/store/exodus/archive.js +60 -18
- package/dist/store/exodus/archive.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +27 -23
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +16 -27
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +121 -169
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts +90 -0
- package/dist/store/exodus/recovery.d.ts.map +1 -0
- package/dist/store/exodus/recovery.js +434 -0
- package/dist/store/exodus/recovery.js.map +1 -0
- package/dist/store/exodus/types.d.ts +15 -0
- package/dist/store/exodus/types.d.ts.map +1 -1
- package/dist/store/memory-accessor.d.ts +52 -3
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js +122 -7
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts +24 -6
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +39 -20
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts.map +1 -1
- package/dist/store/ports/domain-binding.js +27 -5
- package/dist/store/ports/domain-binding.js.map +1 -1
- package/dist/store/schema/background-jobs.d.ts +181 -2
- package/dist/store/schema/background-jobs.d.ts.map +1 -1
- package/dist/store/schema/background-jobs.js +27 -3
- package/dist/store/schema/background-jobs.js.map +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +2 -2
- package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
- package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +1 -1
- package/dist/store/schema/lifecycle.d.ts +2 -2
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/tasks.d.ts +1 -1
- package/dist/store/session-store.d.ts +3 -1
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +252 -207
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +39 -4
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +689 -527
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts +3 -1
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +309 -279
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +8 -8
- package/dist/store/writer-lease.d.ts +80 -8
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +503 -134
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/audit.d.ts +2 -1
- package/dist/system/audit.d.ts.map +1 -1
- package/dist/system/audit.js +118 -71
- package/dist/system/audit.js.map +1 -1
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -5
- package/dist/system/backup.js.map +1 -1
- package/dist/system/inject-generate.js +1 -1
- package/dist/task-work/index.d.ts +3 -0
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +34 -37
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
- package/dist/tasks/ac-coverage-gate.js +4 -0
- package/dist/tasks/ac-coverage-gate.js.map +1 -1
- package/dist/tasks/ac-immutability.d.ts +7 -4
- package/dist/tasks/ac-immutability.d.ts.map +1 -1
- package/dist/tasks/ac-immutability.js +19 -17
- package/dist/tasks/ac-immutability.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +5 -5
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +26 -12
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/acceptance-input.d.ts +52 -0
- package/dist/tasks/acceptance-input.d.ts.map +1 -0
- package/dist/tasks/acceptance-input.js +259 -0
- package/dist/tasks/acceptance-input.js.map +1 -0
- package/dist/tasks/add.d.ts +67 -29
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +255 -97
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/complete.d.ts +16 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +152 -55
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/decompose.d.ts +103 -0
- package/dist/tasks/decompose.d.ts.map +1 -0
- package/dist/tasks/decompose.js +224 -0
- package/dist/tasks/decompose.js.map +1 -0
- package/dist/tasks/delete.d.ts +5 -8
- package/dist/tasks/delete.d.ts.map +1 -1
- package/dist/tasks/delete.js +4 -3
- package/dist/tasks/delete.js.map +1 -1
- package/dist/tasks/dependency-check.d.ts +59 -0
- package/dist/tasks/dependency-check.d.ts.map +1 -1
- package/dist/tasks/dependency-check.js +73 -0
- package/dist/tasks/dependency-check.js.map +1 -1
- package/dist/tasks/deps-ready.d.ts +13 -1
- package/dist/tasks/deps-ready.d.ts.map +1 -1
- package/dist/tasks/deps-ready.js +16 -5
- package/dist/tasks/deps-ready.js.map +1 -1
- package/dist/tasks/engine-converters.d.ts +7 -0
- package/dist/tasks/engine-converters.d.ts.map +1 -1
- package/dist/tasks/engine-converters.js +8 -1
- package/dist/tasks/engine-converters.js.map +1 -1
- package/dist/tasks/evidence.d.ts +54 -26
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +292 -40
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/find.d.ts +16 -12
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +107 -93
- package/dist/tasks/find.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +88 -14
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +596 -253
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/hierarchy-policy.d.ts +8 -0
- package/dist/tasks/hierarchy-policy.d.ts.map +1 -1
- package/dist/tasks/hierarchy-policy.js +9 -2
- package/dist/tasks/hierarchy-policy.js.map +1 -1
- package/dist/tasks/hierarchy.d.ts +67 -1
- package/dist/tasks/hierarchy.d.ts.map +1 -1
- package/dist/tasks/hierarchy.js +81 -1
- package/dist/tasks/hierarchy.js.map +1 -1
- package/dist/tasks/index.d.ts +3 -0
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +3 -0
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/infer-add-params.d.ts +1 -20
- package/dist/tasks/infer-add-params.d.ts.map +1 -1
- package/dist/tasks/infer-add-params.js +2 -203
- package/dist/tasks/infer-add-params.js.map +1 -1
- package/dist/tasks/list.d.ts +7 -2
- package/dist/tasks/list.d.ts.map +1 -1
- package/dist/tasks/list.js +24 -36
- package/dist/tasks/list.js.map +1 -1
- package/dist/tasks/ops.d.ts +6 -61
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/ops.js +5 -53
- package/dist/tasks/ops.js.map +1 -1
- package/dist/tasks/plan.d.ts +15 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +23 -25
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/population.d.ts +46 -0
- package/dist/tasks/population.d.ts.map +1 -0
- package/dist/tasks/population.js +88 -0
- package/dist/tasks/population.js.map +1 -0
- package/dist/tasks/reconcile-scope.d.ts +157 -0
- package/dist/tasks/reconcile-scope.d.ts.map +1 -0
- package/dist/tasks/reconcile-scope.js +242 -0
- package/dist/tasks/reconcile-scope.js.map +1 -0
- package/dist/tasks/req.d.ts +51 -12
- package/dist/tasks/req.d.ts.map +1 -1
- package/dist/tasks/req.js +125 -69
- package/dist/tasks/req.js.map +1 -1
- package/dist/tasks/session-scope.d.ts +6 -31
- package/dist/tasks/session-scope.d.ts.map +1 -1
- package/dist/tasks/session-scope.js +3 -17
- package/dist/tasks/session-scope.js.map +1 -1
- package/dist/tasks/severity-attestation.d.ts +39 -10
- package/dist/tasks/severity-attestation.d.ts.map +1 -1
- package/dist/tasks/severity-attestation.js +75 -36
- package/dist/tasks/severity-attestation.js.map +1 -1
- package/dist/tasks/task-next.d.ts +5 -0
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +10 -9
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +3 -13
- package/dist/tasks/task-reparent.js.map +1 -1
- package/dist/tasks/update.d.ts +20 -43
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +64 -49
- package/dist/tasks/update.js.map +1 -1
- package/dist/teardown-signal.d.ts +72 -0
- package/dist/teardown-signal.d.ts.map +1 -0
- package/dist/teardown-signal.js +108 -0
- package/dist/teardown-signal.js.map +1 -0
- package/dist/validation/engine-ops.d.ts +17 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +149 -11
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/workgraph/reparent-preflight.d.ts +1 -1
- package/dist/workgraph/reparent-preflight.d.ts.map +1 -1
- package/dist/workgraph/reparent-preflight.js +6 -1
- package/dist/workgraph/reparent-preflight.js.map +1 -1
- package/dist/workgraph/scaffold-apply.d.ts.map +1 -1
- package/dist/workgraph/scaffold-apply.js +81 -76
- package/dist/workgraph/scaffold-apply.js.map +1 -1
- package/dist/workgraph/structure-validation.d.ts +1 -1
- package/dist/workgraph/structure-validation.d.ts.map +1 -1
- package/dist/workgraph/structure-validation.js +6 -1
- package/dist/workgraph/structure-validation.js.map +1 -1
- package/migrations/drizzle-tasks/20260919180000_t12263-job-ownership-fences/migration.sql +34 -0
- package/migrations/drizzle-tasks/20260919184500_t12265-durable-pending-proposals/migration.sql +4 -0
- package/package.json +18 -13
- package/schemas/config.schema.json +2 -2
- package/templates/CLEO-INJECTION.md +103 -101
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Wraps all memory writes with three ordered checks:
|
|
5
5
|
* A. Content-hash deduplication (always runs — fast, no embedding needed)
|
|
6
|
-
* B.
|
|
6
|
+
* B. Similarity candidate discovery (runs when embedding is available; skipped for trusted sources)
|
|
7
7
|
* C. Confidence threshold enforcement (always runs)
|
|
8
8
|
*
|
|
9
9
|
* Trusted sources (manual, owner) bypass Check B but still run A and C.
|
|
10
10
|
*
|
|
11
11
|
* Design goals:
|
|
12
|
-
* -
|
|
12
|
+
* - Failed required checks reject storage rather than authorize unverified writes
|
|
13
13
|
* - Degrade gracefully to hash-only dedup when embedding is unavailable
|
|
14
14
|
* - Contradiction detection uses a polarity-flip heuristic (no LLM required)
|
|
15
15
|
*
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
* @epic T549
|
|
18
18
|
*/
|
|
19
19
|
import { createHash } from 'node:crypto';
|
|
20
|
+
import { captureProjectScope, worktreeScope } from '../project-scope.js';
|
|
21
|
+
import { assertOperationWriteFence } from '../store/background-jobs.js';
|
|
20
22
|
import { isEmbeddingAvailable } from './brain-embedding.js';
|
|
21
23
|
import { searchSimilar } from './brain-similarity.js';
|
|
22
|
-
import { addGraphEdge } from './graph-auto-populate.js';
|
|
23
24
|
// ============================================================================
|
|
24
25
|
// Constants
|
|
25
26
|
// ============================================================================
|
|
26
|
-
/** Cosine distance below which two entries are
|
|
27
|
+
/** Cosine distance below which two entries are flagged as potential duplicate candidates. */
|
|
27
28
|
const DUPLICATE_THRESHOLD = 0.15;
|
|
28
29
|
/** Cosine distance below which two entries are considered closely related. */
|
|
29
30
|
const SIMILAR_THRESHOLD = 0.3;
|
|
@@ -104,86 +105,38 @@ function hasContradictingPolarity(existingText, newText) {
|
|
|
104
105
|
const overlap = [...newWords].filter((w) => existingWords.has(w));
|
|
105
106
|
return overlap.length >= 3;
|
|
106
107
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Mark an existing entry as invalid (superseded).
|
|
109
|
-
* Sets the invalid_at column to now on whichever typed table owns the entry.
|
|
110
|
-
*
|
|
111
|
-
* Determined by ID prefix conventions:
|
|
112
|
-
* D... → brain_decisions
|
|
113
|
-
* P... → brain_patterns
|
|
114
|
-
* L... → brain_learnings
|
|
115
|
-
* O... / CM-... → brain_observations
|
|
116
|
-
*/
|
|
117
|
-
async function invalidateEntry(projectRoot, entryId) {
|
|
118
|
-
const now = new Date().toISOString().replace('T', ' ').slice(0, 19);
|
|
119
|
-
try {
|
|
120
|
-
const { getBrainNativeDb, getBrainDb } = await import('../store/memory-sqlite.js');
|
|
121
|
-
await getBrainDb(projectRoot);
|
|
122
|
-
const nativeDb = getBrainNativeDb(projectRoot);
|
|
123
|
-
if (!nativeDb)
|
|
124
|
-
return;
|
|
125
|
-
// Route by ID prefix to correct table
|
|
126
|
-
if (entryId.startsWith('D-') || /^D\d/.test(entryId)) {
|
|
127
|
-
nativeDb
|
|
128
|
-
.prepare('UPDATE brain_decisions SET invalid_at = ? WHERE id = ? AND invalid_at IS NULL')
|
|
129
|
-
.run(now, entryId);
|
|
130
|
-
}
|
|
131
|
-
else if (entryId.startsWith('P-') || /^P\d/.test(entryId)) {
|
|
132
|
-
nativeDb
|
|
133
|
-
.prepare('UPDATE brain_patterns SET invalid_at = ? WHERE id = ? AND invalid_at IS NULL')
|
|
134
|
-
.run(now, entryId);
|
|
135
|
-
}
|
|
136
|
-
else if (entryId.startsWith('L-') || /^L\d/.test(entryId)) {
|
|
137
|
-
nativeDb
|
|
138
|
-
.prepare('UPDATE brain_learnings SET invalid_at = ? WHERE id = ? AND invalid_at IS NULL')
|
|
139
|
-
.run(now, entryId);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// O-, O[base36], CM- → observations
|
|
143
|
-
nativeDb
|
|
144
|
-
.prepare('UPDATE brain_observations SET invalid_at = ? WHERE id = ? AND invalid_at IS NULL')
|
|
145
|
-
.run(now, entryId);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch {
|
|
149
|
-
// Best-effort — invalidation failure must not block the primary write
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
108
|
/**
|
|
153
109
|
* Increment the citation_count of an existing entry by 1.
|
|
154
|
-
* Routes
|
|
110
|
+
* Routes to the canonical typed table using the record identifier.
|
|
155
111
|
*/
|
|
156
112
|
async function incrementCitationCount(projectRoot, entryId) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
// Best-effort
|
|
186
|
-
}
|
|
113
|
+
const scope = captureProjectScope(projectRoot, worktreeScope.getStore());
|
|
114
|
+
const { getBrainNativeDb, getBrainDb } = await import('../store/memory-sqlite.js');
|
|
115
|
+
scope.execution?.assertActive();
|
|
116
|
+
const db = await getBrainDb(scope.worktreeRoot);
|
|
117
|
+
scope.execution?.assertActive();
|
|
118
|
+
const nativeDb = getBrainNativeDb(scope.worktreeRoot);
|
|
119
|
+
if (!nativeDb)
|
|
120
|
+
throw new Error('E_CITATION_STORAGE_UNAVAILABLE: canonical native handle absent');
|
|
121
|
+
if (scope.execution && nativeDb.isTransaction)
|
|
122
|
+
throw new Error('Citation write cannot join an unowned native transaction');
|
|
123
|
+
const table = entryId.startsWith('D-') || /^D\d/.test(entryId)
|
|
124
|
+
? 'brain_decisions'
|
|
125
|
+
: entryId.startsWith('P-') || /^P\d/.test(entryId)
|
|
126
|
+
? 'brain_patterns'
|
|
127
|
+
: entryId.startsWith('L-') || /^L\d/.test(entryId)
|
|
128
|
+
? 'brain_learnings'
|
|
129
|
+
: 'brain_observations';
|
|
130
|
+
db.transaction((tx) => {
|
|
131
|
+
scope.execution?.assertActive();
|
|
132
|
+
if (scope.execution)
|
|
133
|
+
assertOperationWriteFence(tx, scope.execution);
|
|
134
|
+
const result = nativeDb
|
|
135
|
+
.prepare(`UPDATE ${table} SET citation_count = citation_count + 1 WHERE id = ?`)
|
|
136
|
+
.run(entryId);
|
|
137
|
+
if (Number(result.changes) !== 1)
|
|
138
|
+
throw new Error('E_CITATION_TARGET_MISSING: assessed entry changed before citation write');
|
|
139
|
+
});
|
|
187
140
|
}
|
|
188
141
|
/**
|
|
189
142
|
* Check A: SHA-256 content-hash deduplication for any of the four brain tables.
|
|
@@ -201,25 +154,23 @@ async function incrementCitationCount(projectRoot, entryId) {
|
|
|
201
154
|
* @param text - Candidate content text (hashed internally)
|
|
202
155
|
*/
|
|
203
156
|
async function hashDedupCheck(projectRoot, text, table = 'brain_observations') {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
222
|
-
return { matched: false };
|
|
157
|
+
const scope = captureProjectScope(projectRoot, worktreeScope.getStore());
|
|
158
|
+
const { getBrainNativeDb, getBrainDb } = await import('../store/memory-sqlite.js');
|
|
159
|
+
scope.execution?.assertActive();
|
|
160
|
+
await getBrainDb(scope.worktreeRoot);
|
|
161
|
+
scope.execution?.assertActive();
|
|
162
|
+
const nativeDb = getBrainNativeDb(scope.worktreeRoot);
|
|
163
|
+
if (!nativeDb)
|
|
164
|
+
throw new Error('E_DEDUP_STORAGE_UNAVAILABLE: canonical native handle absent');
|
|
165
|
+
const hash = contentHashPrefix(text);
|
|
166
|
+
const row = nativeDb
|
|
167
|
+
.prepare(`SELECT id FROM ${table} WHERE content_hash = ? AND invalid_at IS NULL LIMIT 1`)
|
|
168
|
+
.all(hash)[0];
|
|
169
|
+
if (!row)
|
|
170
|
+
return { matched: false };
|
|
171
|
+
if (typeof row.id !== 'string' || !row.id)
|
|
172
|
+
throw new Error('E_DEDUP_INVALID_RECORD: canonical duplicate has no valid identity');
|
|
173
|
+
return { matched: true, id: row.id };
|
|
223
174
|
}
|
|
224
175
|
/**
|
|
225
176
|
* Determine whether the candidate is from a trusted source that bypasses
|
|
@@ -260,8 +211,8 @@ export async function checkHashDedup(projectRoot, text, table) {
|
|
|
260
211
|
*
|
|
261
212
|
* Checks (in order):
|
|
262
213
|
* A0. Title-prefix blocklist (T993) — rejects known-noise titles before any DB work
|
|
263
|
-
* A. Content-hash deduplication (
|
|
264
|
-
* B.
|
|
214
|
+
* A. Content-hash deduplication (required; unavailable reads reject verification)
|
|
215
|
+
* B. Similarity and contradiction candidates (skipped for trusted sources)
|
|
265
216
|
* C. Confidence threshold >= 0.40 (always)
|
|
266
217
|
*
|
|
267
218
|
* The gate NEVER stores the entry itself — it only decides whether the caller
|
|
@@ -272,116 +223,122 @@ export async function checkHashDedup(projectRoot, text, table) {
|
|
|
272
223
|
*
|
|
273
224
|
* @param projectRoot - Project root for brain.db access
|
|
274
225
|
* @param candidate - Candidate to verify
|
|
275
|
-
* @returns GateResult describing what should happen
|
|
226
|
+
* @returns GateResult describing what should happen, including explicit verification failures.
|
|
227
|
+
* @remarks A duplicate citation is awaited before reporting merged. Required read/write
|
|
228
|
+
* failure cannot authorize storage; inherited deadlines and cancellation are retained.
|
|
229
|
+
* @example
|
|
230
|
+
* ```ts
|
|
231
|
+
* const result = await verifyCandidate(projectRoot, candidate);
|
|
232
|
+
* ```
|
|
276
233
|
*/
|
|
277
234
|
export async function verifyCandidate(projectRoot, candidate) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
//
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
: '
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
if (
|
|
331
|
-
//
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
235
|
+
const scope = captureProjectScope(projectRoot, worktreeScope.getStore());
|
|
236
|
+
return worktreeScope.run(scope, async () => {
|
|
237
|
+
try {
|
|
238
|
+
// -----------------------------------------------------------------------
|
|
239
|
+
// Check A0: Title-prefix blocklist (T993) — fastest possible rejection.
|
|
240
|
+
// Rejects known-noise titles before any hash/similarity work runs.
|
|
241
|
+
// -----------------------------------------------------------------------
|
|
242
|
+
const candidateTitle = candidate.title ?? '';
|
|
243
|
+
if (BRAIN_NOISE_PREFIXES.some((prefix) => candidateTitle.startsWith(prefix))) {
|
|
244
|
+
return { action: 'rejected', id: null, reason: 'noise-prefix' };
|
|
245
|
+
}
|
|
246
|
+
// -----------------------------------------------------------------------
|
|
247
|
+
// Check A: Content-hash dedup (always, fast)
|
|
248
|
+
// T737: Route to the correct typed table based on the candidate's memory type.
|
|
249
|
+
// -----------------------------------------------------------------------
|
|
250
|
+
const dedupTable = candidate.memoryType === 'semantic'
|
|
251
|
+
? // semantic defaults to learnings unless the caller routes to decisions
|
|
252
|
+
// (decisions bypass verifyCandidate and call storeDecision directly via
|
|
253
|
+
// llm-extraction storeExtracted — this branch covers learnings path)
|
|
254
|
+
'brain_learnings'
|
|
255
|
+
: candidate.memoryType === 'procedural'
|
|
256
|
+
? 'brain_patterns'
|
|
257
|
+
: 'brain_observations'; // episodic → observations
|
|
258
|
+
const hashCheck = await hashDedupCheck(scope.worktreeRoot, candidate.text, dedupTable);
|
|
259
|
+
if (hashCheck.matched) {
|
|
260
|
+
// A merged result is truthful only after its citation write settles.
|
|
261
|
+
await incrementCitationCount(scope.worktreeRoot, hashCheck.id);
|
|
262
|
+
return {
|
|
263
|
+
action: 'merged',
|
|
264
|
+
id: hashCheck.id,
|
|
265
|
+
reason: `exact-duplicate (hash match) of ${hashCheck.id}`,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
// -----------------------------------------------------------------------
|
|
269
|
+
// Check B: Cosine similarity + contradiction (skip for trusted sources)
|
|
270
|
+
// -----------------------------------------------------------------------
|
|
271
|
+
const trusted = isTrustedSource(candidate);
|
|
272
|
+
if (!trusted && isEmbeddingAvailable()) {
|
|
273
|
+
try {
|
|
274
|
+
const similar = await searchSimilar(candidate.text, scope.worktreeRoot, 5);
|
|
275
|
+
if (similar.length > 0) {
|
|
276
|
+
const nearest = similar[0];
|
|
277
|
+
if (nearest.distance < DUPLICATE_THRESHOLD) {
|
|
278
|
+
// Similarity cannot establish that two claims are interchangeable.
|
|
279
|
+
return {
|
|
280
|
+
action: 'stored',
|
|
281
|
+
id: null,
|
|
282
|
+
candidateIds: [nearest.id],
|
|
283
|
+
reason: `potential-duplicate of ${nearest.id} (cosine distance=${nearest.distance.toFixed(3)})`,
|
|
284
|
+
similarity: nearest.distance,
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
if (nearest.distance < SIMILAR_THRESHOLD) {
|
|
288
|
+
// Related — check for contradiction
|
|
289
|
+
if (hasContradictingPolarity(nearest.text, candidate.text)) {
|
|
290
|
+
// Preserve both claims until the caller supplies sourced authority.
|
|
291
|
+
return {
|
|
292
|
+
action: 'stored',
|
|
293
|
+
id: null,
|
|
294
|
+
reason: `potential-contradiction ${nearest.id}`,
|
|
295
|
+
candidateIds: [nearest.id],
|
|
296
|
+
similarity: nearest.distance,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
// Similar but not contradicting — store as new (link will be added post-storage)
|
|
336
300
|
return {
|
|
337
301
|
action: 'stored',
|
|
338
302
|
id: null,
|
|
339
|
-
reason: `
|
|
303
|
+
reason: `similar-but-distinct to ${nearest.id} (distance=${nearest.distance.toFixed(3)})`,
|
|
340
304
|
similarity: nearest.distance,
|
|
341
305
|
};
|
|
342
306
|
}
|
|
343
|
-
// Similar but not contradicting — store as new (link will be added post-storage)
|
|
344
|
-
return {
|
|
345
|
-
action: 'stored',
|
|
346
|
-
id: null,
|
|
347
|
-
reason: `similar-but-distinct to ${nearest.id} (distance=${nearest.distance.toFixed(3)})`,
|
|
348
|
-
similarity: nearest.distance,
|
|
349
|
-
};
|
|
350
307
|
}
|
|
351
308
|
}
|
|
309
|
+
catch {
|
|
310
|
+
scope.execution?.assertActive();
|
|
311
|
+
// Embedding/similarity check failed — degrade to hash-only (already passed above)
|
|
312
|
+
}
|
|
352
313
|
}
|
|
353
|
-
|
|
354
|
-
|
|
314
|
+
// -----------------------------------------------------------------------
|
|
315
|
+
// Check C: Confidence threshold
|
|
316
|
+
// -----------------------------------------------------------------------
|
|
317
|
+
if (candidate.confidence < MINIMUM_CONFIDENCE) {
|
|
318
|
+
return {
|
|
319
|
+
action: 'pending',
|
|
320
|
+
id: null,
|
|
321
|
+
reason: `confidence ${candidate.confidence.toFixed(2)} below minimum ${MINIMUM_CONFIDENCE}`,
|
|
322
|
+
};
|
|
355
323
|
}
|
|
324
|
+
// All checks passed — caller may store only within the original lifetime.
|
|
325
|
+
scope.execution?.assertActive();
|
|
326
|
+
return {
|
|
327
|
+
action: 'stored',
|
|
328
|
+
id: null,
|
|
329
|
+
reason: 'verified-new',
|
|
330
|
+
};
|
|
356
331
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
if (candidate.confidence < MINIMUM_CONFIDENCE) {
|
|
332
|
+
catch (err) {
|
|
333
|
+
// Unavailable verification cannot authorize a new write.
|
|
334
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
361
335
|
return {
|
|
362
|
-
action: '
|
|
336
|
+
action: 'rejected',
|
|
363
337
|
id: null,
|
|
364
|
-
reason: `
|
|
338
|
+
reason: `gate-error: ${message}`,
|
|
365
339
|
};
|
|
366
340
|
}
|
|
367
|
-
|
|
368
|
-
return {
|
|
369
|
-
action: 'stored',
|
|
370
|
-
id: null,
|
|
371
|
-
reason: 'verified-new',
|
|
372
|
-
};
|
|
373
|
-
}
|
|
374
|
-
catch (err) {
|
|
375
|
-
// Safety net: gate errors must never block writes.
|
|
376
|
-
// Log a warning and allow the store to proceed.
|
|
377
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
378
|
-
console.warn(`[extraction-gate] verifyCandidate error (allowing store): ${message}`);
|
|
379
|
-
return {
|
|
380
|
-
action: 'stored',
|
|
381
|
-
id: null,
|
|
382
|
-
reason: `gate-error-passthrough: ${message}`,
|
|
383
|
-
};
|
|
384
|
-
}
|
|
341
|
+
});
|
|
385
342
|
}
|
|
386
343
|
/**
|
|
387
344
|
* Run a batch of candidates through the verification gate sequentially.
|
|
@@ -477,34 +434,39 @@ export async function storeVerifiedCandidate(projectRoot, candidate) {
|
|
|
477
434
|
* For 'merged', increments the existing entry's citation_count (already done inside verifyCandidate).
|
|
478
435
|
* For 'pending' and 'rejected', returns the GateResult with no storage.
|
|
479
436
|
*
|
|
480
|
-
*
|
|
437
|
+
* Similarity findings remain review candidates and never create supersession edges.
|
|
481
438
|
*
|
|
482
439
|
* @param projectRoot - Project root for brain.db access
|
|
483
440
|
* @param candidate - Candidate to verify and store
|
|
484
|
-
* @returns Final GateResult with the stored/merged entry ID populated
|
|
441
|
+
* @returns Final GateResult with the stored/merged entry ID populated.
|
|
442
|
+
* @remarks Runs under captured project ownership and the original execution lifetime.
|
|
443
|
+
* Rejected verification is retained; cancellation cannot become authorization to store.
|
|
444
|
+
* @example
|
|
445
|
+
* ```ts
|
|
446
|
+
* const result = await verifyAndStore(projectRoot, candidate);
|
|
447
|
+
* ```
|
|
485
448
|
*/
|
|
486
449
|
export async function verifyAndStore(projectRoot, candidate) {
|
|
487
|
-
const
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
const newId = await storeVerifiedCandidate(projectRoot, candidate);
|
|
493
|
-
// If this was a contradiction supersession, add a graph edge (best-effort)
|
|
494
|
-
if (gateResult.reason.startsWith('contradiction-supersedes ')) {
|
|
495
|
-
const oldId = gateResult.reason.replace('contradiction-supersedes ', '');
|
|
496
|
-
addGraphEdge(projectRoot, `observation:${newId}`, `observation:${oldId}`, 'supersedes', 1.0, 'extraction-gate').catch(() => undefined);
|
|
450
|
+
const scope = captureProjectScope(projectRoot, worktreeScope.getStore());
|
|
451
|
+
return worktreeScope.run(scope, async () => {
|
|
452
|
+
const gateResult = await verifyCandidate(scope.worktreeRoot, candidate);
|
|
453
|
+
if (gateResult.action !== 'stored') {
|
|
454
|
+
return gateResult;
|
|
497
455
|
}
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
456
|
+
try {
|
|
457
|
+
scope.execution?.assertActive();
|
|
458
|
+
const newId = await storeVerifiedCandidate(scope.worktreeRoot, candidate);
|
|
459
|
+
return { ...gateResult, id: newId };
|
|
460
|
+
}
|
|
461
|
+
catch (err) {
|
|
462
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
463
|
+
return {
|
|
464
|
+
action: 'rejected',
|
|
465
|
+
id: null,
|
|
466
|
+
reason: `storage-error: ${message}`,
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
});
|
|
508
470
|
}
|
|
509
471
|
/**
|
|
510
472
|
* Full gate-and-store pipeline for a batch of candidates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-gate.js","sourceRoot":"","sources":["../../src/memory/extraction-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA0DxD,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,YAAY;IACZ,iBAAiB;CACT,CAAC;AAEX;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,KAAK;IACL,OAAO;IACP,WAAW;IACX,YAAY;IACZ,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;CACX,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,wBAAwB,CAAC,YAAoB,EAAE,OAAe;IACrE,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEvC,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,yDAAyD;IACzD,IAAI,eAAe,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAEjD,gDAAgD;IAChD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAe;IACjE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACnF,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,sCAAsC;QACtC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,QAAQ;iBACL,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,QAAQ;iBACL,OAAO,CAAC,8EAA8E,CAAC;iBACvF,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,QAAQ;iBACL,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,QAAQ;iBACL,OAAO,CAAC,kFAAkF,CAAC;iBAC3F,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,OAAe;IACxE,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACnF,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,QAAQ;iBACL,OAAO,CAAC,6EAA6E,CAAC;iBACtF,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,QAAQ;iBACL,OAAO,CAAC,4EAA4E,CAAC;iBACrF,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,QAAQ;iBACL,OAAO,CAAC,6EAA6E,CAAC;iBACtF,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,QAAQ;iBACL,OAAO,CAAC,gFAAgF,CAAC;iBACzF,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;AACH,CAAC;AAeD;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,cAAc,CAC3B,WAAmB,EACnB,IAAY,EACZ,QAAwB,oBAAoB;IAE5C,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACnF,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAEzC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,0FAA0F;QAC1F,MAAM,IAAI,GAAG,QAAQ;aAClB,OAAO,CAAC,kBAAkB,KAAK,wDAAwD,CAAC;aACxF,GAAG,CAAC,IAAI,CAA0B,CAAC;QAEtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,SAA0B;IACjD,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,SAAS,CAAC,gBAAgB,KAAK,OAAO,IAAI,SAAS,CAAC,gBAAgB,KAAK,cAAc,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,IAAY,EACZ,KAAqB;IAErB,OAAO,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,SAA0B;IAE1B,IAAI,CAAC;QACH,0EAA0E;QAC1E,wEAAwE;QACxE,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAClE,CAAC;QAED,0EAA0E;QAC1E,6CAA6C;QAC7C,+EAA+E;QAC/E,0EAA0E;QAC1E,MAAM,UAAU,GACd,SAAS,CAAC,UAAU,KAAK,UAAU;YACjC,CAAC,CAAC,uEAAuE;gBACvE,wEAAwE;gBACxE,sEAAsE;gBACtE,iBAAiB;YACnB,CAAC,CAAC,SAAS,CAAC,UAAU,KAAK,YAAY;gBACrC,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,oBAAoB,CAAC,CAAC,0BAA0B;QAExD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChF,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,8DAA8D;YAC9D,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACzE,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,MAAM,EAAE,mCAAmC,SAAS,CAAC,EAAE,EAAE;aAC1D,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,IAAI,oBAAoB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAE3B,IAAI,OAAO,CAAC,QAAQ,GAAG,mBAAmB,EAAE,CAAC;wBAC3C,uCAAuC;wBACvC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBACvE,OAAO;4BACL,MAAM,EAAE,QAAQ;4BAChB,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,MAAM,EAAE,qBAAqB,OAAO,CAAC,EAAE,qBAAqB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;4BAC1F,UAAU,EAAE,OAAO,CAAC,QAAQ;yBAC7B,CAAC;oBACJ,CAAC;oBAED,IAAI,OAAO,CAAC,QAAQ,GAAG,iBAAiB,EAAE,CAAC;wBACzC,oCAAoC;wBACpC,IAAI,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC3D,iDAAiD;4BACjD,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;4BAE/C,mDAAmD;4BACnD,0EAA0E;4BAC1E,yFAAyF;4BACzF,OAAO;gCACL,MAAM,EAAE,QAAQ;gCAChB,EAAE,EAAE,IAAI;gCACR,MAAM,EAAE,4BAA4B,OAAO,CAAC,EAAE,EAAE;gCAChD,UAAU,EAAE,OAAO,CAAC,QAAQ;6BAC7B,CAAC;wBACJ,CAAC;wBAED,iFAAiF;wBACjF,OAAO;4BACL,MAAM,EAAE,QAAQ;4BAChB,EAAE,EAAE,IAAI;4BACR,MAAM,EAAE,2BAA2B,OAAO,CAAC,EAAE,cAAc,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;4BACzF,UAAU,EAAE,OAAO,CAAC,QAAQ;yBAC7B,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kFAAkF;YACpF,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,gCAAgC;QAChC,0EAA0E;QAC1E,IAAI,SAAS,CAAC,UAAU,GAAG,kBAAkB,EAAE,CAAC;YAC9C,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,cAAc,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,kBAAkB,EAAE;aAC5F,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,cAAc;SACvB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mDAAmD;QACnD,gDAAgD;QAChD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,6DAA6D,OAAO,EAAE,CAAC,CAAC;QACrF,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,2BAA2B,OAAO,EAAE;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,UAA6B;IAE7B,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,SAA0B;IAE1B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE9D,QAAQ,SAAS,CAAC,UAAU,EAAE,CAAC;QAC7B,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACzD,uFAAuF;YACvF,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC3C,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,iBAAiB;gBAClD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,uFAAuF;YACvF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;gBAC7C,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK;gBACL,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;gBAC9D,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACvD,uFAAuF;YACvF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;gBAC1C,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,mEAAmE;YACnE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,uFAAuF;YACvF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;gBAC7C,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,KAAK;gBACL,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;gBAC9D,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,SAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEjE,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEnE,2EAA2E;QAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YACzE,YAAY,CACV,WAAW,EACX,eAAe,KAAK,EAAE,EACtB,eAAe,KAAK,EAAE,EACtB,YAAY,EACZ,GAAG,EACH,iBAAiB,CAClB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,kBAAkB,OAAO,EAAE;SACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,UAA6B;IAE7B,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"extraction-gate.js","sourceRoot":"","sources":["../../src/memory/extraction-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* storePattern, storeLearning, and task completion).
|
|
8
8
|
*
|
|
9
9
|
* Design constraints:
|
|
10
|
-
* -
|
|
10
|
+
* - Legacy writes are best-effort; scoped projections propagate failures.
|
|
11
11
|
* - All writes are gated on brain.autoCapture via isAutoCaptureEnabled.
|
|
12
12
|
* - Uses INSERT OR REPLACE (onConflictDoUpdate) for upsert semantics.
|
|
13
13
|
* - Edge inserts are idempotent via the composite PK (fromId, toId, edgeType).
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* @task T537
|
|
16
16
|
* @epic T523
|
|
17
17
|
*/
|
|
18
|
+
import type { OperationExecutionContext } from '@cleocode/contracts/jobs';
|
|
19
|
+
import type { DocsGraphProjectionResult } from '@cleocode/contracts/operations/docs';
|
|
18
20
|
import type { BrainEdgeType, BrainNodeType } from '../store/schema/memory-schema.js';
|
|
19
21
|
export type { BrainEdgeType, BrainNodeType };
|
|
20
22
|
/**
|
|
@@ -29,7 +31,7 @@ export type { BrainEdgeType, BrainNodeType };
|
|
|
29
31
|
* content; their hash will be null so duplicates are not rejected.
|
|
30
32
|
*
|
|
31
33
|
* This function is gated on brain.autoCapture. If the gate is disabled or any
|
|
32
|
-
* error occurs,
|
|
34
|
+
* error occurs, legacy calls return silently. Context-aware calls throw failures.
|
|
33
35
|
*
|
|
34
36
|
* @param projectRoot - Absolute path to the project root directory.
|
|
35
37
|
* @param nodeId - Stable composite ID in the form '<type>:<source-id>'.
|
|
@@ -38,10 +40,16 @@ export type { BrainEdgeType, BrainNodeType };
|
|
|
38
40
|
* @param qualityScore - 0.0 (noise) to 1.0 (canonical).
|
|
39
41
|
* @param content - Canonical text used to derive the content hash.
|
|
40
42
|
* @param metadata - Optional type-specific metadata blob.
|
|
43
|
+
* @param context - Captured scope; when supplied, failures throw and writes check cancellation.
|
|
41
44
|
*
|
|
45
|
+
* @remarks Scoped calls pin storage routing and refuse to join an unowned transaction.
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* await upsertGraphNode(root, 'task:T123', 'task', 'Task', 0.7, '');
|
|
49
|
+
* ```
|
|
42
50
|
* @task T537
|
|
43
51
|
*/
|
|
44
|
-
export declare function upsertGraphNode(projectRoot: string, nodeId: string, nodeType: BrainNodeType, label: string, qualityScore: number, content: string, metadata?: Record<string, unknown
|
|
52
|
+
export declare function upsertGraphNode(projectRoot: string, nodeId: string, nodeType: BrainNodeType, label: string, qualityScore: number, content: string, metadata?: Record<string, unknown>, context?: OperationExecutionContext): Promise<void>;
|
|
45
53
|
/**
|
|
46
54
|
* Add a directed, typed edge between two graph nodes (idempotent).
|
|
47
55
|
*
|
|
@@ -50,7 +58,7 @@ export declare function upsertGraphNode(projectRoot: string, nodeId: string, nod
|
|
|
50
58
|
* multiple times with the same arguments.
|
|
51
59
|
*
|
|
52
60
|
* This function is gated on brain.autoCapture. If the gate is disabled or any
|
|
53
|
-
* error occurs,
|
|
61
|
+
* error occurs, legacy calls return silently. Context-aware calls throw failures.
|
|
54
62
|
*
|
|
55
63
|
* @param projectRoot - Absolute path to the project root directory.
|
|
56
64
|
* @param fromId - Source node ID (brain_page_nodes.id).
|
|
@@ -58,10 +66,16 @@ export declare function upsertGraphNode(projectRoot: string, nodeId: string, nod
|
|
|
58
66
|
* @param edgeType - Typed relationship from BRAIN_EDGE_TYPES.
|
|
59
67
|
* @param weight - Edge confidence/weight (0.0–1.0). Defaults to 1.0.
|
|
60
68
|
* @param provenance - Human-readable note on why this edge was emitted.
|
|
69
|
+
* @param context - Captured scope; when supplied, failures throw and writes check cancellation.
|
|
61
70
|
*
|
|
71
|
+
* @remarks Scoped calls pin storage routing and refuse to join an unowned transaction.
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* await addGraphEdge(root, 'task:T123', 'llmtxt:hash', 'embeds');
|
|
75
|
+
* ```
|
|
62
76
|
* @task T537
|
|
63
77
|
*/
|
|
64
|
-
export declare function addGraphEdge(projectRoot: string, fromId: string, toId: string, edgeType: BrainEdgeType, weight?: number, provenance?: string): Promise<void>;
|
|
78
|
+
export declare function addGraphEdge(projectRoot: string, fromId: string, toId: string, edgeType: BrainEdgeType, weight?: number, provenance?: string, context?: OperationExecutionContext): Promise<void>;
|
|
65
79
|
/**
|
|
66
80
|
* Upsert a `task:T###` graph node for a task at creation time (not completion).
|
|
67
81
|
*
|
|
@@ -99,6 +113,25 @@ export declare function ensureTaskNode(projectRoot: string, taskId: string, titl
|
|
|
99
113
|
* @task T945
|
|
100
114
|
*/
|
|
101
115
|
export declare function ensureLlmtxtNode(projectRoot: string, sha256: string, ownerId: string, label: string): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Project a canonical document into the graph with captured scope and visible failures.
|
|
118
|
+
*
|
|
119
|
+
* @remarks Each synchronous write checks the same absolute deadline. This does not preempt
|
|
120
|
+
* SQLite or promise atomicity across the node and edge; a failed edge leaves an
|
|
121
|
+
* idempotently resumable partial projection. Canonical document bytes are untouched.
|
|
122
|
+
*
|
|
123
|
+
* @param context - Caller-owned immutable identity, deadline and cancellation.
|
|
124
|
+
* @param sha256 - Canonical document content hash.
|
|
125
|
+
* @param ownerId - Qualified graph owner identity.
|
|
126
|
+
* @param label - Document display label.
|
|
127
|
+
* @returns Completed or explicitly disabled graph projection in the captured project.
|
|
128
|
+
* @throws Error - Configuration, storage, cancellation or deadline failure.
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* const result = await ensureLlmtxtNodeScoped(context, sha256, 'task:T123', 'Design');
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export declare function ensureLlmtxtNodeScoped(context: OperationExecutionContext, sha256: string, ownerId: string, label: string): Promise<DocsGraphProjectionResult>;
|
|
102
135
|
/**
|
|
103
136
|
* Upsert a `msg:<id>` graph node for a CONDUIT message and, when the message
|
|
104
137
|
* body references one or more `T###` task IDs, emit `discusses` edges from
|