@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
package/dist/who-knows.js
CHANGED
|
@@ -9,35 +9,36 @@ import {
|
|
|
9
9
|
loadWhoKnowsEntities,
|
|
10
10
|
tokenizeTopic,
|
|
11
11
|
validateWhoKnowsInput
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-UHVXE24Y.js";
|
|
12
|
+
} from "./chunk-UEZKN6VR.js";
|
|
13
|
+
import "./chunk-ZMKYCFJ7.js";
|
|
15
14
|
import "./chunk-46WM6JX2.js";
|
|
15
|
+
import "./chunk-UHVXE24Y.js";
|
|
16
16
|
import "./chunk-D5F7TKMH.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-6YAIN5XJ.js";
|
|
18
|
+
import "./chunk-4JVQRFZD.js";
|
|
19
|
+
import "./chunk-TNSCIPBQ.js";
|
|
19
20
|
import "./chunk-YQNNHLCG.js";
|
|
20
21
|
import "./chunk-6KTXE6A3.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-CYEPCZN5.js";
|
|
24
|
-
import "./chunk-ZNJSBIP4.js";
|
|
25
|
-
import "./chunk-GUMZC2BO.js";
|
|
22
|
+
import "./chunk-BD7JTBYP.js";
|
|
23
|
+
import "./chunk-OB3XMWX5.js";
|
|
26
24
|
import "./chunk-4O6WRBGE.js";
|
|
27
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-GUMZC2BO.js";
|
|
26
|
+
import "./chunk-CYEPCZN5.js";
|
|
27
|
+
import "./chunk-TFA6HPOA.js";
|
|
28
|
+
import "./chunk-F4TWWUMP.js";
|
|
28
29
|
import "./chunk-72A4L5JJ.js";
|
|
29
30
|
import "./chunk-A7Q43EUZ.js";
|
|
30
|
-
import "./chunk-ET356KSB.js";
|
|
31
31
|
import "./chunk-S2V7RUCL.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-PCEYGOSL.js";
|
|
33
|
+
import "./chunk-Q6LCCIZN.js";
|
|
33
34
|
import "./chunk-SCU65EZI.js";
|
|
34
35
|
import "./chunk-MRPOZBJC.js";
|
|
35
36
|
import "./chunk-S2HLHAZ4.js";
|
|
36
37
|
import "./chunk-DM2T26WE.js";
|
|
37
38
|
import "./chunk-LDXUBPMO.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-S2ULTQZR.js";
|
|
39
40
|
import "./chunk-AAD2ZS6P.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-SHEHQBCG.js";
|
|
41
42
|
import "./chunk-3ONXXHQO.js";
|
|
42
43
|
import "./chunk-YXZG5TVN.js";
|
|
43
44
|
import "./chunk-5GINB5LC.js";
|
|
@@ -49,24 +50,21 @@ import "./chunk-RBOJCG4T.js";
|
|
|
49
50
|
import "./chunk-R7QY5ZVB.js";
|
|
50
51
|
import "./chunk-5WITETWU.js";
|
|
51
52
|
import "./chunk-6CIAGZ6X.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-3CBI2ZSA.js";
|
|
53
54
|
import "./chunk-JXN77SGO.js";
|
|
54
55
|
import "./chunk-ZLQ37WJX.js";
|
|
55
56
|
import "./chunk-IUM3VSHI.js";
|
|
56
|
-
import "./chunk-3QQTXYZ6.js";
|
|
57
|
-
import "./chunk-BT7NVCML.js";
|
|
58
57
|
import "./chunk-C64XATK7.js";
|
|
59
58
|
import "./chunk-42JKGUFJ.js";
|
|
60
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-YEN4TREG.js";
|
|
61
60
|
import "./chunk-I55KAVET.js";
|
|
62
61
|
import "./chunk-L2EXJQJP.js";
|
|
63
62
|
import "./chunk-45GF7Y3V.js";
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-N7RWREIQ.js";
|
|
63
|
+
import "./chunk-65RENJGB.js";
|
|
66
64
|
import "./chunk-353KGBKY.js";
|
|
67
65
|
import "./chunk-ZIKENA2C.js";
|
|
68
|
-
import "./chunk-VYCOJKSX.js";
|
|
69
66
|
import "./chunk-6Q3ZTEF6.js";
|
|
67
|
+
import "./chunk-RGMVMVMF.js";
|
|
70
68
|
import "./chunk-W5BIQOAJ.js";
|
|
71
69
|
import "./chunk-Z7L72ZHL.js";
|
|
72
70
|
import "./chunk-4O4TKIXQ.js";
|
|
@@ -80,20 +78,23 @@ import "./chunk-AL3UYZ5N.js";
|
|
|
80
78
|
import "./chunk-RL6NEVXT.js";
|
|
81
79
|
import "./chunk-C7HJ3NEI.js";
|
|
82
80
|
import "./chunk-7RJUVTVF.js";
|
|
81
|
+
import "./chunk-PWPIERBM.js";
|
|
82
|
+
import "./chunk-BJMBJZ2Y.js";
|
|
83
|
+
import "./chunk-UKJAGEXH.js";
|
|
84
|
+
import "./chunk-FP2373TW.js";
|
|
85
|
+
import "./chunk-LSLCFCCQ.js";
|
|
86
|
+
import "./chunk-BT7NVCML.js";
|
|
87
|
+
import "./chunk-VYCOJKSX.js";
|
|
83
88
|
import "./chunk-NB3LRY4T.js";
|
|
84
89
|
import "./chunk-5FVVY2EB.js";
|
|
85
90
|
import "./chunk-FFAZ2XFU.js";
|
|
86
|
-
import "./chunk-EEOUMG3J.js";
|
|
87
91
|
import "./chunk-JDSVLVCG.js";
|
|
88
92
|
import "./chunk-5GKPFL3S.js";
|
|
89
93
|
import "./chunk-JAKIDQB2.js";
|
|
90
|
-
import "./chunk-BJMBJZ2Y.js";
|
|
91
|
-
import "./chunk-UKJAGEXH.js";
|
|
92
|
-
import "./chunk-FP2373TW.js";
|
|
93
94
|
import "./chunk-P7FMDTKL.js";
|
|
94
95
|
import "./chunk-VUFL7X3H.js";
|
|
95
96
|
import "./chunk-JUOZ62Y7.js";
|
|
96
|
-
import "./chunk-
|
|
97
|
+
import "./chunk-ZEFVK7XC.js";
|
|
97
98
|
import "./chunk-6KH5NLQS.js";
|
|
98
99
|
import "./chunk-P2QRMMVQ.js";
|
|
99
100
|
import "./chunk-2Z24E5W2.js";
|
package/dist/write-envelope.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { u as MemoryCategory, N as MemorySubject } from './types-BGxTvLBO.js';
|
|
2
2
|
import './message-parts/index.js';
|
|
3
3
|
import './bounded-jsonl-state.js';
|
|
4
4
|
import './operator-doctor-types.js';
|
|
5
5
|
import './external-wiki-config.js';
|
|
6
|
+
import './recall-state-view.js';
|
|
6
7
|
import './contradiction-config.js';
|
|
7
8
|
import './graph-path-scoring-config.js';
|
|
8
9
|
import './deep-recall-config.js';
|
|
@@ -100,6 +101,7 @@ declare const STRUCTURED_ATTRIBUTE_LIMITS: Readonly<{
|
|
|
100
101
|
/** Maximum length of one attribute value. */
|
|
101
102
|
maxValueLength: 1024;
|
|
102
103
|
}>;
|
|
104
|
+
declare const MEMORY_CATEGORY_NAMES: string[];
|
|
103
105
|
declare function isMemoryCategory(value: string): value is MemoryCategory;
|
|
104
106
|
declare const sealed: unique symbol;
|
|
105
107
|
/**
|
|
@@ -294,4 +296,4 @@ interface ObserveFingerprintParts {
|
|
|
294
296
|
*/
|
|
295
297
|
declare function buildObserveRequestFingerprint(parts: ObserveFingerprintParts): Record<string, unknown>;
|
|
296
298
|
|
|
297
|
-
export { type AccessWriteFingerprintParts, type ComposeEnvelopeOptions, FINGERPRINT_EXEMPT_FIELDS, FINGERPRINT_SCOPE_FIELDS, type FingerprintScope, type MemoryWriteInput, type ObserveFingerprintParts, STRUCTURED_ATTRIBUTE_LIMITS, type SealedMemoryEnvelope, TAG_LIMITS, WRITE_FINGERPRINT_FIELDS, type WriteContext, buildAccessWriteRequestFingerprint, buildObserveRequestFingerprint, buildWriteIdempotencyPayload, composeMemoryEnvelope, isMemoryCategory, isSealedMemoryEnvelope, sealedWriteToLegacyArgs };
|
|
299
|
+
export { type AccessWriteFingerprintParts, type ComposeEnvelopeOptions, FINGERPRINT_EXEMPT_FIELDS, FINGERPRINT_SCOPE_FIELDS, type FingerprintScope, MEMORY_CATEGORY_NAMES, type MemoryWriteInput, type ObserveFingerprintParts, STRUCTURED_ATTRIBUTE_LIMITS, type SealedMemoryEnvelope, TAG_LIMITS, WRITE_FINGERPRINT_FIELDS, type WriteContext, buildAccessWriteRequestFingerprint, buildObserveRequestFingerprint, buildWriteIdempotencyPayload, composeMemoryEnvelope, isMemoryCategory, isSealedMemoryEnvelope, sealedWriteToLegacyArgs };
|
package/dist/write-envelope.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FINGERPRINT_EXEMPT_FIELDS,
|
|
3
3
|
FINGERPRINT_SCOPE_FIELDS,
|
|
4
|
+
MEMORY_CATEGORY_NAMES,
|
|
4
5
|
STRUCTURED_ATTRIBUTE_LIMITS,
|
|
5
6
|
TAG_LIMITS,
|
|
6
7
|
WRITE_FINGERPRINT_FIELDS,
|
|
@@ -11,7 +12,7 @@ import {
|
|
|
11
12
|
isMemoryCategory,
|
|
12
13
|
isSealedMemoryEnvelope,
|
|
13
14
|
sealedWriteToLegacyArgs
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LSLCFCCQ.js";
|
|
15
16
|
import "./chunk-BT7NVCML.js";
|
|
16
17
|
import "./chunk-VYCOJKSX.js";
|
|
17
18
|
import "./chunk-NB3LRY4T.js";
|
|
@@ -30,6 +31,7 @@ import "./chunk-PZ5AY32C.js";
|
|
|
30
31
|
export {
|
|
31
32
|
FINGERPRINT_EXEMPT_FIELDS,
|
|
32
33
|
FINGERPRINT_SCOPE_FIELDS,
|
|
34
|
+
MEMORY_CATEGORY_NAMES,
|
|
33
35
|
STRUCTURED_ATTRIBUTE_LIMITS,
|
|
34
36
|
TAG_LIMITS,
|
|
35
37
|
WRITE_FINGERPRINT_FIELDS,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.69.
|
|
3
|
+
"version": "9.69.34",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
"remnic-source": "./src/index.ts",
|
|
12
12
|
"import": "./dist/index.js"
|
|
13
13
|
},
|
|
14
|
+
"./activity/digest": {
|
|
15
|
+
"types": "./dist/activity/digest.d.ts",
|
|
16
|
+
"remnic-source": "./src/activity/digest.ts",
|
|
17
|
+
"import": "./dist/activity/digest.js"
|
|
18
|
+
},
|
|
19
|
+
"./activity/digest.js": {
|
|
20
|
+
"types": "./dist/activity/digest.d.ts",
|
|
21
|
+
"remnic-source": "./src/activity/digest.ts",
|
|
22
|
+
"import": "./dist/activity/digest.js"
|
|
23
|
+
},
|
|
14
24
|
"./maintenance/atomic-file": {
|
|
15
25
|
"types": "./dist/maintenance/atomic-file.d.ts",
|
|
16
26
|
"remnic-source": "./src/maintenance/atomic-file.ts",
|
|
@@ -3247,7 +3257,7 @@
|
|
|
3247
3257
|
"core"
|
|
3248
3258
|
],
|
|
3249
3259
|
"peerDependencies": {
|
|
3250
|
-
"@remnic/coding-graph": "^9.69.
|
|
3260
|
+
"@remnic/coding-graph": "^9.69.34"
|
|
3251
3261
|
},
|
|
3252
3262
|
"peerDependenciesMeta": {
|
|
3253
3263
|
"@remnic/coding-graph": {
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #2780: remnic_memory_store category ergonomics.
|
|
3
|
+
*
|
|
4
|
+
* Fleet callers repeatedly guess project-shaped categories; the valid
|
|
5
|
+
* category set contains no project-shaped name. The boundary schema admits
|
|
6
|
+
* exactly the four spellings telemetry shows (project, project_state,
|
|
7
|
+
* project-state, project_update); the write-surface funnel coerces them to
|
|
8
|
+
* the canonical "fact" and the response reports the coercion so callers
|
|
9
|
+
* learn. Every other spelling — including near-misses like projection or
|
|
10
|
+
* project_typo — rejects with the full valid list plus a "use fact" hint.
|
|
11
|
+
* An idempotent replay of an aliased write recomputes the coercion note
|
|
12
|
+
* from the CURRENT request's spelling while the stored result is reused.
|
|
13
|
+
*
|
|
14
|
+
* All fixtures are synthetic — no real user data.
|
|
15
|
+
*/
|
|
16
|
+
import assert from "node:assert/strict";
|
|
17
|
+
import { mkdtemp, rm } from "node:fs/promises";
|
|
18
|
+
import { tmpdir } from "node:os";
|
|
19
|
+
import path from "node:path";
|
|
20
|
+
import test from "node:test";
|
|
21
|
+
|
|
22
|
+
import { memoryStoreRequestSchema, type MemoryStoreRequest, type SuggestionSubmitRequest } from "./access-schema.js";
|
|
23
|
+
import { EngramAccessService } from "./access-service.js";
|
|
24
|
+
import { Orchestrator } from "./orchestrator.js";
|
|
25
|
+
import type { SealedMemoryEnvelope } from "./write-envelope.js";
|
|
26
|
+
import { MEMORY_CATEGORY_NAMES } from "./write-envelope.js";
|
|
27
|
+
import type { CodingContext, PluginConfig } from "./types.js";
|
|
28
|
+
|
|
29
|
+
const PROJECT_ALIASES = ["project", "project_state", "project-state", "project_update"] as const;
|
|
30
|
+
function makeService(persisted: { category?: string; writes?: number }, memoryDir?: string): EngramAccessService {
|
|
31
|
+
const orch = Object.create(Orchestrator.prototype) as Orchestrator;
|
|
32
|
+
const internals = orch as unknown as {
|
|
33
|
+
config: PluginConfig;
|
|
34
|
+
_codingContextBySession: Map<string, CodingContext>;
|
|
35
|
+
};
|
|
36
|
+
internals.config = {
|
|
37
|
+
namespacesEnabled: false,
|
|
38
|
+
defaultNamespace: "default",
|
|
39
|
+
memoryDir: memoryDir ?? "/synthetic/remnic-2780",
|
|
40
|
+
} as unknown as PluginConfig;
|
|
41
|
+
internals._codingContextBySession = new Map();
|
|
42
|
+
orch.getStorage = async () =>
|
|
43
|
+
({
|
|
44
|
+
readAllMemories: async () => [],
|
|
45
|
+
writeSealedMemory: async (envelope: SealedMemoryEnvelope) => {
|
|
46
|
+
persisted.category = envelope.category;
|
|
47
|
+
persisted.writes = (persisted.writes ?? 0) + 1;
|
|
48
|
+
return { id: "mem-2780", tombstoneBlocked: false };
|
|
49
|
+
},
|
|
50
|
+
appendMemoryLifecycleEvents: async () => {},
|
|
51
|
+
}) as never;
|
|
52
|
+
return new EngramAccessService(orch);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
test("project-shaped category aliases store as fact and the response reports the coercion (#2780)", async () => {
|
|
56
|
+
const dir = await mkdtemp(path.join(tmpdir(), "remnic-2780-"));
|
|
57
|
+
try {
|
|
58
|
+
const persisted: { category?: string } = {};
|
|
59
|
+
const service = makeService(persisted);
|
|
60
|
+
for (const alias of PROJECT_ALIASES) {
|
|
61
|
+
const request = memoryStoreRequestSchema.parse({
|
|
62
|
+
sessionKey: "s-2780",
|
|
63
|
+
content: "durable synthetic memory content for alias tests",
|
|
64
|
+
category: alias,
|
|
65
|
+
confidence: 0.9,
|
|
66
|
+
});
|
|
67
|
+
const response = await service.memoryStore(request);
|
|
68
|
+
assert.equal(response.status, "stored", `${alias} must store, not queue`);
|
|
69
|
+
assert.equal(response.memoryId, "mem-2780");
|
|
70
|
+
assert.equal(persisted.category, "fact", `${alias} must persist as the canonical "fact"`);
|
|
71
|
+
assert.deepEqual(
|
|
72
|
+
response.categoryCoercion,
|
|
73
|
+
{ from: alias, to: "fact" },
|
|
74
|
+
`${alias} response must name the original value and the canonical category`,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
} finally {
|
|
78
|
+
await rm(dir, { recursive: true, force: true });
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test("dryRun reports the coercion without persisting (#2780)", async () => {
|
|
83
|
+
const persisted: { category?: string } = {};
|
|
84
|
+
const service = makeService(persisted);
|
|
85
|
+
const request = memoryStoreRequestSchema.parse({
|
|
86
|
+
sessionKey: "s-2780-dry",
|
|
87
|
+
content: "durable synthetic memory content for alias tests",
|
|
88
|
+
category: "project_state",
|
|
89
|
+
dryRun: true,
|
|
90
|
+
});
|
|
91
|
+
const response = await service.memoryStore(request);
|
|
92
|
+
assert.equal(response.status, "validated");
|
|
93
|
+
assert.deepEqual(response.categoryCoercion, { from: "project_state", to: "fact" });
|
|
94
|
+
assert.equal(persisted.category, undefined, "dryRun must not persist");
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test("valid categories pass through unchanged with no coercion note (#2780)", async () => {
|
|
98
|
+
const persisted: { category?: string } = {};
|
|
99
|
+
const service = makeService(persisted);
|
|
100
|
+
for (const category of MEMORY_CATEGORY_NAMES) {
|
|
101
|
+
const parsed = memoryStoreRequestSchema.parse({
|
|
102
|
+
sessionKey: "s-2780-valid",
|
|
103
|
+
content: "durable synthetic memory content for alias tests",
|
|
104
|
+
category,
|
|
105
|
+
dryRun: true,
|
|
106
|
+
});
|
|
107
|
+
assert.equal(parsed.category, category);
|
|
108
|
+
const response = await service.memoryStore(parsed);
|
|
109
|
+
assert.equal(response.status, "validated");
|
|
110
|
+
assert.equal(
|
|
111
|
+
response.categoryCoercion,
|
|
112
|
+
undefined,
|
|
113
|
+
`${category} is canonical and must never carry a coercion note`,
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
test("near-miss project spellings reject naming the valid set and the fact hint (#2780 fix A)", () => {
|
|
119
|
+
// Only the four telemetry-attested spellings coerce; everything else —
|
|
120
|
+
// including regex-shaped near-misses — must reject with the full list.
|
|
121
|
+
for (const bad of [
|
|
122
|
+
"vibe",
|
|
123
|
+
"Project_State",
|
|
124
|
+
"project state",
|
|
125
|
+
"",
|
|
126
|
+
"projection",
|
|
127
|
+
"projectile",
|
|
128
|
+
"project_typo",
|
|
129
|
+
"projections",
|
|
130
|
+
]) {
|
|
131
|
+
assert.throws(
|
|
132
|
+
() =>
|
|
133
|
+
memoryStoreRequestSchema.parse({
|
|
134
|
+
sessionKey: "s-2780-bad",
|
|
135
|
+
content: "durable synthetic memory content for alias tests",
|
|
136
|
+
category: bad,
|
|
137
|
+
dryRun: true,
|
|
138
|
+
}),
|
|
139
|
+
(err: unknown) => {
|
|
140
|
+
assert.ok(err instanceof Error, `${JSON.stringify(bad)} must reject with an error`);
|
|
141
|
+
assert.match(err.message, /must be one of: /, "error must name the valid categories");
|
|
142
|
+
for (const valid of MEMORY_CATEGORY_NAMES) {
|
|
143
|
+
assert.match(err.message, new RegExp(`\\b${valid}\\b`), `error must list ${valid}`);
|
|
144
|
+
}
|
|
145
|
+
assert.match(err.message, /for project state\/facts use/, "error must carry the hint");
|
|
146
|
+
return true;
|
|
147
|
+
},
|
|
148
|
+
`${JSON.stringify(bad)} must be rejected, not coerced`,
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
test("suggestion_submit coerces project-shaped aliases the same way (#2780)", async () => {
|
|
154
|
+
const persisted: { category?: string } = {};
|
|
155
|
+
const service = makeService(persisted);
|
|
156
|
+
const request = memoryStoreRequestSchema.parse({
|
|
157
|
+
sessionKey: "s-2780-sug",
|
|
158
|
+
content: "durable synthetic suggestion content for alias tests",
|
|
159
|
+
category: "project_update",
|
|
160
|
+
dryRun: true,
|
|
161
|
+
});
|
|
162
|
+
const response = await service.suggestionSubmit(request);
|
|
163
|
+
assert.equal(response.status, "validated");
|
|
164
|
+
assert.deepEqual(response.categoryCoercion, { from: "project_update", to: "fact" });
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
test("idempotent replay recomputes the coercion note from the current request's spelling (#2780 fix B)", async () => {
|
|
168
|
+
const dir = await mkdtemp(path.join(tmpdir(), "remnic-2780-replay-"));
|
|
169
|
+
try {
|
|
170
|
+
const persisted: { category?: string; writes?: number } = {};
|
|
171
|
+
const service = makeService(persisted, dir);
|
|
172
|
+
const base = {
|
|
173
|
+
sessionKey: "s-2780-replay",
|
|
174
|
+
content: "durable synthetic memory content for alias tests",
|
|
175
|
+
confidence: 0.9,
|
|
176
|
+
idempotencyKey: "idem-2780",
|
|
177
|
+
};
|
|
178
|
+
const first = await service.memoryStore(memoryStoreRequestSchema.parse({ ...base, category: "project_state" }));
|
|
179
|
+
assert.equal(first.status, "stored");
|
|
180
|
+
assert.deepEqual(first.categoryCoercion, { from: "project_state", to: "fact" });
|
|
181
|
+
assert.equal(persisted.writes, 1);
|
|
182
|
+
|
|
183
|
+
const second = await service.memoryStore(memoryStoreRequestSchema.parse({ ...base, category: "project-state" }));
|
|
184
|
+
assert.equal(second.idempotencyReplay, true, "same key + equivalent alias must replay, not re-store");
|
|
185
|
+
assert.deepEqual(
|
|
186
|
+
second.categoryCoercion,
|
|
187
|
+
{ from: "project-state", to: "fact" },
|
|
188
|
+
"replay must name THIS request's spelling, not the stored one",
|
|
189
|
+
);
|
|
190
|
+
assert.equal(second.memoryId, first.memoryId, "replay must reuse the stored result id");
|
|
191
|
+
assert.equal(persisted.writes, 1, "replay must not persist again");
|
|
192
|
+
} finally {
|
|
193
|
+
await rm(dir, { recursive: true, force: true });
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
test("MemoryStoreRequest and SuggestionSubmitRequest category are finite canonical unions (compile-time)", () => {
|
|
197
|
+
const invalidMemoryStore: MemoryStoreRequest = {
|
|
198
|
+
content: "durable synthetic content for type test",
|
|
199
|
+
// @ts-expect-error "projection" near-miss is rejected at compile time
|
|
200
|
+
category: "projection",
|
|
201
|
+
};
|
|
202
|
+
void invalidMemoryStore;
|
|
203
|
+
|
|
204
|
+
const invalidSuggestion: SuggestionSubmitRequest = {
|
|
205
|
+
content: "durable synthetic content for type test",
|
|
206
|
+
// @ts-expect-error "projection" near-miss is rejected at compile time
|
|
207
|
+
category: "projection",
|
|
208
|
+
};
|
|
209
|
+
void invalidSuggestion;
|
|
210
|
+
|
|
211
|
+
const validMemoryStore: MemoryStoreRequest = {
|
|
212
|
+
content: "durable synthetic content for type test",
|
|
213
|
+
category: "fact",
|
|
214
|
+
};
|
|
215
|
+
assert.equal(validMemoryStore.category, "fact");
|
|
216
|
+
});
|
package/src/access-mcp.test.ts
CHANGED
|
@@ -263,6 +263,79 @@ test("MCP memory write tools reject malformed arguments before dispatch", async
|
|
|
263
263
|
}
|
|
264
264
|
});
|
|
265
265
|
|
|
266
|
+
test("MCP memory write tools admit project-shaped category aliases (#2780)", async () => {
|
|
267
|
+
for (const toolName of ["engram.memory_store", "engram.suggestion_submit"]) {
|
|
268
|
+
let received: Record<string, unknown> | undefined;
|
|
269
|
+
const service = {
|
|
270
|
+
...makeMockService(),
|
|
271
|
+
memoryStore: async (req: Record<string, unknown>) => {
|
|
272
|
+
received = req;
|
|
273
|
+
return {
|
|
274
|
+
schemaVersion: 1,
|
|
275
|
+
operation: "memory_store",
|
|
276
|
+
namespace: "default",
|
|
277
|
+
dryRun: true,
|
|
278
|
+
accepted: true,
|
|
279
|
+
queued: false,
|
|
280
|
+
status: "validated",
|
|
281
|
+
};
|
|
282
|
+
},
|
|
283
|
+
suggestionSubmit: async (req: Record<string, unknown>) => {
|
|
284
|
+
received = req;
|
|
285
|
+
return {
|
|
286
|
+
schemaVersion: 1,
|
|
287
|
+
operation: "suggestion_submit",
|
|
288
|
+
namespace: "default",
|
|
289
|
+
dryRun: true,
|
|
290
|
+
accepted: true,
|
|
291
|
+
queued: false,
|
|
292
|
+
status: "validated",
|
|
293
|
+
};
|
|
294
|
+
},
|
|
295
|
+
} as unknown as EngramAccessService;
|
|
296
|
+
const server = new EngramMcpServer(service);
|
|
297
|
+
|
|
298
|
+
const response = await server.handleRequest(
|
|
299
|
+
makeToolRequest(toolName, {
|
|
300
|
+
content: "valid durable content",
|
|
301
|
+
category: "project_state",
|
|
302
|
+
dryRun: true,
|
|
303
|
+
})
|
|
304
|
+
);
|
|
305
|
+
const result = (response as Record<string, unknown> & { result?: { isError?: boolean } }).result;
|
|
306
|
+
|
|
307
|
+
assert.equal(result?.isError, false, `${toolName} must admit project-shaped category aliases`);
|
|
308
|
+
assert.equal(
|
|
309
|
+
received?.category,
|
|
310
|
+
"project_state",
|
|
311
|
+
`${toolName} must forward the alias; the write surface coerces it to "fact"`
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
test("MCP memory_store invalid category error names valid categories and the fact hint (#2780)", async () => {
|
|
317
|
+
const server = new EngramMcpServer(makeMockService());
|
|
318
|
+
|
|
319
|
+
for (const bad of ["vibe", "projection", "project_typo"]) {
|
|
320
|
+
const response = await server.handleRequest(
|
|
321
|
+
makeToolRequest("engram.memory_store", {
|
|
322
|
+
content: "valid durable content",
|
|
323
|
+
category: bad,
|
|
324
|
+
dryRun: true,
|
|
325
|
+
})
|
|
326
|
+
);
|
|
327
|
+
const result = (response as Record<string, unknown> & {
|
|
328
|
+
result?: { isError?: boolean; content?: Array<{ text?: string }> };
|
|
329
|
+
}).result;
|
|
330
|
+
|
|
331
|
+
assert.equal(result?.isError, true, `${bad} must reject, not coerce`);
|
|
332
|
+
const text = (result?.content ?? []).map((part) => part.text ?? "").join("\n");
|
|
333
|
+
assert.match(text, /must be one of: /, "error must name the valid categories");
|
|
334
|
+
assert.match(text, /reasoning_trace/, "the full valid list must be present");
|
|
335
|
+
assert.match(text, /for project state\/facts use "fact"/, "error must carry the fact hint");
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
|
|
266
339
|
test("MCP write tools accept and forward client-injected cwd/projectTag (#1434)", async () => {
|
|
267
340
|
for (const toolName of ["engram.memory_store", "engram.suggestion_submit"]) {
|
|
268
341
|
let received: Record<string, unknown> | undefined;
|
package/src/access-mcp.ts
CHANGED
|
@@ -543,10 +543,7 @@ export class EngramMcpServer {
|
|
|
543
543
|
topK: { type: "number" },
|
|
544
544
|
mode: { type: "string", enum: ["auto", "no_recall", "minimal", "full", "graph_mode"] },
|
|
545
545
|
includeDebug: { type: "boolean" },
|
|
546
|
-
//
|
|
547
|
-
// omitted. Section/raw payload shaping ships in PR 2; this PR
|
|
548
|
-
// wires the field end-to-end so clients can already pass it
|
|
549
|
-
// without it being silently dropped.
|
|
546
|
+
// Disclosure depth (issue #677); default `chunk` when omitted.
|
|
550
547
|
disclosure: { type: "string", enum: ["chunk", "section", "raw"] },
|
|
551
548
|
cwd: { type: "string", description: "Working directory for auto git-context resolution." },
|
|
552
549
|
projectTag: {
|
|
@@ -566,8 +563,11 @@ export class EngramMcpServer {
|
|
|
566
563
|
tagMatch: {
|
|
567
564
|
type: "string",
|
|
568
565
|
enum: ["any", "all"],
|
|
569
|
-
description:
|
|
570
|
-
|
|
566
|
+
description: "Tag-filter match mode; 'any' (default) or 'all'.",
|
|
567
|
+
},
|
|
568
|
+
stateView: {
|
|
569
|
+
type: "boolean",
|
|
570
|
+
description: "Opt in to state-aware recall views (issue #1952); ORs with the recallStateViews config flag.",
|
|
571
571
|
},
|
|
572
572
|
},
|
|
573
573
|
required: ["query"],
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
NamespaceNotWritableError,
|
|
31
31
|
} from "./access-service.js";
|
|
32
32
|
import { extractionForceFlush } from "./access-extraction-force-flush.js";
|
|
33
|
+
import { coerceProjectCategoryAlias, reapplyCategoryCoercion } from "./access-schema.js";
|
|
33
34
|
import { ObserveTranscriptPersister, observeTranscriptSessionKey } from "./access-observe-transcript.js";
|
|
34
35
|
import { FileCalendarSource, buildBriefing, parseBriefingFocus, parseBriefingWindow } from "./briefing.js";
|
|
35
36
|
import {
|
|
@@ -482,9 +483,13 @@ export class AccessObserveWriteSurface {
|
|
|
482
483
|
}
|
|
483
484
|
|
|
484
485
|
async memoryStore(
|
|
485
|
-
|
|
486
|
+
rawRequest: EngramAccessMemoryStoreRequest,
|
|
486
487
|
hooks?: { enforceWriteQuota?: () => void | Promise<void> }
|
|
487
488
|
): Promise<EngramAccessWriteResponse> {
|
|
489
|
+
// #2780: the boundary schema admits project-shaped category guesses;
|
|
490
|
+
// this funnel (MCP/HTTP/CLI all dispatch here) coerces them to the
|
|
491
|
+
// canonical "fact" once and reports the coercion on the response.
|
|
492
|
+
const { request, categoryCoercion } = coerceProjectCategoryAlias(rawRequest);
|
|
488
493
|
let namespace: string;
|
|
489
494
|
try {
|
|
490
495
|
namespace = await this.deps.resolveCodingScopedWriteNamespace(request);
|
|
@@ -513,6 +518,7 @@ export class AccessObserveWriteSurface {
|
|
|
513
518
|
queued: false,
|
|
514
519
|
status: "validated",
|
|
515
520
|
idempotencyKey: request.idempotencyKey?.trim() || undefined,
|
|
521
|
+
...(categoryCoercion ? { categoryCoercion } : {}),
|
|
516
522
|
};
|
|
517
523
|
}
|
|
518
524
|
const result = await persistExplicitCapture(this.deps.orchestrator, candidate, "memory_store");
|
|
@@ -539,13 +545,14 @@ export class AccessObserveWriteSurface {
|
|
|
539
545
|
memoryId: result.id,
|
|
540
546
|
duplicateOf: result.duplicateOf,
|
|
541
547
|
idempotencyKey: request.idempotencyKey?.trim() || undefined,
|
|
548
|
+
...(categoryCoercion ? { categoryCoercion } : {}),
|
|
542
549
|
};
|
|
543
550
|
log.info(
|
|
544
551
|
`access-write op=memory_store namespace=${namespace} dryRun=false status=${response.status} memoryId=${response.memoryId ?? "-"} idempotency=${response.idempotencyKey ? "yes" : "no"}`
|
|
545
552
|
);
|
|
546
553
|
return response;
|
|
547
554
|
};
|
|
548
|
-
|
|
555
|
+
const response = await this.deps.handleIdempotentWrite({
|
|
549
556
|
operation: "memory_store",
|
|
550
557
|
idempotencyKey: request.idempotencyKey,
|
|
551
558
|
// Shared builder (issue #1989 PR3): byte-parity with the historical
|
|
@@ -566,12 +573,16 @@ export class AccessObserveWriteSurface {
|
|
|
566
573
|
beforeExecute: hooks?.enforceWriteQuota,
|
|
567
574
|
execute,
|
|
568
575
|
});
|
|
576
|
+
// #2780 fix B: rewrite a replayed coercion note from THIS request's raw category.
|
|
577
|
+
return reapplyCategoryCoercion(response, categoryCoercion);
|
|
569
578
|
}
|
|
570
579
|
|
|
571
580
|
async suggestionSubmit(
|
|
572
|
-
|
|
581
|
+
rawRequest: EngramAccessSuggestionSubmitRequest,
|
|
573
582
|
hooks?: { enforceWriteQuota?: () => void | Promise<void> }
|
|
574
583
|
): Promise<EngramAccessWriteResponse> {
|
|
584
|
+
// #2780: same alias funnel as memory_store — one shared coercion point.
|
|
585
|
+
const { request, categoryCoercion } = coerceProjectCategoryAlias(rawRequest);
|
|
575
586
|
let namespace: string;
|
|
576
587
|
try {
|
|
577
588
|
namespace = await this.deps.resolveCodingScopedWriteNamespace(request);
|
|
@@ -599,6 +610,7 @@ export class AccessObserveWriteSurface {
|
|
|
599
610
|
queued: true,
|
|
600
611
|
status: "validated",
|
|
601
612
|
idempotencyKey: request.idempotencyKey?.trim() || undefined,
|
|
613
|
+
...(categoryCoercion ? { categoryCoercion } : {}),
|
|
602
614
|
};
|
|
603
615
|
}
|
|
604
616
|
const result = await queueExplicitCaptureForReview(
|
|
@@ -622,13 +634,14 @@ export class AccessObserveWriteSurface {
|
|
|
622
634
|
memoryId: result.id,
|
|
623
635
|
duplicateOf: result.duplicateOf,
|
|
624
636
|
idempotencyKey: request.idempotencyKey?.trim() || undefined,
|
|
637
|
+
...(categoryCoercion ? { categoryCoercion } : {}),
|
|
625
638
|
};
|
|
626
639
|
log.info(
|
|
627
640
|
`access-write op=suggestion_submit namespace=${namespace} dryRun=false status=${response.status} memoryId=${response.memoryId ?? "-"} idempotency=${response.idempotencyKey ? "yes" : "no"}`
|
|
628
641
|
);
|
|
629
642
|
return response;
|
|
630
643
|
};
|
|
631
|
-
|
|
644
|
+
const replayed = await this.deps.handleIdempotentWrite({
|
|
632
645
|
operation: "suggestion_submit",
|
|
633
646
|
idempotencyKey: request.idempotencyKey,
|
|
634
647
|
// Shared builder (issue #1989 PR3): byte-parity with the historical
|
|
@@ -649,6 +662,8 @@ export class AccessObserveWriteSurface {
|
|
|
649
662
|
beforeExecute: hooks?.enforceWriteQuota,
|
|
650
663
|
execute,
|
|
651
664
|
});
|
|
665
|
+
// #2780 fix B: rewrite a replayed coercion note from THIS request's raw category.
|
|
666
|
+
return reapplyCategoryCoercion(replayed, categoryCoercion);
|
|
652
667
|
}
|
|
653
668
|
|
|
654
669
|
async runObserve(request: EngramAccessObserveRequest): Promise<EngramAccessObserveResponse> {
|