@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,16 @@
|
|
|
1
|
+
//#region src/engine/shared/iso-date-time.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Accepts `2023-05-07`, `2023-05-07T12:30:00`, or `2023-05-07T12:30:00Z`.
|
|
4
|
+
* Returns the trimmed input unchanged when valid; otherwise undefined.
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizeIsoDateTimeString(value: unknown): string | undefined;
|
|
7
|
+
/** Parses a validated ISO date/date-time string into epoch milliseconds. */
|
|
8
|
+
export declare function parseIsoDateTimeMs(value: unknown): number | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Formats epoch milliseconds as an ISO calendar date (`YYYY-MM-DD`, UTC).
|
|
11
|
+
* The result validates as an ISO date string, so it round-trips through
|
|
12
|
+
* `normalizeIsoDateTimeString`. Used to give episodic memories a concrete
|
|
13
|
+
* event date when only a millisecond anchor (e.g. `valid_from`) is known.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isoDateFromMs(ms: number): string;
|
|
16
|
+
//#endregion
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/engine/shared/iso-date-time.ts
|
|
3
|
+
/** @file iso-date-time.ts
|
|
4
|
+
* @purpose Validates persisted ISO date/date-time strings without JavaScript Date rollover.
|
|
5
|
+
* @boundary ISO string normalization and epoch parsing only; no relative date parsing.
|
|
6
|
+
*/
|
|
7
|
+
const ISO_DATE_STRING_SCHEMA = z.string().date();
|
|
8
|
+
const ISO_DATE_TIME_STRING_SCHEMA = z.string().datetime({
|
|
9
|
+
offset: true,
|
|
10
|
+
local: true
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Accepts `2023-05-07`, `2023-05-07T12:30:00`, or `2023-05-07T12:30:00Z`.
|
|
14
|
+
* Returns the trimmed input unchanged when valid; otherwise undefined.
|
|
15
|
+
*/
|
|
16
|
+
function normalizeIsoDateTimeString(value) {
|
|
17
|
+
if (typeof value !== "string") return void 0;
|
|
18
|
+
const trimmed = value.trim();
|
|
19
|
+
if (!trimmed) return void 0;
|
|
20
|
+
if (!ISO_DATE_STRING_SCHEMA.safeParse(trimmed).success && !ISO_DATE_TIME_STRING_SCHEMA.safeParse(trimmed).success) return;
|
|
21
|
+
return trimmed;
|
|
22
|
+
}
|
|
23
|
+
/** Parses a validated ISO date/date-time string into epoch milliseconds. */
|
|
24
|
+
function parseIsoDateTimeMs(value) {
|
|
25
|
+
const normalized = normalizeIsoDateTimeString(value);
|
|
26
|
+
if (normalized === void 0) return void 0;
|
|
27
|
+
const parsed = Date.parse(normalized);
|
|
28
|
+
return Number.isNaN(parsed) ? void 0 : parsed;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Formats epoch milliseconds as an ISO calendar date (`YYYY-MM-DD`, UTC).
|
|
32
|
+
* The result validates as an ISO date string, so it round-trips through
|
|
33
|
+
* `normalizeIsoDateTimeString`. Used to give episodic memories a concrete
|
|
34
|
+
* event date when only a millisecond anchor (e.g. `valid_from`) is known.
|
|
35
|
+
*/
|
|
36
|
+
function isoDateFromMs(ms) {
|
|
37
|
+
return new Date(ms).toISOString().slice(0, 10);
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { isoDateFromMs, normalizeIsoDateTimeString, parseIsoDateTimeMs };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region src/engine/shared/lru.ts
|
|
2
|
+
/** @file lru.ts
|
|
3
|
+
* @purpose Provides a small bounded cache primitive for hot-path runtime state.
|
|
4
|
+
* @boundary In-memory capacity limits and deterministic eviction behavior.
|
|
5
|
+
* @see derived-line-cache.ts, retrieval-stats.ts, sno-station-mem-plugin-runtime.ts.
|
|
6
|
+
*/
|
|
7
|
+
/** Generic LRU helpers for bounded Map caches. */
|
|
8
|
+
function pruneOldestEntries(map, maxEntries) {
|
|
9
|
+
while (map.size > maxEntries) {
|
|
10
|
+
const oldestKey = map.keys().next().value;
|
|
11
|
+
if (oldestKey === void 0) return;
|
|
12
|
+
map.delete(oldestKey);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Implements touch lru entry as the local bounded session cache operation. */
|
|
16
|
+
function touchLruEntry(map, key) {
|
|
17
|
+
const value = map.get(key);
|
|
18
|
+
if (value === void 0) return void 0;
|
|
19
|
+
map.delete(key);
|
|
20
|
+
map.set(key, value);
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
/** Updates lru entry while preserving bounded session cache invariants. */
|
|
24
|
+
function setLruEntry(map, key, value, maxEntries) {
|
|
25
|
+
if (map.has(key)) map.delete(key);
|
|
26
|
+
map.set(key, value);
|
|
27
|
+
pruneOldestEntries(map, maxEntries);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { pruneOldestEntries, setLruEntry, touchLruEntry };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as canExtractorWrite, c as canToolWrite, d as isAppendOnly, f as isDerivedOnly, i as allowedWriters, l as canTrustedWrite, m as writePolicy, n as WritePolicy, o as canOfflineFamilyWrite, p as isMutationNative, r as WriterAuthority, s as canProfileWriterWrite, t as DedupePolicy, u as dedupePolicy } from "../../../memory-kind-policy-LKt0u3gy.js";
|
|
2
|
+
export { DedupePolicy, WritePolicy, WriterAuthority, allowedWriters, canExtractorWrite, canOfflineFamilyWrite, canProfileWriterWrite, canToolWrite, canTrustedWrite, dedupePolicy, isAppendOnly, isDerivedOnly, isMutationNative, writePolicy };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//#region src/engine/shared/memory-kind-policy.ts
|
|
2
|
+
const WRITE_POLICY = {
|
|
3
|
+
episodic: "append-only",
|
|
4
|
+
lesson: "append-only",
|
|
5
|
+
profile: "mutation-native",
|
|
6
|
+
persona: "mutation-native",
|
|
7
|
+
summary: "derived-only",
|
|
8
|
+
state: "mutation-native"
|
|
9
|
+
};
|
|
10
|
+
const DEDUPE_POLICY = {
|
|
11
|
+
episodic: { mode: "none" },
|
|
12
|
+
lesson: {
|
|
13
|
+
mode: "signature",
|
|
14
|
+
field: "anti_pattern_signature"
|
|
15
|
+
},
|
|
16
|
+
profile: { mode: "none" },
|
|
17
|
+
persona: { mode: "none" },
|
|
18
|
+
summary: { mode: "none" },
|
|
19
|
+
state: { mode: "none" }
|
|
20
|
+
};
|
|
21
|
+
const ALLOWED_WRITERS = {
|
|
22
|
+
episodic: ["extraction", "offline-family"],
|
|
23
|
+
lesson: ["offline-family"],
|
|
24
|
+
profile: ["profile-writer", "offline-family"],
|
|
25
|
+
persona: ["offline-family"],
|
|
26
|
+
summary: ["offline-family"],
|
|
27
|
+
state: ["extraction", "offline-family"]
|
|
28
|
+
};
|
|
29
|
+
function isAppendOnly(kind) {
|
|
30
|
+
return WRITE_POLICY[kind] === "append-only";
|
|
31
|
+
}
|
|
32
|
+
function isMutationNative(kind) {
|
|
33
|
+
return WRITE_POLICY[kind] === "mutation-native";
|
|
34
|
+
}
|
|
35
|
+
function isDerivedOnly(kind) {
|
|
36
|
+
return WRITE_POLICY[kind] === "derived-only";
|
|
37
|
+
}
|
|
38
|
+
function writePolicy(kind) {
|
|
39
|
+
return WRITE_POLICY[kind];
|
|
40
|
+
}
|
|
41
|
+
function dedupePolicy(kind) {
|
|
42
|
+
return DEDUPE_POLICY[kind];
|
|
43
|
+
}
|
|
44
|
+
function allowedWriters(kind) {
|
|
45
|
+
return ALLOWED_WRITERS[kind];
|
|
46
|
+
}
|
|
47
|
+
function canExtractorWrite(kind) {
|
|
48
|
+
return ALLOWED_WRITERS[kind].includes("extraction");
|
|
49
|
+
}
|
|
50
|
+
function canProfileWriterWrite(kind) {
|
|
51
|
+
return ALLOWED_WRITERS[kind].includes("profile-writer");
|
|
52
|
+
}
|
|
53
|
+
function canToolWrite(kind) {
|
|
54
|
+
return ALLOWED_WRITERS[kind].includes("extraction");
|
|
55
|
+
}
|
|
56
|
+
function canTrustedWrite(kind) {
|
|
57
|
+
const writers = ALLOWED_WRITERS[kind];
|
|
58
|
+
return writers.includes("extraction") || writers.includes("profile-writer");
|
|
59
|
+
}
|
|
60
|
+
function canOfflineFamilyWrite(kind) {
|
|
61
|
+
return ALLOWED_WRITERS[kind].includes("offline-family");
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { allowedWriters, canExtractorWrite, canOfflineFamilyWrite, canProfileWriterWrite, canToolWrite, canTrustedWrite, dedupePolicy, isAppendOnly, isDerivedOnly, isMutationNative, writePolicy };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { C as SESSION_STRATEGIES, n as pluginConfigSchema, t as PluginConfig, w as SessionStrategy } from "../../../plugin-config-schema-C0UUbOmG.js";
|
|
2
|
+
import { S as normalizeCategory, _ as MemoryLane, a as CandidateExtractionTrace, b as MemoryTier, c as DEFAULT_MEMORY_TIER, d as DedupDecision, f as DedupResult, g as MemoryEntry, h as MemoryCategory, i as CANDIDATE_EXTRACTION_TRACE_VERSION, l as DecayScore, m as MEMORY_CATEGORIES, n as AggregationOperation, o as CandidateMemory, p as ExtractionStats, r as AggregationQuery, s as CandidateRelation, t as AGGREGATION_OPERATIONS, u as DecayableMemory, v as MemoryMetadata, x as RetrievalResult, y as MemorySearchResult } from "../../../types-DxKqU60b.js";
|
|
3
|
+
export { AGGREGATION_OPERATIONS, AggregationOperation, AggregationQuery, CANDIDATE_EXTRACTION_TRACE_VERSION, CandidateExtractionTrace, CandidateMemory, CandidateRelation, DEFAULT_MEMORY_TIER, DecayScore, DecayableMemory, DedupDecision, DedupResult, ExtractionStats, MEMORY_CATEGORIES, MemoryCategory, MemoryEntry, MemoryLane, MemoryMetadata, MemorySearchResult, MemoryTier, type PluginConfig, RetrievalResult, SESSION_STRATEGIES, type SessionStrategy, normalizeCategory, pluginConfigSchema };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { l as SESSION_STRATEGIES, t as pluginConfigSchema } from "../../../plugin-config-schema-YJLyIIcJ.js";
|
|
2
|
+
//#region src/engine/shared/types.ts
|
|
3
|
+
const MEMORY_CATEGORIES = [
|
|
4
|
+
"episodic",
|
|
5
|
+
"profile",
|
|
6
|
+
"persona",
|
|
7
|
+
"lesson",
|
|
8
|
+
"summary",
|
|
9
|
+
"state"
|
|
10
|
+
];
|
|
11
|
+
const CANDIDATE_EXTRACTION_TRACE_VERSION = "insight-distill-2026-06-27";
|
|
12
|
+
const AGGREGATION_OPERATIONS = [
|
|
13
|
+
"count",
|
|
14
|
+
"first",
|
|
15
|
+
"last",
|
|
16
|
+
"evidence"
|
|
17
|
+
];
|
|
18
|
+
const DEFAULT_MEMORY_TIER = "peripheral";
|
|
19
|
+
/** Validate and normalize a category string to a foundation kind. */
|
|
20
|
+
function normalizeCategory(raw) {
|
|
21
|
+
const lower = raw.toLowerCase().trim();
|
|
22
|
+
if (MEMORY_CATEGORIES.includes(lower)) return lower;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { AGGREGATION_OPERATIONS, CANDIDATE_EXTRACTION_TRACE_VERSION, DEFAULT_MEMORY_TIER, MEMORY_CATEGORIES, SESSION_STRATEGIES, normalizeCategory, pluginConfigSchema };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as f32ToBytes, c as sanitizeFtsConjunctiveQuery, i as debugContentPreview, l as sanitizeFtsQuery, n as clamp01, o as readFileTail, r as clampInt, s as sanitizeForContext, t as bytesToF32, u as stableHash } from "../../../utils-Ctb9aevJ.js";
|
|
2
|
+
export { bytesToF32, clamp01, clampInt, debugContentPreview, f32ToBytes, readFileTail, sanitizeForContext, sanitizeFtsConjunctiveQuery, sanitizeFtsQuery, stableHash };
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { DEFAULT_IMPORTANCE } from "../../config/index.js";
|
|
2
|
+
import { redactSecrets } from "../security/redact.js";
|
|
3
|
+
import { stripHtmlTags, tokenizeForFts, truncateGraphemes } from "./i18n-text.js";
|
|
4
|
+
import { open, stat } from "node:fs/promises";
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
6
|
+
import { sanitizeContentIngress } from "@snoai/content-sanitizer";
|
|
7
|
+
//#region src/engine/shared/utils.ts
|
|
8
|
+
/** @file utils.ts
|
|
9
|
+
* @purpose Provides shared utility functions used across plugin runtime modules.
|
|
10
|
+
* @boundary Text normalization, hashing, filesystem helpers, and small conversions.
|
|
11
|
+
* @see store.ts, capture-policy-detector.ts, memory-management-cli.ts.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Clamps integer options into the configured range before they reach storage or ranking code.
|
|
15
|
+
*/
|
|
16
|
+
function clampInt(value, min, max) {
|
|
17
|
+
if (!Number.isFinite(value)) return min;
|
|
18
|
+
return Math.min(max, Math.max(min, Math.floor(value)));
|
|
19
|
+
}
|
|
20
|
+
/** Clamps score-like values to the 0..1 range while honoring a caller-provided fallback. */
|
|
21
|
+
function clamp01(value, fallback = DEFAULT_IMPORTANCE) {
|
|
22
|
+
if (!Number.isFinite(value)) return fallback;
|
|
23
|
+
return Math.min(1, Math.max(0, value));
|
|
24
|
+
}
|
|
25
|
+
/** Redacts markup-sensitive characters before memory text is embedded in prompt context. */
|
|
26
|
+
function sanitizeForContext(text, maxChars = 500, newlineReplacement = " ") {
|
|
27
|
+
const storageSafe = sanitizeContentIngress({
|
|
28
|
+
source: "generic-text",
|
|
29
|
+
content: text
|
|
30
|
+
}).projections.plainText;
|
|
31
|
+
const sanitized = stripHtmlTags(storageSafe).replace(/[\r\n]+/g, newlineReplacement).replace(/</g, "<").replace(/>/g, ">").replace(/\s+/g, " ").trim();
|
|
32
|
+
return truncateGraphemes(sanitized, maxChars);
|
|
33
|
+
}
|
|
34
|
+
const FTS5_RESERVED_TOKENS = /* @__PURE__ */ new Set([
|
|
35
|
+
"AND",
|
|
36
|
+
"OR",
|
|
37
|
+
"NOT",
|
|
38
|
+
"NEAR"
|
|
39
|
+
]);
|
|
40
|
+
const MAX_FTS_QUERY_TOKENS = 50;
|
|
41
|
+
const FTS_STOPWORDS = /* @__PURE__ */ new Set([
|
|
42
|
+
"a",
|
|
43
|
+
"an",
|
|
44
|
+
"the",
|
|
45
|
+
"and",
|
|
46
|
+
"or",
|
|
47
|
+
"but",
|
|
48
|
+
"of",
|
|
49
|
+
"to",
|
|
50
|
+
"in",
|
|
51
|
+
"on",
|
|
52
|
+
"at",
|
|
53
|
+
"for",
|
|
54
|
+
"is",
|
|
55
|
+
"are",
|
|
56
|
+
"was",
|
|
57
|
+
"were",
|
|
58
|
+
"be",
|
|
59
|
+
"been",
|
|
60
|
+
"being",
|
|
61
|
+
"do",
|
|
62
|
+
"does",
|
|
63
|
+
"did",
|
|
64
|
+
"has",
|
|
65
|
+
"have",
|
|
66
|
+
"had",
|
|
67
|
+
"what",
|
|
68
|
+
"which",
|
|
69
|
+
"who",
|
|
70
|
+
"whom",
|
|
71
|
+
"when",
|
|
72
|
+
"where",
|
|
73
|
+
"how",
|
|
74
|
+
"why",
|
|
75
|
+
"this",
|
|
76
|
+
"that",
|
|
77
|
+
"these",
|
|
78
|
+
"those",
|
|
79
|
+
"with",
|
|
80
|
+
"as",
|
|
81
|
+
"by",
|
|
82
|
+
"from",
|
|
83
|
+
"it",
|
|
84
|
+
"its",
|
|
85
|
+
"i",
|
|
86
|
+
"you",
|
|
87
|
+
"he",
|
|
88
|
+
"she",
|
|
89
|
+
"we",
|
|
90
|
+
"they",
|
|
91
|
+
"them",
|
|
92
|
+
"his",
|
|
93
|
+
"her",
|
|
94
|
+
"their",
|
|
95
|
+
"our",
|
|
96
|
+
"your",
|
|
97
|
+
"my"
|
|
98
|
+
]);
|
|
99
|
+
/** Escapes SQLite FTS operators so user queries cannot break MATCH syntax. */
|
|
100
|
+
function sanitizeFtsQuery(rawQuery) {
|
|
101
|
+
const tokens = tokenizeForFts(rawQuery).filter((token) => token.length > 0).filter((token) => !FTS5_RESERVED_TOKENS.has(token.toUpperCase())).filter((token) => !FTS_STOPWORDS.has(token.toLowerCase())).slice(0, MAX_FTS_QUERY_TOKENS);
|
|
102
|
+
if (tokens.length === 0) return "";
|
|
103
|
+
return tokens.map((token) => `"${token}"`).join(" OR ");
|
|
104
|
+
}
|
|
105
|
+
/** Builds a conjunctive FTS predicate from validated structured aggregation terms. */
|
|
106
|
+
function sanitizeFtsConjunctiveQuery(terms) {
|
|
107
|
+
let remainingTokens = MAX_FTS_QUERY_TOKENS;
|
|
108
|
+
return terms.flatMap((term) => {
|
|
109
|
+
const tokens = tokenizeForFts(term).filter((token) => token.length > 0).filter((token) => !FTS5_RESERVED_TOKENS.has(token.toUpperCase())).slice(0, remainingTokens);
|
|
110
|
+
remainingTokens -= tokens.length;
|
|
111
|
+
return tokens.length > 0 ? [`(${tokens.map((token) => `"${token}"`).join(" OR ")})`] : [];
|
|
112
|
+
}).join(" AND ");
|
|
113
|
+
}
|
|
114
|
+
/** Serializes Float32 vectors into little-endian bytes for SQLite vector storage. */
|
|
115
|
+
function f32ToBytes(f32) {
|
|
116
|
+
return new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength);
|
|
117
|
+
}
|
|
118
|
+
/** Rehydrates SQLite vector bytes into Float32 values and rejects malformed payloads. */
|
|
119
|
+
function bytesToF32(bytes) {
|
|
120
|
+
if (bytes.byteLength % 4 !== 0) throw new Error(`bytesToF32: byteLength ${bytes.byteLength} not a multiple of 4`);
|
|
121
|
+
const aligned = new Uint8Array(bytes.byteLength);
|
|
122
|
+
aligned.set(bytes);
|
|
123
|
+
return new Float32Array(aligned.buffer);
|
|
124
|
+
}
|
|
125
|
+
/** Produces the stable content hash used for deduplication and idempotent writes. */
|
|
126
|
+
function stableHash(text) {
|
|
127
|
+
return createHash("sha256").update(text).digest("hex");
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Return a short, secret-redacted, whitespace-collapsed preview of `text` for
|
|
131
|
+
* debug audit logs when explicitly enabled. Off-by-default
|
|
132
|
+
* and passes the text through `redactSecrets` first because previews persist
|
|
133
|
+
* in audit.jsonl on disk. Enable for bench investigations only.
|
|
134
|
+
*/
|
|
135
|
+
function debugContentPreview(text, enabled, maxChars = 80) {
|
|
136
|
+
if (!enabled) return void 0;
|
|
137
|
+
if (!text) return void 0;
|
|
138
|
+
const collapsed = redactSecrets(text).replace(/\s+/g, " ").trim();
|
|
139
|
+
if (collapsed.length === 0) return void 0;
|
|
140
|
+
return collapsed.length > maxChars ? `${collapsed.slice(0, maxChars)}...` : collapsed;
|
|
141
|
+
}
|
|
142
|
+
/** Max bytes to read from the tail of a session JSONL file (512 KB). */
|
|
143
|
+
const SESSION_TAIL_MAX_BYTES = 524288;
|
|
144
|
+
/**
|
|
145
|
+
* Read the tail of a text file (up to `maxBytes`).
|
|
146
|
+
* Returns the file content from the tail. If the file is smaller than `maxBytes`,
|
|
147
|
+
* returns the entire file. The first partial line is dropped (it was likely truncated).
|
|
148
|
+
*/
|
|
149
|
+
async function readFileTail(filePath, maxBytes = SESSION_TAIL_MAX_BYTES) {
|
|
150
|
+
const fileStat = await stat(filePath);
|
|
151
|
+
if (fileStat.size <= maxBytes) {
|
|
152
|
+
const handle = await open(filePath, "r");
|
|
153
|
+
try {
|
|
154
|
+
const buf = Buffer.alloc(fileStat.size);
|
|
155
|
+
await handle.read(buf, 0, fileStat.size, 0);
|
|
156
|
+
return buf.toString("utf-8");
|
|
157
|
+
} finally {
|
|
158
|
+
await handle.close();
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const handle = await open(filePath, "r");
|
|
162
|
+
try {
|
|
163
|
+
const startPos = fileStat.size - maxBytes;
|
|
164
|
+
const buf = Buffer.alloc(maxBytes);
|
|
165
|
+
await handle.read(buf, 0, maxBytes, startPos);
|
|
166
|
+
const raw = buf.toString("utf-8");
|
|
167
|
+
const firstNewline = raw.indexOf("\n");
|
|
168
|
+
if (firstNewline === -1) return "";
|
|
169
|
+
return raw.slice(firstNewline + 1);
|
|
170
|
+
} finally {
|
|
171
|
+
await handle.close();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//#endregion
|
|
175
|
+
export { bytesToF32, clamp01, clampInt, debugContentPreview, f32ToBytes, readFileTail, sanitizeForContext, sanitizeFtsConjunctiveQuery, sanitizeFtsQuery, stableHash };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { r as SqliteDatabaseLike } from "../../../sqlite-runtime-L_ywirTm.js";
|
|
2
|
+
import { n as MemoryTelemetryKeySet, t as MemoryTelemetryReceiptService } from "../../../memory-telemetry-receipts-MAJecvXQ.js";
|
|
3
|
+
import { i as MemoryTelemetryEventType, o as MemoryTelemetryReceiptStatus } from "../../../memory-telemetry-types-CufVmrCs.js";
|
|
4
|
+
import { r as MemoryTelemetryUsageOutbox } from "../../../memory-telemetry-outbox-ddTdImt7.js";
|
|
5
|
+
//#region src/engine/telemetry/memory-telemetry-purge.d.ts
|
|
6
|
+
type MemoryTelemetryPurgeActor = "agent" | "operator";
|
|
7
|
+
type MemoryTelemetryPurgeStatus = "complete" | "partial" | "blocked";
|
|
8
|
+
interface MemoryTelemetryPurgePreviewOptions {
|
|
9
|
+
actor?: MemoryTelemetryPurgeActor;
|
|
10
|
+
}
|
|
11
|
+
interface MemoryTelemetryPurgePreview {
|
|
12
|
+
targetFactId: string;
|
|
13
|
+
affectedFactIds: string[];
|
|
14
|
+
downstreamFactIds: string[];
|
|
15
|
+
affectedFactCount: number;
|
|
16
|
+
recentRecallCount: number;
|
|
17
|
+
affectedEpochIds: string[];
|
|
18
|
+
blocked: boolean;
|
|
19
|
+
blockedReason?: "cycle_detected";
|
|
20
|
+
}
|
|
21
|
+
interface MemoryTelemetryConfirmPurgeInput {
|
|
22
|
+
factId: string;
|
|
23
|
+
actor: MemoryTelemetryPurgeActor;
|
|
24
|
+
confirmationToken: string;
|
|
25
|
+
}
|
|
26
|
+
interface MemoryTelemetryPurgeResult {
|
|
27
|
+
targetFactId: string;
|
|
28
|
+
status: MemoryTelemetryPurgeStatus;
|
|
29
|
+
purgedFactIds: string[];
|
|
30
|
+
failedFactIds: string[];
|
|
31
|
+
blockedReason?: "cycle_detected" | "recent_recall";
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/engine/telemetry/memory-telemetry-api.d.ts
|
|
35
|
+
export interface CreateMemoryTelemetryApiOptions {
|
|
36
|
+
sqlite: SqliteDatabaseLike;
|
|
37
|
+
usageOutbox?: MemoryTelemetryUsageOutbox;
|
|
38
|
+
keySet?: MemoryTelemetryKeySet;
|
|
39
|
+
key?: string;
|
|
40
|
+
historicKeys?: readonly string[];
|
|
41
|
+
receiptService?: MemoryTelemetryReceiptService;
|
|
42
|
+
agentId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface MemoryTelemetryLatestReceipt {
|
|
45
|
+
eventId: number;
|
|
46
|
+
factId: string;
|
|
47
|
+
memoryRowId: string | null;
|
|
48
|
+
contentHash: string;
|
|
49
|
+
timestampMs: number;
|
|
50
|
+
receiptHmac: string;
|
|
51
|
+
keyVersion: number;
|
|
52
|
+
status: MemoryTelemetryReceiptStatus;
|
|
53
|
+
}
|
|
54
|
+
export interface MemoryTelemetryVerifyReceiptResult {
|
|
55
|
+
status: MemoryTelemetryReceiptStatus;
|
|
56
|
+
requestedFactId: string;
|
|
57
|
+
terminalFactId: string;
|
|
58
|
+
latestReceipt: MemoryTelemetryLatestReceipt;
|
|
59
|
+
historicalReceipts: MemoryTelemetryLatestReceipt[];
|
|
60
|
+
}
|
|
61
|
+
export interface MemoryTelemetryProvenanceNode {
|
|
62
|
+
eventId: number;
|
|
63
|
+
eventType: MemoryTelemetryEventType;
|
|
64
|
+
factId: string | null;
|
|
65
|
+
timestampMs: number;
|
|
66
|
+
sourceEventId: number | null;
|
|
67
|
+
derivedFrom: string[];
|
|
68
|
+
}
|
|
69
|
+
export interface MemoryTelemetryProvenanceChain {
|
|
70
|
+
factId: string;
|
|
71
|
+
currentState: "active" | "superseded" | "deleted" | "purged" | "missing";
|
|
72
|
+
nodes: MemoryTelemetryProvenanceNode[];
|
|
73
|
+
}
|
|
74
|
+
export interface MemoryTelemetryUsageSummaryInput {
|
|
75
|
+
factId?: string;
|
|
76
|
+
agentId?: string;
|
|
77
|
+
projectId?: string;
|
|
78
|
+
window?: {
|
|
79
|
+
sinceMs?: number;
|
|
80
|
+
untilMs?: number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface MemoryTelemetryUsageSummaryResult {
|
|
84
|
+
factId?: string;
|
|
85
|
+
agentId?: string;
|
|
86
|
+
recallCount: number;
|
|
87
|
+
injectionCount: number;
|
|
88
|
+
lastRecalledAt: number | null;
|
|
89
|
+
lastInjectedAt: number | null;
|
|
90
|
+
source: "local";
|
|
91
|
+
cloudForwarding: "ignored";
|
|
92
|
+
tenantBoundary: {
|
|
93
|
+
status: "unavailable";
|
|
94
|
+
queryTenantId: null;
|
|
95
|
+
resultTenantId: null;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export interface MemoryTelemetryRecallTraceInput {
|
|
99
|
+
sessionUuid?: string;
|
|
100
|
+
turnId?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface MemoryTelemetryRecallTraceEvent {
|
|
103
|
+
eventId: number | null;
|
|
104
|
+
factId: string;
|
|
105
|
+
timestampMs: number;
|
|
106
|
+
rank: number | null;
|
|
107
|
+
score: number | null;
|
|
108
|
+
agentId: string | null;
|
|
109
|
+
projectId: string | null;
|
|
110
|
+
source: "nodix_memory_events" | "nodix_memory_usage_outbox";
|
|
111
|
+
}
|
|
112
|
+
export interface MemoryTelemetryRecallTrace {
|
|
113
|
+
sessionUuid: string;
|
|
114
|
+
turnId: string;
|
|
115
|
+
events: MemoryTelemetryRecallTraceEvent[];
|
|
116
|
+
}
|
|
117
|
+
export interface MemoryTelemetryEpochReport {
|
|
118
|
+
epochId: string;
|
|
119
|
+
status: "synthetic" | "real" | "unavailable";
|
|
120
|
+
boundaryEvents: number[];
|
|
121
|
+
createdFactIds: string[];
|
|
122
|
+
supersededFactIds: string[];
|
|
123
|
+
}
|
|
124
|
+
export interface MemoryTelemetryApi {
|
|
125
|
+
verifyReceipt(factId: string): MemoryTelemetryVerifyReceiptResult;
|
|
126
|
+
provenanceChain(factId: string, depth?: number): MemoryTelemetryProvenanceChain;
|
|
127
|
+
editImpactPreview(factId: string, options?: MemoryTelemetryPurgePreviewOptions): MemoryTelemetryPurgePreview;
|
|
128
|
+
confirmPurge(input: MemoryTelemetryConfirmPurgeInput): MemoryTelemetryPurgeResult;
|
|
129
|
+
usageSummary(input: MemoryTelemetryUsageSummaryInput): MemoryTelemetryUsageSummaryResult;
|
|
130
|
+
recallTrace(input: MemoryTelemetryRecallTraceInput): MemoryTelemetryRecallTrace;
|
|
131
|
+
epochReport(epochId: string): MemoryTelemetryEpochReport;
|
|
132
|
+
}
|
|
133
|
+
export declare function createMemoryTelemetryApi(options: CreateMemoryTelemetryApiOptions): MemoryTelemetryApi;
|
|
134
|
+
//#endregion
|