@snoai/memory 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +176 -0
- package/README.md +7 -2
- package/config/b-profile-section-registry.json +118 -0
- package/config/llm/compiled/2026-05-19T230932Z/manifest.json +25 -0
- package/config/llm/compiled/2026-05-19T230932Z/registry-root.json +67 -0
- package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
- package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/openrouter_auto.json +5 -0
- package/config/llm/compiled/2026-05-19T230932Z/resolved/mem_claw/sno_ai_extract.json +5 -0
- package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
- package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/openrouter_auto.mda +24 -0
- package/config/llm/compiled/2026-05-19T230932Z/source/mem_claw/sno_ai_extract.mda +24 -0
- package/config/llm/compiled/2026-07-21T001311Z/manifest.json +43 -0
- package/config/llm/compiled/2026-07-21T001311Z/registry-root.json +97 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/openrouter_auto.json +5 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_ai_extract.json +5 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_extract_chat.json +10 -0
- package/config/llm/compiled/2026-07-21T001311Z/resolved/mem_claw/sno_extract_profile.json +10 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/openrouter_auto.mda +24 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_ai_extract.mda +24 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_extract_chat.mda +27 -0
- package/config/llm/compiled/2026-07-21T001311Z/source/mem_claw/sno_extract_profile.mda +27 -0
- package/config/llm/compiled/2026-08-29T060335Z/manifest.json +43 -0
- package/config/llm/compiled/2026-08-29T060335Z/registry-root.json +97 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/openrouter_auto.json +5 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_ai_extract.json +5 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_extract_chat.json +10 -0
- package/config/llm/compiled/2026-08-29T060335Z/resolved/mem_claw/sno_extract_profile.json +10 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/openrouter_auto.mda +24 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_ai_extract.mda +24 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_extract_chat.mda +27 -0
- package/config/llm/compiled/2026-08-29T060335Z/source/mem_claw/sno_extract_profile.mda +27 -0
- package/config/llm/compiled/2026-09-04T004828Z/manifest.json +43 -0
- package/config/llm/compiled/2026-09-04T004828Z/registry-root.json +97 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/openai_gpt_5_nano.json +5 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/openrouter_auto.json +5 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_ai_extract.json +5 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_conflict_verdict.json +10 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_extract_chat.json +10 -0
- package/config/llm/compiled/2026-09-04T004828Z/resolved/mem_claw/sno_extract_profile.json +10 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/openai_gpt_5_nano.mda +24 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/openrouter_auto.mda +24 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_ai_extract.mda +24 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_conflict_verdict.mda +27 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_extract_chat.mda +27 -0
- package/config/llm/compiled/2026-09-04T004828Z/source/mem_claw/sno_extract_profile.mda +27 -0
- package/config/llm/current.json +4 -0
- package/config/llm/source/mem_claw/openai_gpt_5_nano.mda +24 -0
- package/config/llm/source/mem_claw/openrouter_auto.mda +24 -0
- package/config/llm/source/mem_claw/sno_ai_extract.mda +24 -0
- package/config/llm/source/mem_claw/sno_conflict_verdict.mda +27 -0
- package/config/llm/source/mem_claw/sno_extract_chat.mda +27 -0
- package/config/llm/source/mem_claw/sno_extract_profile.mda +27 -0
- package/config/llm.trust.json +37 -0
- package/dist/_types-CUKHSRkS.d.ts +103 -0
- package/dist/access-tracker-CSc21GtV.d.ts +110 -0
- package/dist/adapter-DMEmCTKo.d.ts +69 -0
- package/dist/adapter-XaRHZWZ2.js +333 -0
- package/dist/agent-llm-port-5oXgBpzJ.d.ts +53 -0
- package/dist/all-resources-BQK2ugjB.js +6379 -0
- package/dist/all-resources-Dij6l5h0.d.ts +18 -0
- package/dist/ambient-learning-text-normalizer-CxjATmMp.js +170 -0
- package/dist/ambient-learning-text-normalizer-_fH3LeuK.d.ts +10 -0
- package/dist/atomic-extraction-reply-BJ9XV_9s.js +863 -0
- package/dist/atomic-extraction-skill-CcXmuCqL.js +56 -0
- package/dist/atomic-memory-extraction-BpOUWPJM.d.ts +327 -0
- package/dist/atomic-memory-extraction-sdNf1-B1.js +3605 -0
- package/dist/b-profile-section-dictionary-provider-BHkoNqgk.js +1812 -0
- package/dist/b-profile-section-dictionary-provider-BxbksLj3.d.ts +62 -0
- package/dist/best-effort-BPZSzKk0.d.ts +9 -0
- package/dist/calendar-instruction-CzqZbAPG.js +194 -0
- package/dist/capture-policy-detector-CHz5GOPA.d.ts +53 -0
- package/dist/capture-policy-detector-DaMfy9CZ.js +357 -0
- package/dist/classifier-C96uH9OF.d.ts +272 -0
- package/dist/client.d.ts +34 -0
- package/dist/client.js +305 -0
- package/dist/coding-skin.d.ts +51 -0
- package/dist/coding-skin.js +55 -0
- package/dist/config-tSrvLXgV.js +2577 -0
- package/dist/connection-DAbzki8K.d.ts +391 -0
- package/dist/connection-DliCOBB2.js +297 -0
- package/dist/daily-log-generator-CH_KuWHs.js +469 -0
- package/dist/daily-log-generator-CsQPHl4A.d.ts +73 -0
- package/dist/daily-spend-estimator-DiwzBlo1.d.ts +8 -0
- package/dist/data-bootstrap-CYniFp8b.js +172 -0
- package/dist/data-bootstrap-CcJUwkqf.d.ts +30 -0
- package/dist/data-paths-C7sNdqvP.d.ts +22 -0
- package/dist/derived-suppression-cache-C7bGARc0.d.ts +36 -0
- package/dist/diagnostic-encoder.d.ts +6 -0
- package/dist/diagnostic-encoder.js +29 -0
- package/dist/embedding-provider-client-Q_hJonK9.js +294 -0
- package/dist/embedding-provider-client-vynZMuit.d.ts +94 -0
- package/dist/entry-metadata-parser-BIVSMCIk.js +20 -0
- package/dist/error-D-wb-rZw.js +23 -0
- package/dist/error-signals-D8_3vYu4.d.ts +28 -0
- package/dist/error-signals-lMH2uAdV.js +134 -0
- package/dist/errors-CeVRxf9V.d.ts +49 -0
- package/dist/extraction-text-sanitizer-B_AhIecT.d.ts +32 -0
- package/dist/i18n-text-DbD6Qify.d.ts +13 -0
- package/dist/index-BsMap4It.d.ts +650 -0
- package/dist/index-DL8AVj0Z.d.ts +571 -0
- package/dist/index-DQ7VL6d3.d.ts +350 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +1201 -0
- package/dist/intent-analyzer-B5XVrWwe.d.ts +28 -0
- package/dist/internal/config/index.d.ts +2 -0
- package/dist/internal/config/index.js +581 -0
- package/dist/internal/config/plugin-config-schema.d.ts +2 -0
- package/dist/internal/config/plugin-config-schema.js +2 -0
- package/dist/internal/config/product-mode.d.ts +2 -0
- package/dist/internal/config/product-mode.js +36 -0
- package/dist/internal/config/settings.d.ts +2 -0
- package/dist/internal/config/settings.js +265 -0
- package/dist/internal/config/skill-categories.d.ts +4 -0
- package/dist/internal/config/skill-categories.js +68 -0
- package/dist/internal/config/skin-defaults.d.ts +6 -0
- package/dist/internal/config/skin-defaults.js +6 -0
- package/dist/internal/contract/discovery.d.ts +10 -0
- package/dist/internal/contract/discovery.js +53 -0
- package/dist/internal/contract/profile.d.ts +2 -0
- package/dist/internal/contract/profile.js +44 -0
- package/dist/internal/contract/routes.d.ts +2 -0
- package/dist/internal/contract/routes.js +61 -0
- package/dist/internal/engine/bindings/memory-cli-shared.d.ts +47 -0
- package/dist/internal/engine/bindings/memory-cli-shared.js +84 -0
- package/dist/internal/engine/bindings/memory-forget-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-forget-tool.js +66 -0
- package/dist/internal/engine/bindings/memory-list-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-list-tool.js +57 -0
- package/dist/internal/engine/bindings/memory-recall-tool.d.ts +10 -0
- package/dist/internal/engine/bindings/memory-recall-tool.js +283 -0
- package/dist/internal/engine/bindings/memory-reflection-resolve-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-reflection-resolve-tool.js +150 -0
- package/dist/internal/engine/bindings/memory-stats-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-stats-tool.js +43 -0
- package/dist/internal/engine/bindings/memory-store-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-store-tool.js +165 -0
- package/dist/internal/engine/bindings/memory-tool-access.d.ts +16 -0
- package/dist/internal/engine/bindings/memory-tool-access.js +46 -0
- package/dist/internal/engine/bindings/memory-tool-formatting.d.ts +62 -0
- package/dist/internal/engine/bindings/memory-tool-formatting.js +106 -0
- package/dist/internal/engine/bindings/memory-tool-results.d.ts +8 -0
- package/dist/internal/engine/bindings/memory-tool-results.js +41 -0
- package/dist/internal/engine/bindings/memory-tool-schemas.d.ts +109 -0
- package/dist/internal/engine/bindings/memory-tool-schemas.js +75 -0
- package/dist/internal/engine/bindings/memory-update-tool.d.ts +5 -0
- package/dist/internal/engine/bindings/memory-update-tool.js +127 -0
- package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.d.ts +14 -0
- package/dist/internal/engine/bindings/sno-station-mem-ambient-learning-hook.js +248 -0
- package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.d.ts +12 -0
- package/dist/internal/engine/bindings/sno-station-mem-auto-recall-hook.js +324 -0
- package/dist/internal/engine/bindings/sno-station-mem-hook-types.d.ts +56 -0
- package/dist/internal/engine/bindings/sno-station-mem-hook-types.js +1 -0
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.d.ts +14 -0
- package/dist/internal/engine/bindings/sno-station-mem-insight-distill-factory.js +119 -0
- package/dist/internal/engine/bindings/sno-station-mem-message-transcript.d.ts +52 -0
- package/dist/internal/engine/bindings/sno-station-mem-message-transcript.js +145 -0
- package/dist/internal/engine/bindings/sno-station-mem-reset-hook.d.ts +10 -0
- package/dist/internal/engine/bindings/sno-station-mem-reset-hook.js +9 -0
- package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.d.ts +37 -0
- package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +105 -0
- package/dist/internal/engine/bindings/sno-station-mem-session-state.d.ts +10 -0
- package/dist/internal/engine/bindings/sno-station-mem-session-state.js +27 -0
- package/dist/internal/engine/eval/trace.d.ts +2 -0
- package/dist/internal/engine/eval/trace.js +151 -0
- package/dist/internal/engine/extraction/ambient-learning-text-normalizer.d.ts +2 -0
- package/dist/internal/engine/extraction/ambient-learning-text-normalizer.js +2 -0
- package/dist/internal/engine/extraction/atomic-memory-extraction.d.ts +2 -0
- package/dist/internal/engine/extraction/atomic-memory-extraction.js +2 -0
- package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.d.ts +2 -0
- package/dist/internal/engine/extraction/b-profile-section-dictionary-provider.js +2 -0
- package/dist/internal/engine/extraction/b-profile-section-rekey.d.ts +49 -0
- package/dist/internal/engine/extraction/b-profile-section-rekey.js +730 -0
- package/dist/internal/engine/extraction/capture-policy-detector.d.ts +2 -0
- package/dist/internal/engine/extraction/capture-policy-detector.js +2 -0
- package/dist/internal/engine/extraction/embedding-provider-client.d.ts +2 -0
- package/dist/internal/engine/extraction/embedding-provider-client.js +2 -0
- package/dist/internal/engine/extraction/extraction-text-sanitizer.d.ts +2 -0
- package/dist/internal/engine/extraction/extraction-text-sanitizer.js +114 -0
- package/dist/internal/engine/extraction/memory-metadata-codec.d.ts +3 -0
- package/dist/internal/engine/extraction/memory-metadata-codec.js +2 -0
- package/dist/internal/engine/extraction/memory-temporality-classifier.d.ts +2 -0
- package/dist/internal/engine/extraction/memory-temporality-classifier.js +2 -0
- package/dist/internal/engine/i18n/all-resources.d.ts +2 -0
- package/dist/internal/engine/i18n/all-resources.js +2 -0
- package/dist/internal/engine/i18n/locales.d.ts +2 -0
- package/dist/internal/engine/i18n/locales.js +19 -0
- package/dist/internal/engine/i18n/res/_types.d.ts +2 -0
- package/dist/internal/engine/i18n/res/_types.js +11 -0
- package/dist/internal/engine/observability/adapter.d.ts +2 -0
- package/dist/internal/engine/observability/adapter.js +2 -0
- package/dist/internal/engine/observability/best-effort.d.ts +2 -0
- package/dist/internal/engine/observability/best-effort.js +41 -0
- package/dist/internal/engine/observability/early-diagnostics.js +2 -0
- package/dist/internal/engine/observability/memory-snapshot.d.ts +2 -0
- package/dist/internal/engine/observability/memory-snapshot.js +44 -0
- package/dist/internal/engine/observability/observable-embedder.d.ts +2 -0
- package/dist/internal/engine/observability/observable-embedder.js +43 -0
- package/dist/internal/engine/observability/observable-llm-client.d.ts +2 -0
- package/dist/internal/engine/observability/observable-llm-client.js +98 -0
- package/dist/internal/engine/observability/observable-memory-store.d.ts +2 -0
- package/dist/internal/engine/observability/observable-memory-store.js +701 -0
- package/dist/internal/engine/observability/observable-retriever.d.ts +2 -0
- package/dist/internal/engine/observability/observable-retriever.js +95 -0
- package/dist/internal/engine/observability/runtime-diagnostics.d.ts +13 -0
- package/dist/internal/engine/observability/runtime-diagnostics.js +96 -0
- package/dist/internal/engine/observability/session-registry.d.ts +2 -0
- package/dist/internal/engine/observability/session-registry.js +58 -0
- package/dist/internal/engine/observability/version-metadata.d.ts +7 -0
- package/dist/internal/engine/observability/version-metadata.js +59 -0
- package/dist/internal/engine/operations/daily-spend-estimator.d.ts +2 -0
- package/dist/internal/engine/operations/daily-spend-estimator.js +97 -0
- package/dist/internal/engine/operations/learning-file-maintenance.d.ts +2 -0
- package/dist/internal/engine/operations/learning-file-maintenance.js +255 -0
- package/dist/internal/engine/operations/memory-tier-promoter.d.ts +2 -0
- package/dist/internal/engine/operations/memory-tier-promoter.js +95 -0
- package/dist/internal/engine/operations/runtime-audit-log.d.ts +3 -0
- package/dist/internal/engine/operations/runtime-audit-log.js +3 -0
- package/dist/internal/engine/provider/canonical-memory-corpus.d.ts +38 -0
- package/dist/internal/engine/provider/canonical-memory-corpus.js +253 -0
- package/dist/internal/engine/provider/provider-registration.d.ts +39 -0
- package/dist/internal/engine/provider/provider-registration.js +2 -0
- package/dist/internal/engine/provider/provider-row-renderer.d.ts +7 -0
- package/dist/internal/engine/provider/provider-row-renderer.js +53 -0
- package/dist/internal/engine/provider/provider-types.d.ts +2 -0
- package/dist/internal/engine/provider/provider-types.js +1 -0
- package/dist/internal/engine/reflection/daily-log-generator.d.ts +2 -0
- package/dist/internal/engine/reflection/daily-log-generator.js +2 -0
- package/dist/internal/engine/reflection/reflection-command-hooks.d.ts +2 -0
- package/dist/internal/engine/reflection/reflection-command-hooks.js +2 -0
- package/dist/internal/engine/reflection/reflection-deps.d.ts +2 -0
- package/dist/internal/engine/reflection/reflection-deps.js +1 -0
- package/dist/internal/engine/reflection/reflection-embedded-generator.d.ts +2 -0
- package/dist/internal/engine/reflection/reflection-embedded-generator.js +2 -0
- package/dist/internal/engine/reflection/reflection-injection-hooks.d.ts +2 -0
- package/dist/internal/engine/reflection/reflection-injection-hooks.js +219 -0
- package/dist/internal/engine/reflection/reflection-lifecycle-hooks.d.ts +2 -0
- package/dist/internal/engine/reflection/reflection-lifecycle-hooks.js +63 -0
- package/dist/internal/engine/reflection/strategy-hook-runner.d.ts +4 -0
- package/dist/internal/engine/reflection/strategy-hook-runner.js +3 -0
- package/dist/internal/engine/rem/classifier.d.ts +2 -0
- package/dist/internal/engine/rem/classifier.js +180 -0
- package/dist/internal/engine/rem/index.d.ts +4 -0
- package/dist/internal/engine/rem/index.js +2551 -0
- package/dist/internal/engine/rem/types.d.ts +2 -0
- package/dist/internal/engine/rem/types.js +40 -0
- package/dist/internal/engine/retrieval/access-tracker.d.ts +2 -0
- package/dist/internal/engine/retrieval/access-tracker.js +314 -0
- package/dist/internal/engine/retrieval/intent-analyzer.d.ts +2 -0
- package/dist/internal/engine/retrieval/intent-analyzer.js +27 -0
- package/dist/internal/engine/retrieval/retrieval-gate.d.ts +2 -0
- package/dist/internal/engine/retrieval/retrieval-gate.js +47 -0
- package/dist/internal/engine/retrieval/retriever.d.ts +2 -0
- package/dist/internal/engine/retrieval/retriever.js +2 -0
- package/dist/internal/engine/security/memory-scope-policy.d.ts +2 -0
- package/dist/internal/engine/security/memory-scope-policy.js +2 -0
- package/dist/internal/engine/security/redact.d.ts +2 -0
- package/dist/internal/engine/security/redact.js +34 -0
- package/dist/internal/engine/security/scopes.d.ts +3 -0
- package/dist/internal/engine/security/scopes.js +3 -0
- package/dist/internal/engine/shared/errors.d.ts +2 -0
- package/dist/internal/engine/shared/errors.js +66 -0
- package/dist/internal/engine/shared/i18n-text.d.ts +2 -0
- package/dist/internal/engine/shared/i18n-text.js +58 -0
- package/dist/internal/engine/shared/iso-date-time.d.ts +16 -0
- package/dist/internal/engine/shared/iso-date-time.js +40 -0
- package/dist/internal/engine/shared/lru.d.ts +2 -0
- package/dist/internal/engine/shared/lru.js +30 -0
- package/dist/internal/engine/shared/memory-kind-policy.d.ts +2 -0
- package/dist/internal/engine/shared/memory-kind-policy.js +64 -0
- package/dist/internal/engine/shared/paths.d.ts +3 -0
- package/dist/internal/engine/shared/paths.js +2 -0
- package/dist/internal/engine/shared/types.d.ts +3 -0
- package/dist/internal/engine/shared/types.js +25 -0
- package/dist/internal/engine/shared/utils.d.ts +2 -0
- package/dist/internal/engine/shared/utils.js +175 -0
- package/dist/internal/engine/telemetry/memory-telemetry-api.d.ts +134 -0
- package/dist/internal/engine/telemetry/memory-telemetry-api.js +730 -0
- package/dist/internal/engine/telemetry/memory-telemetry-observability.d.ts +24 -0
- package/dist/internal/engine/telemetry/memory-telemetry-observability.js +133 -0
- package/dist/internal/engine/telemetry/memory-telemetry-outbox.d.ts +2 -0
- package/dist/internal/engine/telemetry/memory-telemetry-outbox.js +443 -0
- package/dist/internal/engine/telemetry/memory-telemetry-types.d.ts +2 -0
- package/dist/internal/engine/telemetry/memory-telemetry-types.js +21 -0
- package/dist/internal/engine/telemetry/observe-ledger.d.ts +30 -0
- package/dist/internal/engine/telemetry/observe-ledger.js +111 -0
- package/dist/internal/model/agent-llm-port.d.ts +2 -0
- package/dist/internal/model/agent-llm-port.js +1 -0
- package/dist/internal/model/llm-client.d.ts +3 -0
- package/dist/internal/model/llm-client.js +3 -0
- package/dist/internal/model/llm-failure.d.ts +26 -0
- package/dist/internal/model/llm-failure.js +63 -0
- package/dist/internal/model/llm-mode-routing.d.ts +22 -0
- package/dist/internal/model/llm-mode-routing.js +37 -0
- package/dist/internal/store/atomic-memory-cutover-sql.d.ts +13 -0
- package/dist/internal/store/atomic-memory-cutover-sql.js +237 -0
- package/dist/internal/store/connection.d.ts +2 -0
- package/dist/internal/store/connection.js +2 -0
- package/dist/internal/store/data-bootstrap.d.ts +2 -0
- package/dist/internal/store/data-bootstrap.js +2 -0
- package/dist/internal/store/data-paths.d.ts +2 -0
- package/dist/internal/store/data-paths.js +65 -0
- package/dist/internal/store/maintenance.d.ts +75 -0
- package/dist/internal/store/maintenance.js +1401 -0
- package/dist/internal/store/memory-kinds-cutover-migrator.d.ts +28 -0
- package/dist/internal/store/memory-kinds-cutover-migrator.js +415 -0
- package/dist/internal/store/migrations.d.ts +27 -0
- package/dist/internal/store/migrations.js +201 -0
- package/dist/internal/store/sqlite-runtime.d.ts +2 -0
- package/dist/internal/store/sqlite-runtime.js +109 -0
- package/dist/internal/store/store.d.ts +3 -0
- package/dist/internal/store/store.js +2 -0
- package/dist/learning-file-maintenance-9b-Ut6Kv.d.ts +30 -0
- package/dist/llm-client-B7Xoxqou.js +1378 -0
- package/dist/llm-client-DOTSGzhe.d.ts +51 -0
- package/dist/locales-JxGmkG6t.d.ts +7 -0
- package/dist/log-site-catalog.generated-B9WYdnAM.js +2321 -0
- package/dist/log-site-catalog.json +1 -0
- package/dist/lru-DyoaTyIs.d.ts +14 -0
- package/dist/memdump.d.ts +52 -0
- package/dist/memdump.js +163 -0
- package/dist/memory-entry-projector-DHo8jH10.js +1015 -0
- package/dist/memory-kind-policy-LKt0u3gy.d.ts +23 -0
- package/dist/memory-metadata-codec-C3oQd47V.d.ts +68 -0
- package/dist/memory-metadata-codec-DL1sbJiN.js +577 -0
- package/dist/memory-runtime-BZtREuwW.js +19459 -0
- package/dist/memory-scope-policy-1gg5QlWZ.d.ts +67 -0
- package/dist/memory-scope-policy-DICSCURA.js +283 -0
- package/dist/memory-snapshot-3e44ND2i.d.ts +16 -0
- package/dist/memory-source-order-BtrIxaIt.js +134 -0
- package/dist/memory-store-base-XRA4S9Xl.d.ts +1095 -0
- package/dist/memory-store-shared-DeIDkhLj.js +158 -0
- package/dist/memory-store-write-validation-B_hDG2zf.js +243 -0
- package/dist/memory-telemetry-incidents-BWA9kcZx.js +8 -0
- package/dist/memory-telemetry-metadata-CA7W8tK6.js +77 -0
- package/dist/memory-telemetry-outbox-ddTdImt7.d.ts +74 -0
- package/dist/memory-telemetry-receipts-MAJecvXQ.d.ts +34 -0
- package/dist/memory-telemetry-receipts-YsxbwOAf.js +91 -0
- package/dist/memory-telemetry-types-CufVmrCs.d.ts +14 -0
- package/dist/memory-temporality-classifier-CEdRTN5J.d.ts +43 -0
- package/dist/memory-temporality-classifier-CKiTAHXe.js +184 -0
- package/dist/memory-tier-promoter-DbTpahkP.d.ts +43 -0
- package/dist/memory-tool-dependencies-CLODycUw.js +19 -0
- package/dist/memory-tool-dependencies-N69chrQc.d.ts +14 -0
- package/dist/model-call-table-CspopkBg.js +563 -0
- package/dist/model-reply-text-CKopStP2.js +334 -0
- package/dist/observable-embedder-DQnNgf9O.d.ts +17 -0
- package/dist/observable-llm-client-uwqPADpN.d.ts +21 -0
- package/dist/observable-memory-store-BaZKbhgq.d.ts +73 -0
- package/dist/observable-retriever-Dt_NUxAA.d.ts +23 -0
- package/dist/operation-cancellation-CTKWwNHk.js +81 -0
- package/dist/paths-qVF-5uBq.d.ts +1 -0
- package/dist/plugin-config-schema-C0UUbOmG.d.ts +413 -0
- package/dist/plugin-config-schema-YJLyIIcJ.js +361 -0
- package/dist/profile-TWPJ_myr.d.ts +13 -0
- package/dist/profile-section-writer-hIphqpUY.js +2149 -0
- package/dist/provider-registration-CF1tg8Xy.js +721 -0
- package/dist/provider-runtime-types-DFhtdA6d.d.ts +134 -0
- package/dist/provider-types-CZGm6v88.d.ts +23 -0
- package/dist/redact-BTIZcHQL.d.ts +5 -0
- package/dist/reflection-command-hooks-BeQiJI9-.js +644 -0
- package/dist/reflection-command-hooks-C1Vxgb-O.d.ts +32 -0
- package/dist/reflection-deps-RpLPFrSc.d.ts +19 -0
- package/dist/reflection-embedded-generator-CDUhgV96.js +130 -0
- package/dist/reflection-embedded-generator-CxOex5xK.d.ts +14 -0
- package/dist/reflection-injection-hooks-DfUgqu8f.d.ts +43 -0
- package/dist/reflection-lifecycle-hooks-Ct5HBdSG.d.ts +27 -0
- package/dist/relation-dictionary-Cev1kyLe.js +4248 -0
- package/dist/release-download.d.ts +8 -0
- package/dist/release-download.js +32 -0
- package/dist/relevant-memories-context-m8nuFZcM.js +23 -0
- package/dist/rem-batch-executor-Cbm5gfSe.js +31644 -0
- package/dist/rem-batch-executor-bc0IFlp2.js +2 -0
- package/dist/rem-consumer-retrieval-CRpvG8KS.js +246 -0
- package/dist/rem-trigger-BTxkcjgT.js +729 -0
- package/dist/resolver-Dy-hnjCR.js +103 -0
- package/dist/results-C3ZLroMb.js +140 -0
- package/dist/retrieval-gate-Bx2Zg7jD.d.ts +31 -0
- package/dist/retriever-CygHBazG.js +1757 -0
- package/dist/retriever-Ruk3zp7_.d.ts +469 -0
- package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/routes-Ce7SQKec.js +59 -0
- package/dist/runtime-audit-log-BCeujlEp.js +430 -0
- package/dist/runtime-audit-log-zpQiR9HT.d.ts +149 -0
- package/dist/scopes-CSOn6zdd.js +71 -0
- package/dist/scopes-CtrY-YQ3.d.ts +23 -0
- package/dist/server-BPAY4NTG.js +1410 -0
- package/dist/session-registry-DBoE7AvZ.d.ts +14 -0
- package/dist/sidecar/main.d.ts +1 -0
- package/dist/sidecar/main.js +56 -0
- package/dist/signed-registry-constants-Bv0fgZ8Q.d.ts +12 -0
- package/dist/signed-registry-constants-yq3DlG3B.js +82 -0
- package/dist/sno-station-mem-runtime-dependencies-Bu-MiqPX.d.ts +31 -0
- package/dist/sno-station-mem-runtime-dependencies-DjLOhB45.js +30 -0
- package/dist/sqlite-runtime-L_ywirTm.d.ts +58 -0
- package/dist/store-2pM0-dZg.d.ts +27 -0
- package/dist/store-DzpZBMEm.js +5830 -0
- package/dist/strategy-hook-runner-gBtU47tX.d.ts +16 -0
- package/dist/strategy-hook-runner-zmdIYOmQ.js +110 -0
- package/dist/token-counter-BD1f48Km.js +73 -0
- package/dist/trace-1t1n_wUm.d.ts +86 -0
- package/dist/types-DxKqU60b.d.ts +477 -0
- package/dist/types-pVomjzqR.d.ts +132 -0
- package/dist/unplaced-candidate-migration-CbQHzcEM.js +940 -0
- package/dist/utils-Ctb9aevJ.d.ts +34 -0
- package/drizzle/0000_initial.sql +10 -0
- package/drizzle/0001_virtual_tables.sql +34 -0
- package/drizzle/0002_add_indexes.sql +11 -0
- package/drizzle/0003_content_hash_lookup_index.sql +2 -0
- package/drizzle/0004_chunk_swap.sql +60 -0
- package/drizzle/0005_drop_legacy_vec_fts.sql +10 -0
- package/drizzle/0006_fts_simple.sql +45 -0
- package/drizzle/0007_restore_simple_fts.sql +40 -0
- package/drizzle/0008_widen_memory_hash_unique_index.sql +4 -0
- package/drizzle/0009_memory_telemetry.sql +109 -0
- package/drizzle/0010_provider_mappings.sql +27 -0
- package/drizzle/0011_db_optimization.sql +82 -0
- package/drizzle/0012_b_profile_lanes.sql +9 -0
- package/drizzle/0013_extraction_timestamps.sql +6 -0
- package/drizzle/0014_extraction_timestamp_source.sql +3 -0
- package/drizzle/0015_task_lifecycle_state.sql +101 -0
- package/drizzle/0016_task_lifecycle_legacy_migration.sql +144 -0
- package/drizzle/0017_unplaced_candidates.sql +15 -0
- package/drizzle/0018_rem_batch_chassis.sql +71 -0
- package/drizzle/0019_profile_recovery_entries.sql +17 -0
- package/drizzle/0020_rem_scan_retry_progress.down.sql +14 -0
- package/drizzle/0020_rem_scan_retry_progress.sql +24 -0
- package/drizzle/0021_rem_two_facet_storage.down.sql +14 -0
- package/drizzle/0021_rem_two_facet_storage.sql +42 -0
- package/drizzle/0022_rem_facet_chunk_versions.down.sql +4 -0
- package/drizzle/0022_rem_facet_chunk_versions.sql +4 -0
- package/drizzle/0023_rem_defect_ledger.sql +40 -0
- package/drizzle/0024_rem_unbuilt_foundations.down.sql +13 -0
- package/drizzle/0024_rem_unbuilt_foundations.sql +65 -0
- package/drizzle/0025_rem_journal_operation_constraint.sql +28 -0
- package/drizzle/0026_rem_journal_detail.sql +1 -0
- package/drizzle/0027_legacy_nodix_namespace.sql +3 -0
- package/drizzle/0028_memory_timezone.sql +23 -0
- package/drizzle/0029_rem_write_hash_symmetry.sql +17 -0
- package/drizzle/0030_atomic_memory_additive.sql +105 -0
- package/drizzle/0031_atomic_extraction_ledger.sql +23 -0
- package/drizzle/0032_atomic_memory_entities.sql +12 -0
- package/drizzle/0033_todo_own_store.sql +99 -0
- package/drizzle/meta/0000_snapshot.json +87 -0
- package/drizzle/meta/_journal.json +244 -0
- package/generated/rem-operations.json +1 -0
- package/package.json +126 -4
- package/scripts/download-simple-tokenizer.mjs +254 -0
- package/settings.default.json +243 -0
- package/skills/extract-atomic-memory/SKILL.md +298 -0
- package/skills/extract-atomic-memory/references/account-for-turns.md +9 -0
- package/skills/extract-atomic-memory/references/calendar-meaning.md +64 -0
- package/skills/extract-atomic-memory/references/capture.md +120 -0
- package/skills/extract-atomic-memory/references/enrichment.md +92 -0
- package/skills/extract-atomic-memory/references/missing-durable-half.md +6 -0
- package/skills/extract-atomic-memory/references/progress-classification.md +21 -0
- package/skills/extract-atomic-memory/references/resolve-subject.md +19 -0
- package/skills/extract-atomic-memory/references/surrounding-context.md +10 -0
- package/skills/extract-atomic-memory/references/user-subject-guard.md +29 -0
- package/skills/judge-group-closure/SKILL.md +25 -0
- package/skills/judge-rem-memory-updates/SKILL.md +56 -0
- package/skills/judge-rem-memory-updates/agents/openai.yaml +4 -0
- package/skills/judge-retired-position/SKILL.md +25 -0
- package/skills/judge-task-lifecycle/SKILL.md +45 -0
- package/skills/key-state-attribute/SKILL.md +16 -0
- package/skills/resolve-entity-identity/SKILL.md +24 -0
- package/skills/resolve-relative-time/SKILL.md +22 -0
- package/sqlite-extensions/LICENSE-simple-tokenizer +28 -0
- package/sqlite-extensions/LICENSE-sqlite-vec +21 -0
- package/sqlite-extensions/linux-arm64/vec0.so +0 -0
- package/sqlite-extensions/linux-x64/vec0.so +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
ALTER TABLE `nodix_active_task_evidence` RENAME TO `nodix_active_task_evidence_v15`;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `nodix_active_task_transitions` RENAME TO `nodix_active_task_transitions_v15`;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
ALTER TABLE `nodix_active_task_revisions` RENAME TO `nodix_active_task_revisions_v15`;
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
ALTER TABLE `nodix_active_task_instances` RENAME TO `nodix_active_task_instances_v15`;
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
CREATE TABLE `nodix_active_task_instances` (
|
|
10
|
+
`project_id` text NOT NULL,
|
|
11
|
+
`active_task_id` text NOT NULL,
|
|
12
|
+
`opening_command_id` text,
|
|
13
|
+
`canonical_tuple_json` text NOT NULL,
|
|
14
|
+
`identity_state` text NOT NULL CHECK (`identity_state` IN ('normal', 'unresolved')),
|
|
15
|
+
`status` text NOT NULL CHECK (`status` IN ('active', 'completed', 'removed')),
|
|
16
|
+
`created_at_ms` integer NOT NULL,
|
|
17
|
+
`terminal_at_ms` integer,
|
|
18
|
+
`legacy_row_locators_json` text,
|
|
19
|
+
`preserved_lifecycle_events_json` text,
|
|
20
|
+
`provenance_json` text,
|
|
21
|
+
`binding_evidence_json` text,
|
|
22
|
+
PRIMARY KEY (`project_id`, `active_task_id`),
|
|
23
|
+
UNIQUE (`project_id`, `opening_command_id`),
|
|
24
|
+
FOREIGN KEY (`project_id`, `opening_command_id`)
|
|
25
|
+
REFERENCES `nodix_task_lifecycle_commands` (`project_id`, `command_id`)
|
|
26
|
+
) WITHOUT ROWID;
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
INSERT INTO `nodix_active_task_instances`(
|
|
29
|
+
`project_id`, `active_task_id`, `opening_command_id`, `canonical_tuple_json`,
|
|
30
|
+
`identity_state`, `status`, `created_at_ms`, `terminal_at_ms`
|
|
31
|
+
)
|
|
32
|
+
SELECT
|
|
33
|
+
`project_id`, `active_task_id`, `opening_command_id`, `canonical_tuple_json`,
|
|
34
|
+
`identity_state`, `status`, `created_at_ms`, `terminal_at_ms`
|
|
35
|
+
FROM `nodix_active_task_instances_v15`;
|
|
36
|
+
--> statement-breakpoint
|
|
37
|
+
CREATE TABLE `nodix_active_task_revisions` (
|
|
38
|
+
`project_id` text NOT NULL,
|
|
39
|
+
`active_task_revision_id` text NOT NULL,
|
|
40
|
+
`active_task_id` text NOT NULL,
|
|
41
|
+
`creating_command_id` text,
|
|
42
|
+
`canonical_tuple_json` text NOT NULL,
|
|
43
|
+
`description` text NOT NULL,
|
|
44
|
+
`occurrence_anchors_json` text NOT NULL,
|
|
45
|
+
`revision_details_json` text NOT NULL,
|
|
46
|
+
`created_at_ms` integer NOT NULL,
|
|
47
|
+
`is_current` integer NOT NULL CHECK (`is_current` IN (0, 1)),
|
|
48
|
+
`legacy_row_locator` text,
|
|
49
|
+
PRIMARY KEY (`project_id`, `active_task_revision_id`),
|
|
50
|
+
UNIQUE (`project_id`, `active_task_id`, `creating_command_id`),
|
|
51
|
+
FOREIGN KEY (`project_id`, `active_task_id`)
|
|
52
|
+
REFERENCES `nodix_active_task_instances` (`project_id`, `active_task_id`),
|
|
53
|
+
FOREIGN KEY (`project_id`, `creating_command_id`)
|
|
54
|
+
REFERENCES `nodix_task_lifecycle_commands` (`project_id`, `command_id`)
|
|
55
|
+
) WITHOUT ROWID;
|
|
56
|
+
--> statement-breakpoint
|
|
57
|
+
INSERT INTO `nodix_active_task_revisions`(
|
|
58
|
+
`project_id`, `active_task_revision_id`, `active_task_id`, `creating_command_id`,
|
|
59
|
+
`canonical_tuple_json`, `description`, `occurrence_anchors_json`,
|
|
60
|
+
`revision_details_json`, `created_at_ms`, `is_current`
|
|
61
|
+
)
|
|
62
|
+
SELECT
|
|
63
|
+
`project_id`, `active_task_revision_id`, `active_task_id`, `creating_command_id`,
|
|
64
|
+
`canonical_tuple_json`, `description`, `occurrence_anchors_json`,
|
|
65
|
+
`revision_details_json`, `created_at_ms`, `is_current`
|
|
66
|
+
FROM `nodix_active_task_revisions_v15`;
|
|
67
|
+
--> statement-breakpoint
|
|
68
|
+
CREATE TABLE `nodix_active_task_transitions` (
|
|
69
|
+
`project_id` text NOT NULL,
|
|
70
|
+
`command_id` text NOT NULL,
|
|
71
|
+
`active_task_id` text NOT NULL,
|
|
72
|
+
`transition_kind` text NOT NULL CHECK (`transition_kind` IN ('open', 'refine', 'complete', 'remove')),
|
|
73
|
+
`from_status` text CHECK (`from_status` IS NULL OR `from_status` IN ('active', 'completed', 'removed')),
|
|
74
|
+
`to_status` text NOT NULL CHECK (`to_status` IN ('active', 'completed', 'removed')),
|
|
75
|
+
`effective_at_ms` integer NOT NULL,
|
|
76
|
+
PRIMARY KEY (`project_id`, `command_id`),
|
|
77
|
+
FOREIGN KEY (`project_id`, `command_id`)
|
|
78
|
+
REFERENCES `nodix_task_lifecycle_commands` (`project_id`, `command_id`),
|
|
79
|
+
FOREIGN KEY (`project_id`, `active_task_id`)
|
|
80
|
+
REFERENCES `nodix_active_task_instances` (`project_id`, `active_task_id`)
|
|
81
|
+
) WITHOUT ROWID;
|
|
82
|
+
--> statement-breakpoint
|
|
83
|
+
CREATE TABLE `nodix_active_task_evidence` (
|
|
84
|
+
`project_id` text NOT NULL,
|
|
85
|
+
`command_id` text NOT NULL,
|
|
86
|
+
`active_task_id` text,
|
|
87
|
+
`evidence_memory_id` text,
|
|
88
|
+
`source_assertion_json` text NOT NULL,
|
|
89
|
+
`outcome` text NOT NULL,
|
|
90
|
+
`diagnostics_json` text NOT NULL,
|
|
91
|
+
`linked_at_ms` integer NOT NULL,
|
|
92
|
+
PRIMARY KEY (`project_id`, `command_id`),
|
|
93
|
+
FOREIGN KEY (`project_id`, `command_id`)
|
|
94
|
+
REFERENCES `nodix_task_lifecycle_commands` (`project_id`, `command_id`),
|
|
95
|
+
FOREIGN KEY (`project_id`, `active_task_id`)
|
|
96
|
+
REFERENCES `nodix_active_task_instances` (`project_id`, `active_task_id`)
|
|
97
|
+
) WITHOUT ROWID;
|
|
98
|
+
--> statement-breakpoint
|
|
99
|
+
INSERT INTO `nodix_active_task_transitions`
|
|
100
|
+
SELECT * FROM `nodix_active_task_transitions_v15`;
|
|
101
|
+
--> statement-breakpoint
|
|
102
|
+
INSERT INTO `nodix_active_task_evidence`
|
|
103
|
+
SELECT * FROM `nodix_active_task_evidence_v15`;
|
|
104
|
+
--> statement-breakpoint
|
|
105
|
+
DROP TABLE `nodix_active_task_transitions_v15`;
|
|
106
|
+
--> statement-breakpoint
|
|
107
|
+
DROP TABLE `nodix_active_task_evidence_v15`;
|
|
108
|
+
--> statement-breakpoint
|
|
109
|
+
DROP TABLE `nodix_active_task_revisions_v15`;
|
|
110
|
+
--> statement-breakpoint
|
|
111
|
+
DROP TABLE `nodix_active_task_instances_v15`;
|
|
112
|
+
--> statement-breakpoint
|
|
113
|
+
CREATE UNIQUE INDEX `nodix_idx_active_task_current_revision`
|
|
114
|
+
ON `nodix_active_task_revisions` (`project_id`, `active_task_id`)
|
|
115
|
+
WHERE `is_current` = 1;
|
|
116
|
+
--> statement-breakpoint
|
|
117
|
+
CREATE TABLE `nodix_active_task_migration_evidence` (
|
|
118
|
+
`project_id` text NOT NULL,
|
|
119
|
+
`legacy_row_locator` text NOT NULL,
|
|
120
|
+
`active_task_id` text NOT NULL,
|
|
121
|
+
`command_id` text,
|
|
122
|
+
`source_row_json` text NOT NULL,
|
|
123
|
+
`revision_role` text NOT NULL CHECK (`revision_role` IN ('current', 'terminal_non_current', 'evidence_only')),
|
|
124
|
+
`preserved_unbound` integer NOT NULL CHECK (`preserved_unbound` IN (0, 1)),
|
|
125
|
+
PRIMARY KEY (`project_id`, `legacy_row_locator`),
|
|
126
|
+
FOREIGN KEY (`project_id`, `active_task_id`)
|
|
127
|
+
REFERENCES `nodix_active_task_instances` (`project_id`, `active_task_id`),
|
|
128
|
+
FOREIGN KEY (`project_id`, `command_id`)
|
|
129
|
+
REFERENCES `nodix_task_lifecycle_commands` (`project_id`, `command_id`)
|
|
130
|
+
) WITHOUT ROWID;
|
|
131
|
+
--> statement-breakpoint
|
|
132
|
+
CREATE TABLE `nodix_active_task_migration_manifests` (
|
|
133
|
+
`manifest_id` text NOT NULL PRIMARY KEY,
|
|
134
|
+
`manifest_hash` text NOT NULL,
|
|
135
|
+
`input_store_hash` text NOT NULL,
|
|
136
|
+
`state_hash` text NOT NULL,
|
|
137
|
+
`applied_at_ms` integer NOT NULL
|
|
138
|
+
) WITHOUT ROWID;
|
|
139
|
+
--> statement-breakpoint
|
|
140
|
+
CREATE INDEX `nodix_idx_active_task_instances_projection`
|
|
141
|
+
ON `nodix_active_task_instances` (`project_id`, `status`, `created_at_ms`, `active_task_id`);
|
|
142
|
+
--> statement-breakpoint
|
|
143
|
+
CREATE INDEX `nodix_idx_active_task_evidence_instance`
|
|
144
|
+
ON `nodix_active_task_evidence` (`project_id`, `active_task_id`);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
CREATE TABLE `nodix_unplaced_memory_candidates` (
|
|
2
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`project_id` text NOT NULL,
|
|
4
|
+
`category` text NOT NULL,
|
|
5
|
+
`text` text NOT NULL,
|
|
6
|
+
`raw_candidate_json` text NOT NULL,
|
|
7
|
+
`disposition_reason` text NOT NULL,
|
|
8
|
+
`dispositioned_at_ms` integer NOT NULL,
|
|
9
|
+
`session_key` text,
|
|
10
|
+
`dedupe_hash` text NOT NULL
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE INDEX `nodix_idx_unplaced_project_reason` ON `nodix_unplaced_memory_candidates` (`project_id`,`disposition_reason`);
|
|
14
|
+
--> statement-breakpoint
|
|
15
|
+
CREATE UNIQUE INDEX `nodix_idx_unplaced_dedupe` ON `nodix_unplaced_memory_candidates` (`project_id`,`dedupe_hash`);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_relation_ledger` (
|
|
2
|
+
`row_id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`content_hash` text NOT NULL,
|
|
4
|
+
`state` text NOT NULL CHECK (`state` IN ('transition', 'stale-current', 'pure-negation')),
|
|
5
|
+
`owner` text DEFAULT 'none' NOT NULL CHECK (`owner` IN ('restate', 'verdict', 'none')),
|
|
6
|
+
`claim_ts` text,
|
|
7
|
+
`classified_at` text NOT NULL
|
|
8
|
+
);
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_scan_generations` (
|
|
11
|
+
`generation_id` text PRIMARY KEY NOT NULL,
|
|
12
|
+
`corpus_snapshot_hash` text NOT NULL,
|
|
13
|
+
`pairing_config_hash` text NOT NULL,
|
|
14
|
+
`max_llm_calls` integer NOT NULL CHECK (`max_llm_calls` >= 0),
|
|
15
|
+
`max_tokens` integer NOT NULL CHECK (`max_tokens` >= 0),
|
|
16
|
+
`llm_calls_used` integer DEFAULT 0 NOT NULL,
|
|
17
|
+
`tokens_used` integer DEFAULT 0 NOT NULL,
|
|
18
|
+
`pending_stages_json` text DEFAULT '[]' NOT NULL
|
|
19
|
+
);
|
|
20
|
+
--> statement-breakpoint
|
|
21
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_scan_pairs` (
|
|
22
|
+
`generation_id` text NOT NULL,
|
|
23
|
+
`pair_id` text NOT NULL,
|
|
24
|
+
`left_row_id` text NOT NULL,
|
|
25
|
+
`right_row_id` text NOT NULL,
|
|
26
|
+
`sort_key` text NOT NULL,
|
|
27
|
+
`claim_state` text DEFAULT 'unvisited' NOT NULL
|
|
28
|
+
CHECK (`claim_state` IN ('unvisited', 'claimed', 'done')),
|
|
29
|
+
`invocation_id` text,
|
|
30
|
+
`claimed_at` text,
|
|
31
|
+
`checkpoint` text,
|
|
32
|
+
`verdict` text,
|
|
33
|
+
`actions_applied` integer DEFAULT 0 NOT NULL CHECK (`actions_applied` IN (0, 1)),
|
|
34
|
+
`budget_reserved` integer DEFAULT 0 NOT NULL CHECK (`budget_reserved` IN (0, 1)),
|
|
35
|
+
`reserved_tokens` integer DEFAULT 0 NOT NULL CHECK (`reserved_tokens` >= 0),
|
|
36
|
+
PRIMARY KEY (`generation_id`, `pair_id`),
|
|
37
|
+
FOREIGN KEY (`generation_id`) REFERENCES `nodix_rem_scan_generations`(`generation_id`)
|
|
38
|
+
);
|
|
39
|
+
--> statement-breakpoint
|
|
40
|
+
CREATE INDEX IF NOT EXISTS `rem_scan_pairs_cursor`
|
|
41
|
+
ON `nodix_rem_scan_pairs` (`generation_id`, `claim_state`, `sort_key`, `pair_id`);
|
|
42
|
+
--> statement-breakpoint
|
|
43
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_journal` (
|
|
44
|
+
`sequence` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
45
|
+
`job_id` text NOT NULL,
|
|
46
|
+
`job_type` text NOT NULL CHECK (`job_type` IN ('rem-verdict', 'rem-restate')),
|
|
47
|
+
`stage` text NOT NULL,
|
|
48
|
+
`outcome` text NOT NULL
|
|
49
|
+
CHECK (`outcome` IN ('done', 'failed', 'disabled', 'pending', 'refused')),
|
|
50
|
+
`pairs_scanned` integer DEFAULT 0 NOT NULL,
|
|
51
|
+
`verdicts` integer DEFAULT 0 NOT NULL,
|
|
52
|
+
`actions_applied` integer DEFAULT 0 NOT NULL,
|
|
53
|
+
`reason` text,
|
|
54
|
+
CHECK (`outcome` NOT IN ('failed', 'refused') OR length(trim(`reason`)) > 0)
|
|
55
|
+
);
|
|
56
|
+
--> statement-breakpoint
|
|
57
|
+
CREATE INDEX IF NOT EXISTS `rem_journal_job_sequence` ON `nodix_rem_journal` (`job_id`, `sequence`);
|
|
58
|
+
--> statement-breakpoint
|
|
59
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_recovery_history` (
|
|
60
|
+
`recovery_handle` text PRIMARY KEY NOT NULL,
|
|
61
|
+
`row_id` text NOT NULL,
|
|
62
|
+
`operation_kind` text NOT NULL CHECK (`operation_kind` IN ('lane', 'text-version', 'mark')),
|
|
63
|
+
`prior_row_image` text NOT NULL,
|
|
64
|
+
`prior_content_hash` text NOT NULL,
|
|
65
|
+
`expected_post_hash` text NOT NULL,
|
|
66
|
+
`reason` text NOT NULL CHECK (length(trim(`reason`)) > 0),
|
|
67
|
+
`mutation_ts` text NOT NULL,
|
|
68
|
+
`restored_at` text
|
|
69
|
+
);
|
|
70
|
+
--> statement-breakpoint
|
|
71
|
+
CREATE INDEX IF NOT EXISTS `rem_recovery_history_row` ON `nodix_rem_recovery_history` (`row_id`);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
CREATE TABLE `nodix_profile_recovery_entries` (
|
|
2
|
+
`entry_id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`mutation_attempt_id` text NOT NULL,
|
|
4
|
+
`removed_row_id` text NOT NULL,
|
|
5
|
+
`project_id` text NOT NULL,
|
|
6
|
+
`profile_fact_id` text NOT NULL,
|
|
7
|
+
`section_name` text NOT NULL,
|
|
8
|
+
`removed_value` text NOT NULL,
|
|
9
|
+
`removed_at_ms` integer NOT NULL,
|
|
10
|
+
FOREIGN KEY (`removed_row_id`) REFERENCES `nodix_memories`(`id`) ON UPDATE no action ON DELETE cascade
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE INDEX `nodix_idx_profile_recovery_lineage`
|
|
14
|
+
ON `nodix_profile_recovery_entries` (`project_id`, `profile_fact_id`, `removed_at_ms`);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE INDEX `nodix_idx_profile_recovery_attempt`
|
|
17
|
+
ON `nodix_profile_recovery_entries` (`mutation_attempt_id`);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Schema rollback: removes the retry columns so the paired forward migration can run again.
|
|
2
|
+
DROP INDEX `rem_scan_pairs_progress`;
|
|
3
|
+
--> statement-breakpoint
|
|
4
|
+
DROP TABLE `nodix_rem_scan_invocations`;
|
|
5
|
+
--> statement-breakpoint
|
|
6
|
+
ALTER TABLE `nodix_rem_scan_pairs` DROP COLUMN `inherited_from_generation_id`;
|
|
7
|
+
--> statement-breakpoint
|
|
8
|
+
ALTER TABLE `nodix_rem_scan_pairs` DROP COLUMN `refusal_reason`;
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
ALTER TABLE `nodix_rem_scan_pairs` DROP COLUMN `progress_state`;
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
ALTER TABLE `nodix_rem_scan_pairs` DROP COLUMN `attempt_count`;
|
|
13
|
+
--> statement-breakpoint
|
|
14
|
+
ALTER TABLE `nodix_rem_scan_pairs` DROP COLUMN `budget_invocation_id`;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
ALTER TABLE `nodix_rem_scan_pairs` ADD COLUMN `budget_invocation_id` text;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE `nodix_rem_scan_pairs` ADD COLUMN `attempt_count` integer DEFAULT 0 NOT NULL
|
|
4
|
+
CHECK (`attempt_count` >= 0);
|
|
5
|
+
--> statement-breakpoint
|
|
6
|
+
ALTER TABLE `nodix_rem_scan_pairs` ADD COLUMN `progress_state` text DEFAULT 'pending' NOT NULL
|
|
7
|
+
CHECK (`progress_state` IN ('pending', 'refused', 'closed', 'exhausted'));
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
ALTER TABLE `nodix_rem_scan_pairs` ADD COLUMN `refusal_reason` text;
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
ALTER TABLE `nodix_rem_scan_pairs` ADD COLUMN `inherited_from_generation_id` text;
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE INDEX IF NOT EXISTS `rem_scan_pairs_progress`
|
|
14
|
+
ON `nodix_rem_scan_pairs` (`generation_id`, `progress_state`, `sort_key`, `pair_id`);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_scan_invocations` (
|
|
17
|
+
`generation_id` text NOT NULL,
|
|
18
|
+
`invocation_id` text NOT NULL,
|
|
19
|
+
`llm_calls_used` integer DEFAULT 0 NOT NULL,
|
|
20
|
+
`tokens_used` integer DEFAULT 0 NOT NULL,
|
|
21
|
+
`created_at` text NOT NULL,
|
|
22
|
+
PRIMARY KEY (`generation_id`, `invocation_id`),
|
|
23
|
+
FOREIGN KEY (`generation_id`) REFERENCES `nodix_rem_scan_generations`(`generation_id`)
|
|
24
|
+
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Destructive schema rollback: discards all facet text and facet recovery snapshots.
|
|
2
|
+
-- A later forward migration rebuilds current facets from primary-row text and silently loses
|
|
3
|
+
-- every applied current-state rewrite. Use only before any such rewrite or with an external backup.
|
|
4
|
+
DROP TABLE IF EXISTS `nodix_rem_facet_recovery`;
|
|
5
|
+
--> statement-breakpoint
|
|
6
|
+
DROP INDEX IF EXISTS `rem_memory_facets_by_facet`;
|
|
7
|
+
--> statement-breakpoint
|
|
8
|
+
DROP TRIGGER IF EXISTS `rem_memory_facets_after_insert`;
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
DROP TRIGGER IF EXISTS `rem_memory_facets_after_text_update`;
|
|
11
|
+
--> statement-breakpoint
|
|
12
|
+
DROP TABLE IF EXISTS `nodix_rem_memory_facets`;
|
|
13
|
+
--> statement-breakpoint
|
|
14
|
+
ALTER TABLE `nodix_memory_chunks` DROP COLUMN `facet`;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_memory_facets` (
|
|
2
|
+
`memory_id` text NOT NULL,
|
|
3
|
+
`facet` text NOT NULL CHECK (`facet` IN ('current', 'history')),
|
|
4
|
+
`text` text NOT NULL,
|
|
5
|
+
`updated_at_ms` integer NOT NULL,
|
|
6
|
+
PRIMARY KEY (`memory_id`, `facet`),
|
|
7
|
+
FOREIGN KEY (`memory_id`) REFERENCES `nodix_memories`(`id`) ON DELETE CASCADE
|
|
8
|
+
);
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
INSERT OR IGNORE INTO `nodix_rem_memory_facets` (`memory_id`, `facet`, `text`, `updated_at_ms`)
|
|
11
|
+
SELECT `id`, 'current', `text`, `timestamp` FROM `nodix_memories`;
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE TRIGGER IF NOT EXISTS `rem_memory_facets_after_insert`
|
|
14
|
+
AFTER INSERT ON `nodix_memories`
|
|
15
|
+
BEGIN
|
|
16
|
+
INSERT INTO `nodix_rem_memory_facets` (`memory_id`, `facet`, `text`, `updated_at_ms`)
|
|
17
|
+
VALUES (NEW.`id`, 'current', NEW.`text`, NEW.`timestamp`);
|
|
18
|
+
END;
|
|
19
|
+
--> statement-breakpoint
|
|
20
|
+
CREATE TRIGGER IF NOT EXISTS `rem_memory_facets_after_text_update`
|
|
21
|
+
AFTER UPDATE OF `text` ON `nodix_memories`
|
|
22
|
+
BEGIN
|
|
23
|
+
INSERT INTO `nodix_rem_memory_facets` (`memory_id`, `facet`, `text`, `updated_at_ms`)
|
|
24
|
+
VALUES (NEW.`id`, 'current', NEW.`text`, NEW.`timestamp`)
|
|
25
|
+
ON CONFLICT(`memory_id`, `facet`) DO UPDATE SET
|
|
26
|
+
`text` = excluded.`text`, `updated_at_ms` = excluded.`updated_at_ms`;
|
|
27
|
+
END;
|
|
28
|
+
--> statement-breakpoint
|
|
29
|
+
CREATE INDEX IF NOT EXISTS `rem_memory_facets_by_facet`
|
|
30
|
+
ON `nodix_rem_memory_facets` (`facet`, `memory_id`);
|
|
31
|
+
--> statement-breakpoint
|
|
32
|
+
ALTER TABLE `nodix_memory_chunks`
|
|
33
|
+
ADD COLUMN `facet` text NOT NULL DEFAULT 'current' CHECK (`facet` IN ('current', 'history'));
|
|
34
|
+
--> statement-breakpoint
|
|
35
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_facet_recovery` (
|
|
36
|
+
`recovery_handle` text PRIMARY KEY,
|
|
37
|
+
`prior_facets_json` text NOT NULL,
|
|
38
|
+
`prior_chunk_facets_json` text NOT NULL,
|
|
39
|
+
`expected_facets_json` text NOT NULL,
|
|
40
|
+
`expected_chunk_facets_json` text NOT NULL,
|
|
41
|
+
FOREIGN KEY (`recovery_handle`) REFERENCES `nodix_rem_recovery_history`(`recovery_handle`)
|
|
42
|
+
);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_pair_stage_budgets` (
|
|
2
|
+
`generation_id` text NOT NULL,
|
|
3
|
+
`pair_id` text NOT NULL,
|
|
4
|
+
`stage` text NOT NULL,
|
|
5
|
+
`invocation_id` text NOT NULL,
|
|
6
|
+
`reserved_tokens` integer NOT NULL CHECK (`reserved_tokens` >= 0),
|
|
7
|
+
`idempotency_key` text NOT NULL,
|
|
8
|
+
PRIMARY KEY (`generation_id`, `pair_id`, `stage`),
|
|
9
|
+
FOREIGN KEY (`generation_id`, `pair_id`) REFERENCES `nodix_rem_scan_pairs`(`generation_id`, `pair_id`),
|
|
10
|
+
FOREIGN KEY (`generation_id`, `invocation_id`) REFERENCES `nodix_rem_scan_invocations`(`generation_id`, `invocation_id`)
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_journal_next` (
|
|
14
|
+
`sequence` integer PRIMARY KEY AUTOINCREMENT,
|
|
15
|
+
`job_id` text NOT NULL,
|
|
16
|
+
`job_type` text NOT NULL CHECK (`job_type` IN ('rem-verdict', 'rem-restate')),
|
|
17
|
+
`stage` text NOT NULL,
|
|
18
|
+
`outcome` text NOT NULL CHECK (`outcome` IN ('done', 'failed', 'disabled', 'pending', 'refused', 'no-action')),
|
|
19
|
+
`pairs_scanned` integer NOT NULL DEFAULT 0,
|
|
20
|
+
`verdicts` integer NOT NULL DEFAULT 0,
|
|
21
|
+
`actions_applied` integer NOT NULL DEFAULT 0,
|
|
22
|
+
`reason` text,
|
|
23
|
+
`row_id` text,
|
|
24
|
+
`pair_id` text,
|
|
25
|
+
CHECK (`outcome` NOT IN ('failed', 'refused') OR length(trim(`reason`)) > 0)
|
|
26
|
+
);
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
INSERT INTO `nodix_rem_journal_next`(
|
|
29
|
+
`sequence`, `job_id`, `job_type`, `stage`, `outcome`, `pairs_scanned`, `verdicts`,
|
|
30
|
+
`actions_applied`, `reason`
|
|
31
|
+
)
|
|
32
|
+
SELECT `sequence`, `job_id`, `job_type`, `stage`, `outcome`, `pairs_scanned`, `verdicts`,
|
|
33
|
+
`actions_applied`, `reason`
|
|
34
|
+
FROM `nodix_rem_journal`;
|
|
35
|
+
--> statement-breakpoint
|
|
36
|
+
DROP TABLE `nodix_rem_journal`;
|
|
37
|
+
--> statement-breakpoint
|
|
38
|
+
ALTER TABLE `nodix_rem_journal_next` RENAME TO `nodix_rem_journal`;
|
|
39
|
+
--> statement-breakpoint
|
|
40
|
+
CREATE INDEX IF NOT EXISTS `rem_journal_job_sequence` ON `nodix_rem_journal` (`job_id`, `sequence`);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
DROP TABLE IF EXISTS `nodix_rem_verdict_observations`;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
DROP TABLE IF EXISTS `nodix_rem_batch_summaries`;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
DROP TABLE IF EXISTS `nodix_rem_generation_transitions`;
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
DROP TABLE IF EXISTS `nodix_rem_census_rows`;
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
DROP INDEX IF EXISTS `rem_write_attempts_outcome`;
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
DROP TABLE IF EXISTS `nodix_rem_write_attempts`;
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
DROP TABLE IF EXISTS `nodix_rem_write_verdicts`;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_write_verdicts` (
|
|
2
|
+
`evidence_id` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`winner_row_id` text NOT NULL,
|
|
4
|
+
`loser_row_id` text NOT NULL,
|
|
5
|
+
`target_row_id` text NOT NULL,
|
|
6
|
+
`retired_fact_atoms_json` text NOT NULL,
|
|
7
|
+
`recorded_at` text NOT NULL
|
|
8
|
+
);
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_write_attempts` (
|
|
11
|
+
`attempt_id` text PRIMARY KEY NOT NULL,
|
|
12
|
+
`job_id` text NOT NULL,
|
|
13
|
+
`stage` text NOT NULL,
|
|
14
|
+
`row_id` text NOT NULL,
|
|
15
|
+
`writer` text NOT NULL,
|
|
16
|
+
`attempt_ordinal` integer NOT NULL CHECK (`attempt_ordinal` > 0),
|
|
17
|
+
`outcome` text NOT NULL CHECK (`outcome` IN ('pending', 'succeeded', 'failed', 'refused', 'degraded')),
|
|
18
|
+
`reason_code` text,
|
|
19
|
+
`pre_write_content_sha256` text NOT NULL,
|
|
20
|
+
`proposed_text_sha256` text NOT NULL,
|
|
21
|
+
`evidence_id` text NOT NULL,
|
|
22
|
+
`configuration_sha256` text NOT NULL,
|
|
23
|
+
`post_write_content_sha256` text,
|
|
24
|
+
`opened_at` text NOT NULL,
|
|
25
|
+
`closed_at` text
|
|
26
|
+
);
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
CREATE INDEX IF NOT EXISTS `rem_write_attempts_outcome` ON `nodix_rem_write_attempts` (`outcome`, `opened_at`);
|
|
29
|
+
--> statement-breakpoint
|
|
30
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_census_rows` (
|
|
31
|
+
`row_id` text PRIMARY KEY NOT NULL,
|
|
32
|
+
`write_identity_sha256` text,
|
|
33
|
+
`candidate_set_sha256` text,
|
|
34
|
+
`generation_id` text,
|
|
35
|
+
`corpus_sha256` text,
|
|
36
|
+
`embedder_sha256` text,
|
|
37
|
+
`configuration_sha256` text
|
|
38
|
+
);
|
|
39
|
+
--> statement-breakpoint
|
|
40
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_generation_transitions` (
|
|
41
|
+
`sequence` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
42
|
+
`outgoing_generation_id` text NOT NULL,
|
|
43
|
+
`incoming_generation_id` text NOT NULL,
|
|
44
|
+
`recorded_at` text NOT NULL
|
|
45
|
+
);
|
|
46
|
+
--> statement-breakpoint
|
|
47
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_batch_summaries` (
|
|
48
|
+
`batch_id` text PRIMARY KEY NOT NULL,
|
|
49
|
+
`generation_id` text UNIQUE,
|
|
50
|
+
`calls` integer NOT NULL DEFAULT 0,
|
|
51
|
+
`tokens` integer NOT NULL DEFAULT 0,
|
|
52
|
+
`pairCount` integer NOT NULL DEFAULT 0,
|
|
53
|
+
`closeCount` integer NOT NULL DEFAULT 0,
|
|
54
|
+
`refusalCount` integer NOT NULL DEFAULT 0,
|
|
55
|
+
`verdict_distribution_json` text NOT NULL DEFAULT '{}',
|
|
56
|
+
`pre_truncation_count` integer,
|
|
57
|
+
`emitted_count` integer
|
|
58
|
+
);
|
|
59
|
+
--> statement-breakpoint
|
|
60
|
+
CREATE TABLE IF NOT EXISTS `nodix_rem_verdict_observations` (
|
|
61
|
+
`pair_id` text PRIMARY KEY NOT NULL,
|
|
62
|
+
`audit_kind` text NOT NULL CHECK (`audit_kind` IN ('VERDICT', 'SAMPLE')),
|
|
63
|
+
`persisted_verdict` text,
|
|
64
|
+
`raw_value` text NOT NULL
|
|
65
|
+
);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
CREATE TABLE `nodix_rem_journal_next` (
|
|
2
|
+
`sequence` integer PRIMARY KEY AUTOINCREMENT,
|
|
3
|
+
`job_id` text NOT NULL,
|
|
4
|
+
`job_type` text NOT NULL,
|
|
5
|
+
`stage` text NOT NULL,
|
|
6
|
+
`outcome` text NOT NULL CHECK (`outcome` IN ('done', 'failed', 'disabled', 'pending', 'refused', 'no-action')),
|
|
7
|
+
`row_id` text,
|
|
8
|
+
`pair_id` text,
|
|
9
|
+
`pairs_scanned` integer NOT NULL DEFAULT 0,
|
|
10
|
+
`verdicts` integer NOT NULL DEFAULT 0,
|
|
11
|
+
`actions_applied` integer NOT NULL DEFAULT 0,
|
|
12
|
+
`reason` text,
|
|
13
|
+
CHECK (`outcome` NOT IN ('failed', 'refused') OR length(trim(`reason`)) > 0)
|
|
14
|
+
);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
INSERT INTO `nodix_rem_journal_next`(
|
|
17
|
+
`sequence`, `job_id`, `job_type`, `stage`, `outcome`, `row_id`, `pair_id`,
|
|
18
|
+
`pairs_scanned`, `verdicts`, `actions_applied`, `reason`
|
|
19
|
+
)
|
|
20
|
+
SELECT `sequence`, `job_id`, `job_type`, `stage`, `outcome`, `row_id`, `pair_id`,
|
|
21
|
+
`pairs_scanned`, `verdicts`, `actions_applied`, `reason`
|
|
22
|
+
FROM `nodix_rem_journal`;
|
|
23
|
+
--> statement-breakpoint
|
|
24
|
+
DROP TABLE `nodix_rem_journal`;
|
|
25
|
+
--> statement-breakpoint
|
|
26
|
+
ALTER TABLE `nodix_rem_journal_next` RENAME TO `nodix_rem_journal`;
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
CREATE INDEX `rem_journal_job_sequence` ON `nodix_rem_journal` (`job_id`, `sequence`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `nodix_rem_journal` ADD COLUMN `detail` text;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
ALTER TABLE nodix_memories
|
|
2
|
+
ADD COLUMN timezone TEXT NOT NULL DEFAULT '__missing_timezone__';
|
|
3
|
+
--> statement-breakpoint
|
|
4
|
+
|
|
5
|
+
UPDATE nodix_memories
|
|
6
|
+
SET timezone = 'UTC'
|
|
7
|
+
WHERE timezone = '__missing_timezone__';
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
|
|
10
|
+
CREATE TRIGGER nodix_memories_timezone_required_before_insert
|
|
11
|
+
BEFORE INSERT ON nodix_memories
|
|
12
|
+
WHEN NEW.timezone = '__missing_timezone__' OR trim(NEW.timezone) = ''
|
|
13
|
+
BEGIN
|
|
14
|
+
SELECT RAISE(ABORT, 'timezone is required');
|
|
15
|
+
END;
|
|
16
|
+
--> statement-breakpoint
|
|
17
|
+
|
|
18
|
+
CREATE TRIGGER nodix_memories_timezone_required_before_update
|
|
19
|
+
BEFORE UPDATE OF timezone ON nodix_memories
|
|
20
|
+
WHEN NEW.timezone = '__missing_timezone__' OR trim(NEW.timezone) = ''
|
|
21
|
+
BEGIN
|
|
22
|
+
SELECT RAISE(ABORT, 'timezone is required');
|
|
23
|
+
END;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
-- The recovery record's expected_post_hash and the verified-write guard's post-write hash were
|
|
2
|
+
-- computed in two packages over two different column sets. Adding the memories.timezone column
|
|
3
|
+
-- made them disagree, so every REM text-version write refused AFTER its transaction had already
|
|
4
|
+
-- committed. The field list is now pinned in one place and stamped with its version: rows written
|
|
5
|
+
-- before this migration carry version 1, whose hash nothing can recompute, and readers branch on
|
|
6
|
+
-- the version instead of comparing against a value that can never match.
|
|
7
|
+
ALTER TABLE nodix_rem_recovery_history
|
|
8
|
+
ADD COLUMN row_hash_version INTEGER NOT NULL DEFAULT 1;
|
|
9
|
+
--> statement-breakpoint
|
|
10
|
+
|
|
11
|
+
-- Crash recovery decided whether a committed write had landed by comparing the row's content_hash
|
|
12
|
+
-- (text AND metadata) against proposed_text_sha256 (text only). A REM update always writes
|
|
13
|
+
-- rem_update_* metadata, so those two never matched and a write that had committed was recorded as
|
|
14
|
+
-- failed forever. The expected content hash is now stamped on the attempt inside the same
|
|
15
|
+
-- transaction that performs the write, so a crash cannot leave them disagreeing.
|
|
16
|
+
ALTER TABLE nodix_rem_write_attempts
|
|
17
|
+
ADD COLUMN expected_post_content_sha256 TEXT;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
ALTER TABLE nodix_memories ADD COLUMN subject TEXT;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE nodix_memories ADD COLUMN attribute TEXT;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
ALTER TABLE nodix_memories ADD COLUMN valid_from INTEGER;
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
ALTER TABLE nodix_memories ADD COLUMN valid_until INTEGER;
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
ALTER TABLE nodix_memories ADD COLUMN maturity TEXT;
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
ALTER TABLE nodix_memories ADD COLUMN source TEXT;
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
ALTER TABLE nodix_memories ADD COLUMN extractor_version TEXT;
|
|
14
|
+
--> statement-breakpoint
|
|
15
|
+
|
|
16
|
+
CREATE INDEX nodix_idx_memories_project_subject_attribute
|
|
17
|
+
ON nodix_memories(project_id, subject, attribute);
|
|
18
|
+
--> statement-breakpoint
|
|
19
|
+
CREATE INDEX nodix_idx_memories_project_valid_time
|
|
20
|
+
ON nodix_memories(project_id, valid_from, valid_until);
|
|
21
|
+
--> statement-breakpoint
|
|
22
|
+
CREATE INDEX nodix_idx_memories_project_maturity
|
|
23
|
+
ON nodix_memories(project_id, maturity);
|
|
24
|
+
--> statement-breakpoint
|
|
25
|
+
CREATE INDEX nodix_idx_memories_project_source
|
|
26
|
+
ON nodix_memories(project_id, source);
|
|
27
|
+
--> statement-breakpoint
|
|
28
|
+
CREATE INDEX nodix_idx_memories_project_extractor_version
|
|
29
|
+
ON nodix_memories(project_id, extractor_version);
|
|
30
|
+
--> statement-breakpoint
|
|
31
|
+
CREATE INDEX nodix_idx_memories_project_derived_from
|
|
32
|
+
ON nodix_memories(project_id, derived_from);
|
|
33
|
+
--> statement-breakpoint
|
|
34
|
+
CREATE INDEX nodix_idx_memories_project_importance
|
|
35
|
+
ON nodix_memories(project_id, importance);
|
|
36
|
+
--> statement-breakpoint
|
|
37
|
+
|
|
38
|
+
CREATE TABLE nodix_memory_relations (
|
|
39
|
+
source_card_id TEXT NOT NULL REFERENCES nodix_memories(id) ON DELETE CASCADE,
|
|
40
|
+
subject TEXT NOT NULL,
|
|
41
|
+
predicate TEXT NOT NULL CHECK (predicate IN (
|
|
42
|
+
'IS_A',
|
|
43
|
+
'WORKS_ON',
|
|
44
|
+
'NEEDS',
|
|
45
|
+
'PREFERS',
|
|
46
|
+
'FORBIDS',
|
|
47
|
+
'USES',
|
|
48
|
+
'DEPENDS_ON',
|
|
49
|
+
'CAUSED',
|
|
50
|
+
'FIXED_BY',
|
|
51
|
+
'DECIDED',
|
|
52
|
+
'SUPERSEDES',
|
|
53
|
+
'GOVERNED_BY',
|
|
54
|
+
'OWNED_BY',
|
|
55
|
+
'MEMBER_OF',
|
|
56
|
+
'LOCATED_AT',
|
|
57
|
+
'HAS_SKILL',
|
|
58
|
+
'INTERESTED_IN',
|
|
59
|
+
'HAS_ACCOUNT',
|
|
60
|
+
'HAS_OCCUPATION',
|
|
61
|
+
'HAS_METRIC',
|
|
62
|
+
'WORKS_AT',
|
|
63
|
+
'ATTENDED',
|
|
64
|
+
'MENTIONS'
|
|
65
|
+
)),
|
|
66
|
+
object TEXT NOT NULL,
|
|
67
|
+
created_at INTEGER NOT NULL,
|
|
68
|
+
UNIQUE(source_card_id, subject, predicate, object)
|
|
69
|
+
);
|
|
70
|
+
--> statement-breakpoint
|
|
71
|
+
CREATE INDEX nodix_idx_memory_relations_subject
|
|
72
|
+
ON nodix_memory_relations(subject);
|
|
73
|
+
--> statement-breakpoint
|
|
74
|
+
CREATE INDEX nodix_idx_memory_relations_object
|
|
75
|
+
ON nodix_memory_relations(object);
|
|
76
|
+
--> statement-breakpoint
|
|
77
|
+
|
|
78
|
+
CREATE TABLE nodix_memory_suppressions (
|
|
79
|
+
project_id TEXT NOT NULL,
|
|
80
|
+
subject TEXT,
|
|
81
|
+
attribute TEXT,
|
|
82
|
+
content_hash TEXT,
|
|
83
|
+
created_at INTEGER NOT NULL,
|
|
84
|
+
CHECK (
|
|
85
|
+
(
|
|
86
|
+
subject IS NOT NULL AND length(trim(subject)) > 0
|
|
87
|
+
AND attribute IS NOT NULL AND length(trim(attribute)) > 0
|
|
88
|
+
AND content_hash IS NULL
|
|
89
|
+
)
|
|
90
|
+
OR
|
|
91
|
+
(
|
|
92
|
+
subject IS NULL
|
|
93
|
+
AND attribute IS NULL
|
|
94
|
+
AND content_hash IS NOT NULL AND length(trim(content_hash)) > 0
|
|
95
|
+
)
|
|
96
|
+
)
|
|
97
|
+
);
|
|
98
|
+
--> statement-breakpoint
|
|
99
|
+
CREATE UNIQUE INDEX nodix_idx_memory_suppressions_key
|
|
100
|
+
ON nodix_memory_suppressions(project_id, subject, attribute)
|
|
101
|
+
WHERE subject IS NOT NULL AND attribute IS NOT NULL;
|
|
102
|
+
--> statement-breakpoint
|
|
103
|
+
CREATE UNIQUE INDEX nodix_idx_memory_suppressions_content
|
|
104
|
+
ON nodix_memory_suppressions(project_id, content_hash)
|
|
105
|
+
WHERE content_hash IS NOT NULL;
|