@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
|
@@ -2112,39 +2112,6 @@ test("grounding scopes nested entity facts to the enclosing entity", () => {
|
|
|
2112
2112
|
}]);
|
|
2113
2113
|
});
|
|
2114
2114
|
|
|
2115
|
-
test("grounding preserves punctuation in technology identifiers", () => {
|
|
2116
|
-
const cppResult = filterExtractionResultBySource(
|
|
2117
|
-
{
|
|
2118
|
-
facts: [{
|
|
2119
|
-
category: "fact",
|
|
2120
|
-
content: "Alice uses C++.",
|
|
2121
|
-
confidence: 0.9,
|
|
2122
|
-
tags: [],
|
|
2123
|
-
}],
|
|
2124
|
-
profileUpdates: [],
|
|
2125
|
-
entities: [],
|
|
2126
|
-
questions: [],
|
|
2127
|
-
},
|
|
2128
|
-
"Alice uses C.",
|
|
2129
|
-
);
|
|
2130
|
-
const plainCResult = filterExtractionResultBySource(
|
|
2131
|
-
{
|
|
2132
|
-
facts: [{
|
|
2133
|
-
category: "fact",
|
|
2134
|
-
content: "Alice uses C.",
|
|
2135
|
-
confidence: 0.9,
|
|
2136
|
-
tags: [],
|
|
2137
|
-
}],
|
|
2138
|
-
profileUpdates: [],
|
|
2139
|
-
entities: [],
|
|
2140
|
-
questions: [],
|
|
2141
|
-
},
|
|
2142
|
-
"Alice uses C++.",
|
|
2143
|
-
);
|
|
2144
|
-
|
|
2145
|
-
assert.deepEqual(cppResult.facts, []);
|
|
2146
|
-
assert.deepEqual(plainCResult.facts, []);
|
|
2147
|
-
});
|
|
2148
2115
|
|
|
2149
2116
|
test("grounding requires unresolved questions on the asserted target turn", () => {
|
|
2150
2117
|
const result = filterExtractionResultBySource(
|
|
@@ -2321,6 +2288,214 @@ test("grounding aligns predicates after medial source modifiers", () => {
|
|
|
2321
2288
|
}
|
|
2322
2289
|
});
|
|
2323
2290
|
|
|
2291
|
+
test("grounding normalizes regular third-person verb inflections", () => {
|
|
2292
|
+
for (const [source, content] of [
|
|
2293
|
+
["Alice deploys Acme.", "Alice deployed Acme."],
|
|
2294
|
+
["Alice designs Atlas.", "Alice designed Atlas."],
|
|
2295
|
+
["Alice manages Beacon.", "Alice managed Beacon."],
|
|
2296
|
+
["Alice plans Atlas.", "Alice planned Atlas."],
|
|
2297
|
+
["Alice stops Beacon.", "Alice stopped Beacon."],
|
|
2298
|
+
["Alice tries again.", "Alice tried again."],
|
|
2299
|
+
["They add tags.", "They added tags."],
|
|
2300
|
+
["They call Alice.", "They called Alice."],
|
|
2301
|
+
["They fill forms.", "They filled forms."],
|
|
2302
|
+
["Alice Smith plans Atlas.", "Alice Smith planned Atlas."],
|
|
2303
|
+
["Alice King works at Acme.", "Alice King worked at Acme."],
|
|
2304
|
+
]) {
|
|
2305
|
+
const result = filterExtractionResultBySource(
|
|
2306
|
+
{
|
|
2307
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2308
|
+
profileUpdates: [],
|
|
2309
|
+
entities: [],
|
|
2310
|
+
questions: [],
|
|
2311
|
+
},
|
|
2312
|
+
source,
|
|
2313
|
+
);
|
|
2314
|
+
assert.deepEqual(result.facts.map((fact) => fact.content), [content]);
|
|
2315
|
+
}
|
|
2316
|
+
});
|
|
2317
|
+
|
|
2318
|
+
test("grounding keeps silent-e compatibility out of proper identifiers", () => {
|
|
2319
|
+
for (const [source, content] of [
|
|
2320
|
+
["Alice works at Strip.", "Alice works at Stripe."],
|
|
2321
|
+
["Alice met Kat.", "Alice met Kate."],
|
|
2322
|
+
["Alice owns Plan.", "Alice planned."],
|
|
2323
|
+
]) {
|
|
2324
|
+
const result = filterExtractionResultBySource(
|
|
2325
|
+
{
|
|
2326
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2327
|
+
profileUpdates: [],
|
|
2328
|
+
entities: [],
|
|
2329
|
+
questions: [],
|
|
2330
|
+
},
|
|
2331
|
+
source,
|
|
2332
|
+
);
|
|
2333
|
+
assert.deepEqual(result.facts, []);
|
|
2334
|
+
}
|
|
2335
|
+
});
|
|
2336
|
+
|
|
2337
|
+
test("grounding preserves lowercase identifier tokens ending in s", () => {
|
|
2338
|
+
const result = filterExtractionResultBySource(
|
|
2339
|
+
{
|
|
2340
|
+
facts: [{ category: "fact", content: "alice deployed atla.", confidence: 0.9, tags: [] }],
|
|
2341
|
+
profileUpdates: [],
|
|
2342
|
+
entities: [],
|
|
2343
|
+
questions: [],
|
|
2344
|
+
},
|
|
2345
|
+
"alice deployed atlas.",
|
|
2346
|
+
);
|
|
2347
|
+
|
|
2348
|
+
assert.deepEqual(result.facts, []);
|
|
2349
|
+
});
|
|
2350
|
+
|
|
2351
|
+
test("grounding role normalization matches exact-marked identifiers case-insensitively", () => {
|
|
2352
|
+
const result = filterExtractionResultBySource(
|
|
2353
|
+
{
|
|
2354
|
+
facts: [],
|
|
2355
|
+
profileUpdates: ["User works at Stripe."],
|
|
2356
|
+
entities: [],
|
|
2357
|
+
questions: [],
|
|
2358
|
+
},
|
|
2359
|
+
"I work at stripe.",
|
|
2360
|
+
undefined,
|
|
2361
|
+
{ profile: "I work at stripe.", identity: "" },
|
|
2362
|
+
);
|
|
2363
|
+
|
|
2364
|
+
assert.deepEqual(result.profileUpdates, ["User works at Stripe."]);
|
|
2365
|
+
});
|
|
2366
|
+
|
|
2367
|
+
test("grounding does not stem role-source identifiers ending in s", () => {
|
|
2368
|
+
for (const content of ["User uses Redi.", "User uses Redis."]) {
|
|
2369
|
+
const result = filterExtractionResultBySource(
|
|
2370
|
+
{
|
|
2371
|
+
facts: [],
|
|
2372
|
+
profileUpdates: [content],
|
|
2373
|
+
entities: [],
|
|
2374
|
+
questions: [],
|
|
2375
|
+
},
|
|
2376
|
+
"I use redis.",
|
|
2377
|
+
undefined,
|
|
2378
|
+
{ profile: "I use redis.", identity: "" },
|
|
2379
|
+
);
|
|
2380
|
+
assert.deepEqual(
|
|
2381
|
+
result.profileUpdates,
|
|
2382
|
+
content.endsWith("Redis.") ? [content] : [],
|
|
2383
|
+
);
|
|
2384
|
+
}
|
|
2385
|
+
});
|
|
2386
|
+
|
|
2387
|
+
test("grounding does not treat role-source object plurals as predicates", () => {
|
|
2388
|
+
const result = filterExtractionResultBySource(
|
|
2389
|
+
{
|
|
2390
|
+
facts: [],
|
|
2391
|
+
profileUpdates: ["User planned."],
|
|
2392
|
+
entities: [],
|
|
2393
|
+
questions: [],
|
|
2394
|
+
},
|
|
2395
|
+
"I own plans.",
|
|
2396
|
+
undefined,
|
|
2397
|
+
{ profile: "I own plans.", identity: "" },
|
|
2398
|
+
);
|
|
2399
|
+
|
|
2400
|
+
assert.deepEqual(result.profileUpdates, []);
|
|
2401
|
+
});
|
|
2402
|
+
|
|
2403
|
+
test("grounding falls back to explicitly role-labeled source sentences", () => {
|
|
2404
|
+
const result = filterExtractionResultBySource(
|
|
2405
|
+
{
|
|
2406
|
+
facts: [],
|
|
2407
|
+
profileUpdates: ["User prefers tea."],
|
|
2408
|
+
entities: [],
|
|
2409
|
+
questions: [],
|
|
2410
|
+
},
|
|
2411
|
+
"User prefers tea.",
|
|
2412
|
+
undefined,
|
|
2413
|
+
{ profile: "", identity: "" },
|
|
2414
|
+
);
|
|
2415
|
+
|
|
2416
|
+
assert.deepEqual(result.profileUpdates, ["User prefers tea."]);
|
|
2417
|
+
});
|
|
2418
|
+
|
|
2419
|
+
test("grounding uses the main source when a role source is omitted", () => {
|
|
2420
|
+
const result = filterExtractionResultBySource(
|
|
2421
|
+
{
|
|
2422
|
+
facts: [],
|
|
2423
|
+
profileUpdates: ["User prefers tea."],
|
|
2424
|
+
entities: [],
|
|
2425
|
+
questions: [],
|
|
2426
|
+
},
|
|
2427
|
+
"I prefer tea.",
|
|
2428
|
+
undefined,
|
|
2429
|
+
{ identity: "" },
|
|
2430
|
+
);
|
|
2431
|
+
|
|
2432
|
+
assert.deepEqual(result.profileUpdates, ["User prefers tea."]);
|
|
2433
|
+
});
|
|
2434
|
+
|
|
2435
|
+
test("grounding keeps C, C++, and C# identifiers pairwise distinct", () => {
|
|
2436
|
+
const identifiers = ["C", "C++", "C#"];
|
|
2437
|
+
for (const sourceIdentifier of identifiers) {
|
|
2438
|
+
for (const candidateIdentifier of identifiers) {
|
|
2439
|
+
const content = `Alice uses ${candidateIdentifier}.`;
|
|
2440
|
+
const result = filterExtractionResultBySource(
|
|
2441
|
+
{
|
|
2442
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2443
|
+
profileUpdates: [],
|
|
2444
|
+
entities: [],
|
|
2445
|
+
questions: [],
|
|
2446
|
+
},
|
|
2447
|
+
`Alice uses ${sourceIdentifier}.`,
|
|
2448
|
+
);
|
|
2449
|
+
assert.deepEqual(
|
|
2450
|
+
result.facts.map((fact) => fact.content),
|
|
2451
|
+
sourceIdentifier === candidateIdentifier ? [content] : [],
|
|
2452
|
+
);
|
|
2453
|
+
}
|
|
2454
|
+
}
|
|
2455
|
+
});
|
|
2456
|
+
|
|
2457
|
+
|
|
2458
|
+
test("grounding inherits coordinated subjects and predicates", () => {
|
|
2459
|
+
for (const [source, content] of [
|
|
2460
|
+
["Alice works at Acme and owns Mars.", "Alice owns Mars."],
|
|
2461
|
+
["Alice uses PostgreSQL, Redis, and Kafka.", "Alice uses Kafka."],
|
|
2462
|
+
]) {
|
|
2463
|
+
const result = filterExtractionResultBySource(
|
|
2464
|
+
{
|
|
2465
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2466
|
+
profileUpdates: [],
|
|
2467
|
+
entities: [],
|
|
2468
|
+
questions: [],
|
|
2469
|
+
},
|
|
2470
|
+
source,
|
|
2471
|
+
);
|
|
2472
|
+
assert.deepEqual(result.facts.map((fact) => fact.content), [content]);
|
|
2473
|
+
}
|
|
2474
|
+
});
|
|
2475
|
+
|
|
2476
|
+
test("grounding does not inherit across explicit coordinated subjects", () => {
|
|
2477
|
+
for (const [source, content] of [
|
|
2478
|
+
["Alice works at Acme and Bob owns Mars.", "Alice owns Mars."],
|
|
2479
|
+
["Alice works at Acme and Bob sleeps.", "Alice sleeps."],
|
|
2480
|
+
["Alice works at Acme, Bob called Alice, and designed Mars.", "Alice designed Mars."],
|
|
2481
|
+
["Alice works at Acme and Bob can swim.", "Alice can swim."],
|
|
2482
|
+
["Acme works with Alice, Acme Labs called Bob, and designed Mars.", "Acme designed Mars."],
|
|
2483
|
+
["Alice works at Acme and Bob went home.", "Alice went home."],
|
|
2484
|
+
["Alice works at Acme and Bob ate lunch.", "Alice ate lunch."],
|
|
2485
|
+
]) {
|
|
2486
|
+
const result = filterExtractionResultBySource(
|
|
2487
|
+
{
|
|
2488
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2489
|
+
profileUpdates: [],
|
|
2490
|
+
entities: [],
|
|
2491
|
+
questions: [],
|
|
2492
|
+
},
|
|
2493
|
+
source,
|
|
2494
|
+
);
|
|
2495
|
+
assert.deepEqual(result.facts, []);
|
|
2496
|
+
}
|
|
2497
|
+
});
|
|
2498
|
+
|
|
2324
2499
|
test("grounding requires causal evidence before removing why questions", () => {
|
|
2325
2500
|
const question = { question: "Why did Alice deploy Acme?", context: "", priority: 0.5 };
|
|
2326
2501
|
const unanswered = filterExtractionResultBySource(
|
|
@@ -2335,3 +2510,158 @@ test("grounding requires causal evidence before removing why questions", () => {
|
|
|
2335
2510
|
);
|
|
2336
2511
|
assert.deepEqual(answered.questions, []);
|
|
2337
2512
|
});
|
|
2513
|
+
|
|
2514
|
+
test("grounding rejects partial assertions from source disjunctions", () => {
|
|
2515
|
+
for (const source of [
|
|
2516
|
+
"Alice uses Redis or PostgreSQL.",
|
|
2517
|
+
"Does Alice use Redis or PostgreSQL?\nYes.",
|
|
2518
|
+
]) {
|
|
2519
|
+
for (const content of ["Alice uses Redis.", "Alice uses PostgreSQL."]) {
|
|
2520
|
+
const result = filterExtractionResultBySource(
|
|
2521
|
+
{
|
|
2522
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2523
|
+
profileUpdates: [],
|
|
2524
|
+
entities: [],
|
|
2525
|
+
questions: [],
|
|
2526
|
+
},
|
|
2527
|
+
source,
|
|
2528
|
+
);
|
|
2529
|
+
assert.deepEqual(result.facts, []);
|
|
2530
|
+
}
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
for (const source of [
|
|
2534
|
+
"Alice uses Redis or PostgreSQL.",
|
|
2535
|
+
"Does Alice use Redis or PostgreSQL?\nYes.",
|
|
2536
|
+
]) {
|
|
2537
|
+
const content = "Alice uses Redis or PostgreSQL.";
|
|
2538
|
+
const result = filterExtractionResultBySource(
|
|
2539
|
+
{
|
|
2540
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2541
|
+
profileUpdates: [],
|
|
2542
|
+
entities: [],
|
|
2543
|
+
questions: [],
|
|
2544
|
+
},
|
|
2545
|
+
source,
|
|
2546
|
+
);
|
|
2547
|
+
assert.deepEqual(result.facts.map((fact) => fact.content), [content]);
|
|
2548
|
+
}
|
|
2549
|
+
|
|
2550
|
+
const commonPrefix = filterExtractionResultBySource(
|
|
2551
|
+
{
|
|
2552
|
+
facts: [{
|
|
2553
|
+
category: "fact",
|
|
2554
|
+
content: "Alice uses Redis.",
|
|
2555
|
+
confidence: 0.9,
|
|
2556
|
+
tags: [],
|
|
2557
|
+
}],
|
|
2558
|
+
profileUpdates: [],
|
|
2559
|
+
entities: [],
|
|
2560
|
+
questions: [],
|
|
2561
|
+
},
|
|
2562
|
+
"Alice uses Redis for cache hits or misses.",
|
|
2563
|
+
);
|
|
2564
|
+
assert.deepEqual(
|
|
2565
|
+
commonPrefix.facts.map((fact) => fact.content),
|
|
2566
|
+
["Alice uses Redis."],
|
|
2567
|
+
);
|
|
2568
|
+
});
|
|
2569
|
+
|
|
2570
|
+
test("grounding aligns object wh-question answers by subject and predicate", () => {
|
|
2571
|
+
for (const [questionText, answer, roleReversedAnswer] of [
|
|
2572
|
+
[
|
|
2573
|
+
"What database does Alice use?",
|
|
2574
|
+
"Alice uses PostgreSQL as the database.",
|
|
2575
|
+
"PostgreSQL uses Alice as the database.",
|
|
2576
|
+
],
|
|
2577
|
+
["Who does Alice employ?", "Alice employs Bob.", "Bob employs Alice."],
|
|
2578
|
+
["Whom does Alice employ?", "Alice employs Bob.", "Bob employs Alice."],
|
|
2579
|
+
["Who does Alice work with?", "Alice works with Bob.", "Bob works with Alice."],
|
|
2580
|
+
["Whom does Alice connect to?", "Alice connects to Bob.", "Bob connects to Alice."],
|
|
2581
|
+
]) {
|
|
2582
|
+
const question = { question: questionText, context: "", priority: 0.5 };
|
|
2583
|
+
const answered = filterExtractionResultBySource(
|
|
2584
|
+
{ facts: [], profileUpdates: [], entities: [], questions: [question] },
|
|
2585
|
+
`${questionText}\n${answer}`,
|
|
2586
|
+
);
|
|
2587
|
+
assert.deepEqual(answered.questions, []);
|
|
2588
|
+
|
|
2589
|
+
const roleReversed = filterExtractionResultBySource(
|
|
2590
|
+
{ facts: [], profileUpdates: [], entities: [], questions: [question] },
|
|
2591
|
+
`${questionText}\n${roleReversedAnswer}`,
|
|
2592
|
+
);
|
|
2593
|
+
assert.deepEqual(roleReversed.questions, [question]);
|
|
2594
|
+
}
|
|
2595
|
+
});
|
|
2596
|
+
|
|
2597
|
+
test("grounding does not stem verb-like object plurals", () => {
|
|
2598
|
+
const result = filterExtractionResultBySource(
|
|
2599
|
+
{
|
|
2600
|
+
facts: [{
|
|
2601
|
+
category: "fact",
|
|
2602
|
+
content: "Alice sells the plan.",
|
|
2603
|
+
confidence: 0.9,
|
|
2604
|
+
tags: [],
|
|
2605
|
+
}],
|
|
2606
|
+
profileUpdates: [],
|
|
2607
|
+
entities: [],
|
|
2608
|
+
questions: [],
|
|
2609
|
+
},
|
|
2610
|
+
"Alice sells plans.",
|
|
2611
|
+
);
|
|
2612
|
+
|
|
2613
|
+
assert.deepEqual(result.facts, []);
|
|
2614
|
+
});
|
|
2615
|
+
|
|
2616
|
+
test("grounding recognizes capitalized predicates in subjectless role fragments", () => {
|
|
2617
|
+
const result = filterExtractionResultBySource(
|
|
2618
|
+
{
|
|
2619
|
+
facts: [],
|
|
2620
|
+
profileUpdates: ["User uses Redis."],
|
|
2621
|
+
entities: [],
|
|
2622
|
+
questions: [],
|
|
2623
|
+
},
|
|
2624
|
+
"Uses Redis.",
|
|
2625
|
+
undefined,
|
|
2626
|
+
{ profile: "Uses Redis.", identity: "" },
|
|
2627
|
+
);
|
|
2628
|
+
|
|
2629
|
+
assert.deepEqual(result.profileUpdates, ["User uses Redis."]);
|
|
2630
|
+
});
|
|
2631
|
+
|
|
2632
|
+
test("grounding keeps sentence-initial plural subjects distinct", () => {
|
|
2633
|
+
const result = filterExtractionResultBySource(
|
|
2634
|
+
{
|
|
2635
|
+
facts: [{
|
|
2636
|
+
category: "fact",
|
|
2637
|
+
content: "Plan is active.",
|
|
2638
|
+
confidence: 0.9,
|
|
2639
|
+
tags: [],
|
|
2640
|
+
}],
|
|
2641
|
+
profileUpdates: [],
|
|
2642
|
+
entities: [],
|
|
2643
|
+
questions: [],
|
|
2644
|
+
},
|
|
2645
|
+
"Plans are active.",
|
|
2646
|
+
);
|
|
2647
|
+
|
|
2648
|
+
assert.deepEqual(result.facts, []);
|
|
2649
|
+
});
|
|
2650
|
+
|
|
2651
|
+
test("grounding preserves plural identifiers after a proper-name copular subject", () => {
|
|
2652
|
+
for (const [source, content] of [
|
|
2653
|
+
["Alice is atlas.", "Alice is atla."],
|
|
2654
|
+
["Alice is the atlas.", "Alice is the atla."],
|
|
2655
|
+
]) {
|
|
2656
|
+
const result = filterExtractionResultBySource(
|
|
2657
|
+
{
|
|
2658
|
+
facts: [{ category: "fact", content, confidence: 0.9, tags: [] }],
|
|
2659
|
+
profileUpdates: [],
|
|
2660
|
+
entities: [],
|
|
2661
|
+
questions: [],
|
|
2662
|
+
},
|
|
2663
|
+
source,
|
|
2664
|
+
);
|
|
2665
|
+
assert.deepEqual(result.facts, []);
|
|
2666
|
+
}
|
|
2667
|
+
});
|
|
@@ -64,6 +64,49 @@ test("aggregate watermark selects the most recent extraction across distinct nam
|
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
+
test("aggregate stats sum extraction counts and select the newest consolidation", async () => {
|
|
68
|
+
const fixture = await namespacedFixture();
|
|
69
|
+
try {
|
|
70
|
+
const result = await readAggregateExtractionWatermark({
|
|
71
|
+
config: fixture.config,
|
|
72
|
+
rootStorage: {
|
|
73
|
+
dir: fixture.memoryDir,
|
|
74
|
+
loadMeta: async () => ({
|
|
75
|
+
lastExtractionAt: "2026-07-20T12:00:00.000Z",
|
|
76
|
+
extractionCount: 2,
|
|
77
|
+
lastConsolidationAt: "2026-07-20T13:00:00.000Z",
|
|
78
|
+
}),
|
|
79
|
+
},
|
|
80
|
+
storageForNamespace: async (namespace, rootDir) => ({
|
|
81
|
+
dir: rootDir,
|
|
82
|
+
loadMeta: async () => ({
|
|
83
|
+
lastExtractionAt:
|
|
84
|
+
namespace === "team-a"
|
|
85
|
+
? "2026-07-21T12:00:00.000Z"
|
|
86
|
+
: "2026-07-22T12:00:00.000Z",
|
|
87
|
+
extractionCount:
|
|
88
|
+
namespace === "team-a"
|
|
89
|
+
? 3
|
|
90
|
+
: namespace === fixture.config.sharedNamespace
|
|
91
|
+
? 7
|
|
92
|
+
: 5,
|
|
93
|
+
lastConsolidationAt:
|
|
94
|
+
namespace === "team-a"
|
|
95
|
+
? "2026-07-23T13:00:00.000Z"
|
|
96
|
+
: "2026-07-21T13:00:00.000Z",
|
|
97
|
+
}),
|
|
98
|
+
}),
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
assert.deepEqual(result.rootStats, {
|
|
102
|
+
extractionCount: 17,
|
|
103
|
+
lastConsolidationAt: "2026-07-23T13:00:00.000Z",
|
|
104
|
+
});
|
|
105
|
+
} finally {
|
|
106
|
+
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
67
110
|
test("a namespace-isolated extraction advances the daemon aggregate watermark", async () => {
|
|
68
111
|
const fixture = await namespacedFixture();
|
|
69
112
|
try {
|
|
@@ -89,7 +132,14 @@ test("a partial namespace read returns readFailed instead of a survivor's fresh
|
|
|
89
132
|
try {
|
|
90
133
|
const result = await readAggregateExtractionWatermark({
|
|
91
134
|
config: fixture.config,
|
|
92
|
-
rootStorage:
|
|
135
|
+
rootStorage: {
|
|
136
|
+
dir: fixture.memoryDir,
|
|
137
|
+
loadMeta: async () => ({
|
|
138
|
+
lastExtractionAt: "2026-07-23T12:00:00.000Z",
|
|
139
|
+
extractionCount: 2,
|
|
140
|
+
lastConsolidationAt: null,
|
|
141
|
+
}),
|
|
142
|
+
},
|
|
93
143
|
storageForNamespace: async (namespace) =>
|
|
94
144
|
storage(fixture.namespaceDirs[namespace], async () => {
|
|
95
145
|
if (namespace === "team-b") throw new Error("meta store unavailable");
|
|
@@ -101,6 +151,7 @@ test("a partial namespace read returns readFailed instead of a survivor's fresh
|
|
|
101
151
|
assert.equal(result.readFailed, true);
|
|
102
152
|
assert.match(result.readError ?? "", /namespace watermark unreadable/);
|
|
103
153
|
assert.match(result.readError ?? "", /meta store unavailable/);
|
|
154
|
+
assert.equal(result.rootStats, undefined, "partial aggregate counters must not be reported");
|
|
104
155
|
} finally {
|
|
105
156
|
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
106
157
|
}
|
|
@@ -136,17 +187,27 @@ test("default root capability check uses normalized aliases for migrated storage
|
|
|
136
187
|
rootStorage: storage(fixture.memoryDir, async () => {
|
|
137
188
|
throw new Error("inactive legacy root is unreadable");
|
|
138
189
|
}),
|
|
139
|
-
storageForNamespace: async (_namespace, rootDir) =>
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
190
|
+
storageForNamespace: async (_namespace, rootDir) => ({
|
|
191
|
+
dir: rootDir,
|
|
192
|
+
loadMeta: async () => ({
|
|
193
|
+
lastExtractionAt:
|
|
194
|
+
path.resolve(rootDir) === path.resolve(migratedDefaultDir)
|
|
195
|
+
? "2026-07-26T12:00:00.000Z"
|
|
196
|
+
: "2026-07-24T12:00:00.000Z",
|
|
197
|
+
extractionCount:
|
|
198
|
+
path.resolve(rootDir) === path.resolve(migratedDefaultDir) ? 7 : 11,
|
|
199
|
+
lastConsolidationAt: null,
|
|
200
|
+
}),
|
|
201
|
+
}),
|
|
145
202
|
caps: { version: TOKEN_CAPABILITIES_VERSION, namespaces: ["default"] },
|
|
146
203
|
});
|
|
147
204
|
|
|
148
205
|
assert.equal(result.lastExtractionAt, "2026-07-26T12:00:00.000Z");
|
|
149
206
|
assert.equal(result.readFailed, false);
|
|
207
|
+
assert.deepEqual(result.rootStats, {
|
|
208
|
+
extractionCount: 7,
|
|
209
|
+
lastConsolidationAt: null,
|
|
210
|
+
});
|
|
150
211
|
} finally {
|
|
151
212
|
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
152
213
|
}
|
|
@@ -169,6 +230,88 @@ test("unparsable non-null timestamp in namespace store fails the aggregate read"
|
|
|
169
230
|
}
|
|
170
231
|
});
|
|
171
232
|
|
|
233
|
+
test("overflowed calendar timestamp in namespace store fails the aggregate read", async () => {
|
|
234
|
+
const fixture = await namespacedFixture();
|
|
235
|
+
try {
|
|
236
|
+
const result = await readAggregateExtractionWatermark({
|
|
237
|
+
config: fixture.config,
|
|
238
|
+
rootStorage: storage(fixture.memoryDir, async () => "2026-07-20T12:00:00.000Z"),
|
|
239
|
+
storageForNamespace: async (namespace) =>
|
|
240
|
+
storage(
|
|
241
|
+
fixture.namespaceDirs[namespace],
|
|
242
|
+
async () =>
|
|
243
|
+
namespace === "team-a"
|
|
244
|
+
? "2026-02-30T12:00:00.000Z"
|
|
245
|
+
: "2026-07-25T12:00:00.000Z",
|
|
246
|
+
),
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
assert.equal(result.lastExtractionAt, null);
|
|
250
|
+
assert.equal(result.readFailed, true);
|
|
251
|
+
assert.match(result.readError ?? "", /watermark timestamp invalid/);
|
|
252
|
+
} finally {
|
|
253
|
+
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
test("valid ISO timestamp variants remain eligible for aggregate watermark selection", async () => {
|
|
258
|
+
const fixture = await namespacedFixture();
|
|
259
|
+
try {
|
|
260
|
+
const result = await readAggregateExtractionWatermark({
|
|
261
|
+
config: fixture.config,
|
|
262
|
+
rootStorage: storage(fixture.memoryDir, async () => "2026-07-19t24:00:00z"),
|
|
263
|
+
storageForNamespace: async (namespace) =>
|
|
264
|
+
storage(
|
|
265
|
+
fixture.namespaceDirs[namespace],
|
|
266
|
+
async () =>
|
|
267
|
+
namespace === "team-a"
|
|
268
|
+
? "2026-07-20t12:00:00z"
|
|
269
|
+
: "2026-07-20T08:00:00-0500",
|
|
270
|
+
),
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
assert.equal(result.lastExtractionAt, "2026-07-20T08:00:00-0500");
|
|
274
|
+
assert.equal(result.readFailed, false);
|
|
275
|
+
} finally {
|
|
276
|
+
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
test("overflowed consolidation timestamp in namespace store fails the aggregate read", async () => {
|
|
281
|
+
const fixture = await namespacedFixture();
|
|
282
|
+
try {
|
|
283
|
+
const result = await readAggregateExtractionWatermark({
|
|
284
|
+
config: fixture.config,
|
|
285
|
+
rootStorage: {
|
|
286
|
+
dir: fixture.memoryDir,
|
|
287
|
+
loadMeta: async () => ({
|
|
288
|
+
lastExtractionAt: "2026-07-20T12:00:00.000Z",
|
|
289
|
+
extractionCount: 2,
|
|
290
|
+
lastConsolidationAt: "2026-07-20T13:00:00.000Z",
|
|
291
|
+
}),
|
|
292
|
+
},
|
|
293
|
+
storageForNamespace: async (namespace) => ({
|
|
294
|
+
dir: fixture.namespaceDirs[namespace],
|
|
295
|
+
loadMeta: async () => ({
|
|
296
|
+
lastExtractionAt: "2026-07-21T12:00:00.000Z",
|
|
297
|
+
extractionCount: 3,
|
|
298
|
+
lastConsolidationAt:
|
|
299
|
+
namespace === "team-a"
|
|
300
|
+
? "2026-02-30T13:00:00.000Z"
|
|
301
|
+
: "2026-07-21T13:00:00.000Z",
|
|
302
|
+
}),
|
|
303
|
+
}),
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
assert.equal(result.lastExtractionAt, null);
|
|
307
|
+
assert.equal(result.readFailed, true);
|
|
308
|
+
assert.equal(result.rootStats, undefined);
|
|
309
|
+
assert.match(result.readError ?? "", /consolidation timestamp invalid/);
|
|
310
|
+
} finally {
|
|
311
|
+
await rm(fixture.memoryDir, { recursive: true, force: true });
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
|
|
172
315
|
test("namespace discovery I/O failure is an explicit incomplete read", async () => {
|
|
173
316
|
const memoryDir = await mkdtemp(path.join(os.tmpdir(), "remnic-extraction-watermark-enumeration-"));
|
|
174
317
|
try {
|
package/src/extraction.ts
CHANGED
|
@@ -1161,7 +1161,13 @@ export class ExtractionEngine {
|
|
|
1161
1161
|
};
|
|
1162
1162
|
if (renderedConversation.trim().length === 0) {
|
|
1163
1163
|
log.debug("extraction skipped — conversation only contained non-memory work-layer context");
|
|
1164
|
-
return {
|
|
1164
|
+
return {
|
|
1165
|
+
facts: [],
|
|
1166
|
+
profileUpdates: [],
|
|
1167
|
+
entities: [],
|
|
1168
|
+
questions: [],
|
|
1169
|
+
extractionSkippedReason: "conversation_only_non_memory",
|
|
1170
|
+
};
|
|
1165
1171
|
}
|
|
1166
1172
|
if (
|
|
1167
1173
|
lifecycleCaps.extractionTelemetryPrefilter &&
|
|
@@ -1173,6 +1179,7 @@ export class ExtractionEngine {
|
|
|
1173
1179
|
profileUpdates: [],
|
|
1174
1180
|
entities: [],
|
|
1175
1181
|
questions: [],
|
|
1182
|
+
extractionSkippedReason: "mechanical_telemetry",
|
|
1176
1183
|
};
|
|
1177
1184
|
}
|
|
1178
1185
|
|
package/src/index.ts
CHANGED
|
@@ -9,11 +9,6 @@
|
|
|
9
9
|
* This package has ZERO OpenClaw imports — it can be consumed by
|
|
10
10
|
* any host adapter (CLI, HTTP server, MCP server, etc.).
|
|
11
11
|
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* import { Orchestrator, parseConfig } from "@remnic/core";
|
|
14
|
-
* const config = parseConfig({ memoryDir: "/tmp/mem" });
|
|
15
|
-
* const orch = new Orchestrator(config);
|
|
16
|
-
* await orch.initialize();
|
|
17
12
|
*/
|
|
18
13
|
|
|
19
14
|
// ---------------------------------------------------------------------------
|
|
@@ -28,6 +23,8 @@ export { resolvePluginEntry, type PluginEntryResolverOptions } from "./plugin-en
|
|
|
28
23
|
|
|
29
24
|
export { parseConfig, isOpenaiApiKeyDisabled, resolveEnvVars } from "./config.js";
|
|
30
25
|
export { resolveRemnicConfigRecord } from "./config-record.js";
|
|
26
|
+
export * from "./external-wiki.js";
|
|
27
|
+
export * from "./external-wiki-cli.js";
|
|
31
28
|
export {
|
|
32
29
|
parseFlexibleIsoTimestamp,
|
|
33
30
|
parseIsoOffsetTimestamp,
|
|
@@ -111,6 +108,7 @@ export {
|
|
|
111
108
|
serializeEntityFile,
|
|
112
109
|
type MemoryWriteResult,
|
|
113
110
|
} from "./storage.js";
|
|
111
|
+
export { withRawEntityPageMutation } from "./storage/entity-canonical-id-lock.js";
|
|
114
112
|
export {
|
|
115
113
|
composeMemoryEnvelope,
|
|
116
114
|
buildAccessWriteRequestFingerprint,
|
|
@@ -836,6 +834,7 @@ export {
|
|
|
836
834
|
OFFLINE_SYNC_CHANGESET_FORMAT,
|
|
837
835
|
OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,
|
|
838
836
|
OFFLINE_SYNC_FILE_CONTENT_TRANSFER_CHUNK_BYTES,
|
|
837
|
+
OFFLINE_SYNC_MAX_MTIME_MS,
|
|
839
838
|
OFFLINE_SYNC_SNAPSHOT_BASE_MAX_BODY_BYTES,
|
|
840
839
|
OFFLINE_SYNC_SNAPSHOT_FORMAT,
|
|
841
840
|
OFFLINE_SYNC_STATE_VERSION,
|
|
@@ -850,8 +849,10 @@ export {
|
|
|
850
849
|
compileOfflineSyncExcludeGlobs,
|
|
851
850
|
defaultOfflineSyncStatePath,
|
|
852
851
|
fileStatesFromSnapshot,
|
|
852
|
+
filterOfflineSyncDeletionRevisions,
|
|
853
853
|
globToRegExp,
|
|
854
854
|
iterateOfflineSyncSnapshotFileRecords,
|
|
855
|
+
isInternalRemnicStatePath,
|
|
855
856
|
normalizeOfflineSyncChangeset,
|
|
856
857
|
normalizeOfflineSyncSnapshot,
|
|
857
858
|
offlineSyncStateFromSnapshot,
|
|
@@ -868,9 +869,12 @@ export {
|
|
|
868
869
|
type OfflineSyncChange,
|
|
869
870
|
type OfflineSyncChangeset,
|
|
870
871
|
type OfflineSyncConflict,
|
|
872
|
+
type OfflineSyncDeletionRevision,
|
|
873
|
+
type OfflineSyncFileDeleteTarget,
|
|
871
874
|
type OfflineSyncFileDigest,
|
|
872
875
|
type OfflineSyncFileRecord,
|
|
873
876
|
type OfflineSyncFileContentChunk,
|
|
877
|
+
type OfflineSyncRecordDeletionRevision,
|
|
874
878
|
type OfflineSyncFileState,
|
|
875
879
|
type OfflineSyncFileTarget,
|
|
876
880
|
type OfflineSyncFileWriteTarget,
|