@snoai/memory 0.0.0-stage → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +176 -0
- package/README.md +33 -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-BbEvEocb.d.ts +110 -0
- package/dist/adapter-B7Jox9-6.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-C5rmogoY.js +3605 -0
- package/dist/atomic-memory-extraction-d9EG-4ti.d.ts +327 -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-CxbHPkMX.d.ts +53 -0
- package/dist/capture-policy-detector-DaMfy9CZ.js +357 -0
- package/dist/classifier-DnbbtwTS.d.ts +272 -0
- package/dist/client.d.ts +34 -0
- package/dist/client.js +306 -0
- package/dist/coding-skin.d.ts +51 -0
- package/dist/coding-skin.js +55 -0
- package/dist/config-CL90qYva.js +2576 -0
- package/dist/connection-3IVXpuPE.d.ts +391 -0
- package/dist/connection-C9YD5sgm.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-Bl3lthzE.d.ts +30 -0
- package/dist/data-bootstrap-P8sie9WA.js +172 -0
- package/dist/data-paths-C7sNdqvP.d.ts +22 -0
- package/dist/derived-suppression-cache-CI0durYx.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-0aqS8pVF.d.ts +351 -0
- package/dist/index-BO4RU_mc.d.ts +650 -0
- package/dist/index-DL8AVj0Z.d.ts +571 -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 +62 -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 +36 -0
- package/dist/internal/engine/bindings/sno-station-mem-runtime-mode.js +104 -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-BSYUAcUb.js +1374 -0
- package/dist/llm-client-DOTSGzhe.d.ts +51 -0
- package/dist/locales-JxGmkG6t.d.ts +7 -0
- package/dist/log-site-catalog.generated-BMKWj-Nx.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-BiuRjSJc.d.ts +23 -0
- package/dist/memory-metadata-codec-DL1sbJiN.js +577 -0
- package/dist/memory-metadata-codec-DUvsYe_X.d.ts +68 -0
- package/dist/memory-runtime-DqUS4cWi.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-CqY1BUUA.d.ts +16 -0
- package/dist/memory-source-order-YMRoeDLd.js +134 -0
- package/dist/memory-store-base-CQ_bHlYA.d.ts +1094 -0
- package/dist/memory-store-shared-DqpWJXZZ.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-BUjXG5o7.js +184 -0
- package/dist/memory-temporality-classifier-Brht5jyK.d.ts +43 -0
- package/dist/memory-tier-promoter-CqGxCkue.d.ts +43 -0
- package/dist/memory-tool-dependencies-CatGzI9R.d.ts +14 -0
- package/dist/memory-tool-dependencies-DjUoelnm.js +19 -0
- package/dist/model-call-table-CspopkBg.js +563 -0
- package/dist/model-reply-text-CKopStP2.js +334 -0
- package/dist/observable-embedder-CNNe9gkg.d.ts +17 -0
- package/dist/observable-llm-client-CRuKlefQ.d.ts +21 -0
- package/dist/observable-memory-store-CnGDpOY5.d.ts +73 -0
- package/dist/observable-retriever-Cooc62Qw.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-BhGKPBjw.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-ClUl-iv6.js +644 -0
- package/dist/reflection-command-hooks-G1-dI2Av.d.ts +32 -0
- package/dist/reflection-deps-Ccm2Jf5W.d.ts +19 -0
- package/dist/reflection-embedded-generator-BRvqV5N-.js +130 -0
- package/dist/reflection-embedded-generator-kfQfKEYV.d.ts +14 -0
- package/dist/reflection-injection-hooks-CS_uhjoD.d.ts +43 -0
- package/dist/reflection-lifecycle-hooks-CRSpUdLi.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-Dg2HgROM.js +2 -0
- package/dist/rem-batch-executor-DuC4nYyf.js +31640 -0
- package/dist/rem-consumer-retrieval-CR0dtcHR.js +246 -0
- package/dist/rem-trigger-Hn6od8IV.js +730 -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-Dxss5fRv.d.ts +469 -0
- package/dist/retriever-ZoLvPRHq.js +1757 -0
- package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/routes-DLHT__Ay.js +60 -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-CSvxchqg.js +1412 -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-CoWqUMbK.js +30 -0
- package/dist/sno-station-mem-runtime-dependencies-DHESIuPn.d.ts +31 -0
- package/dist/sqlite-runtime-L_ywirTm.d.ts +58 -0
- package/dist/store-C8sUTssE.d.ts +27 -0
- package/dist/store-nPql26YM.js +5830 -0
- package/dist/strategy-hook-runner-Bxy851Xx.d.ts +16 -0
- package/dist/strategy-hook-runner-Djify5Rw.js +110 -0
- package/dist/token-counter-BD1f48Km.js +73 -0
- package/dist/trace-C1JxMfs-.d.ts +86 -0
- package/dist/types-CWdhXLxr.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,145 @@
|
|
|
1
|
+
import { nt as FIXED_PROTOCOL_VALUE_63, wt as PERSISTED_PROVIDER_SYSTEM } from "../../../signed-registry-constants-yq3DlG3B.js";
|
|
2
|
+
import { parseIsoDateTimeMs } from "../shared/iso-date-time.js";
|
|
3
|
+
import { t as normalizeAmbientLearningText } from "../../../ambient-learning-text-normalizer-CxjATmMp.js";
|
|
4
|
+
import { a as escapeTranscriptRoleContinuations } from "../../../atomic-memory-extraction-C5rmogoY.js";
|
|
5
|
+
import "../../../sno-station-mem-runtime-dependencies-CoWqUMbK.js";
|
|
6
|
+
import { sanitizeContentIngress } from "@snoai/content-sanitizer";
|
|
7
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
8
|
+
//#region src/engine/bindings/sno-station-mem-message-transcript.ts
|
|
9
|
+
/** @file sno-station-mem-message-transcript.ts
|
|
10
|
+
* @purpose Normalizes SDK message records into capture transcripts and session timestamps.
|
|
11
|
+
* @boundary Message-shape parsing and redaction for transcript construction only.
|
|
12
|
+
*/
|
|
13
|
+
/** Collects text chunks from SDK messages while ignoring unsupported content parts. */
|
|
14
|
+
function extractAllMessageTexts(record) {
|
|
15
|
+
if (typeof record.content === "string") return [record.content];
|
|
16
|
+
if (!Array.isArray(record.content)) return [];
|
|
17
|
+
const texts = [];
|
|
18
|
+
for (const chunk of record.content) {
|
|
19
|
+
if (!chunk || typeof chunk !== "object") continue;
|
|
20
|
+
const chunkRecord = chunk;
|
|
21
|
+
if (chunkRecord.type === "text" && typeof chunkRecord.text === "string") texts.push(chunkRecord.text);
|
|
22
|
+
}
|
|
23
|
+
return texts;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Marks a message this plugin injected into the host agent as its OWN model request.
|
|
27
|
+
*
|
|
28
|
+
* `sourceChannel` is the host's own message-origin field — optional, free-form, and part of the
|
|
29
|
+
* persisted transcript schema (`sno-station-mem/dist/transcript-*.d.ts`). It is what survives the gap
|
|
30
|
+
* that matters: the host records our turn, and ambient learning reads the session LATER, from an
|
|
31
|
+
* unrelated async chain and possibly a later process. Nothing scoped to the originating call, and
|
|
32
|
+
* nothing held in memory, is still observable there.
|
|
33
|
+
*
|
|
34
|
+
* Verified against a real recorded row on the E2E host, 2026-08-30: a persisted message is
|
|
35
|
+
* `{role, timestamp, sourceChannel, content}` — this field is carried, an unknown field has no
|
|
36
|
+
* such guarantee.
|
|
37
|
+
*
|
|
38
|
+
* This excludes text THIS PLUGIN authored and nothing else. A message without this origin is
|
|
39
|
+
* untouched, so no incoming user turn can be dropped by this path — including one whose wording
|
|
40
|
+
* happens to match ours.
|
|
41
|
+
*/
|
|
42
|
+
const PLUGIN_OWNED_SOURCE_CHANNEL = FIXED_PROTOCOL_VALUE_63;
|
|
43
|
+
/** Whether a raw SDK message is one this plugin injected as its own model request. */
|
|
44
|
+
function isPluginOwnedMessage(message) {
|
|
45
|
+
if (!message || typeof message !== "object") return false;
|
|
46
|
+
return message.sourceChannel === PLUGIN_OWNED_SOURCE_CHANNEL;
|
|
47
|
+
}
|
|
48
|
+
/** Narrows raw SDK messages to user/assistant turns eligible for ambient-learning. */
|
|
49
|
+
function isAmbientLearningMessage(message) {
|
|
50
|
+
if (!message || typeof message !== "object") return false;
|
|
51
|
+
if (isPluginOwnedMessage(message)) return false;
|
|
52
|
+
const role = message.role;
|
|
53
|
+
return role === "user" || role === "assistant";
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Normalizes message timestamp ms at the boundary before plugin lifecycle orchestration uses
|
|
57
|
+
* it.
|
|
58
|
+
*/
|
|
59
|
+
function normalizeMessageTimestampMs(value) {
|
|
60
|
+
if (typeof value === "number" && Number.isFinite(value)) return value < 1e11 ? value * 1e3 : value;
|
|
61
|
+
if (typeof value === "string") {
|
|
62
|
+
const trimmed = value.trim();
|
|
63
|
+
if (!trimmed) return void 0;
|
|
64
|
+
const asNumber = Number(trimmed);
|
|
65
|
+
if (Number.isFinite(asNumber)) return normalizeMessageTimestampMs(asNumber);
|
|
66
|
+
return parseIsoDateTimeMs(trimmed);
|
|
67
|
+
}
|
|
68
|
+
if (value instanceof Date) {
|
|
69
|
+
const timestampMs = value.getTime();
|
|
70
|
+
return Number.isNaN(timestampMs) ? void 0 : timestampMs;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Derive a session anchor from the most recent conversational message so the
|
|
75
|
+
* insight distiller can resolve relative dates like "yesterday" or "last year".
|
|
76
|
+
*/
|
|
77
|
+
function deriveSessionDateTime(messages, captureAssistant = true) {
|
|
78
|
+
let latestTimestampMs = Number.NEGATIVE_INFINITY;
|
|
79
|
+
for (const message of messages) {
|
|
80
|
+
if (!isAmbientLearningMessage(message)) continue;
|
|
81
|
+
if (message.role === "assistant" && !captureAssistant) continue;
|
|
82
|
+
const timestampMs = normalizeMessageTimestampMs(message.timestamp);
|
|
83
|
+
if (timestampMs === void 0) continue;
|
|
84
|
+
latestTimestampMs = Math.max(latestTimestampMs, timestampMs);
|
|
85
|
+
}
|
|
86
|
+
if (!Number.isFinite(latestTimestampMs)) return;
|
|
87
|
+
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
88
|
+
return Temporal.Instant.fromEpochMilliseconds(latestTimestampMs).toZonedDateTimeISO(timezone).toString({
|
|
89
|
+
smallestUnit: "millisecond",
|
|
90
|
+
timeZoneName: "never"
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
const TRANSCRIPT_SESSION_DATE_HEADER = /^session_date_time:[ \t]*(\S[^\n]*)$/m;
|
|
94
|
+
/**
|
|
95
|
+
* The session date a transcript states about itself. A replayed or imported log carries the date
|
|
96
|
+
* it was actually spoken on; the gateway's message timestamps only say when it was replayed, and
|
|
97
|
+
* anchoring "yesterday" to the replay day files every relative date years off. An ISO
|
|
98
|
+
* `session_date_time:` line in a user message therefore outranks the message timestamps; a
|
|
99
|
+
* header that does not parse as ISO is ignored, not guessed at.
|
|
100
|
+
*/
|
|
101
|
+
function transcriptSessionDateTime(messages) {
|
|
102
|
+
for (const message of messages) {
|
|
103
|
+
if (!isAmbientLearningMessage(message) || message.role !== "user") continue;
|
|
104
|
+
for (const text of extractAllMessageTexts(message)) {
|
|
105
|
+
const header = TRANSCRIPT_SESSION_DATE_HEADER.exec(text)?.[1];
|
|
106
|
+
if (header === void 0) continue;
|
|
107
|
+
const timestampMs = parseIsoDateTimeMs(header.trim());
|
|
108
|
+
if (timestampMs === void 0) return void 0;
|
|
109
|
+
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
110
|
+
return Temporal.Instant.fromEpochMilliseconds(timestampMs).toZonedDateTimeISO(timezone).toString({
|
|
111
|
+
smallestUnit: "millisecond",
|
|
112
|
+
timeZoneName: "never"
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Builds the chronological transcript used by session summary and capture logic. */
|
|
118
|
+
function buildConversationText(messages, captureAssistant) {
|
|
119
|
+
const lines = [];
|
|
120
|
+
let latestUserMemorySourceText;
|
|
121
|
+
for (const message of messages) {
|
|
122
|
+
if (!isAmbientLearningMessage(message)) continue;
|
|
123
|
+
if (message.role === "assistant" && !captureAssistant) continue;
|
|
124
|
+
const texts = extractAllMessageTexts(message);
|
|
125
|
+
const userChunks = [];
|
|
126
|
+
for (const text of texts) {
|
|
127
|
+
const normalized = normalizeAmbientLearningText(message.role, text);
|
|
128
|
+
if (!normalized) continue;
|
|
129
|
+
const sanitized = sanitizeContentIngress({
|
|
130
|
+
source: PERSISTED_PROVIDER_SYSTEM,
|
|
131
|
+
content: normalized
|
|
132
|
+
}).projections.plainText;
|
|
133
|
+
if (!sanitized) continue;
|
|
134
|
+
if (message.role === "user") userChunks.push(sanitized);
|
|
135
|
+
lines.push(`${message.role}: ${escapeTranscriptRoleContinuations(sanitized)}`);
|
|
136
|
+
}
|
|
137
|
+
if (message.role === "user" && userChunks.length > 0) latestUserMemorySourceText = userChunks.join("\n");
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
text: lines.join("\n\n"),
|
|
141
|
+
latestUserMemorySourceText
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
export { PLUGIN_OWNED_SOURCE_CHANNEL, buildConversationText, deriveSessionDateTime, extractAllMessageTexts, isAmbientLearningMessage, isPluginOwnedMessage, normalizeMessageTimestampMs, transcriptSessionDateTime };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { t as PluginConfig } from "../../../plugin-config-schema-C0UUbOmG.js";
|
|
2
|
+
import { t as Embedder } from "../../../embedding-provider-client-vynZMuit.js";
|
|
3
|
+
import { C as MemoryStore } from "../../../memory-store-base-CQ_bHlYA.js";
|
|
4
|
+
import { n as createScopePolicy } from "../../../memory-scope-policy-1gg5QlWZ.js";
|
|
5
|
+
import { PluginHookAgentContext, PluginHookBeforeResetEvent } from "./sno-station-mem-hook-types.js";
|
|
6
|
+
import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-DHESIuPn.js";
|
|
7
|
+
//#region src/engine/bindings/sno-station-mem-reset-hook.d.ts
|
|
8
|
+
/** Stores reset-time session context before the host discards conversation state. */
|
|
9
|
+
export declare function onBeforeReset(_api: SnoStationMemPluginApi, _config: PluginConfig, _store: MemoryStore, _embedder: Embedder, _scopePolicy: ReturnType<typeof createScopePolicy>, recallHistory: Map<string, Map<string, number>>, turnCounter: Map<string, number>, _event: PluginHookBeforeResetEvent, ctx: PluginHookAgentContext, _stateDir: string): Promise<void>;
|
|
10
|
+
//#endregion
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { clearSessionState, resolveRuntimeSessionId } from "./sno-station-mem-session-state.js";
|
|
2
|
+
//#region src/engine/bindings/sno-station-mem-reset-hook.ts
|
|
3
|
+
/** Stores reset-time session context before the host discards conversation state. */
|
|
4
|
+
async function onBeforeReset(_api, _config, _store, _embedder, _scopePolicy, recallHistory, turnCounter, _event, ctx, _stateDir) {
|
|
5
|
+
const sessionId = resolveRuntimeSessionId(ctx);
|
|
6
|
+
clearSessionState(sessionId, recallHistory, turnCounter);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { onBeforeReset };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { t as SnoStationMemPluginApi } from "../../../sno-station-mem-runtime-dependencies-DHESIuPn.js";
|
|
2
|
+
//#region src/engine/bindings/sno-station-mem-runtime-mode.d.ts
|
|
3
|
+
/** Detects completion bootstrap mode so plugin startup can expose only completion wiring. */
|
|
4
|
+
export declare function isCompletionMode(): boolean;
|
|
5
|
+
/** Detects gateway mode before starting host services that are not needed there. */
|
|
6
|
+
export declare function isGatewayMode(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Extracts an agent id from supported session-key formats while ignoring system bypass ids.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseAgentIdFromSessionKey(sessionKey: string | undefined): string | undefined;
|
|
11
|
+
export declare function runObserveLifecycleTask(label: string, logger: SnoStationMemPluginApi["logger"], timeoutMs: number, task: () => Promise<void>): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Detects pure-digit agentIds that almost always come from a chat_id / user-id
|
|
14
|
+
* extraction (e.g. Discord snowflake `657229412030480397`, Telegram numeric
|
|
15
|
+
* user_id `5108601505`). Treating these as agent identities triggers spurious
|
|
16
|
+
* recall lookups against ids that have no memory rows.
|
|
17
|
+
*
|
|
18
|
+
* Returns true only for non-empty strings that are exclusively ASCII digits.
|
|
19
|
+
* Empty/whitespace inputs are handled separately by `resolveHookAgentId`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isChatIdBasedAgentId(agentId: string | undefined): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the agentId for hook-level filtering: prefer an explicit ctx.agentId,
|
|
24
|
+
* then fall back to parsing the sessionKey. Callers supply defaults when no identity is found.
|
|
25
|
+
*/
|
|
26
|
+
export type HookAgentResolutionSource = "explicit" | "sessionKey" | "missing";
|
|
27
|
+
/**
|
|
28
|
+
* Derives the effective hook agent id with explicit then session-key ordering.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveHookAgentId(explicitAgentId: unknown, sessionKey: unknown): {
|
|
31
|
+
agentId?: string;
|
|
32
|
+
source: HookAgentResolutionSource;
|
|
33
|
+
};
|
|
34
|
+
/** Emits a scoped audit breadcrumb when hook metadata is missing or unparseable. */
|
|
35
|
+
export declare function auditMissingHookAgentIdentity(api: SnoStationMemPluginApi, hookName: "agent_end" | "before_prompt_build" | "before_reset", stateDir: string, event: "ambient_learning" | "auto_recall" | "session_summary"): void;
|
|
36
|
+
//#endregion
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { i as isSystemBypassId } from "../../../memory-scope-policy-DICSCURA.js";
|
|
2
|
+
import { t as appendAuditEntry } from "../../../runtime-audit-log-BCeujlEp.js";
|
|
3
|
+
import "../../../scopes-CSOn6zdd.js";
|
|
4
|
+
import { createLogger } from "@snoai/utils/logger";
|
|
5
|
+
//#region src/engine/bindings/sno-station-mem-runtime-mode.ts
|
|
6
|
+
const diagnosticLog = createLogger("sno-station-mem:sno-station-mem-runtime-mode");
|
|
7
|
+
/** Detects completion bootstrap mode so plugin startup can expose only completion wiring. */
|
|
8
|
+
function isCompletionMode() {
|
|
9
|
+
return process.argv.slice(1, 4).includes("completion");
|
|
10
|
+
}
|
|
11
|
+
/** Detects gateway mode before starting host services that are not needed there. */
|
|
12
|
+
function isGatewayMode() {
|
|
13
|
+
return process.argv.includes("gateway");
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extracts an agent id from supported session-key formats while ignoring system bypass ids.
|
|
17
|
+
*/
|
|
18
|
+
function parseAgentIdFromSessionKey(sessionKey) {
|
|
19
|
+
const parts = (sessionKey ?? "").trim().split(":");
|
|
20
|
+
if (parts.length >= 2 && (parts[0] === "agent" || parts[0] === "session")) {
|
|
21
|
+
const agentId = parts[1]?.trim();
|
|
22
|
+
if (agentId && !isSystemBypassId(agentId)) return agentId;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function runObserveLifecycleTask(label, logger, timeoutMs, task) {
|
|
26
|
+
let timeoutHandle;
|
|
27
|
+
const run = Promise.resolve().then(task);
|
|
28
|
+
run.catch(() => void 0);
|
|
29
|
+
try {
|
|
30
|
+
await Promise.race([run, new Promise((resolve) => {
|
|
31
|
+
timeoutHandle = setTimeout(() => {
|
|
32
|
+
diagnosticLog.warn("Memory observation task timed out", {
|
|
33
|
+
operation: label,
|
|
34
|
+
timeout_ms: timeoutMs
|
|
35
|
+
}, {
|
|
36
|
+
event_name: "memory.sno-station-mem_runtime_mode.memory.observation.task.timed.out",
|
|
37
|
+
file: "packages/memory/src/engine/bindings/sno-station-mem-runtime-mode.ts",
|
|
38
|
+
function: "runObserveLifecycleTask",
|
|
39
|
+
site_id: "plugin.sno-station-mem-runtime-mode.runObserveLifecycleTask.d1856ccb13"
|
|
40
|
+
});
|
|
41
|
+
resolve();
|
|
42
|
+
}, timeoutMs);
|
|
43
|
+
timeoutHandle.unref?.();
|
|
44
|
+
})]);
|
|
45
|
+
} finally {
|
|
46
|
+
if (timeoutHandle) clearTimeout(timeoutHandle);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Detects pure-digit agentIds that almost always come from a chat_id / user-id
|
|
51
|
+
* extraction (e.g. Discord snowflake `657229412030480397`, Telegram numeric
|
|
52
|
+
* user_id `5108601505`). Treating these as agent identities triggers spurious
|
|
53
|
+
* recall lookups against ids that have no memory rows.
|
|
54
|
+
*
|
|
55
|
+
* Returns true only for non-empty strings that are exclusively ASCII digits.
|
|
56
|
+
* Empty/whitespace inputs are handled separately by `resolveHookAgentId`.
|
|
57
|
+
*/
|
|
58
|
+
function isChatIdBasedAgentId(agentId) {
|
|
59
|
+
if (typeof agentId !== "string") return false;
|
|
60
|
+
const trimmed = agentId.trim();
|
|
61
|
+
if (trimmed.length === 0) return false;
|
|
62
|
+
return /^\d+$/.test(trimmed);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Derives the effective hook agent id with explicit then session-key ordering.
|
|
66
|
+
*/
|
|
67
|
+
function resolveHookAgentId(explicitAgentId, sessionKey) {
|
|
68
|
+
if (typeof explicitAgentId === "string" && explicitAgentId.trim()) {
|
|
69
|
+
const agentId = explicitAgentId.trim();
|
|
70
|
+
if (isSystemBypassId(agentId)) return { source: "missing" };
|
|
71
|
+
return {
|
|
72
|
+
agentId,
|
|
73
|
+
source: "explicit"
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (typeof sessionKey === "string") {
|
|
77
|
+
const parsed = parseAgentIdFromSessionKey(sessionKey);
|
|
78
|
+
if (parsed) return {
|
|
79
|
+
agentId: parsed,
|
|
80
|
+
source: "sessionKey"
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return { source: "missing" };
|
|
84
|
+
}
|
|
85
|
+
/** Emits a scoped audit breadcrumb when hook metadata is missing or unparseable. */
|
|
86
|
+
function auditMissingHookAgentIdentity(api, hookName, stateDir, event) {
|
|
87
|
+
diagnosticLog.warn("Memory hook lacks agent identity", {
|
|
88
|
+
operation: hookName,
|
|
89
|
+
reason_code: "missing_agent_identity"
|
|
90
|
+
}, {
|
|
91
|
+
event_name: "memory.sno-station-mem_runtime_mode.memory.hook.lacks.agent.identity",
|
|
92
|
+
file: "packages/memory/src/engine/bindings/sno-station-mem-runtime-mode.ts",
|
|
93
|
+
function: "auditMissingHookAgentIdentity",
|
|
94
|
+
site_id: "plugin.sno-station-mem-runtime-mode.auditMissingHookAgentIdentity.f06795892a"
|
|
95
|
+
});
|
|
96
|
+
appendAuditEntry(stateDir, {
|
|
97
|
+
event,
|
|
98
|
+
hook: hookName,
|
|
99
|
+
resultStatus: "skipped",
|
|
100
|
+
decision: "rejected_missing_agent_identity"
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
export { auditMissingHookAgentIdentity, isChatIdBasedAgentId, isCompletionMode, isGatewayMode, parseAgentIdFromSessionKey, resolveHookAgentId, runObserveLifecycleTask };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PluginHookAgentContext } from "./sno-station-mem-hook-types.js";
|
|
2
|
+
//#region src/engine/bindings/sno-station-mem-session-state.d.ts
|
|
3
|
+
/** Normalizes SDK session identifiers into the key used by local LRU state. */
|
|
4
|
+
export declare function resolveRuntimeSessionId(ctx: PluginHookAgentContext): string;
|
|
5
|
+
/** Returns only host-provided session identity for observability correlation. */
|
|
6
|
+
export declare function resolveObserveRuntimeSessionId(ctx: PluginHookAgentContext): string | undefined;
|
|
7
|
+
export declare function resolveObserveRuntimeSessionIds(ctx: PluginHookAgentContext): string[];
|
|
8
|
+
/** Drops recall history and turn counters together when a session lifecycle ends. */
|
|
9
|
+
export declare function clearSessionState(sessionId: string, recallHistory: Map<string, Map<string, number>>, turnCounter: Map<string, number>): void;
|
|
10
|
+
//#endregion
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/engine/bindings/sno-station-mem-session-state.ts
|
|
2
|
+
/** Normalizes SDK session identifiers into the key used by local LRU state. */
|
|
3
|
+
function resolveRuntimeSessionId(ctx) {
|
|
4
|
+
return (ctx.sessionKey?.trim() ? ctx.sessionKey : ctx.sessionId) ?? "default";
|
|
5
|
+
}
|
|
6
|
+
/** Returns only host-provided session identity for observability correlation. */
|
|
7
|
+
function resolveObserveRuntimeSessionId(ctx) {
|
|
8
|
+
return resolveObserveRuntimeSessionIds(ctx)[0];
|
|
9
|
+
}
|
|
10
|
+
function resolveObserveRuntimeSessionIds(ctx) {
|
|
11
|
+
const runtimeSessionIds = [];
|
|
12
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13
|
+
for (const value of [ctx.sessionId, ctx.sessionKey]) {
|
|
14
|
+
const normalized = value?.trim();
|
|
15
|
+
if (!normalized || seen.has(normalized)) continue;
|
|
16
|
+
seen.add(normalized);
|
|
17
|
+
runtimeSessionIds.push(normalized);
|
|
18
|
+
}
|
|
19
|
+
return runtimeSessionIds;
|
|
20
|
+
}
|
|
21
|
+
/** Drops recall history and turn counters together when a session lifecycle ends. */
|
|
22
|
+
function clearSessionState(sessionId, recallHistory, turnCounter) {
|
|
23
|
+
recallHistory.delete(sessionId);
|
|
24
|
+
turnCounter.delete(sessionId);
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { clearSessionState, resolveObserveRuntimeSessionId, resolveObserveRuntimeSessionIds, resolveRuntimeSessionId };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as isTraceEnabled, i as computeConfigHash, n as appendQaTrace, o as resolveTraceDir, r as buildConfigSnapshot, s as writeConfigSnapshot, t as QaTrace } from "../../../trace-C1JxMfs-.js";
|
|
2
|
+
export { QaTrace, appendQaTrace, buildConfigSnapshot, computeConfigHash, isTraceEnabled, resolveTraceDir, writeConfigSnapshot };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { ADJACENCY_BONUS_CAP, ADJACENCY_BONUS_PER_PAIR, BONUS_TOTAL_INVARIANT, CHUNKING_VERSION, CHUNK_MAX_TOKENS, CHUNK_MIN_TOKENS, CHUNK_OVERLAP_TOKENS, CHUNK_TARGET_TOKENS, CHUNK_TOKENIZER_MODE, DEFAULT_BM25_WEIGHT, DEFAULT_VECTOR_WEIGHT, EMBEDDER_DIM, EMBEDDER_MODEL_DEFAULT, EMBEDDER_PROVIDER_DEFAULT, EVAL_CONFIG_SNAPSHOT_FILENAME, EVAL_QA_TRACES_FILENAME, HEAD_EXTRACT_MIN_CONTENT_TOKENS, HEAD_EXTRACT_OVERLAP_DROP_RATIO, HEAD_EXTRACT_TOKEN_BUDGET, INTRA_MEMORY_COSINE_THRESHOLD, LIGHTWEIGHT_COSINE_WEIGHT, LIGHTWEIGHT_FUSION_WEIGHT, LIGHTWEIGHT_RERANK_PENALTY, MMR_LAMBDA, MULTI_HIT_BONUS_CAP, MULTI_HIT_BONUS_PER_HIT } from "../../config/index.js";
|
|
2
|
+
import { createLogger, currentLogContext, privateLogReference, withLogContext } from "@snoai/utils/logger";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
5
|
+
import { appendFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
6
|
+
//#region src/engine/eval/trace.ts
|
|
7
|
+
/** @file trace.ts
|
|
8
|
+
* @purpose Emits per-QA retrieval traces and the active config snapshot for eval runs.
|
|
9
|
+
* @boundary Filesystem (JSONL/JSON write) and config constants surface.
|
|
10
|
+
* @see ../retrieval/retriever.ts, ../../config/index.ts.
|
|
11
|
+
*
|
|
12
|
+
* Minimum-viable trace emission. Off by default; enabled by the
|
|
13
|
+
* eval harness via `EVAL_TRACE_ENABLED=true` (env or build constant) and a
|
|
14
|
+
* run-dir provided via `EVAL_TRACE_DIR` (env). Phase 0 instrumentation
|
|
15
|
+
* (MRR/Recall, gold-rank, miss classification) remains explicitly waived.
|
|
16
|
+
*/
|
|
17
|
+
const log = createLogger("sno-station-mem:eval-trace");
|
|
18
|
+
/**
|
|
19
|
+
* Returns true when the eval-trace surface should write. Reads the env var at
|
|
20
|
+
* call time so harness-flipped values take effect without a re-import.
|
|
21
|
+
*/
|
|
22
|
+
function isTraceEnabled() {
|
|
23
|
+
return process.env.EVAL_TRACE_ENABLED === "true" || false;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the active trace directory. Prefers `EVAL_TRACE_DIR` env var; falls
|
|
27
|
+
* back to the explicit override argument. Returns undefined when neither is
|
|
28
|
+
* set; callers treat that as "no trace this run".
|
|
29
|
+
*/
|
|
30
|
+
function resolveTraceDir(override) {
|
|
31
|
+
const envDir = process.env.EVAL_TRACE_DIR;
|
|
32
|
+
if (envDir && envDir.length > 0) return envDir;
|
|
33
|
+
if (override && override.length > 0) return override;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Append one trace row to `qa_traces.jsonl`. No-op when tracing is disabled
|
|
37
|
+
* or no `traceDir` is resolvable. Failures are logged but do not throw;
|
|
38
|
+
* eval traces are diagnostic, not load-bearing.
|
|
39
|
+
*/
|
|
40
|
+
function appendQaTrace(trace, traceDirOverride) {
|
|
41
|
+
if (!isTraceEnabled()) return;
|
|
42
|
+
const traceDir = resolveTraceDir(traceDirOverride);
|
|
43
|
+
if (!traceDir) return;
|
|
44
|
+
try {
|
|
45
|
+
if (!existsSync(traceDir)) mkdirSync(traceDir, { recursive: true });
|
|
46
|
+
const filePath = path.join(traceDir, EVAL_QA_TRACES_FILENAME);
|
|
47
|
+
appendFileSync(filePath, `${JSON.stringify({
|
|
48
|
+
...trace,
|
|
49
|
+
context: currentLogContext()
|
|
50
|
+
})}\n`, "utf8");
|
|
51
|
+
} catch (err) {
|
|
52
|
+
log.warn("failed to append qa trace", { error: err }, {
|
|
53
|
+
event_name: "sno_station_mem.trace.failed.to.append.qa.trace",
|
|
54
|
+
file: "packages/memory/src/engine/eval/trace.ts",
|
|
55
|
+
function: "appendQaTrace",
|
|
56
|
+
site_id: "trace.appendQaTrace.164bcaddd4"
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Composes the active retrieval-pipeline tunables snapshot. Returned object
|
|
62
|
+
* has alphabetically-sorted keys so the resulting JSON is stable across
|
|
63
|
+
* repeat calls, which is required for the SHA-256 fingerprint.
|
|
64
|
+
*/
|
|
65
|
+
function buildConfigSnapshot() {
|
|
66
|
+
const raw = {
|
|
67
|
+
ADJACENCY_BONUS_CAP,
|
|
68
|
+
ADJACENCY_BONUS_PER_PAIR,
|
|
69
|
+
BONUS_TOTAL_INVARIANT,
|
|
70
|
+
CHUNK_MAX_TOKENS,
|
|
71
|
+
CHUNK_MIN_TOKENS,
|
|
72
|
+
CHUNK_OVERLAP_TOKENS,
|
|
73
|
+
CHUNK_TARGET_TOKENS,
|
|
74
|
+
CHUNK_TOKENIZER_MODE,
|
|
75
|
+
CHUNKING_VERSION,
|
|
76
|
+
DEFAULT_BM25_WEIGHT,
|
|
77
|
+
DEFAULT_HARD_MIN_SCORE: 0,
|
|
78
|
+
DEFAULT_MIN_SCORE: 0,
|
|
79
|
+
DEFAULT_TOP_K: 10,
|
|
80
|
+
DEFAULT_VECTOR_WEIGHT,
|
|
81
|
+
EMBEDDER_DIM,
|
|
82
|
+
EMBEDDER_MODEL_DEFAULT,
|
|
83
|
+
EMBEDDER_PROVIDER_DEFAULT,
|
|
84
|
+
HEAD_EXTRACT_MIN_CONTENT_TOKENS,
|
|
85
|
+
HEAD_EXTRACT_OVERLAP_DROP_RATIO,
|
|
86
|
+
HEAD_EXTRACT_TOKEN_BUDGET,
|
|
87
|
+
INTRA_MEMORY_COSINE_THRESHOLD,
|
|
88
|
+
LIGHTWEIGHT_COSINE_WEIGHT,
|
|
89
|
+
LIGHTWEIGHT_FUSION_WEIGHT,
|
|
90
|
+
LIGHTWEIGHT_RERANK_PENALTY,
|
|
91
|
+
MAX_CHUNKS_PER_PARENT: 16,
|
|
92
|
+
MMR_LAMBDA,
|
|
93
|
+
MULTI_HIT_BONUS_CAP,
|
|
94
|
+
MULTI_HIT_BONUS_PER_HIT,
|
|
95
|
+
SNIPPET_NEIGHBOR_AFTER: 2,
|
|
96
|
+
SNIPPET_NEIGHBOR_BEFORE: 2
|
|
97
|
+
};
|
|
98
|
+
const sorted = {};
|
|
99
|
+
for (const key of Object.keys(raw).sort()) sorted[key] = raw[key];
|
|
100
|
+
return sorted;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Writes `config-snapshot.json` to `traceDir` and returns the SHA-256 hex
|
|
104
|
+
* digest of its content for join with `config_hash` in `qa_traces.jsonl`.
|
|
105
|
+
* Idempotent; overwrites on each call. Throws on filesystem failure because
|
|
106
|
+
* a missing snapshot invalidates the eval run.
|
|
107
|
+
*/
|
|
108
|
+
function writeConfigSnapshot(traceDir) {
|
|
109
|
+
return withLogContext({ operation_id: currentLogContext().operation_id ?? randomUUID() }, () => {
|
|
110
|
+
const started = performance.now();
|
|
111
|
+
let hash;
|
|
112
|
+
let filePath;
|
|
113
|
+
let outcome = "failed";
|
|
114
|
+
let failure;
|
|
115
|
+
try {
|
|
116
|
+
const snapshot = buildConfigSnapshot();
|
|
117
|
+
const json = JSON.stringify(snapshot, null, 2);
|
|
118
|
+
hash = sha256Hex(json);
|
|
119
|
+
if (!existsSync(traceDir)) mkdirSync(traceDir, { recursive: true });
|
|
120
|
+
filePath = path.join(traceDir, EVAL_CONFIG_SNAPSHOT_FILENAME);
|
|
121
|
+
writeFileSync(filePath, json, "utf8");
|
|
122
|
+
outcome = "success";
|
|
123
|
+
return hash;
|
|
124
|
+
} catch (error) {
|
|
125
|
+
failure = error;
|
|
126
|
+
throw error;
|
|
127
|
+
} finally {
|
|
128
|
+
log[outcome === "failed" ? "error" : "info"]("Configuration snapshot write completed", {
|
|
129
|
+
outcome,
|
|
130
|
+
error: failure,
|
|
131
|
+
config_hash: hash ?? "unavailable",
|
|
132
|
+
artifact_reference: privateLogReference(filePath ?? traceDir),
|
|
133
|
+
duration_ms: performance.now() - started
|
|
134
|
+
}, {
|
|
135
|
+
event_name: "memory.config.snapshot.completed",
|
|
136
|
+
file: "packages/memory/src/engine/eval/trace.ts",
|
|
137
|
+
function: "writeConfigSnapshot",
|
|
138
|
+
site_id: "trace.writeConfigSnapshot.completed"
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/** Computes the SHA-256 hex digest of the current config snapshot in-memory. */
|
|
144
|
+
function computeConfigHash() {
|
|
145
|
+
return sha256Hex(JSON.stringify(buildConfigSnapshot(), null, 2));
|
|
146
|
+
}
|
|
147
|
+
function sha256Hex(input) {
|
|
148
|
+
return createHash("sha256").update(input).digest("hex");
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { appendQaTrace, buildConfigSnapshot, computeConfigHash, isTraceEnabled, resolveTraceDir, writeConfigSnapshot };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as AtomicMemoryExtractionTransports, c as ClaimedSpan, d as createAtomicResplitTransport, f as createSignedAtomicMemoryExtractionTransports, i as AtomicMemoryExtractionResult, l as DocumentName, n as AtomicExtractPersistResult, o as AtomicRetirementVerdictTransport, p as runAtomicMemoryExtraction, r as AtomicInsightDistiller, s as ClaimedFact, t as AtomicExtractPersistOptions, u as RunAtomicMemoryExtractionInput } from "../../../atomic-memory-extraction-d9EG-4ti.js";
|
|
2
|
+
export { AtomicExtractPersistOptions, AtomicExtractPersistResult, AtomicInsightDistiller, AtomicMemoryExtractionResult, AtomicMemoryExtractionTransports, AtomicRetirementVerdictTransport, ClaimedFact, ClaimedSpan, DocumentName, RunAtomicMemoryExtractionInput, createAtomicResplitTransport, createSignedAtomicMemoryExtractionTransports, runAtomicMemoryExtraction };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { i as runAtomicMemoryExtraction, n as createAtomicResplitTransport, r as createSignedAtomicMemoryExtractionTransports, t as AtomicInsightDistiller } from "../../../atomic-memory-extraction-C5rmogoY.js";
|
|
2
|
+
export { AtomicInsightDistiller, createAtomicResplitTransport, createSignedAtomicMemoryExtractionTransports, runAtomicMemoryExtraction };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as computeSectionRegistryHash, c as loadSectionDictionary, i as bProfileSectionRegistrySchema, l as normalizeTopicToSectionName, n as SectionDictionaryCache, o as createSectionDictionaryCache, r as SectionDictionaryCacheState, s as getActiveSectionRegistry, t as LoadSectionDictionaryResult, u as restoreCachedSectionDictionary } from "../../../b-profile-section-dictionary-provider-BxbksLj3.js";
|
|
2
|
+
export { LoadSectionDictionaryResult, SectionDictionaryCache, SectionDictionaryCacheState, bProfileSectionRegistrySchema, computeSectionRegistryHash, createSectionDictionaryCache, getActiveSectionRegistry, loadSectionDictionary, normalizeTopicToSectionName, restoreCachedSectionDictionary };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as loadSectionDictionary, i as getActiveSectionRegistry, n as computeSectionRegistryHash, o as normalizeTopicToSectionName, r as createSectionDictionaryCache, s as restoreCachedSectionDictionary, t as bProfileSectionRegistrySchema } from "../../../b-profile-section-dictionary-provider-BHkoNqgk.js";
|
|
2
|
+
export { bProfileSectionRegistrySchema, computeSectionRegistryHash, createSectionDictionaryCache, getActiveSectionRegistry, loadSectionDictionary, normalizeTopicToSectionName, restoreCachedSectionDictionary };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { g as ProductMode } from "../../../plugin-config-schema-C0UUbOmG.js";
|
|
2
|
+
import { g as MemoryEntry } from "../../../types-CWdhXLxr.js";
|
|
3
|
+
import { C as MemoryStore } from "../../../memory-store-base-CQ_bHlYA.js";
|
|
4
|
+
import "../../../store-C8sUTssE.js";
|
|
5
|
+
import { n as SectionDictionaryCache } from "../../../b-profile-section-dictionary-provider-BxbksLj3.js";
|
|
6
|
+
//#region src/engine/extraction/b-profile-section-rekey.d.ts
|
|
7
|
+
export declare const B_PROFILE_CANONICAL_FORM_REPAIR_VERSION = 1;
|
|
8
|
+
export interface BProfileSectionRekeyReport {
|
|
9
|
+
sourceRows: number;
|
|
10
|
+
targetKeys: number;
|
|
11
|
+
collisions: number;
|
|
12
|
+
migrated: number;
|
|
13
|
+
merged: number;
|
|
14
|
+
rejected: number;
|
|
15
|
+
missingRawPhrase: number;
|
|
16
|
+
unchanged: number;
|
|
17
|
+
finalCount: number;
|
|
18
|
+
separatorSplitGroups: number;
|
|
19
|
+
domainPrefixSplitGroups: number;
|
|
20
|
+
crossPathSplitGroups: number;
|
|
21
|
+
}
|
|
22
|
+
export interface BProfileSectionRekeyResult {
|
|
23
|
+
dryRun: BProfileSectionRekeyReport;
|
|
24
|
+
applied: BProfileSectionRekeyReport;
|
|
25
|
+
skippedByVersion: boolean;
|
|
26
|
+
}
|
|
27
|
+
type PlannedAction = {
|
|
28
|
+
kind: "migrate" | "merge";
|
|
29
|
+
source: MemoryEntry;
|
|
30
|
+
targetFactKey: string;
|
|
31
|
+
newSection: string;
|
|
32
|
+
};
|
|
33
|
+
type RekeyPlan = {
|
|
34
|
+
report: BProfileSectionRekeyReport;
|
|
35
|
+
actions: PlannedAction[];
|
|
36
|
+
projectIdFilter: string[] | undefined;
|
|
37
|
+
};
|
|
38
|
+
export declare function runBProfileSectionRekey(args: {
|
|
39
|
+
store: MemoryStore;
|
|
40
|
+
cache: SectionDictionaryCache;
|
|
41
|
+
projectIdFilter?: string[];
|
|
42
|
+
}): Promise<BProfileSectionRekeyResult>;
|
|
43
|
+
export declare function scheduleBProfileSectionRekey(args: {
|
|
44
|
+
mode: ProductMode;
|
|
45
|
+
store: MemoryStore;
|
|
46
|
+
cache: SectionDictionaryCache;
|
|
47
|
+
}): void;
|
|
48
|
+
export declare function applyRekeyPlan(store: MemoryStore, plan: RekeyPlan): Promise<BProfileSectionRekeyReport>;
|
|
49
|
+
//#endregion
|