@remnic/core 9.45.3 → 9.45.5
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/abort-error.d.ts +2 -1
- package/dist/abort-error.js +3 -1
- package/dist/access-admin-ops-surface.d.ts +14 -10
- package/dist/access-admin-ops-surface.js +84 -75
- package/dist/access-audit.js +2 -2
- package/dist/access-authorization-probe.d.ts +14 -10
- package/dist/access-authorization-probe.js +85 -76
- package/dist/access-boundary.d.ts +15 -11
- package/dist/access-boundary.js +84 -75
- package/dist/access-citation-namespace.js +2 -2
- package/dist/access-cli.js +191 -177
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +16 -0
- package/dist/access-coding-context-resolution.js +13 -0
- package/dist/access-coding-context-resolution.js.map +1 -0
- package/dist/access-extraction-force-flush.d.ts +14 -10
- package/dist/access-extraction-force-flush.js +84 -75
- package/dist/access-health-types.d.ts +2 -1
- package/dist/access-http-lcm-compaction.d.ts +16 -12
- package/dist/access-http-lcm-compaction.js +3 -3
- package/dist/access-http-lifecycle-flush.d.ts +14 -10
- package/dist/access-http-lifecycle-flush.js +2 -2
- package/dist/access-http-offline-stream.d.ts +123 -0
- package/dist/access-http-offline-stream.js +10 -0
- package/dist/access-http-offline-stream.js.map +1 -0
- package/dist/access-http-query.js +84 -75
- package/dist/access-http.d.ts +15 -11
- package/dist/access-http.js +104 -90
- package/dist/access-identity-continuity-surface.d.ts +9 -8
- package/dist/access-identity-continuity-surface.js +84 -75
- package/dist/access-lcm-surface.d.ts +14 -10
- package/dist/access-lcm-surface.js +84 -75
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts +14 -10
- package/dist/access-mcp.js +95 -82
- package/dist/access-memory-search-fanout.d.ts +3 -2
- package/dist/{access-namespace-preflight-5yZ4g6F8.d.ts → access-namespace-preflight-CWUDwB4M.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +4 -3
- package/dist/access-namespace-preflight.js +84 -75
- package/dist/access-observe-helpers.d.ts +1 -0
- package/dist/access-observe-helpers.js +1 -1
- package/dist/access-observe-write-surface.d.ts +16 -10
- package/dist/access-observe-write-surface.js +84 -75
- package/dist/access-offline-manifest.d.ts +104 -0
- package/dist/access-offline-manifest.js +45 -0
- package/dist/access-offline-manifest.js.map +1 -0
- package/dist/access-operations-batch.js +86 -77
- package/dist/access-operations.d.ts +18 -14
- package/dist/access-operations.js +91 -79
- package/dist/access-recall-concurrency.d.ts +16 -26
- package/dist/access-recall-concurrency.js +86 -76
- package/dist/access-recall-response.d.ts +18 -14
- package/dist/access-recall-response.js +84 -75
- package/dist/access-recall-surface.d.ts +29 -24
- package/dist/access-recall-surface.js +84 -75
- package/dist/access-schema.d.ts +84 -84
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-CiJRsgAB.d.ts → access-service-CNN89xyn.d.ts} +25 -16
- package/dist/access-service-helpers.d.ts +14 -10
- package/dist/access-service.d.ts +14 -10
- package/dist/access-service.js +84 -75
- package/dist/access-surface-catalog.d.ts +14 -10
- package/dist/access-surface-catalog.js +4 -0
- 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-recall.d.ts +2 -1
- package/dist/active-recall.js +10 -8
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-5OE5QOZB.js → auto-sync-UPTUVE4X.js} +6 -6
- package/dist/behavior-learner.d.ts +2 -1
- package/dist/behavior-learner.js +1 -1
- package/dist/behavior-signals.d.ts +2 -1
- package/dist/bootstrap.d.ts +9 -8
- package/dist/briefing.d.ts +3 -2
- package/dist/briefing.js +24 -22
- 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/capabilities.d.ts +2 -1
- package/dist/{capsule-merge-IDWJPCWK.js → capsule-merge-Q6AR3XL7.js} +67 -54
- package/dist/capsule-merge-Q6AR3XL7.js.map +1 -0
- package/dist/{catalog-scBmy0sO.d.ts → catalog-bctMURhN.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +2 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.d.ts +2 -1
- package/dist/causal-consolidation.js +28 -26
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.d.ts +2 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-E5UK4VPE.js → chunk-2FSTB6BJ.js} +5 -5
- package/dist/{chunk-5ZE7QHTK.js → chunk-2X2T2UVE.js} +5 -5
- package/dist/{chunk-P4DRWEYC.js → chunk-3COYXTGM.js} +2 -2
- package/dist/{chunk-5IVLTFOV.js → chunk-44N6ESJ4.js} +2 -2
- package/dist/{chunk-DL7ZD3JH.js → chunk-4FBVAGV3.js} +14 -9
- package/dist/chunk-4FBVAGV3.js.map +1 -0
- package/dist/{chunk-WOCNN776.js → chunk-4POAMKV6.js} +100 -41
- package/dist/chunk-4POAMKV6.js.map +1 -0
- package/dist/{chunk-HO3QBJEY.js → chunk-5546W5SI.js} +2 -2
- package/dist/{chunk-AAIUERNB.js → chunk-5QJQHBLE.js} +6 -6
- package/dist/{chunk-6CZPDBJS.js → chunk-5U7ID3EZ.js} +3 -3
- package/dist/{chunk-RN7DY3FC.js → chunk-6ISC4AVB.js} +31 -12
- package/dist/chunk-6ISC4AVB.js.map +1 -0
- package/dist/chunk-773TRRGT.js +36 -0
- package/dist/chunk-773TRRGT.js.map +1 -0
- package/dist/chunk-7T4TOGMS.js +242 -0
- package/dist/chunk-7T4TOGMS.js.map +1 -0
- package/dist/{chunk-DLVPUX7U.js → chunk-7YKVM5H3.js} +8 -6
- package/dist/chunk-7YKVM5H3.js.map +1 -0
- package/dist/chunk-7YQ6ESEA.js +322 -0
- package/dist/chunk-7YQ6ESEA.js.map +1 -0
- package/dist/{chunk-DNWXFTLD.js → chunk-A4IJCD2Z.js} +2 -2
- package/dist/{chunk-3CE77VAP.js → chunk-A4JMGKCD.js} +87 -74
- package/dist/chunk-A4JMGKCD.js.map +1 -0
- package/dist/chunk-A5KNZSNA.js +26 -0
- package/dist/chunk-A5KNZSNA.js.map +1 -0
- package/dist/{chunk-PKNLM44P.js → chunk-AC5OWJLV.js} +9 -9
- package/dist/{chunk-LZ4LDKHZ.js → chunk-AMAUBUKY.js} +6 -6
- package/dist/{chunk-CUM2BBPN.js → chunk-AUMWZSE7.js} +19 -10
- package/dist/chunk-AUMWZSE7.js.map +1 -0
- package/dist/{chunk-BUE5E2HL.js → chunk-BGLY7EEM.js} +5 -314
- package/dist/chunk-BGLY7EEM.js.map +1 -0
- package/dist/chunk-BIPBQQFI.js +44 -0
- package/dist/chunk-BIPBQQFI.js.map +1 -0
- package/dist/{chunk-S5SLVSVY.js → chunk-BQIFZ2MP.js} +5 -5
- package/dist/chunk-BTTPKDIL.js +34 -0
- package/dist/{chunk-PVGDJXVK.js.map → chunk-BTTPKDIL.js.map} +1 -1
- package/dist/chunk-CK5KOVHW.js +69 -0
- package/dist/chunk-CK5KOVHW.js.map +1 -0
- package/dist/{chunk-Q6IP2ARR.js → chunk-CSOYVTRX.js} +2 -2
- package/dist/{chunk-XOQSEF7X.js → chunk-CVILPI77.js} +6 -6
- package/dist/{chunk-VWAXN2BN.js → chunk-CX4ZUMC6.js} +91 -83
- package/dist/chunk-CX4ZUMC6.js.map +1 -0
- package/dist/{chunk-NVRYW264.js → chunk-DAJPRXBR.js} +16 -13
- package/dist/chunk-DAJPRXBR.js.map +1 -0
- package/dist/{chunk-J7VGGECD.js → chunk-DZPFMQZ7.js} +1 -1
- package/dist/chunk-DZPFMQZ7.js.map +1 -0
- package/dist/{chunk-4LMA77JH.js → chunk-E5XQIWAL.js} +3 -3
- package/dist/{chunk-WUNIWKY4.js → chunk-ELIL2A37.js} +6 -6
- package/dist/{chunk-OQ5PRDDS.js → chunk-ERZ2R42X.js} +6 -6
- package/dist/{chunk-U7GW7NE7.js → chunk-FIK3CQNA.js} +10 -10
- package/dist/{chunk-D3J5SLQK.js → chunk-FR27HBBA.js} +81 -20
- package/dist/chunk-FR27HBBA.js.map +1 -0
- package/dist/{chunk-E6PNLPGJ.js → chunk-FUCYDRE5.js} +838 -480
- package/dist/chunk-FUCYDRE5.js.map +1 -0
- package/dist/{chunk-HZFHQ4AQ.js → chunk-G7A5HLUS.js} +23 -17
- package/dist/chunk-G7A5HLUS.js.map +1 -0
- package/dist/{chunk-33PLLLL7.js → chunk-GFCVUY6G.js} +6 -6
- package/dist/{chunk-HREE4JHI.js → chunk-GODSPTOT.js} +477 -278
- package/dist/chunk-GODSPTOT.js.map +1 -0
- package/dist/{chunk-S2NCTZGJ.js → chunk-GRUYA45P.js} +15 -15
- package/dist/chunk-GRUYA45P.js.map +1 -0
- package/dist/{chunk-VUPTKTDV.js → chunk-GUAL4PQH.js} +3 -3
- package/dist/{chunk-CINZGPSJ.js → chunk-GUMZC2BO.js} +2 -2
- package/dist/{chunk-H24WNPA2.js → chunk-GWFSVJ4P.js} +3 -3
- package/dist/{chunk-7XC2HX75.js → chunk-GYPQL6XN.js} +157 -16
- package/dist/chunk-GYPQL6XN.js.map +1 -0
- package/dist/{chunk-TSH56VPU.js → chunk-HAYSYUAB.js} +2 -2
- package/dist/{chunk-PDLBLTOK.js → chunk-HC3PBX23.js} +9 -9
- package/dist/{chunk-TDHTVMPG.js → chunk-HFPASSFV.js} +7 -2
- package/dist/chunk-HFPASSFV.js.map +1 -0
- package/dist/chunk-J2WC5LF4.js +395 -0
- package/dist/chunk-J2WC5LF4.js.map +1 -0
- package/dist/{chunk-KXB4VXHY.js → chunk-JIYDRBVZ.js} +2 -2
- package/dist/chunk-JV3C2MNQ.js +74 -0
- package/dist/chunk-JV3C2MNQ.js.map +1 -0
- package/dist/{chunk-HLPD7B7P.js → chunk-JZH4LWHB.js} +2 -2
- package/dist/{chunk-AV5ZEH4M.js → chunk-KVJRXN2E.js} +2 -2
- package/dist/{chunk-WFTIGIIS.js → chunk-L6CQ7WIW.js} +5 -5
- package/dist/{chunk-227UFSEQ.js → chunk-LEPOP46W.js} +4 -4
- package/dist/{chunk-EJUEXZHX.js → chunk-LLJMAULE.js} +2 -2
- package/dist/{chunk-N5Z4EVOR.js → chunk-LNEWDF2A.js} +36 -11
- package/dist/chunk-LNEWDF2A.js.map +1 -0
- package/dist/{chunk-QN25OCUF.js → chunk-LPYDOLSM.js} +5 -5
- package/dist/{chunk-AS7YMSL6.js → chunk-M23RF3LJ.js} +4 -4
- package/dist/{chunk-OAEQLRCY.js → chunk-MO4HSXHZ.js} +5 -5
- package/dist/{chunk-ECK75GDJ.js → chunk-N3LL5NEU.js} +43 -24
- package/dist/chunk-N3LL5NEU.js.map +1 -0
- package/dist/chunk-NEF7LR5J.js +29 -0
- package/dist/chunk-NEF7LR5J.js.map +1 -0
- package/dist/{chunk-3F2LKUMU.js → chunk-NIS256NW.js} +2 -2
- package/dist/{chunk-YIAA2X3D.js → chunk-NK5RGJ65.js} +3 -3
- package/dist/chunk-NLDVVWCL.js +84 -0
- package/dist/chunk-NLDVVWCL.js.map +1 -0
- package/dist/{chunk-4J7G5SY4.js → chunk-NZBZ7IS2.js} +72 -24
- package/dist/chunk-NZBZ7IS2.js.map +1 -0
- package/dist/{chunk-3TBLDMJA.js → chunk-O4KMGRXE.js} +5 -2
- package/dist/chunk-O4KMGRXE.js.map +1 -0
- package/dist/{chunk-7TWUCYER.js → chunk-PNRA7FAD.js} +7 -7
- package/dist/{chunk-5I4M26Q7.js → chunk-QBSFOKY6.js} +4 -4
- package/dist/{chunk-E53DSZEN.js → chunk-QR6G5KF4.js} +3 -3
- package/dist/{chunk-CJ2ZR7UA.js → chunk-QUENPGWZ.js} +261 -211
- package/dist/chunk-QUENPGWZ.js.map +1 -0
- package/dist/{chunk-4UH4BTGK.js → chunk-QVJPH7SH.js} +84 -84
- package/dist/{chunk-UYLMNVY6.js → chunk-R3KHKU7M.js} +16 -9
- package/dist/chunk-R3KHKU7M.js.map +1 -0
- package/dist/{chunk-JBPKEARU.js → chunk-RKNJBZ55.js} +4 -4
- package/dist/{chunk-WDISJRMG.js → chunk-RMMVQQA6.js} +2 -2
- package/dist/{chunk-JVLCVFQ4.js → chunk-RNHVVMFN.js} +3 -3
- package/dist/{chunk-QJAQNXWI.js → chunk-RVO6TCTU.js} +81 -84
- package/dist/chunk-RVO6TCTU.js.map +1 -0
- package/dist/chunk-S2HLHAZ4.js +16 -0
- package/dist/chunk-S2HLHAZ4.js.map +1 -0
- package/dist/{chunk-KWMXR7XS.js → chunk-S2V7RUCL.js} +8 -1
- package/dist/{chunk-KWMXR7XS.js.map → chunk-S2V7RUCL.js.map} +1 -1
- package/dist/{chunk-5SM35XZR.js → chunk-S5NZBKKQ.js} +2 -2
- package/dist/{chunk-VNA7W7QF.js → chunk-SVH57F5Z.js} +12 -4
- package/dist/chunk-SVH57F5Z.js.map +1 -0
- package/dist/{chunk-WIPEXG6R.js → chunk-SXIMQLGV.js} +2 -2
- package/dist/{chunk-RVLJEII5.js → chunk-SYUBB3WM.js} +256 -187
- package/dist/chunk-SYUBB3WM.js.map +1 -0
- package/dist/{chunk-VCD4PSK2.js → chunk-TQZ4DVBC.js} +7 -4
- package/dist/chunk-TQZ4DVBC.js.map +1 -0
- package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
- package/dist/{chunk-YV32N67O.js → chunk-URS5GSM7.js} +1 -1
- package/dist/chunk-URS5GSM7.js.map +1 -0
- package/dist/{chunk-4B77XSG5.js → chunk-UV72DEZD.js} +5 -5
- package/dist/{chunk-BJKPPZ6Z.js → chunk-UW66OZTD.js} +2 -2
- package/dist/{chunk-XYTOI63Z.js → chunk-V2TNYF6Q.js} +19 -11
- package/dist/chunk-V2TNYF6Q.js.map +1 -0
- package/dist/{chunk-S2BBISHU.js → chunk-VANZKHTN.js} +3 -3
- package/dist/chunk-VHFXP27N.js +250 -0
- package/dist/chunk-VHFXP27N.js.map +1 -0
- package/dist/chunk-VL35ZFSZ.js +102 -0
- package/dist/chunk-VL35ZFSZ.js.map +1 -0
- package/dist/{chunk-3Y224NYC.js → chunk-VYISFWVX.js} +2 -2
- package/dist/{chunk-JE7EK33X.js → chunk-W2V7UESE.js} +2 -2
- package/dist/{chunk-TIHMZFIV.js → chunk-W3IC7QOY.js} +3 -3
- package/dist/{chunk-NRV4Y3PM.js → chunk-W4FBGYGK.js} +1 -1
- package/dist/{chunk-P2BM76KT.js → chunk-WAS4HV46.js} +174 -43
- package/dist/chunk-WAS4HV46.js.map +1 -0
- package/dist/{chunk-57QKLRBV.js → chunk-WB7JSQCP.js} +2 -1
- package/dist/chunk-WB7JSQCP.js.map +1 -0
- package/dist/{chunk-A5OJCXZL.js → chunk-WZ3TOIDW.js} +15 -4
- package/dist/chunk-WZ3TOIDW.js.map +1 -0
- package/dist/{chunk-MU7ZHSZE.js → chunk-WZFAPHIK.js} +2 -2
- package/dist/{chunk-T2TTP3KU.js → chunk-X4IDNPOS.js} +2 -2
- package/dist/{chunk-UVIKWC7M.js → chunk-XAGYS7X6.js} +17 -17
- package/dist/{chunk-BLAKS3CP.js → chunk-XL3TATMJ.js} +3 -3
- package/dist/{chunk-W4XJFLAL.js → chunk-XPRJSHNI.js} +2 -2
- package/dist/{chunk-5TFP4CUL.js → chunk-XQ3HXAQH.js} +14 -11
- package/dist/chunk-XQ3HXAQH.js.map +1 -0
- package/dist/{chunk-E6EE5B67.js → chunk-YK6BDDHP.js} +4 -4
- package/dist/{chunk-ES36HTSC.js → chunk-YLHM5BQQ.js} +3 -3
- package/dist/{chunk-ULARSG5Z.js → chunk-YN6ASZUG.js} +10 -8
- package/dist/{chunk-ULARSG5Z.js.map → chunk-YN6ASZUG.js.map} +1 -1
- package/dist/{chunk-VOUOLGIP.js → chunk-YRFAYOFQ.js} +11 -13
- package/dist/chunk-YRFAYOFQ.js.map +1 -0
- package/dist/{chunk-IKKWIPYN.js → chunk-YYQAKIDJ.js} +37 -1
- package/dist/chunk-YYQAKIDJ.js.map +1 -0
- package/dist/{chunk-GF22HWS2.js → chunk-Z54EM5YZ.js} +4 -4
- package/dist/{chunk-64UDOIMI.js → chunk-ZLQ37WJX.js} +2 -2
- package/dist/{cli-BUGN3d6_.d.ts → cli-BHBswmUa.d.ts} +5 -5
- package/dist/cli.d.ts +16 -12
- package/dist/cli.js +138 -123
- package/dist/compounding/engine.d.ts +3 -2
- package/dist/compounding/engine.js +25 -23
- 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 +10 -8
- package/dist/connectors/codex-materialize-runner.d.ts +2 -1
- package/dist/connectors/codex-materialize-runner.js +24 -22
- package/dist/connectors/codex-materialize.d.ts +2 -1
- package/dist/connectors/index.d.ts +2 -1
- package/dist/connectors/index.js +27 -25
- package/dist/consolidation-provenance-check.d.ts +3 -2
- package/dist/consolidation-provenance-check.js +4 -4
- package/dist/consolidation-undo.d.ts +3 -2
- package/dist/consolidation-undo.js +10 -7
- package/dist/consolidation-undo.js.map +1 -1
- package/dist/contradiction/index.d.ts +3 -2
- package/dist/converge-config.d.ts +2 -1
- package/dist/convergence-refresh.d.ts +4 -3
- package/dist/convergence-refresh.js +28 -26
- package/dist/conversation-index/backend.d.ts +2 -1
- package/dist/conversation-index/backend.js +2 -2
- package/dist/conversation-index/chunker.d.ts +2 -1
- package/dist/conversation-index/faiss-adapter.d.ts +2 -1
- 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 +43 -41
- package/dist/day-summary.d.ts +2 -1
- package/dist/delinearize.d.ts +2 -1
- package/dist/direct-answer-wiring.d.ts +2 -1
- package/dist/direct-answer-wiring.js +2 -2
- package/dist/direct-answer.d.ts +2 -1
- package/dist/embedding-fallback.d.ts +2 -1
- package/dist/embedding-fallback.js +2 -2
- package/dist/enrichment/index.d.ts +2 -1
- package/dist/entity-retrieval-boundaries.js +1 -1
- package/dist/entity-retrieval.d.ts +3 -2
- package/dist/entity-retrieval.js +25 -23
- package/dist/entity-schema.d.ts +2 -1
- package/dist/explicit-capture.d.ts +9 -8
- package/dist/explicit-capture.js +11 -9
- package/dist/external-wiki-access.d.ts +127 -0
- package/dist/external-wiki-access.js +187 -0
- package/dist/external-wiki-access.js.map +1 -0
- package/dist/external-wiki-cli.d.ts +13 -0
- package/dist/external-wiki-cli.js +10 -0
- package/dist/external-wiki-cli.js.map +1 -0
- package/dist/external-wiki-collection-registration.d.ts +39 -0
- package/dist/external-wiki-collection-registration.js +79 -0
- package/dist/external-wiki-collection-registration.js.map +1 -0
- package/dist/external-wiki-collection.d.ts +50 -0
- package/dist/external-wiki-collection.js +387 -0
- package/dist/external-wiki-collection.js.map +1 -0
- package/dist/external-wiki-config.d.ts +13 -0
- package/dist/external-wiki-config.js +13 -0
- package/dist/external-wiki-config.js.map +1 -0
- package/dist/external-wiki-guard.d.ts +11 -0
- package/dist/external-wiki-guard.js +18 -0
- package/dist/external-wiki-guard.js.map +1 -0
- package/dist/external-wiki-mcp-tools.d.ts +123 -0
- package/dist/external-wiki-mcp-tools.js +8 -0
- package/dist/external-wiki-mcp-tools.js.map +1 -0
- package/dist/external-wiki-search.d.ts +42 -0
- package/dist/external-wiki-search.js +11 -0
- package/dist/external-wiki-search.js.map +1 -0
- package/dist/external-wiki.d.ts +39 -0
- package/dist/external-wiki.js +14 -0
- package/dist/external-wiki.js.map +1 -0
- package/dist/extraction-error-classification.d.ts +2 -1
- package/dist/extraction-faithfulness.d.ts +2 -1
- 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-liveness.d.ts +2 -1
- package/dist/extraction-source-grounding-helpers.d.ts +5 -3
- package/dist/extraction-source-grounding-helpers.js +1 -1
- package/dist/extraction-source-grounding-rules.d.ts +2 -1
- package/dist/extraction-source-grounding-rules.js +2 -2
- package/dist/extraction-source-grounding.d.ts +2 -1
- package/dist/extraction-source-grounding.js +5 -5
- package/dist/extraction.d.ts +2 -1
- package/dist/extraction.js +46 -43
- package/dist/fallback-llm.d.ts +2 -1
- package/dist/{first-start-migration-F2QJD66E.js → first-start-migration-ZSHEFEI3.js} +10 -12
- package/dist/{first-start-migration-F2QJD66E.js.map → first-start-migration-ZSHEFEI3.js.map} +1 -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-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/in-flight-reads.d.ts +2 -1
- package/dist/index.d.ts +443 -430
- package/dist/index.js +304 -269
- 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 +2 -1
- package/dist/local-llm.js +2 -2
- package/dist/local-model-endpoint.d.ts +2 -1
- package/dist/maintenance/memory-governance.d.ts +2 -1
- package/dist/maintenance/memory-governance.js +25 -23
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +25 -23
- package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-projection.js +27 -25
- package/dist/{maintenance-LbuS2rUA.d.ts → maintenance-CoRikzIt.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +14 -10
- package/dist/mcp-read-only-tools.js +1 -1
- package/dist/memory-action-policy.d.ts +2 -1
- package/dist/memory-cache.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 +10 -0
- package/dist/memory-snapshot.js +8 -0
- package/dist/memory-snapshot.js.map +1 -0
- package/dist/memory-worth-outcomes.d.ts +3 -2
- package/dist/models-json.d.ts +2 -1
- package/dist/namespaces/migrate.d.ts +4 -3
- package/dist/namespaces/migrate.js +41 -39
- package/dist/namespaces/principal.d.ts +2 -1
- package/dist/namespaces/search.d.ts +2 -1
- package/dist/namespaces/search.js +18 -18
- package/dist/namespaces/storage.d.ts +4 -3
- package/dist/namespaces/storage.js +24 -22
- package/dist/native-knowledge.d.ts +2 -1
- package/dist/offline-sync-impression-drain.d.ts +2 -1
- package/dist/offline-sync-impression-drain.js +11 -9
- package/dist/offline-sync.d.ts +29 -3
- package/dist/offline-sync.js +6 -2
- package/dist/operator-doctor-corpus.d.ts +2 -1
- package/dist/operator-doctor-corpus.js +46 -44
- package/dist/operator-doctor-replica.d.ts +2 -1
- package/dist/operator-doctor-replica.js +3 -3
- package/dist/operator-toolkit.d.ts +4 -3
- package/dist/operator-toolkit.js +60 -55
- package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
- package/dist/orchestration/maintenance.d.ts +5 -4
- package/dist/orchestration/maintenance.js +37 -33
- package/dist/{orchestrator-rHiWt32X.d.ts → orchestrator-BJeq7Pw1.d.ts} +14 -7
- package/dist/orchestrator.d.ts +9 -8
- package/dist/orchestrator.js +200 -186
- package/dist/page-versioning.js +3 -3
- package/dist/patterns-cli.d.ts +2 -1
- package/dist/{pipeline-W_97O8BV.d.ts → pipeline-CNjY4wk3.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +2 -1
- package/dist/policy-runtime.js +1 -1
- package/dist/proactive-contention.d.ts +2 -1
- package/dist/provenance.d.ts +2 -1
- package/dist/provenance.js +2 -2
- package/dist/{qmd-LWtMofAf.d.ts → qmd-C0UDZidt.d.ts} +9 -7
- package/dist/qmd-preflight.d.ts +5 -4
- package/dist/qmd-preflight.js +2 -2
- package/dist/qmd-recall-cache.d.ts +2 -1
- package/dist/qmd.d.ts +4 -3
- package/dist/qmd.js +8 -8
- 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-planner-llm.d.ts +2 -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 +8 -1
- package/dist/recall-xray.js +2 -2
- package/dist/reconcile/cursor.d.ts +12 -2
- package/dist/reconcile/cursor.js +46 -7
- package/dist/reconcile/cursor.js.map +1 -1
- package/dist/reconcile/manifest.d.ts +9 -2
- package/dist/reconcile/manifest.js +15 -268
- package/dist/reconcile/manifest.js.map +1 -1
- package/dist/reconcile/plan.d.ts +4 -1
- package/dist/reconcile/plan.js +4 -4
- 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-divergence.js +2 -2
- package/dist/replica-peers-config.d.ts +2 -1
- package/dist/resolve-auth-token.d.ts +2 -1
- package/dist/resume-bundles.js +12 -10
- package/dist/retrieval-agents.d.ts +4 -3
- package/dist/retrieval-agents.js +2 -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/salvage-envelope.d.ts +2 -1
- package/dist/schemas.d.ts +54 -54
- package/dist/{scope-profiles-BiQKOE-p.d.ts → scope-profiles-BJzp2F5A.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +2 -1
- package/dist/search/embed-helper.js +3 -3
- package/dist/search/factory.d.ts +4 -2
- package/dist/search/factory.js +20 -18
- package/dist/search/index.d.ts +2 -1
- package/dist/search/index.js +20 -20
- package/dist/search/lancedb-backend.d.ts +2 -1
- package/dist/search/lancedb-backend.js +4 -4
- package/dist/search/meilisearch-backend.d.ts +2 -1
- package/dist/search/meilisearch-backend.js +4 -4
- package/dist/search/noop-backend.d.ts +2 -1
- package/dist/search/orama-backend.d.ts +2 -1
- package/dist/search/orama-backend.js +4 -4
- package/dist/search/port.d.ts +18 -1
- package/dist/search/port.js +1 -1
- package/dist/search/remote-backend.d.ts +2 -1
- package/dist/search/remote-backend.js +2 -2
- package/dist/secure-store/index.js +2 -2
- package/dist/{semantic-consolidation-dHYCyqgh.d.ts → semantic-consolidation-D4KAZO2G.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +3 -2
- package/dist/semantic-consolidation.js +26 -24
- package/dist/semantic-rule-promotion.js +24 -22
- package/dist/semantic-rule-verifier.d.ts +2 -1
- package/dist/semantic-rule-verifier.js +25 -23
- package/dist/{service-DJG3KCQ4.d.ts → service-DWC4tq7p.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 +10 -9
- package/dist/shared-context/manager.js +2 -2
- package/dist/signal.d.ts +2 -1
- package/dist/source-agent-qualifier.d.ts +2 -1
- package/dist/source-agent-qualifier.js +43 -40
- package/dist/{storage-F9FVh-w9.d.ts → storage-DPGjB-8e.d.ts} +28 -13
- package/dist/storage.d.ts +3 -2
- package/dist/storage.js +26 -24
- package/dist/summarizer.d.ts +2 -1
- package/dist/summarizer.js +5 -5
- package/dist/summary-snapshot.d.ts +2 -1
- 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-migration.js +1 -1
- package/dist/tier-routing.d.ts +2 -1
- package/dist/tool-scoped-memory.d.ts +5 -1
- package/dist/tool-scoped-memory.js +3 -1
- package/dist/topics.d.ts +2 -1
- package/dist/transcript.d.ts +2 -1
- package/dist/transfer/capsule-import.js +4 -4
- package/dist/transfer/types.d.ts +66 -66
- package/dist/trust-score-stage.d.ts +2 -1
- package/dist/trust-score.d.ts +2 -1
- package/dist/{types-rEwubvim.d.ts → types-yX_FwERf.d.ts} +8 -1
- 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 +25 -23
- package/dist/write-envelope.d.ts +2 -1
- package/package.json +2 -2
- package/src/abort-error.ts +17 -0
- package/src/access-admin-ops-surface.ts +1 -0
- package/src/access-boundary.ts +1 -0
- package/src/access-coding-context-resolution.ts +42 -0
- package/src/access-extraction-force-flush.ts +38 -2
- package/src/access-http-lcm-compaction.ts +5 -2
- package/src/access-http-offline-stream.ts +80 -0
- package/src/access-http.test.ts +310 -3
- package/src/access-http.ts +84 -77
- package/src/access-mcp-output-schemas.ts +36 -0
- package/src/access-mcp.test.ts +95 -1
- package/src/access-mcp.ts +7 -9
- package/src/access-observe-helpers.ts +64 -22
- package/src/access-observe-write-surface.ts +8 -0
- package/src/access-offline-manifest.ts +54 -0
- package/src/access-operations-batch.ts +3 -3
- package/src/access-operations.ts +13 -7
- package/src/access-recall-concurrency.ts +3 -27
- package/src/access-recall-surface.ts +3 -0
- package/src/access-service-health.test.ts +32 -7
- package/src/access-service-namespace.test.ts +55 -0
- package/src/access-service-observe-idempotency.test.ts +34 -2
- package/src/access-service-observe-lcm-parity.test.ts +183 -23
- package/src/access-service-observe-scope.test.ts +160 -1
- package/src/access-service-offline-file-content.test.ts +345 -1
- package/src/access-service.ts +88 -62
- package/src/access-surface-catalog.ts +4 -0
- package/src/admin/admin-surfaces.ts +2 -0
- package/src/binary-lifecycle/pipeline.test.ts +106 -1
- package/src/binary-lifecycle/pipeline.ts +3 -0
- package/src/coding/git-context.test.ts +47 -0
- package/src/coding/git-context.ts +129 -27
- package/src/config.test.ts +24 -0
- package/src/config.ts +9 -12
- package/src/connector-provenance.test.ts +101 -0
- package/src/consolidation-undo.ts +3 -0
- package/src/convergence-refresh.ts +14 -2
- package/src/correction/correction-access-wiring.ts +9 -7
- package/src/correction/correction-executor.test.ts +206 -2
- package/src/correction/correction-executor.ts +29 -20
- package/src/correction/correction-planner.test.ts +36 -0
- package/src/correction/correction-planner.ts +9 -15
- package/src/correction/correction-service.ts +3 -1
- package/src/correction/correction-storage-integration.test.ts +77 -0
- package/src/correction/correction-surfaces.test.ts +41 -28
- package/src/correction/passive-capture.test.ts +59 -0
- package/src/correction/passive-capture.ts +4 -1
- package/src/entity-retrieval-boundaries.ts +17 -4
- package/src/entity-retrieval.ts +27 -6
- package/src/external-wiki-access.test.ts +65 -0
- package/src/external-wiki-access.ts +31 -0
- package/src/external-wiki-cli.ts +100 -0
- package/src/external-wiki-collection-registration.test.ts +163 -0
- package/src/external-wiki-collection-registration.ts +101 -0
- package/src/external-wiki-collection.test.ts +502 -0
- package/src/external-wiki-collection.ts +503 -0
- package/src/external-wiki-config.test.ts +135 -0
- package/src/external-wiki-config.ts +100 -0
- package/src/external-wiki-guard.ts +83 -0
- package/src/external-wiki-mcp-tools.ts +23 -0
- package/src/external-wiki-search.test.ts +367 -0
- package/src/external-wiki-search.ts +362 -0
- package/src/external-wiki.test.ts +240 -0
- package/src/external-wiki.ts +427 -0
- package/src/extraction-scope-source-agent.test.ts +21 -0
- package/src/extraction-source-grounding-helpers.ts +243 -53
- package/src/extraction-source-grounding-rules.ts +133 -39
- package/src/extraction-source-grounding.test.ts +363 -33
- package/src/extraction-timeout.test.ts +1 -0
- package/src/extraction-watermark.test.ts +150 -7
- package/src/extraction.ts +8 -1
- package/src/index.ts +9 -5
- package/src/maintenance/first-start-migration.ts +11 -11
- package/src/mcp-read-only-tools.ts +1 -0
- package/src/memory-snapshot.ts +15 -0
- package/src/offline-sync.test.ts +194 -0
- package/src/offline-sync.ts +217 -13
- package/src/orchestration/external-wiki-recall-guard.test.ts +94 -0
- package/src/orchestration/extraction-persist.ts +19 -2
- package/src/orchestration/extraction-run-helpers.ts +37 -19
- package/src/orchestration/extraction-run.test.ts +171 -2
- package/src/orchestration/extraction-run.ts +11 -13
- package/src/orchestration/extraction-watermark.ts +106 -17
- package/src/orchestration/generic-recall-paths.ts +14 -0
- package/src/orchestration/orchestrator-helpers.ts +2 -0
- package/src/orchestration/orchestrator-init.ts +9 -0
- package/src/orchestration/recall-internal-deps.ts +6 -0
- package/src/orchestration/recall-internal.ts +154 -33
- package/src/orchestration/recall-rerank-coordinator.ts +60 -25
- package/src/orchestration/recall-search-pipeline.test.ts +75 -1
- package/src/orchestration/recall-search-pipeline.ts +50 -10
- package/src/orchestrator-convergence-refresh.test.ts +36 -2
- package/src/orchestrator.ts +13 -3
- package/src/page-versioning.ts +5 -19
- package/src/procedural/procedure-recall.ts +5 -1
- package/src/provenance-surfaces.test.ts +3 -0
- package/src/qmd-client.test.ts +78 -17
- package/src/qmd.test.ts +24 -0
- package/src/qmd.ts +224 -315
- package/src/recall-explain-renderer.ts +3 -0
- package/src/recall-rerank-coordinator.test.ts +61 -0
- package/src/recall-xray-renderer.test.ts +6 -0
- package/src/recall-xray.test.ts +88 -1
- package/src/recall-xray.ts +15 -0
- package/src/reconcile/cursor.test.ts +48 -0
- package/src/reconcile/cursor.ts +58 -11
- package/src/reconcile/manifest.test.ts +4 -0
- package/src/reconcile/manifest.ts +41 -51
- package/src/reconcile/plan.test.ts +4 -0
- package/src/reconcile/plan.ts +28 -16
- package/src/search/factory.ts +6 -6
- package/src/search/port.ts +25 -9
- package/src/secure-store/secure-fs.ts +20 -12
- package/src/secure-store/secure-store.test.ts +41 -2
- package/src/spaces/index.test.ts +61 -2
- package/src/spaces/index.ts +44 -18
- package/src/storage/entity-alias-config.ts +97 -0
- package/src/storage/entity-canonical-id-lock.ts +53 -23
- package/src/storage/entity-canonical-id-migration.ts +53 -22
- package/src/storage/entity-canonical-id-references.ts +3 -0
- package/src/storage/entity-id-safety.ts +7 -0
- package/src/storage/entity-store.ts +6 -2
- package/src/storage/memory-frontmatter-metadata.ts +4 -9
- package/src/storage/memory-migration-serialization.ts +10 -15
- package/src/storage/tombstone-blocked-capture-mutation.ts +52 -64
- package/src/storage/tombstone-blocked-capture-sync.ts +244 -199
- package/src/storage-contract/cache-coherence.test.ts +99 -0
- package/src/storage-deletion-revisions.test.ts +91 -0
- package/src/storage-fact-hash-index-defer.test.ts +460 -170
- package/src/storage.ts +572 -284
- package/src/testing/subjects/first-start-tier-migration.test.ts +75 -0
- package/src/tier-migration.ts +10 -12
- package/src/tool-scoped-memory.ts +10 -0
- package/src/transfer/capsule-import.ts +13 -0
- package/src/transfer/capsule-merge.ts +13 -0
- package/src/trust-score-recall-paths.test.ts +75 -1
- package/src/types.ts +7 -3
- package/dist/capsule-merge-IDWJPCWK.js.map +0 -1
- package/dist/chunk-3CE77VAP.js.map +0 -1
- package/dist/chunk-3TBLDMJA.js.map +0 -1
- package/dist/chunk-4J7G5SY4.js.map +0 -1
- package/dist/chunk-57QKLRBV.js.map +0 -1
- package/dist/chunk-5TFP4CUL.js.map +0 -1
- package/dist/chunk-7XC2HX75.js.map +0 -1
- package/dist/chunk-A5OJCXZL.js.map +0 -1
- package/dist/chunk-BUE5E2HL.js.map +0 -1
- package/dist/chunk-CJ2ZR7UA.js.map +0 -1
- package/dist/chunk-CUM2BBPN.js.map +0 -1
- package/dist/chunk-D3J5SLQK.js.map +0 -1
- package/dist/chunk-DL7ZD3JH.js.map +0 -1
- package/dist/chunk-DLVPUX7U.js.map +0 -1
- package/dist/chunk-E6PNLPGJ.js.map +0 -1
- package/dist/chunk-ECK75GDJ.js.map +0 -1
- package/dist/chunk-HREE4JHI.js.map +0 -1
- package/dist/chunk-HZFHQ4AQ.js.map +0 -1
- package/dist/chunk-IKKWIPYN.js.map +0 -1
- package/dist/chunk-J7VGGECD.js.map +0 -1
- package/dist/chunk-N5Z4EVOR.js.map +0 -1
- package/dist/chunk-NVRYW264.js.map +0 -1
- package/dist/chunk-P2BM76KT.js.map +0 -1
- package/dist/chunk-PVGDJXVK.js +0 -21
- package/dist/chunk-QJAQNXWI.js.map +0 -1
- package/dist/chunk-RN7DY3FC.js.map +0 -1
- package/dist/chunk-RVLJEII5.js.map +0 -1
- package/dist/chunk-S2NCTZGJ.js.map +0 -1
- package/dist/chunk-TDHTVMPG.js.map +0 -1
- package/dist/chunk-UYLMNVY6.js.map +0 -1
- package/dist/chunk-VCD4PSK2.js.map +0 -1
- package/dist/chunk-VNA7W7QF.js.map +0 -1
- package/dist/chunk-VOUOLGIP.js.map +0 -1
- package/dist/chunk-VWAXN2BN.js.map +0 -1
- package/dist/chunk-WOCNN776.js.map +0 -1
- package/dist/chunk-XYTOI63Z.js.map +0 -1
- package/dist/chunk-YV32N67O.js.map +0 -1
- /package/dist/{auto-sync-5OE5QOZB.js.map → auto-sync-UPTUVE4X.js.map} +0 -0
- /package/dist/{chunk-E5UK4VPE.js.map → chunk-2FSTB6BJ.js.map} +0 -0
- /package/dist/{chunk-5ZE7QHTK.js.map → chunk-2X2T2UVE.js.map} +0 -0
- /package/dist/{chunk-P4DRWEYC.js.map → chunk-3COYXTGM.js.map} +0 -0
- /package/dist/{chunk-5IVLTFOV.js.map → chunk-44N6ESJ4.js.map} +0 -0
- /package/dist/{chunk-HO3QBJEY.js.map → chunk-5546W5SI.js.map} +0 -0
- /package/dist/{chunk-AAIUERNB.js.map → chunk-5QJQHBLE.js.map} +0 -0
- /package/dist/{chunk-6CZPDBJS.js.map → chunk-5U7ID3EZ.js.map} +0 -0
- /package/dist/{chunk-DNWXFTLD.js.map → chunk-A4IJCD2Z.js.map} +0 -0
- /package/dist/{chunk-PKNLM44P.js.map → chunk-AC5OWJLV.js.map} +0 -0
- /package/dist/{chunk-LZ4LDKHZ.js.map → chunk-AMAUBUKY.js.map} +0 -0
- /package/dist/{chunk-S5SLVSVY.js.map → chunk-BQIFZ2MP.js.map} +0 -0
- /package/dist/{chunk-Q6IP2ARR.js.map → chunk-CSOYVTRX.js.map} +0 -0
- /package/dist/{chunk-XOQSEF7X.js.map → chunk-CVILPI77.js.map} +0 -0
- /package/dist/{chunk-4LMA77JH.js.map → chunk-E5XQIWAL.js.map} +0 -0
- /package/dist/{chunk-WUNIWKY4.js.map → chunk-ELIL2A37.js.map} +0 -0
- /package/dist/{chunk-OQ5PRDDS.js.map → chunk-ERZ2R42X.js.map} +0 -0
- /package/dist/{chunk-U7GW7NE7.js.map → chunk-FIK3CQNA.js.map} +0 -0
- /package/dist/{chunk-33PLLLL7.js.map → chunk-GFCVUY6G.js.map} +0 -0
- /package/dist/{chunk-VUPTKTDV.js.map → chunk-GUAL4PQH.js.map} +0 -0
- /package/dist/{chunk-CINZGPSJ.js.map → chunk-GUMZC2BO.js.map} +0 -0
- /package/dist/{chunk-H24WNPA2.js.map → chunk-GWFSVJ4P.js.map} +0 -0
- /package/dist/{chunk-TSH56VPU.js.map → chunk-HAYSYUAB.js.map} +0 -0
- /package/dist/{chunk-PDLBLTOK.js.map → chunk-HC3PBX23.js.map} +0 -0
- /package/dist/{chunk-KXB4VXHY.js.map → chunk-JIYDRBVZ.js.map} +0 -0
- /package/dist/{chunk-HLPD7B7P.js.map → chunk-JZH4LWHB.js.map} +0 -0
- /package/dist/{chunk-AV5ZEH4M.js.map → chunk-KVJRXN2E.js.map} +0 -0
- /package/dist/{chunk-WFTIGIIS.js.map → chunk-L6CQ7WIW.js.map} +0 -0
- /package/dist/{chunk-227UFSEQ.js.map → chunk-LEPOP46W.js.map} +0 -0
- /package/dist/{chunk-EJUEXZHX.js.map → chunk-LLJMAULE.js.map} +0 -0
- /package/dist/{chunk-QN25OCUF.js.map → chunk-LPYDOLSM.js.map} +0 -0
- /package/dist/{chunk-AS7YMSL6.js.map → chunk-M23RF3LJ.js.map} +0 -0
- /package/dist/{chunk-OAEQLRCY.js.map → chunk-MO4HSXHZ.js.map} +0 -0
- /package/dist/{chunk-3F2LKUMU.js.map → chunk-NIS256NW.js.map} +0 -0
- /package/dist/{chunk-YIAA2X3D.js.map → chunk-NK5RGJ65.js.map} +0 -0
- /package/dist/{chunk-7TWUCYER.js.map → chunk-PNRA7FAD.js.map} +0 -0
- /package/dist/{chunk-5I4M26Q7.js.map → chunk-QBSFOKY6.js.map} +0 -0
- /package/dist/{chunk-E53DSZEN.js.map → chunk-QR6G5KF4.js.map} +0 -0
- /package/dist/{chunk-4UH4BTGK.js.map → chunk-QVJPH7SH.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-RKNJBZ55.js.map} +0 -0
- /package/dist/{chunk-WDISJRMG.js.map → chunk-RMMVQQA6.js.map} +0 -0
- /package/dist/{chunk-JVLCVFQ4.js.map → chunk-RNHVVMFN.js.map} +0 -0
- /package/dist/{chunk-5SM35XZR.js.map → chunk-S5NZBKKQ.js.map} +0 -0
- /package/dist/{chunk-WIPEXG6R.js.map → chunk-SXIMQLGV.js.map} +0 -0
- /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
- /package/dist/{chunk-4B77XSG5.js.map → chunk-UV72DEZD.js.map} +0 -0
- /package/dist/{chunk-BJKPPZ6Z.js.map → chunk-UW66OZTD.js.map} +0 -0
- /package/dist/{chunk-S2BBISHU.js.map → chunk-VANZKHTN.js.map} +0 -0
- /package/dist/{chunk-3Y224NYC.js.map → chunk-VYISFWVX.js.map} +0 -0
- /package/dist/{chunk-JE7EK33X.js.map → chunk-W2V7UESE.js.map} +0 -0
- /package/dist/{chunk-TIHMZFIV.js.map → chunk-W3IC7QOY.js.map} +0 -0
- /package/dist/{chunk-NRV4Y3PM.js.map → chunk-W4FBGYGK.js.map} +0 -0
- /package/dist/{chunk-MU7ZHSZE.js.map → chunk-WZFAPHIK.js.map} +0 -0
- /package/dist/{chunk-T2TTP3KU.js.map → chunk-X4IDNPOS.js.map} +0 -0
- /package/dist/{chunk-UVIKWC7M.js.map → chunk-XAGYS7X6.js.map} +0 -0
- /package/dist/{chunk-BLAKS3CP.js.map → chunk-XL3TATMJ.js.map} +0 -0
- /package/dist/{chunk-W4XJFLAL.js.map → chunk-XPRJSHNI.js.map} +0 -0
- /package/dist/{chunk-E6EE5B67.js.map → chunk-YK6BDDHP.js.map} +0 -0
- /package/dist/{chunk-ES36HTSC.js.map → chunk-YLHM5BQQ.js.map} +0 -0
- /package/dist/{chunk-GF22HWS2.js.map → chunk-Z54EM5YZ.js.map} +0 -0
- /package/dist/{chunk-64UDOIMI.js.map → chunk-ZLQ37WJX.js.map} +0 -0
|
@@ -27,6 +27,7 @@ import { log } from "../logger.js";
|
|
|
27
27
|
import { NamespaceStorageRouter } from "../namespaces/storage.js";
|
|
28
28
|
import { NegativeExampleStore } from "../negative.js";
|
|
29
29
|
import { qmdCollectionPathParts } from "./qmd-result-resolver.js";
|
|
30
|
+
import type { RecallRerankCoordinator, RecallResultPartitionSink } from "./recall-rerank-coordinator.js";
|
|
30
31
|
import type { GraphRecallExpandedEntry } from "../recall-state.js";
|
|
31
32
|
import { RelevanceStore } from "../relevance.js";
|
|
32
33
|
import { RerankCache, rerankLocalOrNoop, reorderByRankedKeys } from "../rerank.js";
|
|
@@ -90,6 +91,7 @@ export interface RecallSearchPipelineDeps {
|
|
|
90
91
|
* string at the input boundary (CLI / HTTP / MCP).
|
|
91
92
|
*/
|
|
92
93
|
asOfMs?: number;
|
|
94
|
+
requestingConnector?: string;
|
|
93
95
|
},
|
|
94
96
|
): Promise<QmdSearchResult[]>;
|
|
95
97
|
buildConfiguredQmdSearchOptions(
|
|
@@ -100,6 +102,7 @@ export interface RecallSearchPipelineDeps {
|
|
|
100
102
|
recallNamespaces: string[],
|
|
101
103
|
): Promise<QueryAwarePrefilter>;
|
|
102
104
|
readonly config: PluginConfig;
|
|
105
|
+
readonly recallRerankCoordinator: Pick<RecallRerankCoordinator, "diversifyRecallResultsWithHeadroom">;
|
|
103
106
|
diversifyAndLimitRecallResults(
|
|
104
107
|
sectionId: string,
|
|
105
108
|
results: QmdSearchResult[],
|
|
@@ -152,6 +155,7 @@ export interface RecallSearchPipelineDeps {
|
|
|
152
155
|
allowDedicatedSurface?: boolean;
|
|
153
156
|
asOfMs?: number;
|
|
154
157
|
blockedPaths?: Set<string>;
|
|
158
|
+
requestingConnector?: string;
|
|
155
159
|
},
|
|
156
160
|
): QmdSearchResult[];
|
|
157
161
|
filterSearchResultsForRecall(
|
|
@@ -165,6 +169,7 @@ export interface RecallSearchPipelineDeps {
|
|
|
165
169
|
abortSignal?: AbortSignal;
|
|
166
170
|
dropUnresolved?: boolean;
|
|
167
171
|
recallNamespaces?: readonly string[];
|
|
172
|
+
requestingConnector?: string;
|
|
168
173
|
},
|
|
169
174
|
): Promise<{ results: QmdSearchResult[]; memoryByPath: Map<string, MemoryFile> }>;
|
|
170
175
|
loadSearchResultMemoryMap(
|
|
@@ -719,6 +724,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
719
724
|
onDegradation?: (degradation: SearchDegradation) => void;
|
|
720
725
|
/** Issue #680 — historical recall point in ms-since-epoch. */
|
|
721
726
|
asOfMs?: number;
|
|
727
|
+
requestingConnector?: string;
|
|
722
728
|
/**
|
|
723
729
|
* Optional out-parameter that receives the pre-MMR / pre-truncation
|
|
724
730
|
* pool size captured inside the pipeline (issue #570 PR 1). The
|
|
@@ -728,6 +734,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
728
734
|
* Unset by default so existing call sites are unaffected.
|
|
729
735
|
*/
|
|
730
736
|
xrayPoolSizeSink?: { size: number };
|
|
737
|
+
resultPartitionSink?: RecallResultPartitionSink;
|
|
731
738
|
/**
|
|
732
739
|
* Issue #1577 — out-parameter that receives the TrustScore stage's
|
|
733
740
|
* per-path trust map (admitted + quarantined) when the cold path runs
|
|
@@ -983,6 +990,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
983
990
|
abortSignal: options.abortSignal,
|
|
984
991
|
dropUnresolved: true,
|
|
985
992
|
recallNamespaces: options.recallNamespaces,
|
|
993
|
+
requestingConnector: options.requestingConnector,
|
|
986
994
|
},
|
|
987
995
|
);
|
|
988
996
|
results = boostInput.results;
|
|
@@ -1000,7 +1008,11 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1000
1008
|
options.recallNamespaces,
|
|
1001
1009
|
options.prompt,
|
|
1002
1010
|
boostInput.memoryByPath,
|
|
1003
|
-
{
|
|
1011
|
+
{
|
|
1012
|
+
allowLifecycleFiltered: true,
|
|
1013
|
+
asOfMs: options.asOfMs,
|
|
1014
|
+
requestingConnector: options.requestingConnector,
|
|
1015
|
+
},
|
|
1004
1016
|
),
|
|
1005
1017
|
new Promise<{ status: "timed_out" }>((resolve) => {
|
|
1006
1018
|
timeoutHandle = setTimeout(
|
|
@@ -1014,7 +1026,11 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1014
1026
|
options.recallNamespaces,
|
|
1015
1027
|
options.prompt,
|
|
1016
1028
|
boostInput.memoryByPath,
|
|
1017
|
-
{
|
|
1029
|
+
{
|
|
1030
|
+
allowLifecycleFiltered: true,
|
|
1031
|
+
asOfMs: options.asOfMs,
|
|
1032
|
+
requestingConnector: options.requestingConnector,
|
|
1033
|
+
},
|
|
1018
1034
|
));
|
|
1019
1035
|
if (
|
|
1020
1036
|
typeof boosted === "object" &&
|
|
@@ -1066,10 +1082,6 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1066
1082
|
);
|
|
1067
1083
|
}
|
|
1068
1084
|
|
|
1069
|
-
// Trust-reweighting — must fire on the cold fallback path too, or the
|
|
1070
|
-
// feature flag produces divergent behavior by retrieval path (rule 39).
|
|
1071
|
-
// TrustScore subsumes the Memory Worth multiplier; run exactly one.
|
|
1072
|
-
// Fail-open on lookup errors.
|
|
1073
1085
|
if (caps.recallTrustScore && results.length > 0) {
|
|
1074
1086
|
try {
|
|
1075
1087
|
const trustOutcome = await this.deps.applyTrustScoreRerank(results, options.recallNamespaces, boostInput.memoryByPath);
|
|
@@ -1090,16 +1102,23 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1090
1102
|
}
|
|
1091
1103
|
}
|
|
1092
1104
|
|
|
1093
|
-
// Apply MMR before final truncation so the cold fallback path mirrors
|
|
1094
|
-
// the diversification policy applied in the hot QMD/embedding/recent
|
|
1095
|
-
// paths. Running MMR post-slice would be unable to promote diverse
|
|
1096
|
-
// candidates sitting just below the cutoff.
|
|
1097
1105
|
if (options.xrayPoolSizeSink) {
|
|
1098
1106
|
options.xrayPoolSizeSink.size = Math.max(
|
|
1099
1107
|
options.xrayPoolSizeSink.size,
|
|
1100
1108
|
results.length,
|
|
1101
1109
|
);
|
|
1102
1110
|
}
|
|
1111
|
+
if (options.resultPartitionSink) {
|
|
1112
|
+
const partition = this.deps.recallRerankCoordinator.diversifyRecallResultsWithHeadroom(
|
|
1113
|
+
"memories",
|
|
1114
|
+
results,
|
|
1115
|
+
options.recallResultLimit,
|
|
1116
|
+
options.prompt,
|
|
1117
|
+
caps,
|
|
1118
|
+
);
|
|
1119
|
+
options.resultPartitionSink.partition = partition;
|
|
1120
|
+
return partition.appliedResults;
|
|
1121
|
+
}
|
|
1103
1122
|
return this.deps.diversifyAndLimitRecallResults(
|
|
1104
1123
|
"memories",
|
|
1105
1124
|
results,
|
|
@@ -1225,6 +1244,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1225
1244
|
allowDedicatedSurface?: boolean;
|
|
1226
1245
|
asOfMs?: number;
|
|
1227
1246
|
blockedPaths?: Set<string>;
|
|
1247
|
+
requestingConnector?: string;
|
|
1228
1248
|
},
|
|
1229
1249
|
): QmdSearchResult[] {
|
|
1230
1250
|
const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.deps.config);
|
|
@@ -1234,6 +1254,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1234
1254
|
let dedicatedSurfaceFilteredCount = 0;
|
|
1235
1255
|
let forgottenFilteredCount = 0;
|
|
1236
1256
|
let blockedPathFilteredCount = 0;
|
|
1257
|
+
let connectorPartitionFilteredCount = 0;
|
|
1237
1258
|
const filtered: QmdSearchResult[] = [];
|
|
1238
1259
|
for (const r of results) {
|
|
1239
1260
|
if (options?.blockedPaths && resultHasKey(options.blockedPaths, r)) {
|
|
@@ -1242,6 +1263,18 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1242
1263
|
}
|
|
1243
1264
|
const memory = memoryForResult(memoryByPath, r);
|
|
1244
1265
|
if (memory) {
|
|
1266
|
+
const memoryConnector = memory.frontmatter.sourceConnector?.trim();
|
|
1267
|
+
const requestingConnector = options?.requestingConnector?.trim();
|
|
1268
|
+
if (
|
|
1269
|
+
lifecycleCaps.extractionScopeClassification &&
|
|
1270
|
+
memory.frontmatter.toolScoped === true &&
|
|
1271
|
+
memoryConnector &&
|
|
1272
|
+
requestingConnector &&
|
|
1273
|
+
memoryConnector !== requestingConnector
|
|
1274
|
+
) {
|
|
1275
|
+
connectorPartitionFilteredCount += 1;
|
|
1276
|
+
continue;
|
|
1277
|
+
}
|
|
1245
1278
|
// Review-lifecycle statuses never enter active recall injection
|
|
1246
1279
|
// (forgotten, pending_review, rejected, quarantined). Superseded and
|
|
1247
1280
|
// archived have dedicated filters below. #1576: the faithfulness gate
|
|
@@ -1349,6 +1382,11 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1349
1382
|
sourceConnector: memory ? memory.frontmatter.sourceConnector : undefined,
|
|
1350
1383
|
});
|
|
1351
1384
|
}
|
|
1385
|
+
if (connectorPartitionFilteredCount > 0) {
|
|
1386
|
+
log.debug(
|
|
1387
|
+
`connector partition filter removed ${connectorPartitionFilteredCount} tool-scoped candidates from recall`,
|
|
1388
|
+
);
|
|
1389
|
+
}
|
|
1352
1390
|
if (lifecycleFilteredCount > 0) {
|
|
1353
1391
|
log.debug(
|
|
1354
1392
|
`lifecycle retrieval filter removed ${lifecycleFilteredCount} stale/archived candidates`,
|
|
@@ -1393,6 +1431,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1393
1431
|
abortSignal?: AbortSignal;
|
|
1394
1432
|
dropUnresolved?: boolean;
|
|
1395
1433
|
recallNamespaces?: readonly string[];
|
|
1434
|
+
requestingConnector?: string;
|
|
1396
1435
|
},
|
|
1397
1436
|
): Promise<{ results: QmdSearchResult[]; memoryByPath: Map<string, MemoryFile> }> {
|
|
1398
1437
|
if (results.length === 0) {
|
|
@@ -1455,6 +1494,7 @@ export class RecallSearchPipelineCoordinator {
|
|
|
1455
1494
|
* string at the input boundary (CLI / HTTP / MCP).
|
|
1456
1495
|
*/
|
|
1457
1496
|
asOfMs?: number;
|
|
1497
|
+
requestingConnector?: string;
|
|
1458
1498
|
},
|
|
1459
1499
|
): Promise<QmdSearchResult[]> {
|
|
1460
1500
|
const lifecycleCaps = resolveMemoryLifecycleCapabilities(this.deps.config);
|
|
@@ -27,7 +27,7 @@ test("refreshNamespacesAfterConvergence runs one strict QMD batch and rebuilds e
|
|
|
27
27
|
const storageCalls: string[] = [];
|
|
28
28
|
const orchestrator = Object.create(Orchestrator.prototype) as Orchestrator;
|
|
29
29
|
const internals = orchestrator as unknown as {
|
|
30
|
-
config: { defaultNamespace: string };
|
|
30
|
+
config: { defaultNamespace: string; qmdEnabled: boolean };
|
|
31
31
|
namespaceSearchRouter: {
|
|
32
32
|
updateNamespacesDetailed(
|
|
33
33
|
namespaces: string[],
|
|
@@ -37,7 +37,7 @@ test("refreshNamespacesAfterConvergence runs one strict QMD batch and rebuilds e
|
|
|
37
37
|
};
|
|
38
38
|
getStorage(namespace: string): Promise<StorageManager>;
|
|
39
39
|
};
|
|
40
|
-
internals.config = { defaultNamespace: "default" };
|
|
40
|
+
internals.config = { defaultNamespace: "default", qmdEnabled: true };
|
|
41
41
|
internals.namespaceSearchRouter = {
|
|
42
42
|
async updateNamespacesDetailed(namespaces, _execution, options) {
|
|
43
43
|
qmdCalls.push({ namespaces, options });
|
|
@@ -85,6 +85,7 @@ test("refreshNamespacesAfterConvergence rebuilds projection when search is disab
|
|
|
85
85
|
});
|
|
86
86
|
const orchestrator = Object.create(Orchestrator.prototype) as Orchestrator;
|
|
87
87
|
const internals = orchestrator as unknown as {
|
|
88
|
+
config: { qmdEnabled: boolean; searchBackend: "qmd" };
|
|
88
89
|
namespaceSearchRouter: {
|
|
89
90
|
updateNamespacesDetailed(
|
|
90
91
|
namespaces: string[],
|
|
@@ -94,6 +95,7 @@ test("refreshNamespacesAfterConvergence rebuilds projection when search is disab
|
|
|
94
95
|
};
|
|
95
96
|
getStorage(namespace: string): Promise<StorageManager>;
|
|
96
97
|
};
|
|
98
|
+
internals.config = { qmdEnabled: false, searchBackend: "qmd" };
|
|
97
99
|
internals.namespaceSearchRouter = {
|
|
98
100
|
async updateNamespacesDetailed() {
|
|
99
101
|
return { backendCount: 0, eligibleNamespaces: [] };
|
|
@@ -112,3 +114,35 @@ test("refreshNamespacesAfterConvergence rebuilds projection when search is disab
|
|
|
112
114
|
await rm(memoryDir, { recursive: true, force: true });
|
|
113
115
|
}
|
|
114
116
|
});
|
|
117
|
+
|
|
118
|
+
test("refreshNamespacesAfterConvergence rejects skipped namespaces when search is enabled", async () => {
|
|
119
|
+
const storageCalls: string[] = [];
|
|
120
|
+
const orchestrator = Object.create(Orchestrator.prototype) as Orchestrator;
|
|
121
|
+
const internals = orchestrator as unknown as {
|
|
122
|
+
config: { qmdEnabled: boolean };
|
|
123
|
+
namespaceSearchRouter: {
|
|
124
|
+
updateNamespacesDetailed(
|
|
125
|
+
namespaces: string[],
|
|
126
|
+
execution?: unknown,
|
|
127
|
+
options?: { strict?: boolean },
|
|
128
|
+
): Promise<{ backendCount: number; eligibleNamespaces: string[] }>;
|
|
129
|
+
};
|
|
130
|
+
getStorage(namespace: string): Promise<StorageManager>;
|
|
131
|
+
};
|
|
132
|
+
internals.config = { qmdEnabled: true };
|
|
133
|
+
internals.namespaceSearchRouter = {
|
|
134
|
+
async updateNamespacesDetailed() {
|
|
135
|
+
return { backendCount: 1, eligibleNamespaces: ["default"] };
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
internals.getStorage = async (namespace) => {
|
|
139
|
+
storageCalls.push(namespace);
|
|
140
|
+
throw new Error("projection rebuild must not run after incomplete search refresh");
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
await assert.rejects(
|
|
144
|
+
() => orchestrator.refreshNamespacesAfterConvergence(["default", "team"]),
|
|
145
|
+
/search refresh skipped namespaces: team/,
|
|
146
|
+
);
|
|
147
|
+
assert.deepEqual(storageCalls, []);
|
|
148
|
+
});
|
package/src/orchestrator.ts
CHANGED
|
@@ -76,6 +76,7 @@ import type {
|
|
|
76
76
|
import {
|
|
77
77
|
createSearchBackend,
|
|
78
78
|
createConversationIndexRuntime,
|
|
79
|
+
isSearchBackendEnabled,
|
|
79
80
|
} from "./search/factory.js";
|
|
80
81
|
import { NoopSearchBackend } from "./search/noop-backend.js";
|
|
81
82
|
import {
|
|
@@ -102,7 +103,7 @@ import { LifecyclePolicyCoordinator } from "./orchestration/lifecycle-policy-coo
|
|
|
102
103
|
import { EntitySynthesisCoordinator } from "./orchestration/entity-synthesis-coordinator.js";
|
|
103
104
|
import { RecallResultFormatter } from "./orchestration/recall-result-formatter.js";
|
|
104
105
|
import { ConversationIndexCoordinator } from "./orchestration/conversation-index-coordinator.js";
|
|
105
|
-
import { RecallRerankCoordinator } from "./orchestration/recall-rerank-coordinator.js";
|
|
106
|
+
import { RecallRerankCoordinator, type RecallResultPartitionSink } from "./orchestration/recall-rerank-coordinator.js";
|
|
106
107
|
import {
|
|
107
108
|
RecallSectionCoordinator,
|
|
108
109
|
type RecallSectionAppendOptions,
|
|
@@ -1280,7 +1281,12 @@ export class Orchestrator {
|
|
|
1280
1281
|
}
|
|
1281
1282
|
|
|
1282
1283
|
async refreshNamespacesAfterConvergence(namespaces: readonly string[]): Promise<void> {
|
|
1283
|
-
return refreshConvergedNamespaces(
|
|
1284
|
+
return refreshConvergedNamespaces(
|
|
1285
|
+
namespaces,
|
|
1286
|
+
this.namespaceSearchRouter,
|
|
1287
|
+
this.getStorage.bind(this),
|
|
1288
|
+
isSearchBackendEnabled(this.config),
|
|
1289
|
+
);
|
|
1284
1290
|
}
|
|
1285
1291
|
|
|
1286
1292
|
|
|
@@ -3506,7 +3512,6 @@ export class Orchestrator {
|
|
|
3506
3512
|
abortSignal,
|
|
3507
3513
|
);
|
|
3508
3514
|
}
|
|
3509
|
-
|
|
3510
3515
|
private diversifyAndLimitRecallResults(
|
|
3511
3516
|
sectionId: string,
|
|
3512
3517
|
results: QmdSearchResult[],
|
|
@@ -3634,6 +3639,7 @@ export class Orchestrator {
|
|
|
3634
3639
|
onDegradation?: (degradation: SearchDegradation) => void;
|
|
3635
3640
|
/** Issue #680 — historical recall point in ms-since-epoch. */
|
|
3636
3641
|
asOfMs?: number;
|
|
3642
|
+
requestingConnector?: string;
|
|
3637
3643
|
/**
|
|
3638
3644
|
* Optional out-parameter that receives the pre-MMR / pre-truncation
|
|
3639
3645
|
* pool size captured inside the pipeline (issue #570 PR 1). The
|
|
@@ -3643,6 +3649,7 @@ export class Orchestrator {
|
|
|
3643
3649
|
* Unset by default so existing call sites are unaffected.
|
|
3644
3650
|
*/
|
|
3645
3651
|
xrayPoolSizeSink?: { size: number };
|
|
3652
|
+
resultPartitionSink?: RecallResultPartitionSink;
|
|
3646
3653
|
/**
|
|
3647
3654
|
* Issue #1577 — out-parameter that receives the TrustScore stage's
|
|
3648
3655
|
* per-path trust map (admitted + quarantined) when the cold path runs
|
|
@@ -3713,6 +3720,7 @@ export class Orchestrator {
|
|
|
3713
3720
|
allowDedicatedSurface?: boolean;
|
|
3714
3721
|
asOfMs?: number;
|
|
3715
3722
|
blockedPaths?: Set<string>;
|
|
3723
|
+
requestingConnector?: string;
|
|
3716
3724
|
},
|
|
3717
3725
|
): QmdSearchResult[] {
|
|
3718
3726
|
return this.recallSearchPipelineCoordinator.filterSearchResultsByRecallSafety(
|
|
@@ -3733,6 +3741,7 @@ export class Orchestrator {
|
|
|
3733
3741
|
abortSignal?: AbortSignal;
|
|
3734
3742
|
dropUnresolved?: boolean;
|
|
3735
3743
|
recallNamespaces?: readonly string[];
|
|
3744
|
+
requestingConnector?: string;
|
|
3736
3745
|
},
|
|
3737
3746
|
): Promise<{ results: QmdSearchResult[]; memoryByPath: Map<string, MemoryFile> }> {
|
|
3738
3747
|
return this.recallSearchPipelineCoordinator.filterSearchResultsForRecall(
|
|
@@ -3758,6 +3767,7 @@ export class Orchestrator {
|
|
|
3758
3767
|
* string at the input boundary (CLI / HTTP / MCP).
|
|
3759
3768
|
*/
|
|
3760
3769
|
asOfMs?: number;
|
|
3770
|
+
requestingConnector?: string;
|
|
3761
3771
|
},
|
|
3762
3772
|
): Promise<QmdSearchResult[]> {
|
|
3763
3773
|
return this.recallSearchPipelineCoordinator.boostSearchResults(
|
package/src/page-versioning.ts
CHANGED
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
pathMayCarryEntityRefs,
|
|
32
32
|
requestEntityCanonicalIdReconcile,
|
|
33
33
|
} from "./storage/entity-canonical-id-references.js";
|
|
34
|
+
import { withRawEntityPageMutation } from "./storage/entity-canonical-id-lock.js";
|
|
34
35
|
|
|
35
36
|
// ---------------------------------------------------------------------------
|
|
36
37
|
// Public interfaces
|
|
@@ -335,28 +336,13 @@ export async function revertToVersion(
|
|
|
335
336
|
resolvedMemoryDir,
|
|
336
337
|
);
|
|
337
338
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
// mutation), so bump the corpus sentinel when the reverted page lives under a
|
|
342
|
-
// recall category dir — forcing a warm hot-memories cache to rescan on its
|
|
343
|
-
// next read (issue #1902, Codex P1). Non-recall pages (entities/artifacts/
|
|
344
|
-
// profiles) are not in the corpus scan, so they need no bump.
|
|
345
|
-
// The hot-memories corpus covers the RECALL corpus, which excludes the
|
|
346
|
-
// non-memory queue dirs (questions/). Use RECALL_FALLBACK_DIRS — a revert of a
|
|
347
|
-
// questions/ page must NOT bump the recall corpus sentinel and force a rescan.
|
|
339
|
+
await withRawEntityPageMutation(resolvedMemoryDir, pagePath, async () => {
|
|
340
|
+
await writeFile(pagePath, targetContent, "utf-8");
|
|
341
|
+
});
|
|
348
342
|
const revertedTop = relPath(pagePath, resolvedMemoryDir).split(path.sep)[0];
|
|
349
|
-
|
|
350
|
-
if (inRecallTier) {
|
|
343
|
+
if ((RECALL_FALLBACK_DIRS as readonly string[]).includes(revertedTop)) {
|
|
351
344
|
bumpMemoryCorpusVersionForDir(resolvedMemoryDir);
|
|
352
345
|
}
|
|
353
|
-
// A pre-migration snapshot can reintroduce a legacy entityRef — or, under
|
|
354
|
-
// entities/, a legacy relationship target rewriteRelationshipTargets had
|
|
355
|
-
// migrated — that the target's completed journal already renamed (issue
|
|
356
|
-
// #2213); the revert keeps the snapshot bytes faithful, so request one
|
|
357
|
-
// bounded reconcile pass instead. pathMayCarryEntityRefs is the migration's
|
|
358
|
-
// own scan scope (hot recall + cold + archive + entities), which is wider
|
|
359
|
-
// than the corpus bump above on purpose.
|
|
360
346
|
if (pathMayCarryEntityRefs(resolvedMemoryDir, pagePath)) {
|
|
361
347
|
await requestEntityCanonicalIdReconcile(path.join(resolvedMemoryDir, "state"));
|
|
362
348
|
}
|
|
@@ -6,6 +6,7 @@ import type { MemoryFile, PluginConfig } from "../types.js";
|
|
|
6
6
|
import type { StorageManager } from "../storage.js";
|
|
7
7
|
import { inferIntentFromText, intentCompatibilityScore, isTaskInitiationIntent } from "../intent.js";
|
|
8
8
|
import { isActiveMemoryStatus } from "../memory-lifecycle-ledger-utils.js";
|
|
9
|
+
import { canRecallToolScopedMemory } from "../tool-scoped-memory.js";
|
|
9
10
|
|
|
10
11
|
function tokenOverlapScore(prompt: string, memoryText: string): number {
|
|
11
12
|
const norm = (s: string) =>
|
|
@@ -44,6 +45,7 @@ export async function buildProcedureRecallSection(
|
|
|
44
45
|
storage: StorageManager,
|
|
45
46
|
prompt: string,
|
|
46
47
|
config: PluginConfig,
|
|
48
|
+
options?: { partitionToolScoped?: boolean; requestingConnector?: string },
|
|
47
49
|
): Promise<string | null> {
|
|
48
50
|
if (config.procedural?.enabled !== true) return null;
|
|
49
51
|
const trimmed = typeof prompt === "string" ? prompt.trim() : "";
|
|
@@ -72,7 +74,9 @@ export async function buildProcedureRecallSection(
|
|
|
72
74
|
.filter(
|
|
73
75
|
(m) =>
|
|
74
76
|
m.frontmatter.category === "procedure" &&
|
|
75
|
-
isActiveMemoryStatus(m.frontmatter.status)
|
|
77
|
+
isActiveMemoryStatus(m.frontmatter.status) &&
|
|
78
|
+
(options?.partitionToolScoped !== true ||
|
|
79
|
+
canRecallToolScopedMemory(m.frontmatter, options.requestingConnector)),
|
|
76
80
|
)
|
|
77
81
|
.map((m) => ({ m, score: scoreProcedureForPrompt(m, trimmed, queryIntent) }))
|
|
78
82
|
.filter((x) => x.score > 0.04)
|
|
@@ -44,6 +44,9 @@ function snapshotWithSourceSpan(): RecallXraySnapshot {
|
|
|
44
44
|
snapshotId: "22222222-2222-2222-2222-222222222222",
|
|
45
45
|
tierExplain: null,
|
|
46
46
|
results: [resultWithSourceSpan()],
|
|
47
|
+
appliedResultLimit: 0,
|
|
48
|
+
appliedResults: [],
|
|
49
|
+
headroomResults: [],
|
|
47
50
|
filters: [{ name: "recall-result-limit", considered: 1, admitted: 1 }],
|
|
48
51
|
budget: { chars: 4096, used: 100 },
|
|
49
52
|
};
|
package/src/qmd-client.test.ts
CHANGED
|
@@ -13,11 +13,7 @@ test("QmdClient rechecks daemon availability before returning unavailable", asyn
|
|
|
13
13
|
available: boolean;
|
|
14
14
|
daemonAvailable: boolean;
|
|
15
15
|
probeDaemon: () => Promise<boolean>;
|
|
16
|
-
searchViaDaemon: (
|
|
17
|
-
query: string,
|
|
18
|
-
collection: string | undefined,
|
|
19
|
-
maxResults: number,
|
|
20
|
-
) => Promise<QmdSearchResult[]>;
|
|
16
|
+
searchViaDaemon: (query: string, collection: string | undefined, maxResults: number) => Promise<QmdSearchResult[]>;
|
|
21
17
|
};
|
|
22
18
|
let probeCount = 0;
|
|
23
19
|
internals.available = false;
|
|
@@ -49,13 +45,9 @@ type SubprocessInternals = {
|
|
|
49
45
|
runQmdCommand: (
|
|
50
46
|
args: string[],
|
|
51
47
|
timeoutMs?: number,
|
|
52
|
-
signal?: AbortSignal
|
|
48
|
+
signal?: AbortSignal
|
|
53
49
|
) => Promise<{ stdout: string; stderr: string }>;
|
|
54
|
-
searchViaSubprocess: (
|
|
55
|
-
query: string,
|
|
56
|
-
collection: string,
|
|
57
|
-
maxResults: number,
|
|
58
|
-
) => Promise<QmdSearchResult[]>;
|
|
50
|
+
searchViaSubprocess: (query: string, collection: string, maxResults: number) => Promise<QmdSearchResult[]>;
|
|
59
51
|
searchGlobalViaSubprocess: (query: string, maxResults: number) => Promise<QmdSearchResult[]>;
|
|
60
52
|
};
|
|
61
53
|
|
|
@@ -79,7 +71,7 @@ test("updateStrict respects QMD update min-interval throttles", async () => {
|
|
|
79
71
|
await client.updateStrict();
|
|
80
72
|
await assert.rejects(
|
|
81
73
|
() => client.updateStrict(),
|
|
82
|
-
/QMD update skipped by min-interval gate|QMD update skipped by global min-interval gate
|
|
74
|
+
/QMD update skipped by min-interval gate|QMD update skipped by global min-interval gate/
|
|
83
75
|
);
|
|
84
76
|
} finally {
|
|
85
77
|
client.resetUpdateThrottles();
|
|
@@ -100,10 +92,7 @@ test("embedCollectionStrict rejects QMD embed subprocess failures", async () =>
|
|
|
100
92
|
};
|
|
101
93
|
|
|
102
94
|
try {
|
|
103
|
-
await assert.rejects(
|
|
104
|
-
() => client.embedCollectionStrict("memories--project"),
|
|
105
|
-
/embed subprocess failed/,
|
|
106
|
-
);
|
|
95
|
+
await assert.rejects(() => client.embedCollectionStrict("memories--project"), /embed subprocess failed/);
|
|
107
96
|
} finally {
|
|
108
97
|
client.resetUpdateThrottles();
|
|
109
98
|
}
|
|
@@ -120,7 +109,7 @@ test("embedCollectionStrict respects QMD embed min-interval throttles", async ()
|
|
|
120
109
|
await client.embedCollectionStrict("memories--project");
|
|
121
110
|
await assert.rejects(
|
|
122
111
|
() => client.embedCollectionStrict("memories--project"),
|
|
123
|
-
/QMD embed skipped by per-collection min-interval gate
|
|
112
|
+
/QMD embed skipped by per-collection min-interval gate/
|
|
124
113
|
);
|
|
125
114
|
} finally {
|
|
126
115
|
client.resetUpdateThrottles();
|
|
@@ -198,6 +187,78 @@ test("ensureCollection rechecks collection state after auto-create failure", asy
|
|
|
198
187
|
]);
|
|
199
188
|
});
|
|
200
189
|
|
|
190
|
+
test("QmdClient advertises isolated additional collection support", () => {
|
|
191
|
+
const client = new QmdClient("memories", 3, {});
|
|
192
|
+
|
|
193
|
+
assert.equal(client.supportsAdditionalCollections(), true);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
test("QmdClient excludes a dedicated collection from global search", async () => {
|
|
197
|
+
const client = new QmdClient("memories", 3, {});
|
|
198
|
+
const calls = captureSubprocessArgs(client);
|
|
199
|
+
const controller = new AbortController();
|
|
200
|
+
|
|
201
|
+
await client.excludeCollectionFromGlobalSearch("external-wiki-reading", {
|
|
202
|
+
signal: controller.signal,
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
assert.deepEqual(calls, [["collection", "exclude", "external-wiki-reading"]]);
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
test("QmdClient reports status for a named collection", async () => {
|
|
209
|
+
const client = new QmdClient("memories", 3, {});
|
|
210
|
+
const internals = client as unknown as SubprocessInternals & {
|
|
211
|
+
qmdCapabilities: { safeStatusDeviceProbe: boolean };
|
|
212
|
+
};
|
|
213
|
+
const calls: string[][] = [];
|
|
214
|
+
internals.available = true;
|
|
215
|
+
internals.qmdCapabilities = { safeStatusDeviceProbe: true };
|
|
216
|
+
internals.runQmdCommand = async (args) => {
|
|
217
|
+
calls.push(args);
|
|
218
|
+
return { stdout: "Total: 12\nVectors: 10\nPending: 2", stderr: "" };
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
const status = await client.collectionStatus("external-wiki-reading");
|
|
222
|
+
|
|
223
|
+
assert.equal(status.totalFiles, 12);
|
|
224
|
+
assert.deepEqual(calls, [["status", "-c", "external-wiki-reading"]]);
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
test("QmdClient reports the configured root for a named collection", async () => {
|
|
228
|
+
const client = new QmdClient("memories", 3, {});
|
|
229
|
+
const internals = client as unknown as SubprocessInternals;
|
|
230
|
+
const calls: string[][] = [];
|
|
231
|
+
internals.available = true;
|
|
232
|
+
internals.runQmdCommand = async (args) => {
|
|
233
|
+
calls.push(args);
|
|
234
|
+
return {
|
|
235
|
+
stdout: [
|
|
236
|
+
"Collection: external-wiki-reading",
|
|
237
|
+
" Path: /srv/reading/wiki",
|
|
238
|
+
" Pattern: **/*.md",
|
|
239
|
+
" Include: no",
|
|
240
|
+
].join("\n"),
|
|
241
|
+
stderr: "",
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
const root = await client.collectionRoot("external-wiki-reading");
|
|
246
|
+
|
|
247
|
+
assert.equal(root, "/srv/reading/wiki");
|
|
248
|
+
assert.deepEqual(calls, [["collection", "show", "external-wiki-reading"]]);
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
test("QmdClient removes a dedicated collection but refuses its primary collection", async () => {
|
|
252
|
+
const client = new QmdClient("memories", 3, {});
|
|
253
|
+
const calls = captureSubprocessArgs(client);
|
|
254
|
+
|
|
255
|
+
await assert.rejects(() => client.deleteCollection("memories"), /primary QMD collection/i);
|
|
256
|
+
const removed = await client.deleteCollection("external-wiki-reading");
|
|
257
|
+
|
|
258
|
+
assert.equal(removed, true);
|
|
259
|
+
assert.deepEqual(calls, [["collection", "remove", "external-wiki-reading"]]);
|
|
260
|
+
});
|
|
261
|
+
|
|
201
262
|
test("subprocess fallback defaults to `qmd query` for scoped and global recall", async () => {
|
|
202
263
|
const client = new QmdClient("memories", 3, {});
|
|
203
264
|
const calls = captureSubprocessArgs(client);
|
package/src/qmd.test.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
parseQmdVersion,
|
|
13
13
|
parseQmdExplain,
|
|
14
14
|
resolveQmdCapabilities,
|
|
15
|
+
QmdClient,
|
|
15
16
|
shouldAutoUpgradeQmd,
|
|
16
17
|
} from "./qmd.js";
|
|
17
18
|
|
|
@@ -183,6 +184,29 @@ test("QmdClient preserves configured qmdPath diagnostics when all probes fail",
|
|
|
183
184
|
}
|
|
184
185
|
});
|
|
185
186
|
|
|
187
|
+
test("QmdClient strict configured path never probes PATH or fallback binaries", async () => {
|
|
188
|
+
const configuredPath = "/explicit/benchmark/qmd";
|
|
189
|
+
const probedPaths: string[] = [];
|
|
190
|
+
const client = new QmdClient("test-collection", 10, {
|
|
191
|
+
qmdPath: configuredPath,
|
|
192
|
+
qmdFallbackPaths: ["/implicit/fallback/qmd"],
|
|
193
|
+
qmdStrictPath: true,
|
|
194
|
+
});
|
|
195
|
+
const internals = client as unknown as {
|
|
196
|
+
runVersionProbe: (qmdPath: string) => Promise<{ stdout: string; stderr: string }>;
|
|
197
|
+
};
|
|
198
|
+
internals.runVersionProbe = async (qmdPath: string) => {
|
|
199
|
+
probedPaths.push(qmdPath);
|
|
200
|
+
if (qmdPath === configuredPath) {
|
|
201
|
+
throw Object.assign(new Error("configured binary missing"), { code: "ENOENT" });
|
|
202
|
+
}
|
|
203
|
+
return { stdout: "qmd 2.5.3", stderr: "" };
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
assert.equal(await client.probe(), false);
|
|
207
|
+
assert.deepEqual(probedPaths, [configuredPath]);
|
|
208
|
+
});
|
|
209
|
+
|
|
186
210
|
test("QmdClient read-only availability failures preserve operational state", async () => {
|
|
187
211
|
const { QmdClient } = await import("./qmd.js");
|
|
188
212
|
const originalPath = process.env.PATH;
|