@remnic/core 9.69.32 → 9.69.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +13 -11
- package/dist/access-admin-ops-surface.js +64 -59
- package/dist/access-authorization-probe.d.ts +13 -11
- package/dist/access-authorization-probe.js +65 -60
- package/dist/access-boundary.d.ts +13 -11
- package/dist/access-boundary.js +64 -59
- package/dist/access-cli.js +140 -136
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +2 -1
- package/dist/access-coding-context-resolution.js +3 -3
- package/dist/access-extraction-force-flush.d.ts +13 -11
- package/dist/access-extraction-force-flush.js +64 -59
- package/dist/access-health-types.d.ts +2 -1
- package/dist/access-http-briefing.d.ts +13 -11
- package/dist/access-http-briefing.js +65 -60
- package/dist/access-http-lcm-compaction.d.ts +13 -11
- package/dist/access-http-lifecycle-flush.d.ts +13 -11
- package/dist/access-http-offline-stream.d.ts +13 -11
- package/dist/access-http-query.d.ts +3 -2
- package/dist/access-http-query.js +66 -61
- package/dist/access-http.d.ts +14 -12
- package/dist/access-http.js +86 -82
- package/dist/access-identity-continuity-surface.d.ts +11 -9
- package/dist/access-identity-continuity-surface.js +64 -59
- package/dist/access-lcm-surface.d.ts +13 -11
- package/dist/access-lcm-surface.js +64 -59
- package/dist/access-mcp.d.ts +13 -11
- package/dist/access-mcp.js +73 -69
- package/dist/access-memory-search-fanout.d.ts +3 -2
- package/dist/{access-namespace-preflight-BsvmyENS.d.ts → access-namespace-preflight-kXG8MvYx.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +4 -3
- package/dist/access-namespace-preflight.js +64 -59
- package/dist/access-observe-transcript.d.ts +11 -9
- package/dist/access-observe-transcript.js +3 -3
- package/dist/access-observe-write-surface.d.ts +15 -13
- package/dist/access-observe-write-surface.js +64 -59
- package/dist/access-offline-manifest.d.ts +47 -11
- package/dist/access-offline-manifest.js +18 -16
- package/dist/access-operations-batch.js +67 -63
- package/dist/access-operations.d.ts +18 -16
- package/dist/access-operations.js +72 -68
- package/dist/access-recall-concurrency.d.ts +13 -11
- package/dist/access-recall-concurrency.js +64 -59
- package/dist/access-recall-response.d.ts +13 -11
- package/dist/access-recall-response.js +64 -59
- package/dist/access-recall-surface.d.ts +13 -11
- package/dist/access-recall-surface.js +64 -59
- package/dist/access-schema.d.ts +138 -96
- package/dist/access-schema.js +15 -1
- package/dist/{access-service-CCpOuS46.d.ts → access-service-WUm2LnXZ.d.ts} +110 -108
- package/dist/access-service-helpers.d.ts +13 -11
- package/dist/access-service.d.ts +13 -11
- package/dist/access-service.js +64 -59
- package/dist/access-surface-catalog.d.ts +13 -11
- package/dist/access-surface-catalog.js +66 -61
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +4 -3
- package/dist/action-confidence.d.ts +2 -1
- package/dist/active-memory-bridge.d.ts +2 -1
- package/dist/active-memory-bridge.js +2 -2
- package/dist/active-recall.d.ts +2 -1
- package/dist/active-recall.js +14 -12
- package/dist/active-recall.js.map +1 -1
- package/dist/activity/digest.d.ts +56 -0
- package/dist/activity/digest.js +32 -0
- package/dist/adapters/index.d.ts +46 -1
- package/dist/adapters/index.js +13 -9
- package/dist/adapters/registry.js +3 -3
- package/dist/ambient-provenance.d.ts +2 -1
- package/dist/artifact-search.d.ts +2 -1
- package/dist/{auto-sync-NSHLUAQI.js → auto-sync-4YFATLFQ.js} +10 -9
- package/dist/{auto-sync-NSHLUAQI.js.map → auto-sync-4YFATLFQ.js.map} +1 -1
- package/dist/behavior-learner.d.ts +2 -1
- package/dist/behavior-signals.d.ts +2 -1
- package/dist/bootstrap.d.ts +11 -9
- package/dist/briefing-window.d.ts +3 -2
- package/dist/briefing.d.ts +3 -2
- package/dist/briefing.js +28 -27
- package/dist/buffer-surprise-report.d.ts +2 -1
- package/dist/buffer-turn-helpers.d.ts +2 -1
- package/dist/buffer.d.ts +3 -2
- package/dist/buffer.js +12 -11
- package/dist/bulk-import/index.d.ts +4 -3
- package/dist/calibration.d.ts +2 -1
- package/dist/calibration.js +3 -2
- package/dist/calibration.js.map +1 -1
- package/dist/capabilities.d.ts +2 -1
- package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-ZCXUPLNJ.js} +2 -2
- package/dist/{catalog-CDZLyiXL.d.ts → catalog-BaCx29iv.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +2 -1
- package/dist/causal-consolidation.d.ts +2 -1
- package/dist/causal-consolidation.js +29 -28
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-trajectory-graph.d.ts +2 -1
- package/dist/{chunk-CDKHKZL5.js → chunk-2524MOWK.js} +2 -2
- package/dist/{chunk-HVAEXYPL.js → chunk-255PC37A.js} +47 -25
- package/dist/chunk-255PC37A.js.map +1 -0
- package/dist/{chunk-IY2FVXM6.js → chunk-2AU4D4HQ.js} +3 -3
- package/dist/{chunk-QDY6KYTN.js → chunk-2JCA2PQT.js} +3 -3
- package/dist/{chunk-RSVEP77Y.js → chunk-2UZ5ZH6W.js} +3 -3
- package/dist/{chunk-XQ2Q43XD.js → chunk-326KUXIR.js} +15 -648
- package/dist/chunk-326KUXIR.js.map +1 -0
- package/dist/{chunk-NWWXSJX5.js → chunk-34QW2LK2.js} +2 -2
- package/dist/{chunk-S7DPKM5W.js → chunk-353C5UNV.js} +1 -1
- package/dist/{chunk-GQOMZ3MK.js → chunk-36UBSLFN.js} +2 -2
- package/dist/{chunk-DBQWVT2H.js → chunk-3CBI2ZSA.js} +2 -2
- package/dist/{chunk-NZXEK3UF.js → chunk-3Q3N35W7.js} +2 -2
- package/dist/{chunk-YYGZJPOK.js → chunk-42DJ235G.js} +2 -2
- package/dist/{chunk-7VJXIDOC.js → chunk-4JVQRFZD.js} +9 -9
- package/dist/{chunk-22FVR2KE.js → chunk-4MIS4CQW.js} +6 -2
- package/dist/chunk-4MIS4CQW.js.map +1 -0
- package/dist/{chunk-WHBVXTUI.js → chunk-4PB2MBY6.js} +9 -9
- package/dist/{chunk-TEYN7ZYF.js → chunk-4WCNPQQ5.js} +4 -4
- package/dist/{chunk-Z4PCVRTN.js → chunk-5A7ZUOBA.js} +217 -396
- package/dist/chunk-5A7ZUOBA.js.map +1 -0
- package/dist/chunk-5HYUUFMQ.js +1280 -0
- package/dist/chunk-5HYUUFMQ.js.map +1 -0
- package/dist/{chunk-RBGREYVJ.js → chunk-5QBDLMGG.js} +2 -2
- package/dist/{chunk-RKBLRTNT.js → chunk-5SDSVX7N.js} +2 -2
- package/dist/{chunk-LPECRQO4.js → chunk-5THU7NFP.js} +3 -3
- package/dist/{chunk-N7RWREIQ.js → chunk-65RENJGB.js} +6 -1
- package/dist/chunk-65RENJGB.js.map +1 -0
- package/dist/{chunk-LWA7MDVO.js → chunk-6CCRSQWT.js} +2 -2
- package/dist/{chunk-TIT2C6WX.js → chunk-6XYC7NM4.js} +2 -2
- package/dist/{chunk-FHQSPTPZ.js → chunk-6YAIN5XJ.js} +2 -2
- package/dist/{chunk-PV36INNL.js → chunk-757NP436.js} +3 -3
- package/dist/{chunk-WJBZMNNS.js → chunk-7CAY3YKP.js} +742 -29
- package/dist/chunk-7CAY3YKP.js.map +1 -0
- package/dist/{chunk-6H5JYDOM.js → chunk-7J2CGXG3.js} +2 -2
- package/dist/{chunk-FBMYGNOC.js → chunk-A2YQL2FF.js} +6 -6
- package/dist/chunk-A5UQ52YQ.js +211 -0
- package/dist/chunk-A5UQ52YQ.js.map +1 -0
- package/dist/{chunk-X2NFFBTO.js → chunk-A7GQBJP5.js} +4 -4
- package/dist/{chunk-MPYD657E.js → chunk-A7WOWDZK.js} +2 -2
- package/dist/{chunk-C4OTC6WY.js → chunk-AIKTQVV3.js} +3 -3
- package/dist/{chunk-CGC5UQCF.js → chunk-AKE4GGQ3.js} +2 -2
- package/dist/{chunk-VP67GZ7T.js → chunk-APFKZVJS.js} +2 -2
- package/dist/{chunk-M75RYSHS.js → chunk-AQIRQUCP.js} +2 -2
- package/dist/{chunk-S7T2TY65.js → chunk-AXFR2NQ5.js} +3 -3
- package/dist/{chunk-PSPABFN2.js → chunk-BD7JTBYP.js} +4 -4
- package/dist/{chunk-FCSZ4K2X.js → chunk-BJJWRWER.js} +3 -3
- package/dist/{chunk-JT3EB7ZL.js → chunk-BNGHPYZU.js} +5 -5
- package/dist/chunk-BRZWWUCJ.js +13 -0
- package/dist/{chunk-FYDW33ZB.js.map → chunk-BRZWWUCJ.js.map} +1 -1
- package/dist/{chunk-MFJBANPX.js → chunk-C2BFTYD7.js} +2 -2
- package/dist/{chunk-3JVLGJCY.js → chunk-C6KRO3SU.js} +2 -2
- package/dist/{chunk-Q3O3VKRB.js → chunk-CRUFVJOX.js} +16 -15
- package/dist/chunk-CRUFVJOX.js.map +1 -0
- package/dist/{chunk-AOCP6JA7.js → chunk-D3IZCN5P.js} +4 -4
- package/dist/{chunk-ROKKIMON.js → chunk-EJIEQOPB.js} +5 -5
- package/dist/{chunk-ET356KSB.js → chunk-F4TWWUMP.js} +2 -2
- package/dist/{chunk-CLLPJ6QT.js → chunk-FQXJAC3T.js} +2 -2
- package/dist/{chunk-DD5JFCWM.js → chunk-GCBIXUPT.js} +2 -2
- package/dist/{chunk-ROGRI25A.js → chunk-I3H5LFOI.js} +2 -2
- package/dist/{chunk-S65WXHNK.js → chunk-IFFLUCCU.js} +2 -2
- package/dist/{chunk-MYMNC6O5.js → chunk-ISYZ5DUI.js} +64 -60
- package/dist/{chunk-MYMNC6O5.js.map → chunk-ISYZ5DUI.js.map} +1 -1
- package/dist/{chunk-D5LORF7A.js → chunk-JZDH2ZZK.js} +3 -3
- package/dist/{chunk-2GPE5UCR.js → chunk-K6IPSW5B.js} +2 -2
- package/dist/{chunk-HG6HXVHQ.js → chunk-KDJHLOZP.js} +10 -10
- package/dist/{chunk-I27RSQRR.js → chunk-KYGOQV37.js} +2 -2
- package/dist/{chunk-JEIXTYVG.js → chunk-L2QLDZJC.js} +46 -17
- package/dist/chunk-L2QLDZJC.js.map +1 -0
- package/dist/{chunk-A7XEPMQ6.js → chunk-LAVJC57X.js} +3 -3
- package/dist/chunk-LAVJC57X.js.map +1 -0
- package/dist/{chunk-VZWXFXLX.js → chunk-LMCD5W5B.js} +2 -2
- package/dist/{chunk-3QQTXYZ6.js → chunk-LSLCFCCQ.js} +2 -1
- package/dist/chunk-LSLCFCCQ.js.map +1 -0
- package/dist/{chunk-MKD3OMPS.js → chunk-M3MYMWXG.js} +2 -2
- package/dist/{chunk-DITMGZOL.js → chunk-MMG5K6XJ.js} +2 -2
- package/dist/{chunk-VGXM5B4H.js → chunk-MNIPH6LD.js} +2 -2
- package/dist/{chunk-CZYYJZB6.js → chunk-ND2O2PVN.js} +1014 -1318
- package/dist/chunk-ND2O2PVN.js.map +1 -0
- package/dist/chunk-NPNSKE76.js +220 -0
- package/dist/chunk-NPNSKE76.js.map +1 -0
- package/dist/{chunk-MKWKYHXJ.js → chunk-OB3XMWX5.js} +4 -4
- package/dist/{chunk-XU6OEECT.js → chunk-OQQXGYMX.js} +3 -3
- package/dist/{chunk-GTWHVXPA.js → chunk-OZUXKUPD.js} +6 -4
- package/dist/{chunk-GTWHVXPA.js.map → chunk-OZUXKUPD.js.map} +1 -1
- package/dist/chunk-PCEYGOSL.js +66 -0
- package/dist/chunk-PCEYGOSL.js.map +1 -0
- package/dist/{chunk-47DEYNMR.js → chunk-PEXW2JCK.js} +2 -2
- package/dist/{chunk-EEOUMG3J.js → chunk-PWPIERBM.js} +38 -6
- package/dist/chunk-PWPIERBM.js.map +1 -0
- package/dist/chunk-Q4AUIFUA.js +111 -0
- package/dist/chunk-Q4AUIFUA.js.map +1 -0
- package/dist/{chunk-SO7SV523.js → chunk-Q6LCCIZN.js} +1 -1
- package/dist/chunk-Q6LCCIZN.js.map +1 -0
- package/dist/{chunk-42SDNZCU.js → chunk-QF4J3KMV.js} +19 -19
- package/dist/{chunk-SB6PSOP7.js → chunk-QLJ6762U.js} +2 -2
- package/dist/{chunk-XOVKXJEP.js → chunk-R3TLVTWW.js} +3 -3
- package/dist/{chunk-PHNAB54Q.js → chunk-RQO3J4MR.js} +2 -2
- package/dist/{chunk-5N53UBH2.js → chunk-RR7G2X7C.js} +5 -5
- package/dist/{chunk-DCJ3YFIC.js → chunk-S2ULTQZR.js} +2 -2
- package/dist/{chunk-GY5WZBA6.js → chunk-S76KRJDG.js} +3 -3
- package/dist/{chunk-H272ZPQ3.js → chunk-SHEHQBCG.js} +124 -23
- package/dist/chunk-SHEHQBCG.js.map +1 -0
- package/dist/{chunk-EEC4PCG5.js → chunk-SZDLX763.js} +2 -2
- package/dist/{chunk-SQJ3SDIW.js → chunk-SZWEDG3H.js} +13 -7
- package/dist/chunk-SZWEDG3H.js.map +1 -0
- package/dist/{chunk-E2ZHGBAK.js → chunk-T2JSUEH6.js} +2 -2
- package/dist/{chunk-QMGXMJ2O.js → chunk-T2YFZ27G.js} +9 -9
- package/dist/{chunk-LEPOP46W.js → chunk-TFA6HPOA.js} +4 -4
- package/dist/{chunk-BA6WOZOT.js → chunk-TK4FHQRN.js} +4 -4
- package/dist/chunk-TLHNF6GA.js +647 -0
- package/dist/chunk-TLHNF6GA.js.map +1 -0
- package/dist/{chunk-ZNJSBIP4.js → chunk-TNSCIPBQ.js} +4 -4
- package/dist/{chunk-YUMDFDUA.js → chunk-TWYTGIBR.js} +4 -4
- package/dist/{chunk-FDLDOEO6.js → chunk-UBG4GAEP.js} +51 -6
- package/dist/chunk-UBG4GAEP.js.map +1 -0
- package/dist/{chunk-EZZV7OQL.js → chunk-UEZKN6VR.js} +2 -2
- package/dist/{chunk-HY55QQD7.js → chunk-UJX4I26O.js} +2 -2
- package/dist/{chunk-BLUYQFRH.js → chunk-VELCIWJZ.js} +15 -11
- package/dist/chunk-VELCIWJZ.js.map +1 -0
- package/dist/{chunk-CBCNKKZD.js → chunk-VIZR45AN.js} +2 -2
- package/dist/{chunk-ZG74PWRW.js → chunk-VZAKYDMJ.js} +2 -2
- package/dist/{chunk-ITPS5DDH.js → chunk-W5BLTZZJ.js} +8 -8
- package/dist/chunk-W6IJMWTZ.js +72 -0
- package/dist/chunk-W6IJMWTZ.js.map +1 -0
- package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
- package/dist/{chunk-YFLLGRXO.js → chunk-X2QPKLPL.js} +2 -2
- package/dist/{chunk-FGGYSN4P.js → chunk-X424T5JQ.js} +2 -2
- package/dist/{chunk-NAXDPKVM.js → chunk-XPJNT6PI.js} +4 -4
- package/dist/{chunk-2JVJ7UHC.js → chunk-XQU3CPF2.js} +4 -2
- package/dist/chunk-XQU3CPF2.js.map +1 -0
- package/dist/chunk-XW2T4QAW.js +1 -0
- package/dist/{chunk-VED2YHUD.js → chunk-YEDVOYL2.js} +2 -2
- package/dist/{chunk-TLPZ6MKZ.js → chunk-YEN4TREG.js} +541 -5
- package/dist/chunk-YEN4TREG.js.map +1 -0
- package/dist/{chunk-RC5DXXWC.js → chunk-YM7YN37H.js} +2 -2
- package/dist/{chunk-VLXBE57O.js → chunk-YVGXH72Y.js} +2 -2
- package/dist/{chunk-YQAXP5AC.js → chunk-YXLUTALO.js} +5 -5
- package/dist/{chunk-565C6ZFO.js → chunk-Z7YDVHDI.js} +2 -2
- package/dist/{chunk-O75CRYGF.js → chunk-ZEFVK7XC.js} +1 -1
- package/dist/chunk-ZEFVK7XC.js.map +1 -0
- package/dist/{chunk-XUE46UYW.js → chunk-ZLN7AROH.js} +6 -6
- package/dist/{chunk-GVG3JYBI.js → chunk-ZMKYCFJ7.js} +640 -199
- package/dist/chunk-ZMKYCFJ7.js.map +1 -0
- package/dist/{chunk-HK32G473.js → chunk-ZWEZXVYH.js} +2 -2
- package/dist/{cli-NEEdq5Rt.d.ts → cli-5mTYh1Tn.d.ts} +5 -5
- package/dist/cli-fallback.d.ts +11 -4
- package/dist/cli-fallback.js +5 -1
- package/dist/cli.d.ts +15 -13
- package/dist/cli.js +110 -106
- package/dist/coding/export-okf-codegraph.d.ts +2 -1
- package/dist/coding/export-okf-codegraph.js +34 -32
- package/dist/coding/export-okf-codegraph.js.map +1 -1
- package/dist/coding/pre-action-gate.d.ts +2 -1
- package/dist/compat/checks.js +2 -2
- package/dist/compat/codex-cli-fallback.d.ts +1 -1
- package/dist/compat/codex-cli-fallback.js +5 -1
- package/dist/compat/codex-cli-fallback.js.map +1 -1
- package/dist/compounding/engine.d.ts +3 -2
- package/dist/compounding/engine.js +29 -28
- package/dist/compounding/preference-consolidator.d.ts +2 -1
- package/dist/compression-optimizer.d.ts +2 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.js +14 -12
- package/dist/connectors/codex-materialize-runner.d.ts +2 -1
- package/dist/connectors/codex-materialize-runner.js +28 -27
- package/dist/connectors/codex-materialize.d.ts +2 -1
- package/dist/connectors/index.d.ts +2 -1
- package/dist/connectors/index.js +30 -29
- package/dist/consolidation-provenance-check.d.ts +3 -2
- package/dist/consolidation-undo.d.ts +3 -2
- package/dist/contradiction/index.d.ts +4 -3
- package/dist/contradiction/index.js +5 -5
- package/dist/{contradiction-scan-NOYMFG66.js → contradiction-scan-GVD4JJ7B.js} +3 -3
- package/dist/converge-config.d.ts +2 -1
- package/dist/convergence-refresh.d.ts +3 -2
- package/dist/convergence-refresh.js +30 -29
- package/dist/conversation-index/backend.d.ts +2 -1
- package/dist/conversation-index/backend.js +3 -3
- package/dist/conversation-index/chunker.d.ts +2 -1
- package/dist/conversation-index/faiss-adapter.d.ts +2 -1
- package/dist/conversation-index/faiss-adapter.js +2 -2
- package/dist/conversation-index/indexer.d.ts +2 -1
- package/dist/conversation-index/search.d.ts +2 -1
- package/dist/corpus-watermark.d.ts +2 -1
- package/dist/corpus-watermark.js +31 -30
- package/dist/cross-lingual-recall.d.ts +2 -1
- package/dist/day-summary.d.ts +2 -1
- package/dist/deep-recall-http-glue.d.ts +13 -11
- package/dist/deep-recall-http-glue.js +12 -2
- package/dist/deep-recall-mcp-tools.d.ts +13 -11
- package/dist/deep-recall-policy-llm.d.ts +2 -1
- package/dist/deep-recall-policy-llm.js +4 -3
- package/dist/deep-recall-seeds.d.ts +2 -1
- package/dist/delinearize.d.ts +2 -1
- package/dist/dependency-propagation-config.d.ts +2 -1
- package/dist/{dependency-propagation-delivery-CQPCu0o5.d.ts → dependency-propagation-delivery-CDQCxNll.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +2 -1
- package/dist/direct-answer.d.ts +2 -1
- package/dist/embedding-fallback.d.ts +2 -1
- package/dist/enrichment/index.d.ts +2 -1
- package/dist/entity-origin-fields.d.ts +2 -1
- package/dist/entity-retrieval.d.ts +3 -2
- package/dist/entity-retrieval.js +28 -27
- package/dist/entity-schema.d.ts +2 -1
- package/dist/episodic-context.d.ts +2 -1
- package/dist/eval-trajectory-contracts.d.ts +2 -1
- package/dist/eval-trajectory-store.d.ts +2 -1
- package/dist/eval-trajectory.d.ts +2 -1
- package/dist/explicit-capture.d.ts +11 -9
- package/dist/explicit-capture.js +6 -6
- package/dist/external-wiki-access.d.ts +13 -11
- package/dist/external-wiki-access.js +65 -60
- package/dist/external-wiki-collection-registration.d.ts +2 -1
- package/dist/external-wiki-collection.d.ts +2 -1
- package/dist/external-wiki-mcp-tools.d.ts +13 -11
- package/dist/extraction-error-classification.d.ts +2 -1
- package/dist/extraction-faithfulness.d.ts +2 -1
- package/dist/extraction-faithfulness.js +4 -3
- package/dist/extraction-judge-telemetry.d.ts +2 -1
- package/dist/extraction-judge-training.d.ts +2 -1
- package/dist/extraction-judge.d.ts +2 -1
- package/dist/extraction-judge.js +5 -4
- package/dist/extraction-liveness.d.ts +2 -1
- package/dist/extraction-normalization.d.ts +2 -1
- package/dist/extraction-prompt.d.ts +2 -1
- package/dist/extraction-source-grounding-rules.d.ts +2 -1
- package/dist/extraction-source-grounding.d.ts +2 -1
- package/dist/extraction.d.ts +2 -1
- package/dist/extraction.js +40 -38
- package/dist/fallback-llm.d.ts +2 -1
- package/dist/fallback-llm.js +3 -2
- package/dist/{first-start-migration-RC345GPL.js → first-start-migration-L3UFX5CU.js} +3 -3
- package/dist/generic-recall-paths-CqAZyXKX.d.ts +23 -0
- package/dist/graph-append-error.d.ts +2 -1
- package/dist/graph-dashboard-diff.d.ts +2 -1
- package/dist/graph-dashboard-key.d.ts +2 -1
- package/dist/graph-dashboard-parser.d.ts +2 -1
- package/dist/graph-edge-reinforcement.d.ts +2 -1
- package/dist/graph-jsonl.d.ts +2 -1
- package/dist/graph-path-reconstruction.d.ts +2 -1
- package/dist/graph-path-scoring.d.ts +2 -1
- package/dist/graph-snapshot.d.ts +2 -1
- package/dist/graph.d.ts +2 -1
- package/dist/harmonic-retrieval.js +2 -2
- package/dist/importance.d.ts +2 -1
- package/dist/importers/index.d.ts +2 -1
- package/dist/importers/test-utils.d.ts +2 -1
- package/dist/in-flight-reads.d.ts +2 -1
- package/dist/{index-C9VXenR8.d.ts → index-BNluTxBp.d.ts} +2 -2
- package/dist/index.d.ts +963 -945
- package/dist/index.js +323 -221
- package/dist/intent.d.ts +2 -1
- package/dist/lcm/engine.d.ts +2 -1
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.d.ts +2 -1
- package/dist/lcm/index.js +7 -7
- package/dist/lcm/tools.d.ts +2 -1
- package/dist/lifecycle.d.ts +2 -1
- package/dist/live-connectors-runner.d.ts +2 -1
- package/dist/local-llm.d.ts +4 -1
- package/dist/local-llm.js +2 -2
- package/dist/local-model-endpoint.d.ts +2 -1
- package/dist/location/index.d.ts +4 -3
- package/dist/location/index.js +33 -32
- package/dist/maintenance/memory-governance.d.ts +2 -1
- package/dist/maintenance/memory-governance.js +28 -27
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +28 -27
- package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-projection.js +29 -28
- package/dist/{maintenance-C14sorKa.d.ts → maintenance-8hmWOMY_.d.ts} +378 -4
- package/dist/mcp-memory-inspector-app.d.ts +13 -11
- package/dist/memory-action-policy.d.ts +2 -1
- package/dist/memory-cache.d.ts +2 -1
- package/dist/memory-controller.d.ts +2 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
- package/dist/memory-projection-store.d.ts +2 -1
- package/dist/memory-provenance.d.ts +2 -1
- package/dist/memory-snapshot.d.ts +2 -1
- package/dist/memory-subject-cli.d.ts +13 -11
- package/dist/memory-subject.d.ts +13 -11
- package/dist/memory-worth-outcomes.d.ts +3 -2
- package/dist/migrate/from-engram.js +2 -2
- package/dist/models-json.d.ts +2 -1
- package/dist/namespaces/migrate.d.ts +4 -3
- package/dist/namespaces/migrate.js +29 -28
- package/dist/namespaces/principal.d.ts +2 -1
- package/dist/namespaces/search.d.ts +2 -1
- package/dist/namespaces/search.js +11 -11
- package/dist/namespaces/storage.d.ts +4 -3
- package/dist/namespaces/storage.js +28 -27
- package/dist/native-knowledge.d.ts +2 -1
- package/dist/network/tailscale.js +2 -2
- package/dist/offline-sync-impression-drain.d.ts +2 -1
- package/dist/offline-sync-impression-drain.js +6 -6
- package/dist/operator-doctor-corpus.d.ts +2 -1
- package/dist/operator-doctor-corpus.js +32 -31
- package/dist/operator-doctor-replica.d.ts +2 -1
- package/dist/operator-toolkit.d.ts +4 -3
- package/dist/operator-toolkit.js +48 -46
- package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
- package/dist/orchestration/maintenance.d.ts +5 -4
- package/dist/orchestration/maintenance.js +47 -42
- package/dist/{orchestrator-kqSzGv7e.d.ts → orchestrator-BUd_3Q86.d.ts} +17 -29
- package/dist/orchestrator.d.ts +11 -9
- package/dist/orchestrator.js +144 -138
- package/dist/patterns-cli.d.ts +2 -1
- package/dist/{pipeline-DRUwHb1X.d.ts → pipeline-Dv1Bv0ma.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +2 -1
- package/dist/proactive-contention.d.ts +2 -1
- package/dist/provenance.d.ts +2 -1
- package/dist/{public-http-CW3l0g3P.d.ts → public-http-L-IymRBN.d.ts} +1 -1
- package/dist/{qmd-BVWlg1YS.d.ts → qmd-Mj508lHA.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +3 -2
- package/dist/qmd-recall-cache.d.ts +2 -1
- package/dist/qmd.d.ts +3 -2
- package/dist/qmd.js +2 -2
- package/dist/recall-concurrency-config.d.ts +2 -1
- package/dist/recall-disclosure-escalation.d.ts +2 -1
- package/dist/recall-explain-renderer.d.ts +2 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-memory-map.d.ts +2 -1
- package/dist/recall-navigate-access.d.ts +2 -1
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.d.ts +2 -1
- package/dist/recall-navigate-disclosure.js +1 -1
- package/dist/recall-navigate.d.ts +2 -1
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-planner-llm.d.ts +2 -1
- package/dist/recall-planner-llm.js +3 -2
- package/dist/recall-planner-llm.js.map +1 -1
- package/dist/recall-state-view-admission.d.ts +56 -0
- package/dist/recall-state-view-admission.js +39 -0
- package/dist/recall-state-view-admission.js.map +1 -0
- package/dist/recall-state-view-inject.js +2 -2
- package/dist/recall-state-view-render.js +2 -2
- package/dist/recall-state-view-widen.d.ts +18 -1
- package/dist/recall-state-view-widen.js +2 -2
- package/dist/recall-state-view-wire.d.ts +1 -1
- package/dist/recall-state-view-wire.js +3 -3
- package/dist/recall-state-view.d.ts +1 -0
- package/dist/recall-state-view.js +1 -1
- package/dist/recall-state.d.ts +2 -1
- package/dist/recall-tag-filter.d.ts +2 -1
- package/dist/recall-timings.d.ts +2 -1
- package/dist/recall-xray-cli.d.ts +2 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +2 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +9 -1
- package/dist/recall-xray.js +2 -2
- package/dist/reconcile/cursor.d.ts +11 -2
- package/dist/reconcile/cursor.js +6 -4
- package/dist/reconcile/cursor.js.map +1 -1
- package/dist/reconcile/manifest.d.ts +37 -2
- package/dist/reconcile/manifest.js +15 -5
- package/dist/reconcile/plan.d.ts +2 -1
- package/dist/replay/normalizers/chatgpt.d.ts +2 -1
- package/dist/replay/normalizers/claude.d.ts +2 -1
- package/dist/replay/normalizers/openclaw.d.ts +2 -1
- package/dist/replay/normalizers/shared.d.ts +2 -1
- package/dist/replay/runner.d.ts +2 -1
- package/dist/replay/types.d.ts +2 -1
- package/dist/replica-divergence.d.ts +2 -1
- package/dist/replica-peers-config.d.ts +2 -1
- package/dist/{resolution-VKATP2HT.js → resolution-OHJZG45O.js} +6 -6
- package/dist/resolution-OHJZG45O.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +2 -1
- package/dist/resume-bundles.js +15 -13
- package/dist/retrieval-agents.d.ts +3 -2
- package/dist/retrieval-tiers.d.ts +2 -1
- package/dist/routing/engine.d.ts +2 -1
- package/dist/routing/store.d.ts +2 -1
- package/dist/runtime/child-process.d.ts +1 -1
- package/dist/runtime/child-process.js +1 -1
- package/dist/salvage-envelope.d.ts +2 -1
- package/dist/salvage-envelope.js +2 -2
- package/dist/schemas.d.ts +176 -176
- package/dist/{scope-profiles-Vl00B1KU.d.ts → scope-profiles-B6BGVbxm.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +2 -1
- package/dist/search/factory.d.ts +2 -1
- package/dist/search/factory.js +10 -10
- package/dist/search/index.d.ts +2 -1
- package/dist/search/index.js +14 -14
- package/dist/search/lancedb-backend.d.ts +2 -1
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +2 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +2 -1
- package/dist/search/orama-backend.d.ts +2 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +2 -1
- package/dist/search/remote-backend.d.ts +2 -1
- package/dist/{semantic-consolidation-BC9-GFuT.d.ts → semantic-consolidation-J-598F5M.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +3 -2
- package/dist/semantic-consolidation.js +29 -28
- package/dist/semantic-rule-promotion.js +28 -27
- package/dist/semantic-rule-verifier.d.ts +2 -1
- package/dist/semantic-rule-verifier.js +28 -27
- package/dist/{service-BOy6dHfc.d.ts → service-ZQkJ52cz.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +2 -1
- package/dist/session-observer-state.d.ts +2 -1
- package/dist/shared-context/manager.d.ts +8 -7
- package/dist/signal.d.ts +2 -1
- package/dist/source-agent-qualifier.d.ts +2 -1
- package/dist/source-agent-qualifier.js +38 -36
- package/dist/standup/build.js +29 -28
- package/dist/{storage-BLJRnFi6.d.ts → storage-CU_hZUgP.d.ts} +67 -6
- package/dist/storage.d.ts +4 -3
- package/dist/storage.js +27 -26
- package/dist/subject-config.d.ts +2 -1
- package/dist/subject-config.js +2 -2
- package/dist/summarizer.d.ts +2 -1
- package/dist/summarizer.js +5 -5
- package/dist/summary-snapshot.d.ts +2 -1
- package/dist/support-passport/index.d.ts +49 -15
- package/dist/support-passport/index.js +72 -63
- package/dist/temporal-supersession.d.ts +3 -2
- package/dist/temporal-timeline-recall.d.ts +2 -1
- package/dist/temporal-validity.d.ts +2 -1
- package/dist/threading.d.ts +2 -1
- package/dist/tier-migration.d.ts +3 -2
- package/dist/tier-routing.d.ts +2 -1
- package/dist/tier-routing.js +2 -2
- package/dist/{tier-stats-KA6OZX2C.js → tier-stats-VK5PCO2L.js} +3 -3
- package/dist/topics.d.ts +2 -1
- package/dist/transcript.d.ts +2 -1
- package/dist/transfer/capsule-import.js +1 -1
- package/dist/transfer/export-okf.d.ts +2 -1
- package/dist/transfer/export-okf.js +29 -28
- package/dist/transfer/types.d.ts +102 -102
- package/dist/trust-score-stage.d.ts +2 -1
- package/dist/trust-score.d.ts +2 -1
- package/dist/{types-YY-eKKU7.d.ts → types-BGxTvLBO.d.ts} +58 -13
- package/dist/types.d.ts +2 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +2 -1
- package/dist/verified-recall.js +28 -27
- package/dist/who-knows-cli.d.ts +13 -11
- package/dist/who-knows-cli.js +29 -28
- package/dist/who-knows.d.ts +13 -11
- package/dist/who-knows.js +28 -27
- package/dist/write-envelope.d.ts +4 -2
- package/dist/write-envelope.js +3 -1
- package/package.json +12 -2
- package/src/access-category-alias.test.ts +216 -0
- package/src/access-mcp.test.ts +73 -0
- package/src/access-mcp.ts +6 -6
- package/src/access-observe-write-surface.ts +19 -4
- package/src/access-offline-manifest.ts +297 -16
- package/src/access-recall-surface.ts +5 -5
- package/src/access-schema.ts +76 -7
- package/src/access-service.ts +11 -2
- package/src/activity/config.test.ts +124 -1
- package/src/activity/config.ts +150 -18
- package/src/activity/index.ts +3 -0
- package/src/activity/journal-extract-storage.test.ts +129 -0
- package/src/activity/journal-extract.test.ts +314 -0
- package/src/activity/journal-extract.ts +247 -0
- package/src/activity/journal-heading.test.ts +24 -1
- package/src/activity/journal-heading.ts +36 -0
- package/src/activity/journal-read.test.ts +242 -0
- package/src/activity/journal-read.ts +183 -0
- package/src/activity/journal-source.test.ts +15 -15
- package/src/activity/journal-source.ts +21 -14
- package/src/activity/journal-state.lock-worker.ts +30 -0
- package/src/activity/journal-state.test.ts +144 -0
- package/src/activity/journal-state.ts +107 -0
- package/src/activity/journal-strip.test.ts +106 -52
- package/src/activity/journal-strip.ts +35 -10
- package/src/activity/journal-vault-integration.test.ts +230 -0
- package/src/activity/journal-vault-provenance.test.ts +9 -7
- package/src/activity/journal-vault-provenance.ts +4 -10
- package/src/activity/journal-vault-read.test.ts +3 -2
- package/src/activity/journal-vault-read.ts +9 -139
- package/src/activity/journal.test.ts +74 -23
- package/src/activity/runner.test.ts +116 -1
- package/src/activity/runner.ts +25 -0
- package/src/activity/scheduler.ts +4 -0
- package/src/activity/store.test.ts +18 -0
- package/src/activity/store.ts +14 -0
- package/src/activity/sync-registration.ts +4 -0
- package/src/activity/timeline/analysis-metadata.ts +2 -0
- package/src/activity/timeline/analysis-provider.ts +140 -0
- package/src/activity/timeline/analysis-run.test.ts +419 -0
- package/src/activity/timeline/analysis-run.ts +106 -0
- package/src/activity/timeline/analysis.ts +66 -37
- package/src/activity/timeline/corrections.ts +9 -0
- package/src/activity/timeline/index.ts +3 -0
- package/src/activity/timeline/query.test.ts +71 -0
- package/src/activity/timeline/query.ts +57 -8
- package/src/activity/timeline/regenerate.test.ts +505 -0
- package/src/activity/timeline/regenerate.ts +373 -0
- package/src/activity/types.ts +40 -5
- package/src/adapters/grok-opencode.test.ts +146 -0
- package/src/adapters/grok.ts +53 -0
- package/src/adapters/index.ts +2 -0
- package/src/adapters/opencode.ts +52 -0
- package/src/adapters/registry.ts +4 -0
- package/src/cli-fallback.ts +13 -4
- package/src/config.test.ts +3 -1
- package/src/config.ts +4 -0
- package/src/dedup/merge.test.ts +732 -25
- package/src/fallback-llm.test.ts +53 -0
- package/src/fallback-llm.ts +12 -0
- package/src/index.ts +2 -0
- package/src/local-llm.ts +3 -1
- package/src/orchestration/dependency-propagation-recovery-replay.ts +1 -1
- package/src/orchestration/extraction-persist-deps.ts +9 -0
- package/src/orchestration/extraction-persist-promotion.test.ts +265 -6
- package/src/orchestration/extraction-persist-promotion.ts +42 -3
- package/src/orchestration/extraction-persist.ts +3 -3
- package/src/orchestration/harmonic-construction-persist.test.ts +115 -4
- package/src/orchestration/harmonic-construction-persist.ts +34 -6
- package/src/orchestration/maintenance.ts +1 -0
- package/src/orchestration/orchestrator-helpers.ts +6 -0
- package/src/orchestration/recall-entry.ts +16 -0
- package/src/orchestration/recall-internal-deps.ts +14 -0
- package/src/orchestration/recall-internal.ts +41 -58
- package/src/orchestration/recall-result-formatter.ts +11 -1
- package/src/orchestration/recall-search-pipeline.ts +121 -11
- package/src/orchestration/recall-state-view-pipeline.test.ts +211 -0
- package/src/orchestration/semantic-merge-commit-effects.ts +76 -17
- package/src/orchestration/semantic-merge-persist.ts +121 -16
- package/src/orchestration/semantic-merge-promotion-payload.ts +133 -54
- package/src/orchestrator.ts +7 -35
- package/src/providers/codex-subscription.test.ts +666 -0
- package/src/providers/codex-subscription.ts +743 -0
- package/src/recall-disclosure.test.ts +20 -0
- package/src/recall-state-view-admission.ts +114 -0
- package/src/recall-state-view-asof.test.ts +176 -0
- package/src/recall-state-view-call.test.ts +175 -0
- package/src/recall-state-view-config.test.ts +16 -0
- package/src/recall-state-view-widen.test.ts +70 -0
- package/src/recall-state-view-widen.ts +28 -7
- package/src/recall-state-view-wire.ts +3 -1
- package/src/recall-state-view-zero-diff.test.ts +20 -11
- package/src/recall-state-view.test.ts +142 -0
- package/src/recall-state-view.ts +72 -24
- package/src/recall-xray-renderer.test.ts +27 -0
- package/src/recall-xray-renderer.ts +4 -0
- package/src/recall-xray.ts +13 -0
- package/src/reconcile/cursor.ts +23 -33
- package/src/reconcile/manifest.ts +96 -11
- package/src/reconcile-identity-cache.test.ts +378 -0
- package/src/runtime/child-process.ts +1 -1
- package/src/storage/cas-revision-host.ts +75 -0
- package/src/storage/cas-revision-store.test.ts +459 -0
- package/src/storage/cas-revision-store.ts +661 -0
- package/src/storage/deletion-revision-store.ts +80 -6
- package/src/storage/tombstone-blocked-capture-index.ts +15 -0
- package/src/storage/tombstone-blocked-capture-mutation.ts +67 -7
- package/src/storage/tombstone-blocked-capture-sync.ts +55 -20
- package/src/storage-contract/failure-semantics.test.ts +1 -1
- package/src/storage-frontmatter-cas.test.ts +698 -1
- package/src/storage-replay.test.ts +166 -3
- package/src/storage.ts +41 -41
- package/src/support-passport/card-projection.ts +82 -33
- package/src/temporal-supersession.test.ts +10 -10
- package/src/types.ts +7 -7
- package/src/write-envelope.ts +1 -1
- package/dist/chunk-22FVR2KE.js.map +0 -1
- package/dist/chunk-2JVJ7UHC.js.map +0 -1
- package/dist/chunk-3QQTXYZ6.js.map +0 -1
- package/dist/chunk-4UDQUPT5.js +0 -560
- package/dist/chunk-4UDQUPT5.js.map +0 -1
- package/dist/chunk-A7XEPMQ6.js.map +0 -1
- package/dist/chunk-AU7Q3LSC.js +0 -56
- package/dist/chunk-AU7Q3LSC.js.map +0 -1
- package/dist/chunk-BLUYQFRH.js.map +0 -1
- package/dist/chunk-CZYYJZB6.js.map +0 -1
- package/dist/chunk-EEOUMG3J.js.map +0 -1
- package/dist/chunk-FDLDOEO6.js.map +0 -1
- package/dist/chunk-FYDW33ZB.js +0 -13
- package/dist/chunk-GVG3JYBI.js.map +0 -1
- package/dist/chunk-H272ZPQ3.js.map +0 -1
- package/dist/chunk-HVAEXYPL.js.map +0 -1
- package/dist/chunk-JEIXTYVG.js.map +0 -1
- package/dist/chunk-LRICZIGN.js +0 -52
- package/dist/chunk-LRICZIGN.js.map +0 -1
- package/dist/chunk-N7RWREIQ.js.map +0 -1
- package/dist/chunk-O75CRYGF.js.map +0 -1
- package/dist/chunk-Q3O3VKRB.js.map +0 -1
- package/dist/chunk-SEDEKFYQ.js +0 -1
- package/dist/chunk-SO7SV523.js.map +0 -1
- package/dist/chunk-SQJ3SDIW.js.map +0 -1
- package/dist/chunk-TLPZ6MKZ.js.map +0 -1
- package/dist/chunk-WJBZMNNS.js.map +0 -1
- package/dist/chunk-XQ2Q43XD.js.map +0 -1
- package/dist/chunk-Z4PCVRTN.js.map +0 -1
- package/src/activity/journal-mode.test.ts +0 -32
- package/src/activity/journal-mode.ts +0 -20
- /package/dist/{chunk-SEDEKFYQ.js.map → activity/digest.js.map} +0 -0
- /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
- /package/dist/{chunk-CDKHKZL5.js.map → chunk-2524MOWK.js.map} +0 -0
- /package/dist/{chunk-IY2FVXM6.js.map → chunk-2AU4D4HQ.js.map} +0 -0
- /package/dist/{chunk-QDY6KYTN.js.map → chunk-2JCA2PQT.js.map} +0 -0
- /package/dist/{chunk-RSVEP77Y.js.map → chunk-2UZ5ZH6W.js.map} +0 -0
- /package/dist/{chunk-NWWXSJX5.js.map → chunk-34QW2LK2.js.map} +0 -0
- /package/dist/{chunk-S7DPKM5W.js.map → chunk-353C5UNV.js.map} +0 -0
- /package/dist/{chunk-GQOMZ3MK.js.map → chunk-36UBSLFN.js.map} +0 -0
- /package/dist/{chunk-DBQWVT2H.js.map → chunk-3CBI2ZSA.js.map} +0 -0
- /package/dist/{chunk-NZXEK3UF.js.map → chunk-3Q3N35W7.js.map} +0 -0
- /package/dist/{chunk-YYGZJPOK.js.map → chunk-42DJ235G.js.map} +0 -0
- /package/dist/{chunk-7VJXIDOC.js.map → chunk-4JVQRFZD.js.map} +0 -0
- /package/dist/{chunk-WHBVXTUI.js.map → chunk-4PB2MBY6.js.map} +0 -0
- /package/dist/{chunk-TEYN7ZYF.js.map → chunk-4WCNPQQ5.js.map} +0 -0
- /package/dist/{chunk-RBGREYVJ.js.map → chunk-5QBDLMGG.js.map} +0 -0
- /package/dist/{chunk-RKBLRTNT.js.map → chunk-5SDSVX7N.js.map} +0 -0
- /package/dist/{chunk-LPECRQO4.js.map → chunk-5THU7NFP.js.map} +0 -0
- /package/dist/{chunk-LWA7MDVO.js.map → chunk-6CCRSQWT.js.map} +0 -0
- /package/dist/{chunk-TIT2C6WX.js.map → chunk-6XYC7NM4.js.map} +0 -0
- /package/dist/{chunk-FHQSPTPZ.js.map → chunk-6YAIN5XJ.js.map} +0 -0
- /package/dist/{chunk-PV36INNL.js.map → chunk-757NP436.js.map} +0 -0
- /package/dist/{chunk-6H5JYDOM.js.map → chunk-7J2CGXG3.js.map} +0 -0
- /package/dist/{chunk-FBMYGNOC.js.map → chunk-A2YQL2FF.js.map} +0 -0
- /package/dist/{chunk-X2NFFBTO.js.map → chunk-A7GQBJP5.js.map} +0 -0
- /package/dist/{chunk-MPYD657E.js.map → chunk-A7WOWDZK.js.map} +0 -0
- /package/dist/{chunk-C4OTC6WY.js.map → chunk-AIKTQVV3.js.map} +0 -0
- /package/dist/{chunk-CGC5UQCF.js.map → chunk-AKE4GGQ3.js.map} +0 -0
- /package/dist/{chunk-VP67GZ7T.js.map → chunk-APFKZVJS.js.map} +0 -0
- /package/dist/{chunk-M75RYSHS.js.map → chunk-AQIRQUCP.js.map} +0 -0
- /package/dist/{chunk-S7T2TY65.js.map → chunk-AXFR2NQ5.js.map} +0 -0
- /package/dist/{chunk-PSPABFN2.js.map → chunk-BD7JTBYP.js.map} +0 -0
- /package/dist/{chunk-FCSZ4K2X.js.map → chunk-BJJWRWER.js.map} +0 -0
- /package/dist/{chunk-JT3EB7ZL.js.map → chunk-BNGHPYZU.js.map} +0 -0
- /package/dist/{chunk-MFJBANPX.js.map → chunk-C2BFTYD7.js.map} +0 -0
- /package/dist/{chunk-3JVLGJCY.js.map → chunk-C6KRO3SU.js.map} +0 -0
- /package/dist/{chunk-AOCP6JA7.js.map → chunk-D3IZCN5P.js.map} +0 -0
- /package/dist/{chunk-ROKKIMON.js.map → chunk-EJIEQOPB.js.map} +0 -0
- /package/dist/{chunk-ET356KSB.js.map → chunk-F4TWWUMP.js.map} +0 -0
- /package/dist/{chunk-CLLPJ6QT.js.map → chunk-FQXJAC3T.js.map} +0 -0
- /package/dist/{chunk-DD5JFCWM.js.map → chunk-GCBIXUPT.js.map} +0 -0
- /package/dist/{chunk-ROGRI25A.js.map → chunk-I3H5LFOI.js.map} +0 -0
- /package/dist/{chunk-S65WXHNK.js.map → chunk-IFFLUCCU.js.map} +0 -0
- /package/dist/{chunk-D5LORF7A.js.map → chunk-JZDH2ZZK.js.map} +0 -0
- /package/dist/{chunk-2GPE5UCR.js.map → chunk-K6IPSW5B.js.map} +0 -0
- /package/dist/{chunk-HG6HXVHQ.js.map → chunk-KDJHLOZP.js.map} +0 -0
- /package/dist/{chunk-I27RSQRR.js.map → chunk-KYGOQV37.js.map} +0 -0
- /package/dist/{chunk-VZWXFXLX.js.map → chunk-LMCD5W5B.js.map} +0 -0
- /package/dist/{chunk-MKD3OMPS.js.map → chunk-M3MYMWXG.js.map} +0 -0
- /package/dist/{chunk-DITMGZOL.js.map → chunk-MMG5K6XJ.js.map} +0 -0
- /package/dist/{chunk-VGXM5B4H.js.map → chunk-MNIPH6LD.js.map} +0 -0
- /package/dist/{chunk-MKWKYHXJ.js.map → chunk-OB3XMWX5.js.map} +0 -0
- /package/dist/{chunk-XU6OEECT.js.map → chunk-OQQXGYMX.js.map} +0 -0
- /package/dist/{chunk-47DEYNMR.js.map → chunk-PEXW2JCK.js.map} +0 -0
- /package/dist/{chunk-42SDNZCU.js.map → chunk-QF4J3KMV.js.map} +0 -0
- /package/dist/{chunk-SB6PSOP7.js.map → chunk-QLJ6762U.js.map} +0 -0
- /package/dist/{chunk-XOVKXJEP.js.map → chunk-R3TLVTWW.js.map} +0 -0
- /package/dist/{chunk-PHNAB54Q.js.map → chunk-RQO3J4MR.js.map} +0 -0
- /package/dist/{chunk-5N53UBH2.js.map → chunk-RR7G2X7C.js.map} +0 -0
- /package/dist/{chunk-DCJ3YFIC.js.map → chunk-S2ULTQZR.js.map} +0 -0
- /package/dist/{chunk-GY5WZBA6.js.map → chunk-S76KRJDG.js.map} +0 -0
- /package/dist/{chunk-EEC4PCG5.js.map → chunk-SZDLX763.js.map} +0 -0
- /package/dist/{chunk-E2ZHGBAK.js.map → chunk-T2JSUEH6.js.map} +0 -0
- /package/dist/{chunk-QMGXMJ2O.js.map → chunk-T2YFZ27G.js.map} +0 -0
- /package/dist/{chunk-LEPOP46W.js.map → chunk-TFA6HPOA.js.map} +0 -0
- /package/dist/{chunk-BA6WOZOT.js.map → chunk-TK4FHQRN.js.map} +0 -0
- /package/dist/{chunk-ZNJSBIP4.js.map → chunk-TNSCIPBQ.js.map} +0 -0
- /package/dist/{chunk-YUMDFDUA.js.map → chunk-TWYTGIBR.js.map} +0 -0
- /package/dist/{chunk-EZZV7OQL.js.map → chunk-UEZKN6VR.js.map} +0 -0
- /package/dist/{chunk-HY55QQD7.js.map → chunk-UJX4I26O.js.map} +0 -0
- /package/dist/{chunk-CBCNKKZD.js.map → chunk-VIZR45AN.js.map} +0 -0
- /package/dist/{chunk-ZG74PWRW.js.map → chunk-VZAKYDMJ.js.map} +0 -0
- /package/dist/{chunk-ITPS5DDH.js.map → chunk-W5BLTZZJ.js.map} +0 -0
- /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
- /package/dist/{chunk-YFLLGRXO.js.map → chunk-X2QPKLPL.js.map} +0 -0
- /package/dist/{chunk-FGGYSN4P.js.map → chunk-X424T5JQ.js.map} +0 -0
- /package/dist/{chunk-NAXDPKVM.js.map → chunk-XPJNT6PI.js.map} +0 -0
- /package/dist/{contradiction-scan-NOYMFG66.js.map → chunk-XW2T4QAW.js.map} +0 -0
- /package/dist/{chunk-VED2YHUD.js.map → chunk-YEDVOYL2.js.map} +0 -0
- /package/dist/{chunk-RC5DXXWC.js.map → chunk-YM7YN37H.js.map} +0 -0
- /package/dist/{chunk-VLXBE57O.js.map → chunk-YVGXH72Y.js.map} +0 -0
- /package/dist/{chunk-YQAXP5AC.js.map → chunk-YXLUTALO.js.map} +0 -0
- /package/dist/{chunk-565C6ZFO.js.map → chunk-Z7YDVHDI.js.map} +0 -0
- /package/dist/{chunk-XUE46UYW.js.map → chunk-ZLN7AROH.js.map} +0 -0
- /package/dist/{chunk-HK32G473.js.map → chunk-ZWEZXVYH.js.map} +0 -0
- /package/dist/{resolution-VKATP2HT.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
- /package/dist/{first-start-migration-RC345GPL.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
- /package/dist/{tier-stats-KA6OZX2C.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import assert from "node:assert/strict";
|
|
2
2
|
import { test } from "node:test";
|
|
3
3
|
import type { StorageManager } from "../index.js";
|
|
4
|
+
import type { MemoryFile } from "../types.js";
|
|
4
5
|
import { deriveHarmonicRecords, type HarmonicConstructionInput } from "../harmonic-construction.js";
|
|
5
6
|
import { enqueueMergedTargetForHarmonicConstruction } from "./harmonic-construction-persist.js";
|
|
6
7
|
|
|
7
|
-
const storage = {
|
|
8
|
+
const storage = {
|
|
9
|
+
dir: "/tmp/remnic-harmonic-coalesce",
|
|
10
|
+
getMemoryByIdIncludingArchived: async () => null,
|
|
11
|
+
} as unknown as StorageManager;
|
|
8
12
|
|
|
9
13
|
function fact(cueAnchors: NonNullable<HarmonicConstructionInput["persistedFacts"][number]["cueAnchors"]>) {
|
|
10
14
|
return {
|
|
@@ -15,12 +19,13 @@ function fact(cueAnchors: NonNullable<HarmonicConstructionInput["persistedFacts"
|
|
|
15
19
|
};
|
|
16
20
|
}
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
|
|
23
|
+
test("two merges into one target coalesce to one harmonic entry: final body, unioned anchors (round N+9 C)", async () => {
|
|
19
24
|
const map = new Map<string, {
|
|
20
25
|
storage: StorageManager;
|
|
21
26
|
facts: HarmonicConstructionInput["persistedFacts"];
|
|
22
27
|
}>();
|
|
23
|
-
enqueueMergedTargetForHarmonicConstruction(
|
|
28
|
+
await enqueueMergedTargetForHarmonicConstruction(
|
|
24
29
|
map,
|
|
25
30
|
storage,
|
|
26
31
|
fact([{ type: "tool", value: "atlas release workflow" }]),
|
|
@@ -28,7 +33,7 @@ test("two merges into one target coalesce to one harmonic entry: final body, uni
|
|
|
28
33
|
"first cumulative body",
|
|
29
34
|
"2026-08-22T10:00:00.000Z",
|
|
30
35
|
);
|
|
31
|
-
enqueueMergedTargetForHarmonicConstruction(
|
|
36
|
+
await enqueueMergedTargetForHarmonicConstruction(
|
|
32
37
|
map,
|
|
33
38
|
storage,
|
|
34
39
|
fact([{ type: "entity", value: "Atlas PostgreSQL" }]),
|
|
@@ -67,3 +72,109 @@ test("two merges into one target coalesce to one harmonic entry: final body, uni
|
|
|
67
72
|
"anchors from both merges reach the persisted anchor set",
|
|
68
73
|
);
|
|
69
74
|
});
|
|
75
|
+
|
|
76
|
+
test("a merged target's harmonic entry carries the committed record's entityRef and tags (#2807)", async () => {
|
|
77
|
+
// The parity gate lets an incoming fact with NO entityRef merge into a
|
|
78
|
+
// target that HAS one (only a differing non-undefined incoming entity
|
|
79
|
+
// refuses), and incoming tags are a subset of the target's. The enqueue
|
|
80
|
+
// used to stamp the incoming fact's fields onto the merged entry, so the
|
|
81
|
+
// episode held the cumulative body while missing the target's committed
|
|
82
|
+
// entity association and extra tags — and deriveHarmonicRecords skipped
|
|
83
|
+
// the deterministic entity cue/topic linkage for the merged claims.
|
|
84
|
+
const MERGED_BODY = "Billing service deploys run on Tuesdays at 09:00 UTC.";
|
|
85
|
+
const committed: MemoryFile = {
|
|
86
|
+
path: "/tmp/remnic-harmonic-merged/facts/2026-08-22/fact-target.md",
|
|
87
|
+
frontmatter: {
|
|
88
|
+
id: "fact-target",
|
|
89
|
+
category: "fact",
|
|
90
|
+
entityRef: "billing-service",
|
|
91
|
+
tags: ["deploy", "infra"],
|
|
92
|
+
} as unknown as MemoryFile["frontmatter"],
|
|
93
|
+
content: MERGED_BODY,
|
|
94
|
+
};
|
|
95
|
+
const mergedStore = {
|
|
96
|
+
dir: "/tmp/remnic-harmonic-merged",
|
|
97
|
+
getMemoryByIdIncludingArchived: async (id: string) =>
|
|
98
|
+
id === "fact-target" ? committed : null,
|
|
99
|
+
} as unknown as StorageManager;
|
|
100
|
+
const map = new Map<string, {
|
|
101
|
+
storage: StorageManager;
|
|
102
|
+
facts: HarmonicConstructionInput["persistedFacts"];
|
|
103
|
+
}>();
|
|
104
|
+
await enqueueMergedTargetForHarmonicConstruction(
|
|
105
|
+
map,
|
|
106
|
+
mergedStore,
|
|
107
|
+
{
|
|
108
|
+
content: "Deploys of the billing service run on Tuesdays.",
|
|
109
|
+
category: "fact",
|
|
110
|
+
tags: ["deploy"],
|
|
111
|
+
cueAnchors: [{ type: "tool", value: "deploy runbook" }],
|
|
112
|
+
},
|
|
113
|
+
"fact-target",
|
|
114
|
+
MERGED_BODY,
|
|
115
|
+
"2026-08-22T12:00:00.000Z",
|
|
116
|
+
);
|
|
117
|
+
const entry = map.get(mergedStore.dir)!.facts[0]!;
|
|
118
|
+
assert.equal(entry.content, MERGED_BODY, "the committed merged body is the entry body");
|
|
119
|
+
assert.equal(entry.entityRef, "billing-service", "the committed entityRef survives the merge");
|
|
120
|
+
assert.deepEqual(
|
|
121
|
+
[...entry.tags].sort(),
|
|
122
|
+
["deploy", "infra"],
|
|
123
|
+
"tags come from the committed target (a superset of the incoming subset)",
|
|
124
|
+
);
|
|
125
|
+
assert.deepEqual(
|
|
126
|
+
entry.cueAnchors?.map((anchor) => anchor.value),
|
|
127
|
+
["deploy runbook"],
|
|
128
|
+
"event-specific cue anchors still ride in from the incoming fact",
|
|
129
|
+
);
|
|
130
|
+
const records = deriveHarmonicRecords({
|
|
131
|
+
sessionKey: "session-merged-entity",
|
|
132
|
+
recordedAt: "2026-08-22T12:00:00.000Z",
|
|
133
|
+
persistedFacts: [entry],
|
|
134
|
+
entityMentions: [{ name: "Billing Service", type: "service" }],
|
|
135
|
+
});
|
|
136
|
+
const topic = records.nodes.find(
|
|
137
|
+
(node) => node.kind === "topic" || node.kind === "project",
|
|
138
|
+
);
|
|
139
|
+
assert.ok(topic, "a topic node exists for the entity mention");
|
|
140
|
+
assert.ok(
|
|
141
|
+
topic.sourceMemoryIds?.includes("fact-target"),
|
|
142
|
+
"the entity mention links to the merged target through the committed entityRef",
|
|
143
|
+
);
|
|
144
|
+
const entityAnchor = records.anchors.find(
|
|
145
|
+
(anchor) => anchor.anchorType === "entity" && anchor.anchorValue === "billing-service",
|
|
146
|
+
);
|
|
147
|
+
assert.ok(
|
|
148
|
+
entityAnchor !== undefined && entityAnchor.nodeRefs.includes(topic.nodeId),
|
|
149
|
+
"the deterministic entity anchor references the topic node",
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
// Control: a reread that no longer matches the merged body (the record
|
|
153
|
+
// advanced mid-flight) falls back to the incoming fact's own fields.
|
|
154
|
+
const advancedStore = {
|
|
155
|
+
dir: "/tmp/remnic-harmonic-advanced",
|
|
156
|
+
getMemoryByIdIncludingArchived: async () => ({
|
|
157
|
+
...committed,
|
|
158
|
+
content: "a newer writer's body",
|
|
159
|
+
}) as MemoryFile,
|
|
160
|
+
} as unknown as StorageManager;
|
|
161
|
+
const advancedMap = new Map<string, {
|
|
162
|
+
storage: StorageManager;
|
|
163
|
+
facts: HarmonicConstructionInput["persistedFacts"];
|
|
164
|
+
}>();
|
|
165
|
+
await enqueueMergedTargetForHarmonicConstruction(
|
|
166
|
+
advancedMap,
|
|
167
|
+
advancedStore,
|
|
168
|
+
{
|
|
169
|
+
content: "incoming body",
|
|
170
|
+
category: "fact",
|
|
171
|
+
tags: ["deploy"],
|
|
172
|
+
},
|
|
173
|
+
"fact-target",
|
|
174
|
+
MERGED_BODY,
|
|
175
|
+
"2026-08-22T12:00:00.000Z",
|
|
176
|
+
);
|
|
177
|
+
const fallback = advancedMap.get(advancedStore.dir)!.facts[0]!;
|
|
178
|
+
assert.equal(fallback.entityRef, undefined, "an advanced record never lends its metadata");
|
|
179
|
+
assert.deepEqual(fallback.tags, ["deploy"]);
|
|
180
|
+
});
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "../harmonic-construction.js";
|
|
9
9
|
import { log } from "../logger.js";
|
|
10
10
|
import type { StorageManager } from "../index.js";
|
|
11
|
-
import type { ExtractionResult } from "../types.js";
|
|
11
|
+
import type { MemoryFile, ExtractionResult } from "../types.js";
|
|
12
12
|
|
|
13
13
|
export interface HarmonicPersistenceEntry {
|
|
14
14
|
storage: { dir: string };
|
|
@@ -57,8 +57,20 @@ export function filterHarmonicEntityMentions(
|
|
|
57
57
|
* anchors UNION across merges — anchors are deduped by id downstream, but
|
|
58
58
|
* the union keeps the earlier merge's anchors alive when the later incoming
|
|
59
59
|
* fact carried none.
|
|
60
|
+
*
|
|
61
|
+
* #2807 (finding 3): the entry's metadata comes from the REREAD committed
|
|
62
|
+
* target, never the incoming fact alone. The parity gate lets an incoming
|
|
63
|
+
* fact with no entityRef merge into a target that HAS one (only a
|
|
64
|
+
* differing non-undefined incoming entity refuses), and incoming tags are
|
|
65
|
+
* a subset of the target's — so stamping the incoming fields onto the
|
|
66
|
+
* cumulative body dropped the target's committed entity association and
|
|
67
|
+
* extra tags, and `deriveHarmonicRecords` skipped the deterministic
|
|
68
|
+
* entity cue/topic linkage for the merged claims. Cue anchors stay
|
|
69
|
+
* incoming-only: they are event-specific. An unreadable or advanced record
|
|
70
|
+
* falls back to the incoming fact's own fields (fail-open, like every
|
|
71
|
+
* merge-adjacent effect).
|
|
60
72
|
*/
|
|
61
|
-
export function enqueueMergedTargetForHarmonicConstruction(
|
|
73
|
+
export async function enqueueMergedTargetForHarmonicConstruction(
|
|
62
74
|
entries: Map<
|
|
63
75
|
string,
|
|
64
76
|
{ storage: StorageManager; facts: HarmonicConstructionInput["persistedFacts"] }
|
|
@@ -71,22 +83,38 @@ export function enqueueMergedTargetForHarmonicConstruction(
|
|
|
71
83
|
memoryId: string,
|
|
72
84
|
content: string,
|
|
73
85
|
insertedAt: string,
|
|
74
|
-
): void {
|
|
86
|
+
): Promise<void> {
|
|
87
|
+
let committed: MemoryFile | null = null;
|
|
88
|
+
try {
|
|
89
|
+
committed = await storage.getMemoryByIdIncludingArchived(memoryId);
|
|
90
|
+
} catch {
|
|
91
|
+
committed = null;
|
|
92
|
+
}
|
|
93
|
+
const derived =
|
|
94
|
+
committed && committed.content === content
|
|
95
|
+
? {
|
|
96
|
+
...fact,
|
|
97
|
+
category: committed.frontmatter.category,
|
|
98
|
+
tags: [...new Set([...(committed.frontmatter.tags ?? []), ...fact.tags])],
|
|
99
|
+
entityRef: committed.frontmatter.entityRef ?? fact.entityRef,
|
|
100
|
+
validAt: committed.frontmatter.valid_at ?? fact.validAt,
|
|
101
|
+
}
|
|
102
|
+
: fact;
|
|
75
103
|
const entry = entries.get(storage.dir) ?? { storage, facts: [] };
|
|
76
104
|
const prior = entry.facts.findIndex((existing) => existing.memoryId === memoryId);
|
|
77
105
|
if (prior !== -1) {
|
|
78
106
|
entry.facts[prior] = {
|
|
79
|
-
...
|
|
107
|
+
...derived,
|
|
80
108
|
content,
|
|
81
109
|
memoryId,
|
|
82
110
|
insertedAt,
|
|
83
111
|
cueAnchors: [
|
|
84
112
|
...(entry.facts[prior]!.cueAnchors ?? []),
|
|
85
|
-
...(
|
|
113
|
+
...(derived.cueAnchors ?? []),
|
|
86
114
|
],
|
|
87
115
|
};
|
|
88
116
|
} else {
|
|
89
|
-
entry.facts.push({ ...
|
|
117
|
+
entry.facts.push({ ...derived, content, memoryId, insertedAt });
|
|
90
118
|
}
|
|
91
119
|
entries.set(storage.dir, entry);
|
|
92
120
|
}
|
|
@@ -167,6 +167,7 @@ export class MaintenanceScheduler {
|
|
|
167
167
|
secureStoreEnabled: resolveRecallAuxiliaryCapabilities(deps.config).secureStore,
|
|
168
168
|
getQmd: () => deps.getQmd(),
|
|
169
169
|
requestReindexRetry: () => this.requestQmdMaintenanceForTool("activity-reindex-retry"),
|
|
170
|
+
pluginConfig: deps.config,
|
|
170
171
|
...(deps.onActivitySynced ? { onSynced: deps.onActivitySynced } : {}),
|
|
171
172
|
});
|
|
172
173
|
}
|
|
@@ -248,6 +248,12 @@ export interface RecallInvocationOptions {
|
|
|
248
248
|
* normally be pruned by confidence decay. Default `false`.
|
|
249
249
|
*/
|
|
250
250
|
includeLowConfidence?: boolean;
|
|
251
|
+
/**
|
|
252
|
+
* #1952 — per-call override enabling state-aware recall views for this
|
|
253
|
+
* recall only (MCP `stateView` boolean). ORs with the `recallStateViews`
|
|
254
|
+
* config flag; a change-intent query is still required for any effect.
|
|
255
|
+
*/
|
|
256
|
+
stateView?: boolean;
|
|
251
257
|
/**
|
|
252
258
|
* User-aware context scopes active for this recall. Used by X-ray
|
|
253
259
|
* provenance safety checks so boundary-scoped memories are evaluated
|
|
@@ -272,6 +272,20 @@ export class RecallEntryCoordinator {
|
|
|
272
272
|
* also threaded to formatQmdResultEntries for the epistemic hedge.
|
|
273
273
|
*/
|
|
274
274
|
trustByPath?: Map<string, TrustStageResultItem> | null;
|
|
275
|
+
/**
|
|
276
|
+
* #1952 — per-request effective state-view flag (per-call `stateView`
|
|
277
|
+
* OR `recallStateViews` config, gated on change intent), computed once
|
|
278
|
+
* in recallInternal and threaded here. The inject seam uses this flag
|
|
279
|
+
* instead of rereading live config so a per-call `stateView: true`
|
|
280
|
+
* still labels/widens when the global flag is false.
|
|
281
|
+
*/
|
|
282
|
+
stateViewActive?: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* #1952 — historical recall pin (epoch ms) for this call. Under a
|
|
285
|
+
* pin, annotation must not discard a predecessor whose successor is
|
|
286
|
+
* absent due to the asOf validity filter; see applyRecallStateViews.
|
|
287
|
+
*/
|
|
288
|
+
asOfMs?: number;
|
|
275
289
|
}): void {
|
|
276
290
|
const sectionId = "memories";
|
|
277
291
|
const trustByPath = options.trustByPath ?? null;
|
|
@@ -281,6 +295,8 @@ export class RecallEntryCoordinator {
|
|
|
281
295
|
: options.results,
|
|
282
296
|
options.retrievalQuery,
|
|
283
297
|
this.deps.config,
|
|
298
|
+
options.stateViewActive === true,
|
|
299
|
+
options.asOfMs,
|
|
284
300
|
);
|
|
285
301
|
if (injectable.length === 0) return;
|
|
286
302
|
|
|
@@ -69,6 +69,8 @@ export interface RecallInternalDeps {
|
|
|
69
69
|
/** Issue #680 — historical recall point in ms-since-epoch. */
|
|
70
70
|
asOfMs?: number;
|
|
71
71
|
requestingConnector?: string;
|
|
72
|
+
/** #1952 state-view admission — resolved by the caller from config/override + change intent. */
|
|
73
|
+
stateViewActive?: boolean;
|
|
72
74
|
/**
|
|
73
75
|
* Optional out-parameter that receives the pre-MMR / pre-truncation
|
|
74
76
|
* pool size captured inside the pipeline (issue #570 PR 1). The
|
|
@@ -133,6 +135,8 @@ export interface RecallInternalDeps {
|
|
|
133
135
|
* string at the input boundary (CLI / HTTP / MCP).
|
|
134
136
|
*/
|
|
135
137
|
asOfMs?: number;
|
|
138
|
+
/** #1952 state-view admission — see RecallSearchPipelineCoordinator. */
|
|
139
|
+
stateViewActive?: boolean;
|
|
136
140
|
requestingConnector?: string;
|
|
137
141
|
},
|
|
138
142
|
): Promise<QmdSearchResult[]>;
|
|
@@ -233,6 +237,8 @@ export interface RecallInternalDeps {
|
|
|
233
237
|
dropUnresolved?: boolean;
|
|
234
238
|
recallNamespaces?: readonly string[];
|
|
235
239
|
requestingConnector?: string;
|
|
240
|
+
/** #1952 state-view admission — see RecallSearchPipelineCoordinator. */
|
|
241
|
+
stateViewActive?: boolean;
|
|
236
242
|
},
|
|
237
243
|
): Promise<{ results: QmdSearchResult[]; memoryByPath: Map<string, MemoryFile> }>;
|
|
238
244
|
formatCausalTrajectoryResults(
|
|
@@ -321,6 +327,14 @@ export interface RecallInternalDeps {
|
|
|
321
327
|
* formatQmdResults for the epistemic hedge.
|
|
322
328
|
*/
|
|
323
329
|
trustByPath?: Map<string, TrustStageResultItem> | null;
|
|
330
|
+
/**
|
|
331
|
+
* #1952 — per-request effective state-view flag from recallInternal.
|
|
332
|
+
* The publish seam must not reread live config (per-call override
|
|
333
|
+
* semantics, issue #1952).
|
|
334
|
+
*/
|
|
335
|
+
stateViewActive?: boolean;
|
|
336
|
+
/** #1952 — historical recall pin (epoch ms); asOf-mode annotation. */
|
|
337
|
+
asOfMs?: number;
|
|
324
338
|
}): void;
|
|
325
339
|
readonly qmd: SearchBackend;
|
|
326
340
|
queueEvalShadowRecall(
|
|
@@ -69,7 +69,6 @@ import type { SearchDegradation } from "../search/port.js";
|
|
|
69
69
|
import { type VerifiedSemanticRuleResult, compareVerifiedSemanticRuleResults, searchVerifiedSemanticRules } from "../semantic-rule-verifier.js";
|
|
70
70
|
import { isDisagreementPrompt } from "../signal.js";
|
|
71
71
|
import { buildTargetedFactRecallSection, shouldRecallTargetedFactEvidence } from "../targeted-fact-recall.js";
|
|
72
|
-
import { shouldFilterSupersededFromRecall } from "../temporal-supersession.js";
|
|
73
72
|
import { queryTemporalTimelineAsync } from "../temporal-index.js";
|
|
74
73
|
import { type TrustStageResultItem, projectTrustForXray } from "../trust-score-stage.js";
|
|
75
74
|
import { isValidAsOf } from "../temporal-validity.js";
|
|
@@ -99,6 +98,7 @@ import {
|
|
|
99
98
|
type RecallInvocationOptions,
|
|
100
99
|
} from "../orchestrator.js";
|
|
101
100
|
import { isGenericRecallExcludedPath } from "./generic-recall-paths.js";
|
|
101
|
+
import { filterRecentScanMemoriesForStateView, indexStateViewAnnotatedResults, resolveRecallStateViewActive } from "../recall-state-view-admission.js";
|
|
102
102
|
import type { RecallSectionBuckets } from "./recall-section-coordinator.js";
|
|
103
103
|
import {
|
|
104
104
|
reconcileRecallResultPartition,
|
|
@@ -243,6 +243,7 @@ export class RecallInternalCoordinator {
|
|
|
243
243
|
cronConversationRecallMode: this.deps.config.cronConversationRecallMode,
|
|
244
244
|
});
|
|
245
245
|
const retrievalQuery = queryPolicy.retrievalQuery || prompt;
|
|
246
|
+
const stateViewActive = resolveRecallStateViewActive(options, this.deps.config, retrievalQuery);
|
|
246
247
|
const retrievalQueryHash = createHash("sha256")
|
|
247
248
|
.update(retrievalQuery)
|
|
248
249
|
.digest("hex");
|
|
@@ -3842,6 +3843,7 @@ export class RecallInternalCoordinator {
|
|
|
3842
3843
|
undefined,
|
|
3843
3844
|
{
|
|
3844
3845
|
asOfMs,
|
|
3846
|
+
stateViewActive,
|
|
3845
3847
|
// If QMD had already settled before the ordered assembly reached it,
|
|
3846
3848
|
// do not let unrelated slow enrichment turn those known results into
|
|
3847
3849
|
// unchecked misses. QMD that only settles during its own wait remains
|
|
@@ -3865,7 +3867,7 @@ export class RecallInternalCoordinator {
|
|
|
3865
3867
|
recallNamespaces,
|
|
3866
3868
|
retrievalQuery,
|
|
3867
3869
|
qmdBoostInput.memoryByPath,
|
|
3868
|
-
{ asOfMs, requestingConnector: options.sourceConnector },
|
|
3870
|
+
{ asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
|
|
3869
3871
|
),
|
|
3870
3872
|
qmdBoostInput.results,
|
|
3871
3873
|
);
|
|
@@ -4068,6 +4070,8 @@ export class RecallInternalCoordinator {
|
|
|
4068
4070
|
injectedChars: identityInjectedChars,
|
|
4069
4071
|
truncated: identityInjectionTruncated,
|
|
4070
4072
|
},
|
|
4073
|
+
stateViewActive,
|
|
4074
|
+
asOfMs,
|
|
4071
4075
|
trustByPath: recallTrustByPath,
|
|
4072
4076
|
});
|
|
4073
4077
|
recalledMemoryPaths = memoryResults
|
|
@@ -4106,7 +4110,7 @@ export class RecallInternalCoordinator {
|
|
|
4106
4110
|
recallNamespaces,
|
|
4107
4111
|
retrievalQuery,
|
|
4108
4112
|
undefined,
|
|
4109
|
-
{ asOfMs, requestingConnector: options.sourceConnector },
|
|
4113
|
+
{ asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
|
|
4110
4114
|
);
|
|
4111
4115
|
xrayBranchPoolSize.hot_embedding = Math.max(
|
|
4112
4116
|
xrayBranchPoolSize.hot_embedding,
|
|
@@ -4190,6 +4194,8 @@ export class RecallInternalCoordinator {
|
|
|
4190
4194
|
injectedChars: identityInjectedChars,
|
|
4191
4195
|
truncated: identityInjectionTruncated,
|
|
4192
4196
|
},
|
|
4197
|
+
stateViewActive,
|
|
4198
|
+
asOfMs,
|
|
4193
4199
|
trustByPath: recallTrustByPath,
|
|
4194
4200
|
});
|
|
4195
4201
|
recalledMemoryPaths = scoped
|
|
@@ -4201,6 +4207,7 @@ export class RecallInternalCoordinator {
|
|
|
4201
4207
|
options.xrayCapture === true ? { partition: null } : undefined;
|
|
4202
4208
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4203
4209
|
prompt: retrievalQuery,
|
|
4210
|
+
stateViewActive,
|
|
4204
4211
|
recallNamespaces,
|
|
4205
4212
|
recallResultLimit,
|
|
4206
4213
|
recallMode,
|
|
@@ -4244,6 +4251,8 @@ export class RecallInternalCoordinator {
|
|
|
4244
4251
|
injectedChars: identityInjectedChars,
|
|
4245
4252
|
truncated: identityInjectionTruncated,
|
|
4246
4253
|
},
|
|
4254
|
+
stateViewActive,
|
|
4255
|
+
asOfMs,
|
|
4247
4256
|
trustByPath: recallTrustByPath,
|
|
4248
4257
|
});
|
|
4249
4258
|
recalledMemoryPaths = longTerm
|
|
@@ -4318,7 +4327,7 @@ export class RecallInternalCoordinator {
|
|
|
4318
4327
|
recallNamespaces,
|
|
4319
4328
|
retrievalQuery,
|
|
4320
4329
|
undefined,
|
|
4321
|
-
{ asOfMs, requestingConnector: options.sourceConnector },
|
|
4330
|
+
{ asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
|
|
4322
4331
|
);
|
|
4323
4332
|
// MMR runs on the pre-truncation pool (see the hot-embedding branch).
|
|
4324
4333
|
xrayBranchPoolSize.hot_embedding = Math.max(
|
|
@@ -4400,6 +4409,8 @@ export class RecallInternalCoordinator {
|
|
|
4400
4409
|
injectedChars: identityInjectedChars,
|
|
4401
4410
|
truncated: identityInjectionTruncated,
|
|
4402
4411
|
},
|
|
4412
|
+
stateViewActive,
|
|
4413
|
+
asOfMs,
|
|
4403
4414
|
trustByPath: recallTrustByPath,
|
|
4404
4415
|
});
|
|
4405
4416
|
recalledMemoryPaths = scoped
|
|
@@ -4416,59 +4427,19 @@ export class RecallInternalCoordinator {
|
|
|
4416
4427
|
[] as MemoryFile[],
|
|
4417
4428
|
);
|
|
4418
4429
|
if (memories.length > 0) {
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
// are ignored and all memories surface)
|
|
4426
|
-
// • temporalSupersessionIncludeInRecall=true → never filter (audit mode)
|
|
4427
|
-
// • enabled=true + includeInRecall=false → filter superseded
|
|
4428
|
-
// Previously the recent-scan path checked `enabled && includeInRecall`
|
|
4429
|
-
// directly, which disagreed with the QMD path when enabled=false
|
|
4430
|
-
// (memories were still filtered, contrary to the kill-switch intent).
|
|
4431
|
-
// Using the shared gate fixes both Finding 2 and Finding 3 from
|
|
4432
|
-
// PR #402 (round 6).
|
|
4433
|
-
const supersessionOptions = {
|
|
4434
|
-
enabled: lifecycleCaps.temporalSupersession,
|
|
4435
|
-
includeInRecall: this.deps.config.temporalSupersessionIncludeInRecall,
|
|
4436
|
-
};
|
|
4437
|
-
// Cursor Medium on PR #713: when `as_of` is active, the
|
|
4438
|
-
// recent-scan path used to strip every non-active status
|
|
4439
|
-
// (including superseded) before `boostSearchResults` ran,
|
|
4440
|
-
// so the as_of bypass inside boostSearchResults never had
|
|
4441
|
-
// a chance to admit historically-valid records. Pass
|
|
4442
|
-
// superseded candidates through here when as_of is active;
|
|
4443
|
-
// boostSearchResults's `[valid_at, invalid_at)` evaluation
|
|
4444
|
-
// is the authoritative gate. Other non-active statuses
|
|
4445
|
-
// (archived, forgotten, rejected) stay excluded — historical
|
|
4446
|
-
// recall is about supersession history, not about reviving
|
|
4447
|
-
// records the operator explicitly dropped.
|
|
4448
|
-
const asOfActive =
|
|
4449
|
-
typeof asOfMs === "number" && Number.isFinite(asOfMs);
|
|
4450
|
-
const activeMemories = memories.filter(
|
|
4451
|
-
(m) => {
|
|
4452
|
-
if (isGenericRecallExcludedPath(m.path, this.deps.config)) return false;
|
|
4453
|
-
const status = m.frontmatter.status;
|
|
4454
|
-
if (!status || status === "active") return true;
|
|
4455
|
-
if (status === "superseded") {
|
|
4456
|
-
if (asOfActive) return true;
|
|
4457
|
-
// Include superseded memory only if the canonical gate says
|
|
4458
|
-
// NOT to filter it (kill switch off or audit mode on).
|
|
4459
|
-
return !shouldFilterSupersededFromRecall(m.frontmatter, supersessionOptions);
|
|
4460
|
-
}
|
|
4461
|
-
// Other non-active statuses (archived, retired, etc.) are
|
|
4462
|
-
// excluded from the recent-scan path by default.
|
|
4463
|
-
return false;
|
|
4430
|
+
const activeMemories = filterRecentScanMemoriesForStateView(
|
|
4431
|
+
memories,
|
|
4432
|
+
this.deps.config,
|
|
4433
|
+
{
|
|
4434
|
+
enabled: lifecycleCaps.temporalSupersession,
|
|
4435
|
+
includeInRecall: this.deps.config.temporalSupersessionIncludeInRecall,
|
|
4464
4436
|
},
|
|
4437
|
+
stateViewActive,
|
|
4438
|
+
asOfMs,
|
|
4465
4439
|
);
|
|
4466
|
-
// Convert
|
|
4467
|
-
//
|
|
4468
|
-
//
|
|
4469
|
-
// Cap AFTER boosting so boosted-but-recency-ranked memories can surface.
|
|
4470
|
-
// Pass a pre-populated memoryByPath so boostSearchResults skips redundant
|
|
4471
|
-
// disk reads for files already loaded by readAllMemoriesForNamespaces.
|
|
4440
|
+
// Convert to QmdSearchResult with recency baseline, then boost so
|
|
4441
|
+
// temporal/tag boosts match the QMD path. Cap AFTER boosting, and
|
|
4442
|
+
// pass a pre-populated memoryByPath to skip redundant disk reads.
|
|
4472
4443
|
const queryAwareScopedMemories = queryAwarePrefilter.candidatePaths
|
|
4473
4444
|
? activeMemories.filter((memory) =>
|
|
4474
4445
|
queryAwarePrefilter.candidatePaths?.has(memory.path),
|
|
@@ -4482,6 +4453,7 @@ export class RecallInternalCoordinator {
|
|
|
4482
4453
|
options.xrayCapture === true ? { partition: null } : undefined;
|
|
4483
4454
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4484
4455
|
prompt: retrievalQuery,
|
|
4456
|
+
stateViewActive,
|
|
4485
4457
|
recallNamespaces,
|
|
4486
4458
|
recallResultLimit,
|
|
4487
4459
|
recallMode,
|
|
@@ -4517,6 +4489,8 @@ export class RecallInternalCoordinator {
|
|
|
4517
4489
|
injectedChars: identityInjectedChars,
|
|
4518
4490
|
truncated: identityInjectionTruncated,
|
|
4519
4491
|
},
|
|
4492
|
+
stateViewActive,
|
|
4493
|
+
asOfMs,
|
|
4520
4494
|
trustByPath: recallTrustByPath,
|
|
4521
4495
|
});
|
|
4522
4496
|
recalledMemoryPaths = longTerm
|
|
@@ -4554,7 +4528,7 @@ export class RecallInternalCoordinator {
|
|
|
4554
4528
|
recallNamespaces,
|
|
4555
4529
|
retrievalQuery,
|
|
4556
4530
|
preloadedMap,
|
|
4557
|
-
{ asOfMs, requestingConnector: options.sourceConnector },
|
|
4531
|
+
{ asOfMs, stateViewActive, requestingConnector: options.sourceConnector },
|
|
4558
4532
|
)
|
|
4559
4533
|
).sort((a, b) => b.score - a.score);
|
|
4560
4534
|
// MMR runs on the pre-truncation pool so diverse candidates just
|
|
@@ -4644,6 +4618,8 @@ export class RecallInternalCoordinator {
|
|
|
4644
4618
|
injectedChars: identityInjectedChars,
|
|
4645
4619
|
truncated: identityInjectionTruncated,
|
|
4646
4620
|
},
|
|
4621
|
+
stateViewActive,
|
|
4622
|
+
asOfMs,
|
|
4647
4623
|
trustByPath: recallTrustByPath,
|
|
4648
4624
|
});
|
|
4649
4625
|
recalledMemoryPaths = recent
|
|
@@ -4655,6 +4631,7 @@ export class RecallInternalCoordinator {
|
|
|
4655
4631
|
options.xrayCapture === true ? { partition: null } : undefined;
|
|
4656
4632
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4657
4633
|
prompt: retrievalQuery,
|
|
4634
|
+
stateViewActive,
|
|
4658
4635
|
recallNamespaces,
|
|
4659
4636
|
recallResultLimit,
|
|
4660
4637
|
recallMode,
|
|
@@ -4697,6 +4674,8 @@ export class RecallInternalCoordinator {
|
|
|
4697
4674
|
injectedChars: identityInjectedChars,
|
|
4698
4675
|
truncated: identityInjectionTruncated,
|
|
4699
4676
|
},
|
|
4677
|
+
stateViewActive,
|
|
4678
|
+
asOfMs,
|
|
4700
4679
|
trustByPath: recallTrustByPath,
|
|
4701
4680
|
});
|
|
4702
4681
|
recalledMemoryPaths = longTerm
|
|
@@ -4711,6 +4690,7 @@ export class RecallInternalCoordinator {
|
|
|
4711
4690
|
options.xrayCapture === true ? { partition: null } : undefined;
|
|
4712
4691
|
const longTerm = await this.deps.applyColdFallbackPipeline({
|
|
4713
4692
|
prompt: retrievalQuery,
|
|
4693
|
+
stateViewActive,
|
|
4714
4694
|
recallNamespaces,
|
|
4715
4695
|
recallResultLimit,
|
|
4716
4696
|
recallMode,
|
|
@@ -4752,6 +4732,8 @@ export class RecallInternalCoordinator {
|
|
|
4752
4732
|
injectedChars: identityInjectedChars,
|
|
4753
4733
|
truncated: identityInjectionTruncated,
|
|
4754
4734
|
},
|
|
4735
|
+
stateViewActive,
|
|
4736
|
+
asOfMs,
|
|
4755
4737
|
trustByPath: recallTrustByPath,
|
|
4756
4738
|
});
|
|
4757
4739
|
recalledMemoryPaths = longTerm
|
|
@@ -5050,8 +5032,8 @@ export class RecallInternalCoordinator {
|
|
|
5050
5032
|
// Build a path → QmdSearchResult index so we can pull per-result
|
|
5051
5033
|
// explain data (e.g. reinforcementBoost) from the result that
|
|
5052
5034
|
// boostSearchResults annotated before surfacing to xray.
|
|
5053
|
-
const xrayResultByPath =
|
|
5054
|
-
xrayRecalledResults
|
|
5035
|
+
const xrayResultByPath = indexStateViewAnnotatedResults(
|
|
5036
|
+
xrayRecalledResults, retrievalQuery, this.deps.config, stateViewActive, asOfMs,
|
|
5055
5037
|
);
|
|
5056
5038
|
const results: RecallXrayResult[] = [];
|
|
5057
5039
|
for (let xrayIdx = 0; xrayIdx < recalledMemoryPaths.length; xrayIdx += 1) {
|
|
@@ -5109,6 +5091,7 @@ export class RecallInternalCoordinator {
|
|
|
5109
5091
|
servedBy,
|
|
5110
5092
|
scoreDecomposition,
|
|
5111
5093
|
admittedBy: [],
|
|
5094
|
+
...(xrayResult?.stateLabel ? { stateView: xrayResult.stateLabel } : {}),
|
|
5112
5095
|
...(xrayResult?.pathNodeIds ? { pathNodeIds: xrayResult.pathNodeIds } : {}),
|
|
5113
5096
|
...(typeof xrayResult?.pathPenaltyApplied === "boolean"
|
|
5114
5097
|
? { pathPenaltyApplied: xrayResult.pathPenaltyApplied }
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import { buildHandleIndexForResults } from "../recall-handles.js";
|
|
21
|
+
import { formatSupersededPrefix } from "../recall-state-view.js";
|
|
21
22
|
import path from "node:path";
|
|
22
23
|
import { renderAuthorityBoundContent } from "../recall-context-composition.js";
|
|
23
24
|
import { renderEpistemicHedge } from "../trust-score.js";
|
|
@@ -215,8 +216,17 @@ export class RecallResultFormatter {
|
|
|
215
216
|
const snippetBody = r.snippet
|
|
216
217
|
? r.snippet.slice(0, 500).replace(/\n/g, " ")
|
|
217
218
|
: "(no preview)";
|
|
219
|
+
// Historical-prefix contract (issue #1952): only a labeled superseded
|
|
220
|
+
// row gets `[superseded <date> by <id>]`; every other row — and every
|
|
221
|
+
// render with the feature off — stays byte-identical.
|
|
222
|
+
const statePrefix =
|
|
223
|
+
(r.stateLabel === "historical" || r.stateLabel === "transition") &&
|
|
224
|
+
r.supersededAt &&
|
|
225
|
+
r.supersededBy
|
|
226
|
+
? `${formatSupersededPrefix(r.supersededAt, r.supersededBy)} `
|
|
227
|
+
: "";
|
|
218
228
|
const snippet = renderAuthorityBoundContent(
|
|
219
|
-
snippetBody
|
|
229
|
+
`${statePrefix}${snippetBody}`,
|
|
220
230
|
r.origin,
|
|
221
231
|
{
|
|
222
232
|
enabled: this.originAuthorityEnabled,
|