@remnic/core 1.1.12 → 1.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-cli.d.ts +2 -1
- package/dist/access-cli.js +263 -82
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +26 -60
- package/dist/access-http.js +43 -29
- package/dist/access-mcp.d.ts +24 -6
- package/dist/access-mcp.js +35 -28
- package/dist/access-schema.d.ts +9 -6
- package/dist/access-schema.js +7 -5
- package/dist/access-service-DcCDmNYC.d.ts +1542 -0
- package/dist/access-service.d.ts +25 -7
- package/dist/access-service.js +33 -26
- package/dist/active-memory-bridge.js +2 -2
- package/dist/active-recall.js +11 -3
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/claude-code.d.ts +24 -0
- package/dist/adapters/claude-code.js +9 -0
- package/dist/adapters/codex.d.ts +25 -0
- package/dist/adapters/codex.js +9 -0
- package/dist/adapters/hermes.d.ts +35 -0
- package/dist/adapters/hermes.js +9 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.js +26 -0
- package/dist/adapters/registry.d.ts +20 -0
- package/dist/adapters/registry.js +13 -0
- package/dist/adapters/replit.d.ts +28 -0
- package/dist/adapters/replit.js +9 -0
- package/dist/adapters/types.d.ts +43 -0
- package/dist/adapters/types.js +8 -0
- package/dist/bootstrap.d.ts +20 -5
- package/dist/boxes.d.ts +7 -0
- package/dist/boxes.js +1 -1
- package/dist/briefing.d.ts +5 -3
- package/dist/briefing.js +9 -6
- package/dist/buffer-surprise-report.js +1 -1
- package/dist/buffer.d.ts +18 -4
- package/dist/buffer.js +1 -1
- package/dist/calibration.js +4 -4
- package/dist/capsule-cli.d.ts +4 -4
- package/dist/capsule-cli.js +1 -1
- package/dist/capsule-crypto-5CYAGVC5.js +18 -0
- package/dist/capsule-merge-4MGKE7C5.js +189 -0
- package/dist/causal-behavior.d.ts +8 -28
- package/dist/causal-behavior.js +6 -3
- package/dist/causal-behavior.js.map +1 -1
- package/dist/causal-chain.js +3 -2
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +24 -13
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +3 -3
- package/dist/causal-trajectory.js +1 -1
- package/dist/chunk-25MQ7IHJ.js +427 -0
- package/dist/chunk-25MQ7IHJ.js.map +1 -0
- package/dist/chunk-2F2W355T.js +256 -0
- package/dist/chunk-2F2W355T.js.map +1 -0
- package/dist/chunk-2KI4QFHU.js +228 -0
- package/dist/chunk-2KI4QFHU.js.map +1 -0
- package/dist/chunk-2PRQG7PV.js +86 -0
- package/dist/chunk-2PRQG7PV.js.map +1 -0
- package/dist/chunk-2QR3XXIC.js +2272 -0
- package/dist/chunk-2QR3XXIC.js.map +1 -0
- package/dist/chunk-2WWLHTZY.js +121 -0
- package/dist/chunk-326G7DJK.js +2185 -0
- package/dist/chunk-326G7DJK.js.map +1 -0
- package/dist/chunk-34DQE4KF.js +174 -0
- package/dist/chunk-34DQE4KF.js.map +1 -0
- package/dist/chunk-3APJ5EVB.js +601 -0
- package/dist/chunk-3APJ5EVB.js.map +1 -0
- package/dist/chunk-3HPAPHUK.js +51 -0
- package/dist/chunk-3HPAPHUK.js.map +1 -0
- package/dist/chunk-3JXBXXM2.js +69 -0
- package/dist/chunk-3JXBXXM2.js.map +1 -0
- package/dist/chunk-3KW65B36.js +681 -0
- package/dist/chunk-3KW65B36.js.map +1 -0
- package/dist/chunk-3UXOZBHV.js +20 -0
- package/dist/chunk-3UXOZBHV.js.map +1 -0
- package/dist/chunk-3VAL7ZL2.js +266 -0
- package/dist/chunk-3VAL7ZL2.js.map +1 -0
- package/dist/chunk-3Y4P7RXM.js +31 -0
- package/dist/chunk-3Y4P7RXM.js.map +1 -0
- package/dist/chunk-47VWKCAF.js +273 -0
- package/dist/chunk-47VWKCAF.js.map +1 -0
- package/dist/chunk-4CRG46BG.js +271 -0
- package/dist/chunk-5375UYTQ.js +914 -0
- package/dist/chunk-5375UYTQ.js.map +1 -0
- package/dist/chunk-56K5QLHX.js +506 -0
- package/dist/chunk-56K5QLHX.js.map +1 -0
- package/dist/chunk-5RGLBDQF.js +596 -0
- package/dist/chunk-5RGLBDQF.js.map +1 -0
- package/dist/chunk-5UZXUTVO.js +9 -0
- package/dist/chunk-5UZXUTVO.js.map +1 -0
- package/dist/chunk-65PG43EQ.js +105 -0
- package/dist/chunk-65PG43EQ.js.map +1 -0
- package/dist/chunk-66DHUKLO.js +57 -0
- package/dist/chunk-66DHUKLO.js.map +1 -0
- package/dist/chunk-6FC5EGNV.js +46 -0
- package/dist/chunk-6FC5EGNV.js.map +1 -0
- package/dist/chunk-6H2TESSP.js +62 -0
- package/dist/chunk-6H2TESSP.js.map +1 -0
- package/dist/chunk-6LVVDPJ4.js +32 -0
- package/dist/chunk-6LVVDPJ4.js.map +1 -0
- package/dist/chunk-6RVI47ZR.js +159 -0
- package/dist/chunk-6RVI47ZR.js.map +1 -0
- package/dist/chunk-7AAT6G4Q.js +5117 -0
- package/dist/chunk-7AAT6G4Q.js.map +1 -0
- package/dist/chunk-7DTASS5T.js +29 -0
- package/dist/chunk-7DTASS5T.js.map +1 -0
- package/dist/chunk-7IASACLB.js +596 -0
- package/dist/chunk-7MNMYOFP.js +32 -0
- package/dist/chunk-7MNMYOFP.js.map +1 -0
- package/dist/chunk-7N4KAIGN.js +133 -0
- package/dist/chunk-7N4KAIGN.js.map +1 -0
- package/dist/chunk-7OZ53EXP.js +101 -0
- package/dist/chunk-7OZ53EXP.js.map +1 -0
- package/dist/chunk-7XYTQGCC.js +134 -0
- package/dist/chunk-7XYTQGCC.js.map +1 -0
- package/dist/chunk-A2XUIMJ3.js +341 -0
- package/dist/chunk-A2XUIMJ3.js.map +1 -0
- package/dist/chunk-AGZQD76C.js +201 -0
- package/dist/chunk-AGZQD76C.js.map +1 -0
- package/dist/chunk-APO3DCMU.js +361 -0
- package/dist/chunk-APO3DCMU.js.map +1 -0
- package/dist/chunk-BFBF3XEF.js +283 -0
- package/dist/chunk-BFBF3XEF.js.map +1 -0
- package/dist/chunk-BJ3KMYTB.js +1974 -0
- package/dist/chunk-BJ3KMYTB.js.map +1 -0
- package/dist/chunk-CHEL3SKB.js +6758 -0
- package/dist/chunk-CHEL3SKB.js.map +1 -0
- package/dist/chunk-CQZRLNMV.js +1491 -0
- package/dist/chunk-CQZRLNMV.js.map +1 -0
- package/dist/chunk-D46YSIYX.js +892 -0
- package/dist/chunk-D46YSIYX.js.map +1 -0
- package/dist/chunk-DINWEURR.js +648 -0
- package/dist/chunk-DINWEURR.js.map +1 -0
- package/dist/chunk-DK5LDEQM.js +530 -0
- package/dist/chunk-DK5LDEQM.js.map +1 -0
- package/dist/chunk-DOM4GKSW.js +34 -0
- package/dist/chunk-DOM4GKSW.js.map +1 -0
- package/dist/chunk-EDTHC6UD.js +1075 -0
- package/dist/chunk-EFJ3MQ4V.js +721 -0
- package/dist/chunk-EHRTFRWW.js +89 -0
- package/dist/chunk-EHRTFRWW.js.map +1 -0
- package/dist/chunk-FAJ7FZYM.js +11 -0
- package/dist/chunk-FAJ7FZYM.js.map +1 -0
- package/dist/chunk-FBYESMQ2.js +570 -0
- package/dist/chunk-FDU6HUUL.js +147 -0
- package/dist/chunk-FF4KLI5W.js +99 -0
- package/dist/chunk-FF4KLI5W.js.map +1 -0
- package/dist/chunk-FIT6DMX6.js +310 -0
- package/dist/chunk-FIT6DMX6.js.map +1 -0
- package/dist/chunk-FJ43PRLT.js +272 -0
- package/dist/chunk-FJ43PRLT.js.map +1 -0
- package/dist/chunk-FKFMOY3N.js +32 -0
- package/dist/chunk-FKFMOY3N.js.map +1 -0
- package/dist/chunk-FLTNHQK6.js +262 -0
- package/dist/chunk-FLTNHQK6.js.map +1 -0
- package/dist/chunk-GA454ALV.js +12436 -0
- package/dist/chunk-GA454ALV.js.map +1 -0
- package/dist/chunk-GGKRUQOO.js +228 -0
- package/dist/chunk-GIF42EW3.js +63 -0
- package/dist/chunk-GIF42EW3.js.map +1 -0
- package/dist/chunk-GL6I6MEQ.js +647 -0
- package/dist/chunk-H3ME6L6D.js +709 -0
- package/dist/chunk-H3ME6L6D.js.map +1 -0
- package/dist/chunk-HHLLAQGZ.js +1 -0
- package/dist/chunk-HXXBL2KD.js +2040 -0
- package/dist/chunk-I5V2VDIW.js +219 -0
- package/dist/chunk-I5V2VDIW.js.map +1 -0
- package/dist/chunk-I6K5FBRQ.js +35 -0
- package/dist/chunk-I6K5FBRQ.js.map +1 -0
- package/dist/chunk-ICRIXAP2.js +121 -0
- package/dist/chunk-ICRIXAP2.js.map +1 -0
- package/dist/chunk-J4EB7DNW.js +11 -0
- package/dist/chunk-J4EB7DNW.js.map +1 -0
- package/dist/chunk-JLFA7DQG.js +62 -0
- package/dist/chunk-JLFA7DQG.js.map +1 -0
- package/dist/chunk-KJTKLXTH.js +9 -0
- package/dist/chunk-KJTKLXTH.js.map +1 -0
- package/dist/chunk-KLAO5DGL.js +917 -0
- package/dist/chunk-KLAO5DGL.js.map +1 -0
- package/dist/chunk-KNKUID7G.js +183 -0
- package/dist/chunk-KOSORCJG.js +624 -0
- package/dist/chunk-KOSORCJG.js.map +1 -0
- package/dist/chunk-KUJVMMZQ.js +1262 -0
- package/dist/chunk-KUJVMMZQ.js.map +1 -0
- package/dist/chunk-LCR46JY5.js +123 -0
- package/dist/chunk-LCR46JY5.js.map +1 -0
- package/dist/chunk-LLQ2LLWF.js +148 -0
- package/dist/chunk-LLQ2LLWF.js.map +1 -0
- package/dist/chunk-LPMVBPA3.js +236 -0
- package/dist/chunk-LT3NLYSI.js +50 -0
- package/dist/chunk-LT3NLYSI.js.map +1 -0
- package/dist/chunk-LUDTDZLK.js +287 -0
- package/dist/chunk-LUDTDZLK.js.map +1 -0
- package/dist/chunk-M23FSH32.js +3963 -0
- package/dist/chunk-M23FSH32.js.map +1 -0
- package/dist/chunk-MC26UJIM.js +118 -0
- package/dist/chunk-ME6ESPZU.js +119 -0
- package/dist/chunk-ME6ESPZU.js.map +1 -0
- package/dist/chunk-MGKYQQYF.js +272 -0
- package/dist/chunk-MJFNCJXV.js +66 -0
- package/dist/chunk-MJFNCJXV.js.map +1 -0
- package/dist/chunk-MSWG7JI6.js +237 -0
- package/dist/chunk-MSWG7JI6.js.map +1 -0
- package/dist/chunk-MT25YHYH.js +141 -0
- package/dist/chunk-MT25YHYH.js.map +1 -0
- package/dist/chunk-MT4HVDUZ.js +53 -0
- package/dist/chunk-MY6TPVXW.js +219 -0
- package/dist/chunk-N2D6GXBM.js +267 -0
- package/dist/chunk-N2D6GXBM.js.map +1 -0
- package/dist/chunk-NJ3MJQZX.js +46 -0
- package/dist/chunk-NJ3MJQZX.js.map +1 -0
- package/dist/chunk-NMZY542O.js +335 -0
- package/dist/chunk-NMZY542O.js.map +1 -0
- package/dist/chunk-NNVTUXEB.js +23 -0
- package/dist/chunk-NZL6GGQE.js +375 -0
- package/dist/chunk-NZL6GGQE.js.map +1 -0
- package/dist/chunk-P4NEIHUT.js +108 -0
- package/dist/chunk-P7FMDTKL.js +103 -0
- package/dist/chunk-P7FMDTKL.js.map +1 -0
- package/dist/chunk-PHK3HARR.js +32 -0
- package/dist/chunk-PHK3HARR.js.map +1 -0
- package/dist/chunk-PIRJPV5T.js +98 -0
- package/dist/chunk-PIRJPV5T.js.map +1 -0
- package/dist/chunk-PK7H5L6Y.js +159 -0
- package/dist/chunk-PK7H5L6Y.js.map +1 -0
- package/dist/chunk-PR5FBTFU.js +233 -0
- package/dist/chunk-PR5FBTFU.js.map +1 -0
- package/dist/chunk-PU63GXWS.js +174 -0
- package/dist/chunk-PU63GXWS.js.map +1 -0
- package/dist/chunk-PZIAX57I.js +124 -0
- package/dist/chunk-PZIAX57I.js.map +1 -0
- package/dist/chunk-Q7P4WJDP.js +26 -0
- package/dist/chunk-Q7P4WJDP.js.map +1 -0
- package/dist/chunk-QQUAB63I.js +63 -0
- package/dist/chunk-QQUAB63I.js.map +1 -0
- package/dist/chunk-QRNI5JBH.js +18 -0
- package/dist/chunk-RHY3HH7P.js +601 -0
- package/dist/chunk-RHY3HH7P.js.map +1 -0
- package/dist/chunk-RRF5UOBJ.js +91 -0
- package/dist/chunk-RXDLTSWT.js +124 -0
- package/dist/chunk-RXDLTSWT.js.map +1 -0
- package/dist/chunk-RYED3SPJ.js +42 -0
- package/dist/chunk-RYED3SPJ.js.map +1 -0
- package/dist/chunk-S7KDBTWT.js +106 -0
- package/dist/chunk-S7KDBTWT.js.map +1 -0
- package/dist/chunk-SEDEKFYQ.js +1 -0
- package/dist/chunk-TECVW3JP.js +36 -0
- package/dist/chunk-TECVW3JP.js.map +1 -0
- package/dist/chunk-TFO23QT4.js +88 -0
- package/dist/chunk-TFO23QT4.js.map +1 -0
- package/dist/chunk-TK4UEOSK.js +76 -0
- package/dist/chunk-TK4UEOSK.js.map +1 -0
- package/dist/chunk-TKWGAOLV.js +122 -0
- package/dist/chunk-TKWGAOLV.js.map +1 -0
- package/dist/chunk-TMM4S4IJ.js +597 -0
- package/dist/chunk-TMM4S4IJ.js.map +1 -0
- package/dist/chunk-TMQLARTH.js +188 -0
- package/dist/chunk-TMQLARTH.js.map +1 -0
- package/dist/chunk-TPDBFYEG.js +130 -0
- package/dist/chunk-TPDBFYEG.js.map +1 -0
- package/dist/chunk-TPMQ3G6Z.js +145 -0
- package/dist/chunk-TPMQ3G6Z.js.map +1 -0
- package/dist/chunk-TZOLIGIG.js +61 -0
- package/dist/chunk-TZOLIGIG.js.map +1 -0
- package/dist/chunk-U3PN77QT.js +113 -0
- package/dist/chunk-U3WSW6PZ.js +277 -0
- package/dist/chunk-U4SCL7B7.js +640 -0
- package/dist/chunk-U4SCL7B7.js.map +1 -0
- package/dist/chunk-UWK5OXUJ.js +156 -0
- package/dist/chunk-UWK5OXUJ.js.map +1 -0
- package/dist/chunk-UWVJF25J.js +74 -0
- package/dist/chunk-UXHQAFNA.js +1317 -0
- package/dist/chunk-UXHQAFNA.js.map +1 -0
- package/dist/chunk-V5OCT34X.js +1 -0
- package/dist/chunk-VLXA6PI2.js +304 -0
- package/dist/chunk-VLXA6PI2.js.map +1 -0
- package/dist/chunk-VNO6ZJ35.js +500 -0
- package/dist/chunk-VNO6ZJ35.js.map +1 -0
- package/dist/chunk-VW676BEI.js +827 -0
- package/dist/chunk-VW676BEI.js.map +1 -0
- package/dist/chunk-W3LR522O.js +2296 -0
- package/dist/chunk-W4L6CZKA.js +96 -0
- package/dist/chunk-W4L6CZKA.js.map +1 -0
- package/dist/chunk-W4RVMTHR.js +372 -0
- package/dist/chunk-W4RVMTHR.js.map +1 -0
- package/dist/chunk-WEHSQBFR.js +188 -0
- package/dist/chunk-WEHSQBFR.js.map +1 -0
- package/dist/chunk-WELDCG6C.js +380 -0
- package/dist/chunk-WELDCG6C.js.map +1 -0
- package/dist/chunk-WZYKANL3.js +2800 -0
- package/dist/chunk-WZYKANL3.js.map +1 -0
- package/dist/chunk-XIG5PDM7.js +48 -0
- package/dist/chunk-XJNBEDFE.js +193 -0
- package/dist/chunk-XJNBEDFE.js.map +1 -0
- package/dist/chunk-XVVIG67A.js +291 -0
- package/dist/chunk-XVVIG67A.js.map +1 -0
- package/dist/chunk-XVZ7B3HG.js +135 -0
- package/dist/chunk-YBPYIAA5.js +73 -0
- package/dist/chunk-YBPYIAA5.js.map +1 -0
- package/dist/chunk-Z734BLO3.js +21 -0
- package/dist/chunk-Z734BLO3.js.map +1 -0
- package/dist/chunk-ZKSK55RC.js +269 -0
- package/dist/chunk-ZKSK55RC.js.map +1 -0
- package/dist/chunk-ZTFCYYEZ.js +69 -0
- package/dist/chunk-ZTFCYYEZ.js.map +1 -0
- package/dist/chunk-ZY2MNJR6.js +329 -0
- package/dist/chunk-ZY2MNJR6.js.map +1 -0
- package/dist/cli-D3VpkVwB.d.ts +1136 -0
- package/dist/cli.d.ts +39 -10
- package/dist/cli.js +108 -49
- package/dist/commitment-ledger.js +1 -1
- package/dist/compat/checks.d.ts +5 -0
- package/dist/compat/checks.js +11 -0
- package/dist/compat/checks.js.map +1 -0
- package/dist/compat/types.d.ts +30 -0
- package/dist/compat/types.js +1 -0
- package/dist/compat/types.js.map +1 -0
- package/dist/compounding/engine.d.ts +221 -0
- package/dist/compounding/engine.js +32 -0
- package/dist/compounding/engine.js.map +1 -0
- package/dist/compounding/preference-consolidator.d.ts +92 -0
- package/dist/compounding/preference-consolidator.js +553 -0
- package/dist/compounding/preference-consolidator.js.map +1 -0
- package/dist/config.d.ts +4 -2
- package/dist/config.js +9 -4
- package/dist/conflict-policy-DyJ2wd-h.d.ts +4 -0
- package/dist/connectors/codex-materialize-runner.d.ts +64 -0
- package/dist/connectors/codex-materialize-runner.js +33 -0
- package/dist/connectors/codex-materialize-runner.js.map +1 -0
- package/dist/connectors/codex-materialize.d.ts +195 -0
- package/dist/connectors/codex-materialize.js +38 -0
- package/dist/connectors/codex-materialize.js.map +1 -0
- package/dist/connectors/index.d.ts +444 -0
- package/dist/connectors/index.js +115 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors-cli-CwbyjGR7.d.ts +257 -0
- package/dist/connectors-cli.d.ts +1 -1
- package/dist/consolidation-provenance-check.d.ts +3 -1
- package/dist/consolidation-undo.d.ts +3 -1
- package/dist/contradiction/index.d.ts +258 -0
- package/dist/contradiction/index.js +43 -0
- package/dist/contradiction/index.js.map +1 -0
- package/dist/contradiction-review-ATP4S6IC.js +30 -0
- package/dist/contradiction-review-ATP4S6IC.js.map +1 -0
- package/dist/contradiction-scan-5A4IDZV5.js +13 -0
- package/dist/contradiction-scan-5A4IDZV5.js.map +1 -0
- package/dist/conversation-index/backend.d.ts +97 -0
- package/dist/conversation-index/backend.js +13 -0
- package/dist/conversation-index/backend.js.map +1 -0
- package/dist/conversation-index/chunker.d.ts +16 -0
- package/dist/conversation-index/chunker.js +8 -0
- package/dist/conversation-index/chunker.js.map +1 -0
- package/dist/conversation-index/cleanup.d.ts +11 -0
- package/dist/conversation-index/cleanup.js +9 -0
- package/dist/conversation-index/cleanup.js.map +1 -0
- package/dist/conversation-index/faiss-adapter.d.ts +6 -0
- package/dist/conversation-index/faiss-adapter.js +16 -0
- package/dist/conversation-index/faiss-adapter.js.map +1 -0
- package/dist/conversation-index/indexer.d.ts +23 -0
- package/dist/conversation-index/indexer.js +15 -0
- package/dist/conversation-index/indexer.js.map +1 -0
- package/dist/conversation-index/search.d.ts +6 -0
- package/dist/conversation-index/search.js +11 -0
- package/dist/conversation-index/search.js.map +1 -0
- package/dist/embedding-fallback.js +2 -2
- package/dist/enrichment/index.d.ts +163 -0
- package/dist/enrichment/index.js +18 -0
- package/dist/enrichment/index.js.map +1 -0
- package/dist/entity-retrieval.d.ts +4 -2
- package/dist/entity-retrieval.js +8 -5
- package/dist/evals.js +1 -1
- package/dist/explicit-capture.d.ts +20 -5
- package/dist/explicit-capture.js +2 -2
- package/dist/extraction-judge-training.js +1 -1
- package/dist/extraction.js +8 -8
- package/dist/faiss-adapter-CzPghc4C.d.ts +70 -0
- package/dist/fallback-llm.d.ts +2 -0
- package/dist/fallback-llm.js +4 -4
- package/dist/graph-edge-decay-5DI5GUNL.js +207 -0
- package/dist/index.d.ts +66 -711
- package/dist/index.js +556 -2680
- package/dist/index.js.map +1 -1
- package/dist/lcm/archive.d.ts +89 -0
- package/dist/lcm/archive.js +12 -0
- package/dist/lcm/archive.js.map +1 -0
- package/dist/lcm/dag.d.ts +48 -0
- package/dist/lcm/dag.js +8 -0
- package/dist/lcm/dag.js.map +1 -0
- package/dist/lcm/engine.d.ts +116 -0
- package/dist/lcm/engine.js +20 -0
- package/dist/lcm/engine.js.map +1 -0
- package/dist/lcm/index.d.ts +12 -0
- package/dist/lcm/index.js +44 -0
- package/dist/lcm/index.js.map +1 -0
- package/dist/lcm/queue.d.ts +62 -0
- package/dist/lcm/queue.js +8 -0
- package/dist/lcm/queue.js.map +1 -0
- package/dist/lcm/recall.d.ts +20 -0
- package/dist/lcm/recall.js +8 -0
- package/dist/lcm/recall.js.map +1 -0
- package/dist/lcm/schema.d.ts +16 -0
- package/dist/lcm/schema.js +14 -0
- package/dist/lcm/schema.js.map +1 -0
- package/dist/lcm/summarizer.d.ts +38 -0
- package/dist/lcm/summarizer.js +12 -0
- package/dist/lcm/summarizer.js.map +1 -0
- package/dist/lcm/tools.d.ts +29 -0
- package/dist/lcm/tools.js +8 -0
- package/dist/lcm/tools.js.map +1 -0
- package/dist/live-connectors-runner.js +5 -5
- package/dist/local-llm.js +3 -3
- package/dist/maintenance/archive-observations.d.ts +18 -0
- package/dist/maintenance/archive-observations.js +8 -0
- package/dist/maintenance/archive-observations.js.map +1 -0
- package/dist/maintenance/backup-stamp.d.ts +3 -0
- package/dist/maintenance/backup-stamp.js +8 -0
- package/dist/maintenance/backup-stamp.js.map +1 -0
- package/dist/maintenance/memory-governance-cron.d.ts +85 -0
- package/dist/maintenance/memory-governance-cron.js +22 -0
- package/dist/maintenance/memory-governance-cron.js.map +1 -0
- package/dist/maintenance/memory-governance.d.ts +137 -0
- package/dist/maintenance/memory-governance.js +40 -0
- package/dist/maintenance/memory-governance.js.map +1 -0
- package/dist/maintenance/migrate-observations.d.ts +18 -0
- package/dist/maintenance/migrate-observations.js +9 -0
- package/dist/maintenance/migrate-observations.js.map +1 -0
- package/dist/maintenance/observation-ledger-utils.d.ts +10 -0
- package/dist/maintenance/observation-ledger-utils.js +10 -0
- package/dist/maintenance/observation-ledger-utils.js.map +1 -0
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +15 -0
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +28 -0
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js.map +1 -0
- package/dist/maintenance/rebuild-memory-projection.d.ts +77 -0
- package/dist/maintenance/rebuild-memory-projection.js +35 -0
- package/dist/maintenance/rebuild-memory-projection.js.map +1 -0
- package/dist/maintenance/rebuild-observations.d.ts +17 -0
- package/dist/maintenance/rebuild-observations.js +9 -0
- package/dist/maintenance/rebuild-observations.js.map +1 -0
- package/dist/mcp-memory-inspector-app.d.ts +24 -6
- package/dist/memory-projection-store.d.ts +108 -3
- package/dist/memory-projection-store.js +2 -1
- package/dist/memory-worth-outcomes.d.ts +4 -2
- package/dist/migrate/from-engram.d.ts +24 -0
- package/dist/migrate/from-engram.js +12 -0
- package/dist/migrate/from-engram.js.map +1 -0
- package/dist/namespaces/migrate.d.ts +50 -0
- package/dist/namespaces/migrate.js +50 -0
- package/dist/namespaces/migrate.js.map +1 -0
- package/dist/namespaces/principal.d.ts +17 -0
- package/dist/namespaces/principal.js +16 -0
- package/dist/namespaces/principal.js.map +1 -0
- package/dist/namespaces/search.d.ts +46 -0
- package/dist/namespaces/search.js +28 -0
- package/dist/namespaces/search.js.map +1 -0
- package/dist/namespaces/storage.d.ts +32 -0
- package/dist/namespaces/storage.js +28 -0
- package/dist/namespaces/storage.js.map +1 -0
- package/dist/network/tailscale.d.ts +41 -0
- package/dist/network/tailscale.js +9 -0
- package/dist/network/tailscale.js.map +1 -0
- package/dist/network/webdav.d.ts +39 -0
- package/dist/network/webdav.js +10 -0
- package/dist/network/webdav.js.map +1 -0
- package/dist/objective-state-writers.js +2 -2
- package/dist/operator-toolkit.d.ts +4 -2
- package/dist/operator-toolkit.js +32 -14
- package/dist/opik-exporter.js +2 -2
- package/dist/opik-exporter.js.map +1 -1
- package/dist/orchestrator-DuWl9Hwx.d.ts +1244 -0
- package/dist/orchestrator.d.ts +22 -7
- package/dist/orchestrator.js +79 -44
- package/dist/path-MR5JPYOP.js +9 -0
- package/dist/path-MR5JPYOP.js.map +1 -0
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +102 -3
- package/dist/qmd.js +23 -5
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +6 -0
- package/dist/replay/normalizers/chatgpt.js +11 -0
- package/dist/replay/normalizers/chatgpt.js.map +1 -0
- package/dist/replay/normalizers/claude.d.ts +6 -0
- package/dist/replay/normalizers/claude.js +11 -0
- package/dist/replay/normalizers/claude.js.map +1 -0
- package/dist/replay/normalizers/openclaw.d.ts +6 -0
- package/dist/replay/normalizers/openclaw.js +11 -0
- package/dist/replay/normalizers/openclaw.js.map +1 -0
- package/dist/replay/normalizers/shared.d.ts +16 -0
- package/dist/replay/normalizers/shared.js +14 -0
- package/dist/replay/normalizers/shared.js.map +1 -0
- package/dist/replay/runner.d.ts +35 -0
- package/dist/replay/runner.js +16 -0
- package/dist/replay/runner.js.map +1 -0
- package/dist/replay/types.d.ts +57 -0
- package/dist/replay/types.js +19 -0
- package/dist/replay/types.js.map +1 -0
- package/dist/resolution-B7FNQSSP.js +12 -0
- package/dist/resolution-B7FNQSSP.js.map +1 -0
- package/dist/resolve-provider-secret.js +2 -2
- package/dist/resume-bundles.js +8 -6
- package/dist/retrieval-agents.d.ts +1 -1
- package/dist/routing/engine.d.ts +35 -0
- package/dist/routing/engine.js +16 -0
- package/dist/routing/engine.js.map +1 -0
- package/dist/routing/store.d.ts +27 -0
- package/dist/routing/store.js +10 -0
- package/dist/routing/store.js.map +1 -0
- package/dist/runtime/better-sqlite.d.ts +8 -0
- package/dist/runtime/better-sqlite.js +10 -0
- package/dist/runtime/better-sqlite.js.map +1 -0
- package/dist/runtime/child-process.d.ts +32 -0
- package/dist/runtime/child-process.js +10 -0
- package/dist/runtime/child-process.js.map +1 -0
- package/dist/runtime/env.d.ts +5 -0
- package/dist/runtime/env.js +12 -0
- package/dist/runtime/env.js.map +1 -0
- package/dist/schemas.d.ts +22 -22
- package/dist/sdk-compat.js +1 -1
- package/dist/search/document-scanner.d.ts +22 -0
- package/dist/search/document-scanner.js +8 -0
- package/dist/search/document-scanner.js.map +1 -0
- package/dist/search/embed-helper.d.ts +35 -0
- package/dist/search/embed-helper.js +9 -0
- package/dist/search/embed-helper.js.map +1 -0
- package/dist/search/factory.d.ts +32 -0
- package/dist/search/factory.js +29 -0
- package/dist/search/factory.js.map +1 -0
- package/dist/search/index.d.ts +15 -0
- package/dist/search/index.js +50 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/lancedb-backend.d.ts +51 -0
- package/dist/search/lancedb-backend.js +10 -0
- package/dist/search/lancedb-backend.js.map +1 -0
- package/dist/search/meilisearch-backend.d.ts +48 -0
- package/dist/search/meilisearch-backend.js +10 -0
- package/dist/search/meilisearch-backend.js.map +1 -0
- package/dist/search/noop-backend.d.ts +26 -0
- package/dist/search/noop-backend.js +8 -0
- package/dist/search/noop-backend.js.map +1 -0
- package/dist/search/orama-backend.d.ts +53 -0
- package/dist/search/orama-backend.js +10 -0
- package/dist/search/orama-backend.js.map +1 -0
- package/dist/search/port.d.ts +61 -0
- package/dist/search/port.js +1 -0
- package/dist/search/port.js.map +1 -0
- package/dist/search/remote-backend.d.ts +39 -0
- package/dist/search/remote-backend.js +9 -0
- package/dist/search/remote-backend.js.map +1 -0
- package/dist/secure-store/index.d.ts +890 -0
- package/dist/secure-store/index.js +156 -0
- package/dist/secure-store/index.js.map +1 -0
- package/dist/semantic-VwGI14Ok.d.ts +69 -0
- package/dist/semantic-consolidation-4HkHWgeI.d.ts +180 -0
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +13 -6
- package/dist/semantic-rule-promotion.js +8 -5
- package/dist/semantic-rule-verifier.js +8 -5
- package/dist/shared-context/manager.d.ts +131 -0
- package/dist/shared-context/manager.js +15 -0
- package/dist/shared-context/manager.js.map +1 -0
- package/dist/skills-registry.js +13 -1
- package/dist/skills-registry.js.map +1 -1
- package/dist/state-store-VZU2IA53.js +16 -0
- package/dist/state-store-VZU2IA53.js.map +1 -0
- package/dist/storage-paths.d.ts +9 -0
- package/dist/storage-paths.js +20 -0
- package/dist/storage-paths.js.map +1 -0
- package/dist/storage.d.ts +3 -1
- package/dist/storage.js +7 -4
- package/dist/summarizer.d.ts +5 -0
- package/dist/summarizer.js +9 -8
- package/dist/summary-snapshot.js +2 -1
- package/dist/surfaces/dreams.d.ts +16 -0
- package/dist/surfaces/dreams.js +282 -0
- package/dist/surfaces/dreams.js.map +1 -0
- package/dist/surfaces/heartbeat.d.ts +17 -0
- package/dist/surfaces/heartbeat.js +265 -0
- package/dist/surfaces/heartbeat.js.map +1 -0
- package/dist/temporal-supersession.d.ts +3 -1
- package/dist/threading.d.ts +5 -0
- package/dist/threading.js +2 -1
- package/dist/tier-migration.d.ts +4 -2
- package/dist/tokens.js +2 -2
- package/dist/transcript.d.ts +15 -1
- package/dist/transcript.js +2 -1
- package/dist/transfer/autodetect.d.ts +4 -0
- package/dist/transfer/autodetect.js +15 -0
- package/dist/transfer/autodetect.js.map +1 -0
- package/dist/transfer/backup.d.ts +21 -0
- package/dist/transfer/backup.js +17 -0
- package/dist/transfer/backup.js.map +1 -0
- package/dist/transfer/capsule-export.d.ts +113 -0
- package/dist/transfer/capsule-export.js +19 -0
- package/dist/transfer/capsule-export.js.map +1 -0
- package/dist/transfer/capsule-import.d.ts +124 -0
- package/dist/transfer/capsule-import.js +16 -0
- package/dist/transfer/capsule-import.js.map +1 -0
- package/dist/transfer/constants.d.ts +13 -0
- package/dist/transfer/constants.js +12 -0
- package/dist/transfer/constants.js.map +1 -0
- package/dist/transfer/export-json.d.ts +11 -0
- package/dist/transfer/export-json.js +11 -0
- package/dist/transfer/export-json.js.map +1 -0
- package/dist/transfer/export-md.d.ts +10 -0
- package/dist/transfer/export-md.js +13 -0
- package/dist/transfer/export-md.js.map +1 -0
- package/dist/transfer/export-sqlite.d.ts +9 -0
- package/dist/transfer/export-sqlite.js +12 -0
- package/dist/transfer/export-sqlite.js.map +1 -0
- package/dist/transfer/fs-utils.d.ts +61 -0
- package/dist/transfer/fs-utils.js +40 -0
- package/dist/transfer/fs-utils.js.map +1 -0
- package/dist/transfer/import-json.d.ts +16 -0
- package/dist/transfer/import-json.js +13 -0
- package/dist/transfer/import-json.js.map +1 -0
- package/dist/transfer/import-md.d.ts +14 -0
- package/dist/transfer/import-md.js +11 -0
- package/dist/transfer/import-md.js.map +1 -0
- package/dist/transfer/import-sqlite.d.ts +14 -0
- package/dist/transfer/import-sqlite.js +12 -0
- package/dist/transfer/import-sqlite.js.map +1 -0
- package/dist/transfer/sqlite-schema.d.ts +4 -0
- package/dist/transfer/sqlite-schema.js +10 -0
- package/dist/transfer/sqlite-schema.js.map +1 -0
- package/dist/transfer/types.d.ts +916 -0
- package/dist/transfer/types.js +30 -0
- package/dist/transfer/types.js.map +1 -0
- package/dist/types.d.ts +28 -1
- package/dist/types.js +1 -1
- package/dist/verified-recall.js +9 -6
- package/dist/work/board.d.ts +43 -0
- package/dist/work/board.js +14 -0
- package/dist/work/board.js.map +1 -0
- package/dist/work/boundary.d.ts +8 -0
- package/dist/work/boundary.js +14 -0
- package/dist/work/boundary.js.map +1 -0
- package/dist/work/storage.d.ts +39 -0
- package/dist/work/storage.js +11 -0
- package/dist/work/storage.js.map +1 -0
- package/dist/work/types.d.ts +75 -0
- package/dist/work/types.js +1 -0
- package/dist/work/types.js.map +1 -0
- package/package.json +2767 -6
- package/scripts/faiss_index.py +816 -0
- package/scripts/faiss_requirements.txt +3 -0
- package/skills/remnic-entities/SKILL.md +51 -0
- package/skills/remnic-memory-workflow/SKILL.md +61 -0
- package/skills/remnic-recall/SKILL.md +51 -0
- package/skills/remnic-remember/SKILL.md +56 -0
- package/skills/remnic-search/SKILL.md +51 -0
- package/skills/remnic-status/SKILL.md +51 -0
- package/src/abort-error.test.ts +49 -0
- package/src/abort-error.ts +46 -0
- package/src/abstraction-nodes.ts +162 -0
- package/src/access-audit.test.ts +178 -0
- package/src/access-audit.ts +125 -0
- package/src/access-cli.test.ts +439 -0
- package/src/access-cli.ts +438 -0
- package/src/access-http.test.ts +225 -0
- package/src/access-http.ts +1899 -0
- package/src/access-idempotency.ts +232 -0
- package/src/access-mcp.test.ts +568 -0
- package/src/access-mcp.ts +3056 -0
- package/src/access-schema-pi.test.ts +60 -0
- package/src/access-schema.ts +522 -0
- package/src/access-service-namespace.test.ts +123 -0
- package/src/access-service.ts +5629 -0
- package/src/action-confidence.test.ts +206 -0
- package/src/action-confidence.ts +466 -0
- package/src/active-memory-bridge.test.ts +285 -0
- package/src/active-memory-bridge.ts +217 -0
- package/src/active-recall.test.ts +484 -0
- package/src/active-recall.ts +459 -0
- package/src/adapters/claude-code.ts +56 -0
- package/src/adapters/codex.ts +57 -0
- package/src/adapters/hermes.ts +64 -0
- package/src/adapters/index.ts +6 -0
- package/src/adapters/registry.ts +41 -0
- package/src/adapters/replit.ts +55 -0
- package/src/adapters/types.ts +51 -0
- package/src/behavior-learner.ts +144 -0
- package/src/behavior-signals.ts +73 -0
- package/src/binary-lifecycle/backend.ts +117 -0
- package/src/binary-lifecycle/index.ts +35 -0
- package/src/binary-lifecycle/manifest.ts +79 -0
- package/src/binary-lifecycle/pipeline.ts +352 -0
- package/src/binary-lifecycle/scanner.ts +89 -0
- package/src/binary-lifecycle/types.ts +89 -0
- package/src/bootstrap.ts +178 -0
- package/src/boxes.ts +521 -0
- package/src/briefing.test.ts +1535 -0
- package/src/briefing.ts +1382 -0
- package/src/buffer-session.test.ts +443 -0
- package/src/buffer-surprise-report.ts +176 -0
- package/src/buffer-surprise-telemetry.test.ts +606 -0
- package/src/buffer-surprise-trigger.test.ts +766 -0
- package/src/buffer-surprise.test.ts +339 -0
- package/src/buffer-surprise.ts +203 -0
- package/src/buffer.ts +900 -0
- package/src/bulk-import/cli-command.test.ts +204 -0
- package/src/bulk-import/index.ts +34 -0
- package/src/bulk-import/pipeline.test.ts +445 -0
- package/src/bulk-import/pipeline.ts +178 -0
- package/src/bulk-import/registry.test.ts +151 -0
- package/src/bulk-import/registry.ts +72 -0
- package/src/bulk-import/types.test.ts +272 -0
- package/src/bulk-import/types.ts +145 -0
- package/src/calibration.ts +394 -0
- package/src/capsule-cli.test.ts +398 -0
- package/src/capsule-cli.ts +565 -0
- package/src/causal-behavior.ts +308 -0
- package/src/causal-chain.ts +419 -0
- package/src/causal-consolidation.ts +370 -0
- package/src/causal-retrieval.ts +286 -0
- package/src/causal-trajectory-graph.ts +60 -0
- package/src/causal-trajectory.ts +303 -0
- package/src/chunking.ts +220 -0
- package/src/citations.ts +232 -0
- package/src/cli.ts +9403 -0
- package/src/codex-cli-fallback.ts +162 -0
- package/src/codex-thread-key.ts +1 -0
- package/src/coding/access-coding-context.test.ts +197 -0
- package/src/coding/coding-branch-scope.test.ts +281 -0
- package/src/coding/coding-namespace.test.ts +360 -0
- package/src/coding/coding-namespace.ts +412 -0
- package/src/coding/coding-orchestrator.test.ts +249 -0
- package/src/coding/git-context.test.ts +507 -0
- package/src/coding/git-context.ts +336 -0
- package/src/coding/mcp-set-coding-context.test.ts +174 -0
- package/src/coding/review-context.test.ts +316 -0
- package/src/coding/review-context.ts +349 -0
- package/src/coding/wire-coding-context.test.ts +468 -0
- package/src/commitment-ledger.test.ts +78 -0
- package/src/commitment-ledger.ts +337 -0
- package/src/compat/checks.test.ts +206 -0
- package/src/compat/checks.ts +716 -0
- package/src/compat/types.ts +33 -0
- package/src/compounding/engine.ts +1686 -0
- package/src/compounding/preference-consolidator.ts +778 -0
- package/src/compression-optimizer.ts +312 -0
- package/src/config.test.ts +930 -0
- package/src/config.ts +3807 -0
- package/src/connectors/codex/instructions.md +160 -0
- package/src/connectors/codex/resources/namespace-cheatsheet.md +48 -0
- package/src/connectors/codex-marketplace.ts +500 -0
- package/src/connectors/codex-materialize-runner.ts +212 -0
- package/src/connectors/codex-materialize.ts +983 -0
- package/src/connectors/coerce.ts +62 -0
- package/src/connectors/index.test.ts +1570 -0
- package/src/connectors/index.ts +3222 -0
- package/src/connectors/live/framework.ts +164 -0
- package/src/connectors/live/github.test.ts +1218 -0
- package/src/connectors/live/github.ts +1068 -0
- package/src/connectors/live/gmail.test.ts +1706 -0
- package/src/connectors/live/gmail.ts +1293 -0
- package/src/connectors/live/google-drive.test.ts +696 -0
- package/src/connectors/live/google-drive.ts +724 -0
- package/src/connectors/live/index.ts +101 -0
- package/src/connectors/live/live-connectors.test.ts +689 -0
- package/src/connectors/live/notion.test.ts +1109 -0
- package/src/connectors/live/notion.ts +978 -0
- package/src/connectors/live/registry.ts +103 -0
- package/src/connectors/live/state-store.ts +399 -0
- package/src/connectors/live/transient-errors.ts +150 -0
- package/src/connectors/weclone-installer.test.ts +850 -0
- package/src/connectors-cli.ts +513 -0
- package/src/console/state.test.ts +224 -0
- package/src/console/state.ts +514 -0
- package/src/console/trace.test.ts +813 -0
- package/src/console/trace.ts +603 -0
- package/src/console/tui.test.ts +582 -0
- package/src/console/tui.ts +508 -0
- package/src/consolidation-operator.ts +182 -0
- package/src/consolidation-provenance-check.ts +551 -0
- package/src/consolidation-undo.ts +718 -0
- package/src/contradiction/contradiction-judge.test.ts +189 -0
- package/src/contradiction/contradiction-judge.ts +333 -0
- package/src/contradiction/contradiction-review.ts +574 -0
- package/src/contradiction/contradiction-scan.ts +504 -0
- package/src/contradiction/contradiction.test.ts +2230 -0
- package/src/contradiction/index.ts +37 -0
- package/src/contradiction/resolution.ts +383 -0
- package/src/conversation-index/backend.ts +323 -0
- package/src/conversation-index/chunker.ts +47 -0
- package/src/conversation-index/cleanup.ts +53 -0
- package/src/conversation-index/faiss-adapter.ts +384 -0
- package/src/conversation-index/indexer.test.ts +164 -0
- package/src/conversation-index/indexer.ts +192 -0
- package/src/conversation-index/search.ts +37 -0
- package/src/cross-namespace-budget.test.ts +275 -0
- package/src/cross-namespace-budget.ts +365 -0
- package/src/cue-anchors.ts +163 -0
- package/src/curation/index.ts +544 -0
- package/src/dashboard-runtime.ts +337 -0
- package/src/day-summary.ts +122 -0
- package/src/dedup/index.ts +330 -0
- package/src/dedup/semantic.test.ts +1577 -0
- package/src/dedup/semantic.ts +148 -0
- package/src/delinearize.ts +193 -0
- package/src/direct-answer-wiring.test.ts +473 -0
- package/src/direct-answer-wiring.ts +180 -0
- package/src/direct-answer.test.ts +484 -0
- package/src/direct-answer.ts +273 -0
- package/src/embedding-fallback.ts +565 -0
- package/src/enrichment/audit.ts +89 -0
- package/src/enrichment/index.ts +27 -0
- package/src/enrichment/pipeline.ts +197 -0
- package/src/enrichment/provider-registry.ts +85 -0
- package/src/enrichment/types.ts +100 -0
- package/src/enrichment/web-search-provider.ts +63 -0
- package/src/entity-retrieval.ts +774 -0
- package/src/entity-schema.ts +239 -0
- package/src/evals.ts +1312 -0
- package/src/event-order-recall.test.ts +4164 -0
- package/src/event-order-recall.ts +2802 -0
- package/src/evidence-pack.test.ts +89 -0
- package/src/evidence-pack.ts +388 -0
- package/src/explicit-capture.ts +530 -0
- package/src/explicit-cue-recall.test.ts +3019 -0
- package/src/explicit-cue-recall.ts +5545 -0
- package/src/extraction-judge-telemetry.ts +234 -0
- package/src/extraction-judge-training.ts +221 -0
- package/src/extraction-judge.ts +846 -0
- package/src/extraction-timeout.test.ts +265 -0
- package/src/extraction.ts +2719 -0
- package/src/fallback-llm.test.ts +1060 -0
- package/src/fallback-llm.ts +918 -0
- package/src/focused-list-recall.test.ts +734 -0
- package/src/focused-list-recall.ts +1160 -0
- package/src/graph-dashboard-diff.ts +35 -0
- package/src/graph-dashboard-key.ts +5 -0
- package/src/graph-dashboard-parser.ts +104 -0
- package/src/graph-edge-reinforcement.ts +192 -0
- package/src/graph-events.ts +151 -0
- package/src/graph-recall.test.ts +164 -0
- package/src/graph-recall.ts +189 -0
- package/src/graph-retrieval.test.ts +809 -0
- package/src/graph-retrieval.ts +823 -0
- package/src/graph-snapshot.ts +329 -0
- package/src/graph.ts +813 -0
- package/src/harmonic-retrieval.ts +223 -0
- package/src/himem.ts +154 -0
- package/src/hygiene.ts +87 -0
- package/src/identity-continuity.ts +333 -0
- package/src/importance.ts +328 -0
- package/src/importers/base.test.ts +294 -0
- package/src/importers/base.ts +436 -0
- package/src/importers/index.ts +21 -0
- package/src/index.ts +1204 -0
- package/src/intent.ts +154 -0
- package/src/json-extract.ts +85 -0
- package/src/json-store.ts +42 -0
- package/src/lcm/archive.ts +617 -0
- package/src/lcm/dag.ts +199 -0
- package/src/lcm/engine.ts +645 -0
- package/src/lcm/index.ts +7 -0
- package/src/lcm/queue.test.ts +178 -0
- package/src/lcm/queue.ts +200 -0
- package/src/lcm/recall.ts +117 -0
- package/src/lcm/schema.ts +154 -0
- package/src/lcm/summarizer.ts +235 -0
- package/src/lcm/tools.ts +191 -0
- package/src/lcm-engine.test.ts +660 -0
- package/src/legacy-hook-compat.test.ts +20 -0
- package/src/legacy-hook-compat.ts +45 -0
- package/src/lifecycle.ts +289 -0
- package/src/live-connectors-runner.ts +385 -0
- package/src/local-llm-qos.test.ts +303 -0
- package/src/local-llm-thinking.test.ts +292 -0
- package/src/local-llm.ts +1464 -0
- package/src/logger.ts +49 -0
- package/src/maintenance/archive-observations.ts +147 -0
- package/src/maintenance/backup-stamp.ts +3 -0
- package/src/maintenance/dreams-ledger.ts +516 -0
- package/src/maintenance/first-start-migration.ts +362 -0
- package/src/maintenance/forget.test.ts +206 -0
- package/src/maintenance/forget.ts +126 -0
- package/src/maintenance/graph-edge-decay.test.ts +409 -0
- package/src/maintenance/graph-edge-decay.ts +394 -0
- package/src/maintenance/memory-governance-cron.ts +447 -0
- package/src/maintenance/memory-governance.ts +1039 -0
- package/src/maintenance/migrate-observations.ts +216 -0
- package/src/maintenance/observation-ledger-utils.ts +54 -0
- package/src/maintenance/pattern-reinforcement.test.ts +875 -0
- package/src/maintenance/pattern-reinforcement.ts +369 -0
- package/src/maintenance/purge.ts +334 -0
- package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +78 -0
- package/src/maintenance/rebuild-memory-projection.ts +1234 -0
- package/src/maintenance/rebuild-observations.ts +178 -0
- package/src/maintenance/tier-stats.test.ts +378 -0
- package/src/maintenance/tier-stats.ts +222 -0
- package/src/mcp-memory-inspector-app.ts +421 -0
- package/src/memory-action-policy.ts +80 -0
- package/src/memory-cache.ts +208 -0
- package/src/memory-extension/claude-code-publisher.ts +51 -0
- package/src/memory-extension/codex-publisher.ts +149 -0
- package/src/memory-extension/hermes-publisher.ts +51 -0
- package/src/memory-extension/index.ts +100 -0
- package/src/memory-extension/shared-instructions.ts +133 -0
- package/src/memory-extension/types.ts +86 -0
- package/src/memory-extension-host/host-discovery.ts +276 -0
- package/src/memory-extension-host/index.ts +14 -0
- package/src/memory-extension-host/render-extensions-block.ts +73 -0
- package/src/memory-extension-host/types.ts +21 -0
- package/src/memory-lifecycle-ledger-utils.ts +116 -0
- package/src/memory-projection-format.ts +11 -0
- package/src/memory-projection-store.ts +951 -0
- package/src/memory-provenance.test.ts +196 -0
- package/src/memory-provenance.ts +484 -0
- package/src/memory-worth-bench.test.ts +71 -0
- package/src/memory-worth-bench.ts +265 -0
- package/src/memory-worth-filter.test.ts +209 -0
- package/src/memory-worth-filter.ts +204 -0
- package/src/memory-worth-frontmatter.test.ts +311 -0
- package/src/memory-worth-outcomes.test.ts +316 -0
- package/src/memory-worth-outcomes.ts +286 -0
- package/src/memory-worth.test.ts +317 -0
- package/src/memory-worth.ts +215 -0
- package/src/message-parts/index.ts +806 -0
- package/src/message-parts/message-parts.test.ts +421 -0
- package/src/migrate/from-engram.ts +789 -0
- package/src/model-registry.ts +313 -0
- package/src/models-json.ts +76 -0
- package/src/namespaces/migrate.ts +187 -0
- package/src/namespaces/path.ts +25 -0
- package/src/namespaces/principal.test.ts +195 -0
- package/src/namespaces/principal.ts +86 -0
- package/src/namespaces/search.test.ts +105 -0
- package/src/namespaces/search.ts +233 -0
- package/src/namespaces/storage.ts +74 -0
- package/src/native-knowledge.ts +1823 -0
- package/src/negative.ts +72 -0
- package/src/network/tailscale.ts +179 -0
- package/src/network/webdav.ts +385 -0
- package/src/objective-state-writers.ts +951 -0
- package/src/objective-state.ts +320 -0
- package/src/onboarding/index.ts +529 -0
- package/src/openai-chat-compat.ts +56 -0
- package/src/operator-toolkit.ts +2132 -0
- package/src/opik-exporter.test.ts +72 -0
- package/src/opik-exporter.ts +587 -0
- package/src/orchestrator-extraction-queue.test.ts +197 -0
- package/src/orchestrator-flush.test.ts +1171 -0
- package/src/orchestrator-pattern-reinforcement.test.ts +128 -0
- package/src/orchestrator-source-attribution.test.ts +701 -0
- package/src/orchestrator.ts +16368 -0
- package/src/page-versioning.ts +450 -0
- package/src/patterns-cli.ts +574 -0
- package/src/peers/index.ts +54 -0
- package/src/peers/migrate-from-identity-anchor.test.ts +291 -0
- package/src/peers/migrate-from-identity-anchor.ts +350 -0
- package/src/peers/peers.test.ts +419 -0
- package/src/peers/profile-reasoner.ts +694 -0
- package/src/peers/storage.ts +1350 -0
- package/src/peers/types.ts +138 -0
- package/src/plugin-id.ts +84 -0
- package/src/policy-runtime.ts +209 -0
- package/src/procedural/procedure-miner.ts +150 -0
- package/src/procedural/procedure-recall.ts +93 -0
- package/src/procedural/procedure-stats.ts +213 -0
- package/src/procedural/procedure-types.ts +132 -0
- package/src/procedural/reinforcement-core.test.ts +132 -0
- package/src/procedural/reinforcement-core.ts +73 -0
- package/src/profiling.test.ts +263 -0
- package/src/profiling.ts +435 -0
- package/src/projection/index.ts +398 -0
- package/src/qmd-recall-cache.test.ts +138 -0
- package/src/qmd-recall-cache.ts +111 -0
- package/src/qmd.test.ts +257 -0
- package/src/qmd.ts +2614 -0
- package/src/reasoning-trace-recall.ts +201 -0
- package/src/reasoning-trace-types.ts +235 -0
- package/src/recall-audit-anomaly.test.ts +246 -0
- package/src/recall-audit-anomaly.ts +297 -0
- package/src/recall-audit.test.ts +51 -0
- package/src/recall-audit.ts +72 -0
- package/src/recall-budget-config.test.ts +87 -0
- package/src/recall-disclosure-escalation.test.ts +196 -0
- package/src/recall-disclosure-escalation.ts +158 -0
- package/src/recall-disclosure-shaping.test.ts +146 -0
- package/src/recall-disclosure.test.ts +214 -0
- package/src/recall-explain-renderer.test.ts +140 -0
- package/src/recall-explain-renderer.ts +356 -0
- package/src/recall-mmr.test.ts +808 -0
- package/src/recall-mmr.ts +607 -0
- package/src/recall-qos.test.ts +85 -0
- package/src/recall-qos.ts +82 -0
- package/src/recall-query-policy.ts +221 -0
- package/src/recall-state.test.ts +233 -0
- package/src/recall-state.ts +456 -0
- package/src/recall-tag-filter.ts +143 -0
- package/src/recall-tokenization.ts +35 -0
- package/src/recall-xray-cli.test.ts +118 -0
- package/src/recall-xray-cli.ts +100 -0
- package/src/recall-xray-disclosure-telemetry.test.ts +183 -0
- package/src/recall-xray-renderer.test.ts +539 -0
- package/src/recall-xray-renderer.ts +487 -0
- package/src/recall-xray.test.ts +503 -0
- package/src/recall-xray.ts +621 -0
- package/src/reconstruct.ts +41 -0
- package/src/release-changelog.ts +35 -0
- package/src/relevance.ts +67 -0
- package/src/replay/normalizers/chatgpt.ts +133 -0
- package/src/replay/normalizers/claude.ts +102 -0
- package/src/replay/normalizers/openclaw.ts +119 -0
- package/src/replay/normalizers/shared.ts +69 -0
- package/src/replay/runner.ts +197 -0
- package/src/replay/types.ts +143 -0
- package/src/rerank.test.ts +48 -0
- package/src/rerank.ts +176 -0
- package/src/resolve-auth-token.test.ts +226 -0
- package/src/resolve-auth-token.ts +151 -0
- package/src/resolve-provider-secret.test.ts +187 -0
- package/src/resolve-provider-secret.ts +410 -0
- package/src/response-guidance-recall.test.ts +3952 -0
- package/src/response-guidance-recall.ts +4431 -0
- package/src/resume-bundles.ts +415 -0
- package/src/retrieval-agents.ts +623 -0
- package/src/retrieval-tiers.ts +25 -0
- package/src/retrieval.ts +104 -0
- package/src/review/index.test.ts +201 -0
- package/src/review/index.ts +536 -0
- package/src/routing/engine.ts +162 -0
- package/src/routing/store.ts +321 -0
- package/src/runtime/better-sqlite.test.ts +32 -0
- package/src/runtime/better-sqlite.ts +76 -0
- package/src/runtime/child-process.ts +67 -0
- package/src/runtime/env.ts +48 -0
- package/src/sanitize.ts +58 -0
- package/src/schemas.ts +449 -0
- package/src/sdk-compat.ts +87 -0
- package/src/search/document-scanner.ts +96 -0
- package/src/search/embed-helper.ts +142 -0
- package/src/search/factory.ts +189 -0
- package/src/search/index.ts +10 -0
- package/src/search/lancedb-backend.ts +342 -0
- package/src/search/meilisearch-backend.ts +232 -0
- package/src/search/noop-backend.ts +57 -0
- package/src/search/orama-backend.ts +358 -0
- package/src/search/port.ts +86 -0
- package/src/search/remote-backend.ts +124 -0
- package/src/secure-store/cipher.ts +271 -0
- package/src/secure-store/cli-handlers.ts +355 -0
- package/src/secure-store/cli-renderer.ts +131 -0
- package/src/secure-store/header.ts +373 -0
- package/src/secure-store/index.ts +137 -0
- package/src/secure-store/kdf.ts +263 -0
- package/src/secure-store/keyring.ts +106 -0
- package/src/secure-store/metadata.ts +394 -0
- package/src/secure-store/passphrase-reader.ts +252 -0
- package/src/secure-store/secure-fs.ts +571 -0
- package/src/secure-store/secure-store.test.ts +755 -0
- package/src/semantic-chunking.ts +545 -0
- package/src/semantic-consolidation.test.ts +182 -0
- package/src/semantic-consolidation.ts +432 -0
- package/src/semantic-rule-promotion.ts +183 -0
- package/src/semantic-rule-verifier.ts +160 -0
- package/src/session-integrity.ts +569 -0
- package/src/session-observer-bands.ts +11 -0
- package/src/session-observer-state.ts +346 -0
- package/src/session-toggles.test.ts +96 -0
- package/src/session-toggles.ts +159 -0
- package/src/shared-context/manager.ts +810 -0
- package/src/signal.ts +84 -0
- package/src/skills-registry.test.ts +277 -0
- package/src/skills-registry.ts +120 -0
- package/src/source-attribution-roundtrip.test.ts +215 -0
- package/src/source-attribution.test.ts +1425 -0
- package/src/source-attribution.ts +639 -0
- package/src/spaces/index.ts +627 -0
- package/src/storage-paths.ts +117 -0
- package/src/storage.ts +6657 -0
- package/src/store-contract.ts +55 -0
- package/src/summarizer.ts +844 -0
- package/src/summary-snapshot.test.ts +681 -0
- package/src/summary-snapshot.ts +238 -0
- package/src/surfaces/dreams.test.ts +394 -0
- package/src/surfaces/dreams.ts +346 -0
- package/src/surfaces/heartbeat.test.ts +415 -0
- package/src/surfaces/heartbeat.ts +325 -0
- package/src/sync/index.ts +308 -0
- package/src/targeted-fact-recall.test.ts +1694 -0
- package/src/targeted-fact-recall.ts +2905 -0
- package/src/taxonomy/default-taxonomy.ts +87 -0
- package/src/taxonomy/index.ts +26 -0
- package/src/taxonomy/resolver-doc-generator.ts +57 -0
- package/src/taxonomy/resolver.ts +184 -0
- package/src/taxonomy/taxonomy-loader.ts +186 -0
- package/src/taxonomy/types.ts +48 -0
- package/src/telemetry-transcript.ts +70 -0
- package/src/temporal-index.ts +890 -0
- package/src/temporal-supersession.test.ts +2703 -0
- package/src/temporal-supersession.ts +493 -0
- package/src/temporal-validity.test.ts +448 -0
- package/src/temporal-validity.ts +123 -0
- package/src/threading.ts +395 -0
- package/src/tier-migration.ts +124 -0
- package/src/tier-routing.ts +102 -0
- package/src/tmt.ts +462 -0
- package/src/tokens.test.ts +178 -0
- package/src/tokens.ts +279 -0
- package/src/topics.ts +147 -0
- package/src/training-export/cli-date-validation.test.ts +258 -0
- package/src/training-export/converter.test.ts +452 -0
- package/src/training-export/converter.ts +319 -0
- package/src/training-export/date-parse.ts +117 -0
- package/src/training-export/index.ts +26 -0
- package/src/training-export/registry.test.ts +85 -0
- package/src/training-export/registry.ts +57 -0
- package/src/training-export/types.ts +31 -0
- package/src/transcript.ts +1179 -0
- package/src/transfer/autodetect.ts +30 -0
- package/src/transfer/backup.ts +138 -0
- package/src/transfer/capsule-crypto.ts +485 -0
- package/src/transfer/capsule-encrypt.test.ts +690 -0
- package/src/transfer/capsule-export.ts +543 -0
- package/src/transfer/capsule-fork.ts +375 -0
- package/src/transfer/capsule-import.ts +564 -0
- package/src/transfer/capsule-merge.ts +433 -0
- package/src/transfer/conflict-policy.ts +16 -0
- package/src/transfer/constants.ts +13 -0
- package/src/transfer/exclusions.ts +37 -0
- package/src/transfer/export-json.ts +65 -0
- package/src/transfer/export-md.ts +59 -0
- package/src/transfer/export-sqlite.ts +52 -0
- package/src/transfer/fs-utils.ts +269 -0
- package/src/transfer/import-json.ts +108 -0
- package/src/transfer/import-md.ts +84 -0
- package/src/transfer/import-sqlite.ts +100 -0
- package/src/transfer/integrity.ts +71 -0
- package/src/transfer/sqlite-schema.ts +16 -0
- package/src/transfer/types.ts +297 -0
- package/src/trust-zones.ts +1186 -0
- package/src/types.ts +3074 -0
- package/src/user-model.test.ts +124 -0
- package/src/user-model.ts +162 -0
- package/src/utility-learner.ts +353 -0
- package/src/utility-runtime.ts +88 -0
- package/src/utility-telemetry.ts +215 -0
- package/src/utils/category-dir.ts +44 -0
- package/src/utils/errno.ts +6 -0
- package/src/utils/iso-timestamp.test.ts +37 -0
- package/src/utils/iso-timestamp.ts +164 -0
- package/src/utils/path.ts +26 -0
- package/src/verified-recall.ts +138 -0
- package/src/version-utils.test.ts +10 -0
- package/src/version-utils.ts +9 -0
- package/src/whitespace.ts +10 -0
- package/src/work/board.ts +359 -0
- package/src/work/boundary.ts +107 -0
- package/src/work/storage.ts +436 -0
- package/src/work/types.ts +82 -0
- package/src/work-product-ledger.ts +265 -0
- package/dist/access-service-DDjzFALq.d.ts +0 -2088
- package/dist/capsule-crypto-SJS5VVAP.js +0 -18
- package/dist/capsule-export-7QNCBZOQ.js +0 -17
- package/dist/capsule-import-EPBHD2EN.js +0 -16
- package/dist/capsule-merge-DI7PNQ2H.js +0 -189
- package/dist/chunk-23ZZK64Y.js +0 -26
- package/dist/chunk-23ZZK64Y.js.map +0 -1
- package/dist/chunk-242S3I2A.js +0 -647
- package/dist/chunk-2LGMW3DJ.js +0 -111
- package/dist/chunk-3B6KIRBH.js +0 -5213
- package/dist/chunk-3B6KIRBH.js.map +0 -1
- package/dist/chunk-457A4P3L.js +0 -119
- package/dist/chunk-457A4P3L.js.map +0 -1
- package/dist/chunk-4IS4SXIQ.js +0 -2040
- package/dist/chunk-4YM32CRU.js +0 -721
- package/dist/chunk-6TBWYBJ3.js +0 -236
- package/dist/chunk-74EMIVE4.js +0 -329
- package/dist/chunk-74EMIVE4.js.map +0 -1
- package/dist/chunk-767ODGE6.js +0 -183
- package/dist/chunk-7V22HTMD.js +0 -623
- package/dist/chunk-7V22HTMD.js.map +0 -1
- package/dist/chunk-7ZM3BFKK.js +0 -9705
- package/dist/chunk-7ZM3BFKK.js.map +0 -1
- package/dist/chunk-AQJNPMOA.js +0 -643
- package/dist/chunk-AQJNPMOA.js.map +0 -1
- package/dist/chunk-ASAITVLA.js +0 -64
- package/dist/chunk-ASAITVLA.js.map +0 -1
- package/dist/chunk-BBE34QBJ.js +0 -275
- package/dist/chunk-BBE34QBJ.js.map +0 -1
- package/dist/chunk-BZSQEPRW.js +0 -14710
- package/dist/chunk-BZSQEPRW.js.map +0 -1
- package/dist/chunk-CPKTBRS2.js +0 -891
- package/dist/chunk-CPKTBRS2.js.map +0 -1
- package/dist/chunk-D4GAOFF6.js +0 -562
- package/dist/chunk-D4GAOFF6.js.map +0 -1
- package/dist/chunk-D54LZC5L.js +0 -147
- package/dist/chunk-DF3RVK3X.js +0 -119
- package/dist/chunk-DF3RVK3X.js.map +0 -1
- package/dist/chunk-DZZPC36E.js +0 -1451
- package/dist/chunk-DZZPC36E.js.map +0 -1
- package/dist/chunk-E2UCDP5S.js +0 -570
- package/dist/chunk-E6K4NIEU.js +0 -747
- package/dist/chunk-E6K4NIEU.js.map +0 -1
- package/dist/chunk-EEQLFRUM.js +0 -89
- package/dist/chunk-ETOW6ACV.js +0 -158
- package/dist/chunk-ETOW6ACV.js.map +0 -1
- package/dist/chunk-FMEBPEAO.js +0 -347
- package/dist/chunk-FMEBPEAO.js.map +0 -1
- package/dist/chunk-FQDPCE3I.js +0 -1837
- package/dist/chunk-FQDPCE3I.js.map +0 -1
- package/dist/chunk-FYIYMQ5N.js +0 -221
- package/dist/chunk-FYIYMQ5N.js.map +0 -1
- package/dist/chunk-G2WADRQ3.js +0 -219
- package/dist/chunk-G4SK7DSQ.js +0 -121
- package/dist/chunk-GVPWB7EY.js +0 -390
- package/dist/chunk-GVPWB7EY.js.map +0 -1
- package/dist/chunk-HELQZFZO.js +0 -1075
- package/dist/chunk-HL5LRPNA.js +0 -1914
- package/dist/chunk-HL5LRPNA.js.map +0 -1
- package/dist/chunk-HQZVVSVB.js +0 -147
- package/dist/chunk-HQZVVSVB.js.map +0 -1
- package/dist/chunk-HY3L4WKC.js +0 -2195
- package/dist/chunk-HY3L4WKC.js.map +0 -1
- package/dist/chunk-IB3BFHGN.js +0 -228
- package/dist/chunk-IXEJRKCZ.js +0 -18
- package/dist/chunk-JBMSGZEQ.js +0 -441
- package/dist/chunk-JBMSGZEQ.js.map +0 -1
- package/dist/chunk-JESOB2HO.js +0 -108
- package/dist/chunk-JKDVIE52.js +0 -272
- package/dist/chunk-JRNQ3RNA.js +0 -284
- package/dist/chunk-JRNQ3RNA.js.map +0 -1
- package/dist/chunk-K6WK37A6.js +0 -865
- package/dist/chunk-K6WK37A6.js.map +0 -1
- package/dist/chunk-MARWOCVP.js +0 -48
- package/dist/chunk-MNU6ZBWT.js +0 -4454
- package/dist/chunk-MNU6ZBWT.js.map +0 -1
- package/dist/chunk-N5AKDXAI.js +0 -74
- package/dist/chunk-OA3L7BFR.js +0 -183
- package/dist/chunk-OA3L7BFR.js.map +0 -1
- package/dist/chunk-OR64ZGRZ.js +0 -23
- package/dist/chunk-P77UEOU2.js +0 -1521
- package/dist/chunk-P77UEOU2.js.map +0 -1
- package/dist/chunk-PH4C2U43.js +0 -239
- package/dist/chunk-PH4C2U43.js.map +0 -1
- package/dist/chunk-RVPLBATS.js +0 -1586
- package/dist/chunk-RVPLBATS.js.map +0 -1
- package/dist/chunk-U5JMRGKX.js +0 -340
- package/dist/chunk-U5JMRGKX.js.map +0 -1
- package/dist/chunk-URB2WSKZ.js +0 -350
- package/dist/chunk-URB2WSKZ.js.map +0 -1
- package/dist/chunk-UVMUAWVT.js +0 -596
- package/dist/chunk-WEJG4TB5.js +0 -118
- package/dist/chunk-X7HPGUVG.js +0 -271
- package/dist/chunk-XAMBKFQS.js +0 -2777
- package/dist/chunk-XAMBKFQS.js.map +0 -1
- package/dist/chunk-XJKFSSDW.js +0 -726
- package/dist/chunk-XJKFSSDW.js.map +0 -1
- package/dist/chunk-XMHBH5H6.js +0 -283
- package/dist/chunk-XMHBH5H6.js.map +0 -1
- package/dist/chunk-XMVFHBHT.js +0 -277
- package/dist/chunk-Y3VMVTYX.js +0 -53
- package/dist/chunk-YNB73F22.js +0 -137
- package/dist/chunk-YNB73F22.js.map +0 -1
- package/dist/chunk-Z2E7VW55.js +0 -335
- package/dist/chunk-Z2E7VW55.js.map +0 -1
- package/dist/chunk-ZG7PTKBK.js +0 -2296
- package/dist/chunk-ZNQN6ZTA.js +0 -135
- package/dist/chunk-ZVTKDVVM.js +0 -827
- package/dist/chunk-ZVTKDVVM.js.map +0 -1
- package/dist/cli-BR8KpIU0.d.ts +0 -1259
- package/dist/codex-materialize-CQlLTzke.d.ts +0 -139
- package/dist/connectors-cli-DFGtY2DB.d.ts +0 -257
- package/dist/contradiction-review-5LTTVDQV.js +0 -22
- package/dist/contradiction-scan-QTXAMBUA.js +0 -414
- package/dist/contradiction-scan-QTXAMBUA.js.map +0 -1
- package/dist/engine-35M5BKQ7.js +0 -28
- package/dist/fs-utils-IRVUFB6G.js +0 -30
- package/dist/graph-edge-decay-PWB63GRE.js +0 -207
- package/dist/memory-governance-IMPQZXFC.js +0 -37
- package/dist/memory-projection-store-CY8TU40w.d.ts +0 -222
- package/dist/orchestrator-DDMPqU6R.d.ts +0 -1792
- package/dist/path-RMTY5Y5A.js +0 -9
- package/dist/port-B6VEDIkC.d.ts +0 -53
- package/dist/resolution-YGIBORXI.js +0 -101
- package/dist/resolution-YGIBORXI.js.map +0 -1
- package/dist/secure-store-4R2GSO7S.js +0 -156
- package/dist/semantic-consolidation-ByBXb-sf.d.ts +0 -180
- package/dist/state-store-3EH7HYIN.js +0 -16
- package/dist/types-V3FJ26TF.js +0 -30
- /package/dist/{capsule-crypto-SJS5VVAP.js.map → adapters/claude-code.js.map} +0 -0
- /package/dist/{capsule-export-7QNCBZOQ.js.map → adapters/codex.js.map} +0 -0
- /package/dist/{capsule-import-EPBHD2EN.js.map → adapters/hermes.js.map} +0 -0
- /package/dist/{contradiction-review-5LTTVDQV.js.map → adapters/index.js.map} +0 -0
- /package/dist/{engine-35M5BKQ7.js.map → adapters/registry.js.map} +0 -0
- /package/dist/{fs-utils-IRVUFB6G.js.map → adapters/replit.js.map} +0 -0
- /package/dist/{memory-governance-IMPQZXFC.js.map → adapters/types.js.map} +0 -0
- /package/dist/{path-RMTY5Y5A.js.map → capsule-crypto-5CYAGVC5.js.map} +0 -0
- /package/dist/{capsule-merge-DI7PNQ2H.js.map → capsule-merge-4MGKE7C5.js.map} +0 -0
- /package/dist/{chunk-G4SK7DSQ.js.map → chunk-2WWLHTZY.js.map} +0 -0
- /package/dist/{chunk-X7HPGUVG.js.map → chunk-4CRG46BG.js.map} +0 -0
- /package/dist/{chunk-UVMUAWVT.js.map → chunk-7IASACLB.js.map} +0 -0
- /package/dist/{chunk-HELQZFZO.js.map → chunk-EDTHC6UD.js.map} +0 -0
- /package/dist/{chunk-4YM32CRU.js.map → chunk-EFJ3MQ4V.js.map} +0 -0
- /package/dist/{chunk-E2UCDP5S.js.map → chunk-FBYESMQ2.js.map} +0 -0
- /package/dist/{chunk-D54LZC5L.js.map → chunk-FDU6HUUL.js.map} +0 -0
- /package/dist/{chunk-IB3BFHGN.js.map → chunk-GGKRUQOO.js.map} +0 -0
- /package/dist/{chunk-242S3I2A.js.map → chunk-GL6I6MEQ.js.map} +0 -0
- /package/dist/{secure-store-4R2GSO7S.js.map → chunk-HHLLAQGZ.js.map} +0 -0
- /package/dist/{chunk-4IS4SXIQ.js.map → chunk-HXXBL2KD.js.map} +0 -0
- /package/dist/{chunk-767ODGE6.js.map → chunk-KNKUID7G.js.map} +0 -0
- /package/dist/{chunk-6TBWYBJ3.js.map → chunk-LPMVBPA3.js.map} +0 -0
- /package/dist/{chunk-WEJG4TB5.js.map → chunk-MC26UJIM.js.map} +0 -0
- /package/dist/{chunk-JKDVIE52.js.map → chunk-MGKYQQYF.js.map} +0 -0
- /package/dist/{chunk-Y3VMVTYX.js.map → chunk-MT4HVDUZ.js.map} +0 -0
- /package/dist/{chunk-G2WADRQ3.js.map → chunk-MY6TPVXW.js.map} +0 -0
- /package/dist/{chunk-OR64ZGRZ.js.map → chunk-NNVTUXEB.js.map} +0 -0
- /package/dist/{chunk-JESOB2HO.js.map → chunk-P4NEIHUT.js.map} +0 -0
- /package/dist/{chunk-IXEJRKCZ.js.map → chunk-QRNI5JBH.js.map} +0 -0
- /package/dist/{chunk-EEQLFRUM.js.map → chunk-RRF5UOBJ.js.map} +0 -0
- /package/dist/{state-store-3EH7HYIN.js.map → chunk-SEDEKFYQ.js.map} +0 -0
- /package/dist/{chunk-2LGMW3DJ.js.map → chunk-U3PN77QT.js.map} +0 -0
- /package/dist/{chunk-XMVFHBHT.js.map → chunk-U3WSW6PZ.js.map} +0 -0
- /package/dist/{chunk-N5AKDXAI.js.map → chunk-UWVJF25J.js.map} +0 -0
- /package/dist/{types-V3FJ26TF.js.map → chunk-V5OCT34X.js.map} +0 -0
- /package/dist/{chunk-ZG7PTKBK.js.map → chunk-W3LR522O.js.map} +0 -0
- /package/dist/{chunk-MARWOCVP.js.map → chunk-XIG5PDM7.js.map} +0 -0
- /package/dist/{chunk-ZNQN6ZTA.js.map → chunk-XVZ7B3HG.js.map} +0 -0
- /package/dist/{graph-edge-decay-PWB63GRE.js.map → graph-edge-decay-5DI5GUNL.js.map} +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reasoning-trace recall boost (issue #564 PR 3).
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers for:
|
|
5
|
+
* - detecting whether a user query looks like a problem-solving ask
|
|
6
|
+
* ("how do I…", "step by step", etc.)
|
|
7
|
+
* - boosting stored reasoning_trace memories within a result list when that
|
|
8
|
+
* condition matches.
|
|
9
|
+
*
|
|
10
|
+
* Callers gate these helpers behind the `recallReasoningTraceBoostEnabled`
|
|
11
|
+
* config flag (default false); the helpers themselves are also no-ops when
|
|
12
|
+
* `enabled` is false so they can be safely chained into the recall pipeline.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Heuristic: does the incoming query read like the user wants a stored
|
|
17
|
+
* solution chain (reasoning trace)?
|
|
18
|
+
*
|
|
19
|
+
* Positive signals:
|
|
20
|
+
* - starts with "how do I", "how can I", "how would I", "how to"
|
|
21
|
+
* - contains "step by step", "walk me through", "work through"
|
|
22
|
+
* - contains "reasoning", "think through", "figure out", "debug"
|
|
23
|
+
* - explicitly mentions "trace" or "chain of thought"
|
|
24
|
+
*
|
|
25
|
+
* This is intentionally conservative — the boost is OFF by default, so false
|
|
26
|
+
* negatives are cheap, but false positives would shift retrieval for ordinary
|
|
27
|
+
* queries on an opt-in install.
|
|
28
|
+
*/
|
|
29
|
+
export function looksLikeProblemSolvingQuery(query: string): boolean {
|
|
30
|
+
if (typeof query !== "string") return false;
|
|
31
|
+
const q = query.trim().toLowerCase();
|
|
32
|
+
if (q.length === 0) return false;
|
|
33
|
+
|
|
34
|
+
// Starts-with patterns.
|
|
35
|
+
const startsWithPatterns = [
|
|
36
|
+
/^how\s+do\s+i\b/,
|
|
37
|
+
/^how\s+can\s+i\b/,
|
|
38
|
+
/^how\s+would\s+i\b/,
|
|
39
|
+
/^how\s+should\s+i\b/,
|
|
40
|
+
/^how\s+to\b/,
|
|
41
|
+
/^what'?s?\s+the\s+best\s+way\s+to\b/,
|
|
42
|
+
/^can\s+you\s+walk\s+me\s+through\b/,
|
|
43
|
+
/^walk\s+me\s+through\b/,
|
|
44
|
+
/^help\s+me\s+debug\b/,
|
|
45
|
+
/^help\s+me\s+figure\s+out\b/,
|
|
46
|
+
/^why\s+(does|is|did)\b/,
|
|
47
|
+
];
|
|
48
|
+
for (const re of startsWithPatterns) {
|
|
49
|
+
if (re.test(q)) return true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Anywhere-in-string phrases. These mirror the doc-comment's stated
|
|
53
|
+
// positive signals: broader variants ("work through", "figure out",
|
|
54
|
+
// "debug this") are included so "how do I debug this" doesn't have to
|
|
55
|
+
// lean on the `help me debug` starts-with entry alone, and so queries
|
|
56
|
+
// like "work through the problem" or "figure out why it broke" trigger
|
|
57
|
+
// the heuristic as the docstring claims.
|
|
58
|
+
const phrases = [
|
|
59
|
+
"step by step",
|
|
60
|
+
"step-by-step",
|
|
61
|
+
"work through",
|
|
62
|
+
"walk through",
|
|
63
|
+
"walk me through",
|
|
64
|
+
"reason through",
|
|
65
|
+
"think through",
|
|
66
|
+
"figure out",
|
|
67
|
+
"chain of thought",
|
|
68
|
+
"reasoning trace",
|
|
69
|
+
"solution chain",
|
|
70
|
+
"troubleshoot",
|
|
71
|
+
"debug this",
|
|
72
|
+
"debug the",
|
|
73
|
+
" debug ",
|
|
74
|
+
];
|
|
75
|
+
for (const phrase of phrases) {
|
|
76
|
+
if (q.includes(phrase)) return true;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Minimal shape the boost helper needs to read from a recall result. Matches
|
|
84
|
+
* QmdSearchResult as of issue #564 but kept structural so tests and future
|
|
85
|
+
* callers don't have to import orchestrator-level types.
|
|
86
|
+
*/
|
|
87
|
+
export interface BoostableResult {
|
|
88
|
+
path: string;
|
|
89
|
+
score: number;
|
|
90
|
+
docid?: string;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Path-based marker for memories that live in the dedicated
|
|
95
|
+
* reasoning-traces/ subtree. Using a path segment keeps this cheap: no
|
|
96
|
+
* frontmatter parsing or extra I/O is needed.
|
|
97
|
+
*/
|
|
98
|
+
export function isReasoningTracePath(candidatePath: string): boolean {
|
|
99
|
+
if (typeof candidatePath !== "string") return false;
|
|
100
|
+
// Match "/reasoning-traces/" as a full path segment to avoid false
|
|
101
|
+
// positives like "my-reasoning-traces-notes/".
|
|
102
|
+
return /(^|[\\/])reasoning-traces([\\/]|$)/.test(candidatePath);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Default additive boost applied to a reasoning_trace candidate when the
|
|
107
|
+
* current query looks like a problem-solving ask.
|
|
108
|
+
*
|
|
109
|
+
* Chosen to be roughly the same magnitude as the existing CATEGORY_BOOSTS
|
|
110
|
+
* entry for reasoning_trace (0.09 in importance scoring), keeping the signal
|
|
111
|
+
* visible but not overwhelming stronger lexical/vector matches.
|
|
112
|
+
*/
|
|
113
|
+
export const DEFAULT_REASONING_TRACE_BOOST = 0.15;
|
|
114
|
+
|
|
115
|
+
export interface ApplyReasoningTraceBoostOptions {
|
|
116
|
+
enabled: boolean;
|
|
117
|
+
query: string;
|
|
118
|
+
boost?: number;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Apply a score boost to results whose path sits under reasoning-traces/
|
|
123
|
+
* when the query looks like a problem-solving ask. Returns a new array;
|
|
124
|
+
* the input array is not mutated.
|
|
125
|
+
*
|
|
126
|
+
* Ordering policy: the helper walks the results in order, boosts every
|
|
127
|
+
* matching reasoning trace in place, then promotes each boosted trace
|
|
128
|
+
* upward PAST any non-boosted neighbor whose score is strictly lower
|
|
129
|
+
* than the trace's boosted score. Non-matching results keep their
|
|
130
|
+
* incoming relative order — so reranker-driven path ordering and any
|
|
131
|
+
* other upstream nudges on non-trace items are preserved. We do NOT
|
|
132
|
+
* re-sort the full list, which would wipe out rerank priority on
|
|
133
|
+
* non-trace items (whose numeric scores may have been left stale by the
|
|
134
|
+
* rerank pass). This matters because MMR runs immediately after and
|
|
135
|
+
* truncates to a topN window — globally re-sorting would silently drop
|
|
136
|
+
* reranker-promoted items below the cutoff.
|
|
137
|
+
*
|
|
138
|
+
* No-ops (returns a copy of the input unchanged) when:
|
|
139
|
+
* - `enabled` is false,
|
|
140
|
+
* - `query` is empty / not a problem-solving ask,
|
|
141
|
+
* - the result list contains no reasoning-trace paths.
|
|
142
|
+
*
|
|
143
|
+
* Note on legacy paths: this helper intentionally only matches paths
|
|
144
|
+
* under the dedicated `reasoning-traces/` subtree introduced by PR 3.
|
|
145
|
+
* Historical reasoning_trace memories (if any) written before that
|
|
146
|
+
* subtree existed were routed to `facts/<date>/` and are NOT
|
|
147
|
+
* boost-eligible. Operators upgrading across that boundary should run
|
|
148
|
+
* the migration CLI or rewrite old paths before enabling the boost.
|
|
149
|
+
*/
|
|
150
|
+
export function applyReasoningTraceBoost<R extends BoostableResult>(
|
|
151
|
+
results: readonly R[],
|
|
152
|
+
options: ApplyReasoningTraceBoostOptions,
|
|
153
|
+
): R[] {
|
|
154
|
+
if (!options.enabled) return [...results];
|
|
155
|
+
if (!Array.isArray(results) || results.length === 0) return [...results];
|
|
156
|
+
if (!looksLikeProblemSolvingQuery(options.query)) return [...results];
|
|
157
|
+
|
|
158
|
+
const boostAmount =
|
|
159
|
+
typeof options.boost === "number" && Number.isFinite(options.boost) && options.boost >= 0
|
|
160
|
+
? options.boost
|
|
161
|
+
: DEFAULT_REASONING_TRACE_BOOST;
|
|
162
|
+
|
|
163
|
+
// Step 1: boost the scores of matching traces, preserving positions.
|
|
164
|
+
const boosted: R[] = [];
|
|
165
|
+
let changed = false;
|
|
166
|
+
for (const r of results) {
|
|
167
|
+
if (isReasoningTracePath(r.path)) {
|
|
168
|
+
changed = true;
|
|
169
|
+
const baseScore = typeof r.score === "number" && Number.isFinite(r.score) ? r.score : 0;
|
|
170
|
+
boosted.push({ ...r, score: baseScore + boostAmount } as R);
|
|
171
|
+
} else {
|
|
172
|
+
boosted.push(r);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (!changed) return boosted;
|
|
176
|
+
|
|
177
|
+
// Step 2: promote each boosted trace upward past any non-trace neighbor
|
|
178
|
+
// whose score is strictly lower than the boosted score. Non-trace items
|
|
179
|
+
// never move past each other, so reranker-driven ordering on non-trace
|
|
180
|
+
// items is preserved.
|
|
181
|
+
const out = boosted.slice();
|
|
182
|
+
for (let i = 0; i < out.length; i++) {
|
|
183
|
+
if (!isReasoningTracePath(out[i].path)) continue;
|
|
184
|
+
const trace = out[i];
|
|
185
|
+
const traceScore =
|
|
186
|
+
typeof trace.score === "number" && Number.isFinite(trace.score) ? trace.score : 0;
|
|
187
|
+
let j = i;
|
|
188
|
+
while (j > 0) {
|
|
189
|
+
const prev = out[j - 1];
|
|
190
|
+
if (isReasoningTracePath(prev.path)) break; // don't reorder traces vs each other
|
|
191
|
+
const prevScore =
|
|
192
|
+
typeof prev.score === "number" && Number.isFinite(prev.score) ? prev.score : 0;
|
|
193
|
+
if (prevScore >= traceScore) break;
|
|
194
|
+
out[j] = prev;
|
|
195
|
+
j -= 1;
|
|
196
|
+
}
|
|
197
|
+
if (j !== i) out[j] = trace;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return out;
|
|
201
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reasoning-trace memory structural types (issue #564).
|
|
3
|
+
*
|
|
4
|
+
* Captures stored solution chains / chain-of-thought the user walked through
|
|
5
|
+
* to solve a problem. Traces have an ordered list of steps, a final answer,
|
|
6
|
+
* and an optional observed outcome.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export interface ReasoningTraceStep {
|
|
10
|
+
/** 1-based ordinal within the trace. */
|
|
11
|
+
order: number;
|
|
12
|
+
/** Human-readable description of what happened at this step. */
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ReasoningTraceStructuredData {
|
|
17
|
+
steps: ReasoningTraceStep[];
|
|
18
|
+
finalAnswer: string;
|
|
19
|
+
/** Optional confirmation of how the answer played out in practice. */
|
|
20
|
+
observedOutcome?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Normalize loose extraction JSON into ReasoningTraceStep records. */
|
|
24
|
+
export function normalizeReasoningTraceSteps(raw: unknown): ReasoningTraceStep[] {
|
|
25
|
+
if (!Array.isArray(raw)) return [];
|
|
26
|
+
const out: ReasoningTraceStep[] = [];
|
|
27
|
+
for (let i = 0; i < raw.length; i++) {
|
|
28
|
+
const s = raw[i];
|
|
29
|
+
let description = "";
|
|
30
|
+
let orderRaw: unknown;
|
|
31
|
+
if (typeof s === "string") {
|
|
32
|
+
description = s.trim();
|
|
33
|
+
} else if (s && typeof s === "object") {
|
|
34
|
+
const o = s as Record<string, unknown>;
|
|
35
|
+
if (typeof o.description === "string") description = o.description.trim();
|
|
36
|
+
else if (typeof o.intent === "string") description = o.intent.trim();
|
|
37
|
+
else if (typeof o.step === "string") description = o.step.trim();
|
|
38
|
+
else if (typeof o.text === "string") description = o.text.trim();
|
|
39
|
+
orderRaw = o.order;
|
|
40
|
+
}
|
|
41
|
+
if (!description) continue;
|
|
42
|
+
const order =
|
|
43
|
+
typeof orderRaw === "number" && Number.isFinite(orderRaw)
|
|
44
|
+
? Math.max(1, Math.floor(orderRaw))
|
|
45
|
+
: i + 1;
|
|
46
|
+
out.push({ order, description });
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Normalize a loose reasoningTrace object (e.g. coming back from the LLM) to
|
|
53
|
+
* a strict ReasoningTraceStructuredData shape. Returns null when the data is
|
|
54
|
+
* clearly incomplete (no steps or no final answer).
|
|
55
|
+
*/
|
|
56
|
+
export function normalizeReasoningTrace(raw: unknown): ReasoningTraceStructuredData | null {
|
|
57
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
58
|
+
const o = raw as Record<string, unknown>;
|
|
59
|
+
const steps = normalizeReasoningTraceSteps(o.steps);
|
|
60
|
+
const finalAnswer =
|
|
61
|
+
typeof o.finalAnswer === "string"
|
|
62
|
+
? o.finalAnswer.trim()
|
|
63
|
+
: typeof o.final_answer === "string"
|
|
64
|
+
? (o.final_answer as string).trim()
|
|
65
|
+
: "";
|
|
66
|
+
// Prompts describe reasoning_trace as requiring ≥2 ordered steps + a final
|
|
67
|
+
// answer. Rejecting one-step payloads here keeps the category semantically
|
|
68
|
+
// distinct from ordinary `decision` facts and prevents malformed traces
|
|
69
|
+
// from sneaking through loose local/direct extraction JSON.
|
|
70
|
+
if (steps.length < 2 || finalAnswer.length === 0) return null;
|
|
71
|
+
const observedRaw =
|
|
72
|
+
typeof o.observedOutcome === "string"
|
|
73
|
+
? o.observedOutcome
|
|
74
|
+
: typeof o.observed_outcome === "string"
|
|
75
|
+
? (o.observed_outcome as string)
|
|
76
|
+
: undefined;
|
|
77
|
+
const observedOutcome = observedRaw?.trim();
|
|
78
|
+
return {
|
|
79
|
+
steps,
|
|
80
|
+
finalAnswer,
|
|
81
|
+
observedOutcome: observedOutcome && observedOutcome.length > 0 ? observedOutcome : undefined,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Serialize a normalized reasoning trace into a human-readable markdown body.
|
|
87
|
+
* Output shape mirrors the procedure body format: ## Step N sections followed
|
|
88
|
+
* by final answer and optional observed outcome.
|
|
89
|
+
*/
|
|
90
|
+
export function buildReasoningTraceMarkdownBody(trace: ReasoningTraceStructuredData): string {
|
|
91
|
+
const sorted = [...trace.steps].sort((a, b) => a.order - b.order);
|
|
92
|
+
const lines: string[] = [];
|
|
93
|
+
for (const step of sorted) {
|
|
94
|
+
const n = Number.isFinite(step.order) ? Math.max(1, Math.floor(step.order)) : 1;
|
|
95
|
+
lines.push(`## Step ${n}`);
|
|
96
|
+
lines.push("");
|
|
97
|
+
lines.push(step.description.trim());
|
|
98
|
+
lines.push("");
|
|
99
|
+
}
|
|
100
|
+
lines.push("## Final Answer");
|
|
101
|
+
lines.push("");
|
|
102
|
+
lines.push(trace.finalAnswer.trim());
|
|
103
|
+
lines.push("");
|
|
104
|
+
if (trace.observedOutcome && trace.observedOutcome.trim().length > 0) {
|
|
105
|
+
lines.push("## Observed Outcome");
|
|
106
|
+
lines.push("");
|
|
107
|
+
lines.push(trace.observedOutcome.trim());
|
|
108
|
+
lines.push("");
|
|
109
|
+
}
|
|
110
|
+
return lines.join("\n").trimEnd() + "\n";
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Combine a short title with the structured trace body. The title becomes the
|
|
115
|
+
* one-line content of the stored memory, and the full body is appended below.
|
|
116
|
+
*/
|
|
117
|
+
export function buildReasoningTracePersistBody(
|
|
118
|
+
title: string,
|
|
119
|
+
trace: ReasoningTraceStructuredData,
|
|
120
|
+
): string {
|
|
121
|
+
const head = typeof title === "string" ? title.trim() : "";
|
|
122
|
+
const body = buildReasoningTraceMarkdownBody(trace);
|
|
123
|
+
if (!head) return body;
|
|
124
|
+
return `${head}\n\n${body}`.trimEnd() + "\n";
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const STEP_HEADER_RE = /^##\s+Step\s+(\d+)\s*$/im;
|
|
128
|
+
const FINAL_HEADER_RE = /^##\s+Final Answer\s*$/im;
|
|
129
|
+
const OBSERVED_HEADER_RE = /^##\s+Observed Outcome\s*$/im;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Best-effort parse of a reasoning-trace markdown body back into structured
|
|
133
|
+
* data. Returns null when the document does not look like a reasoning trace.
|
|
134
|
+
*/
|
|
135
|
+
export function parseReasoningTraceFromBody(content: string): ReasoningTraceStructuredData | null {
|
|
136
|
+
const text = content.replace(/\r\n/g, "\n").trim();
|
|
137
|
+
if (!text) return null;
|
|
138
|
+
const stepMatches = [...text.matchAll(new RegExp(STEP_HEADER_RE.source, "gim"))];
|
|
139
|
+
const finalMatch = FINAL_HEADER_RE.exec(text);
|
|
140
|
+
if (stepMatches.length === 0 || !finalMatch) return null;
|
|
141
|
+
|
|
142
|
+
const observedMatch = OBSERVED_HEADER_RE.exec(text);
|
|
143
|
+
|
|
144
|
+
const steps: ReasoningTraceStep[] = [];
|
|
145
|
+
for (let i = 0; i < stepMatches.length; i++) {
|
|
146
|
+
const m = stepMatches[i];
|
|
147
|
+
const order = Number.parseInt(m[1] ?? String(i + 1), 10);
|
|
148
|
+
const start = (m.index ?? 0) + m[0].length;
|
|
149
|
+
const nextStepStart =
|
|
150
|
+
i + 1 < stepMatches.length ? stepMatches[i + 1].index ?? text.length : text.length;
|
|
151
|
+
const end = Math.min(nextStepStart, finalMatch.index ?? text.length);
|
|
152
|
+
const block = text.slice(start, end).trim();
|
|
153
|
+
const description = block.split("\n").map((l) => l.trim()).filter((l) => l.length > 0).join(" ");
|
|
154
|
+
if (!description) continue;
|
|
155
|
+
steps.push({
|
|
156
|
+
order: Number.isFinite(order) ? order : i + 1,
|
|
157
|
+
description,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Honor the >=2 ordered-steps invariant enforced everywhere else in the
|
|
162
|
+
// pipeline (prompts, normalizer, schema). A single-step manually-edited
|
|
163
|
+
// or corrupt file should not round-trip back in as a reasoning_trace.
|
|
164
|
+
if (steps.length < 2) return null;
|
|
165
|
+
|
|
166
|
+
const finalStart = (finalMatch.index ?? 0) + finalMatch[0].length;
|
|
167
|
+
const finalEnd = observedMatch?.index ?? text.length;
|
|
168
|
+
const finalAnswer = text
|
|
169
|
+
.slice(finalStart, finalEnd)
|
|
170
|
+
.split("\n")
|
|
171
|
+
.map((l) => l.trim())
|
|
172
|
+
.filter((l) => l.length > 0)
|
|
173
|
+
.join(" ")
|
|
174
|
+
.trim();
|
|
175
|
+
if (!finalAnswer) return null;
|
|
176
|
+
|
|
177
|
+
let observedOutcome: string | undefined;
|
|
178
|
+
if (observedMatch) {
|
|
179
|
+
const obsStart = (observedMatch.index ?? 0) + observedMatch[0].length;
|
|
180
|
+
const raw = text
|
|
181
|
+
.slice(obsStart)
|
|
182
|
+
.split("\n")
|
|
183
|
+
.map((l) => l.trim())
|
|
184
|
+
.filter((l) => l.length > 0)
|
|
185
|
+
.join(" ")
|
|
186
|
+
.trim();
|
|
187
|
+
if (raw) observedOutcome = raw;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return { steps, finalAnswer, observedOutcome };
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Heuristic detector for whether a user message contains a chain-of-thought /
|
|
195
|
+
* solution trace that should be extracted. This is intentionally conservative:
|
|
196
|
+
* we require at least two explicitly-ordered steps and some form of final
|
|
197
|
+
* answer / resolution. Used by the extraction pipeline to decide whether to
|
|
198
|
+
* even consider emitting a reasoning_trace fact, so false positives are more
|
|
199
|
+
* costly than false negatives.
|
|
200
|
+
*/
|
|
201
|
+
export function looksLikeReasoningTrace(message: string): boolean {
|
|
202
|
+
if (typeof message !== "string") return false;
|
|
203
|
+
const text = message.trim();
|
|
204
|
+
if (text.length < 80) return false;
|
|
205
|
+
|
|
206
|
+
// Count lines that carry at least one step marker, not the total number of
|
|
207
|
+
// marker matches. Summing across multiple regexes can let a single line
|
|
208
|
+
// contribute two "steps" (e.g. "Step 1: First,…" matches both patterns),
|
|
209
|
+
// which weakens the "false positives > false negatives" bias. Per-line
|
|
210
|
+
// counting keeps the gate symmetric with real step structure.
|
|
211
|
+
const stepMarkerRes = [
|
|
212
|
+
/\bstep\s+\d+\s*[:.\-]/i,
|
|
213
|
+
/^\s*\d+[.)]\s+\S/,
|
|
214
|
+
/^\s*(first|second|third|fourth|finally|then|next)\b[,:]/i,
|
|
215
|
+
];
|
|
216
|
+
const lines = text.split(/\r?\n/);
|
|
217
|
+
let stepCount = 0;
|
|
218
|
+
for (const line of lines) {
|
|
219
|
+
if (stepMarkerRes.some((re) => re.test(line))) {
|
|
220
|
+
stepCount += 1;
|
|
221
|
+
if (stepCount >= 2) break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (stepCount < 2) return false;
|
|
225
|
+
|
|
226
|
+
// Final-answer / resolution marker. Split into two checks so the trailing
|
|
227
|
+
// `\b` on the word-final alternatives doesn't accidentally require a word
|
|
228
|
+
// character after `answer:` / `result:` (both end in a non-word `:`).
|
|
229
|
+
const wordFinalMarker =
|
|
230
|
+
/\b(final answer|so the answer|therefore|conclusion|in the end|ended up|picked|chose)\b/i;
|
|
231
|
+
const colonMarker = /\b(answer:|result:)/i;
|
|
232
|
+
if (!wordFinalMarker.test(text) && !colonMarker.test(text)) return false;
|
|
233
|
+
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
|
|
4
|
+
import type { RecallAuditEntry } from "./recall-audit.js";
|
|
5
|
+
import {
|
|
6
|
+
DEFAULT_ANOMALY_DETECTOR_CONFIG,
|
|
7
|
+
detectRecallAnomalies,
|
|
8
|
+
normalizeQueryText,
|
|
9
|
+
} from "./recall-audit-anomaly.js";
|
|
10
|
+
|
|
11
|
+
function makeEntry(
|
|
12
|
+
overrides: Partial<RecallAuditEntry> & { ts: string },
|
|
13
|
+
): RecallAuditEntry {
|
|
14
|
+
return {
|
|
15
|
+
ts: overrides.ts,
|
|
16
|
+
sessionKey: overrides.sessionKey ?? "session-a",
|
|
17
|
+
agentId: overrides.agentId ?? "agent-a",
|
|
18
|
+
trigger: overrides.trigger ?? "test",
|
|
19
|
+
queryText: overrides.queryText ?? "hello",
|
|
20
|
+
candidateMemoryIds: overrides.candidateMemoryIds ?? [],
|
|
21
|
+
summary: overrides.summary ?? null,
|
|
22
|
+
injectedChars: overrides.injectedChars ?? 0,
|
|
23
|
+
toggleState: overrides.toggleState ?? "enabled",
|
|
24
|
+
latencyMs: overrides.latencyMs,
|
|
25
|
+
plannerMode: overrides.plannerMode,
|
|
26
|
+
requestedMode: overrides.requestedMode,
|
|
27
|
+
fallbackUsed: overrides.fallbackUsed,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function tsAt(epochMs: number): string {
|
|
32
|
+
return new Date(epochMs).toISOString();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
test("normalizeQueryText lowercases, collapses whitespace, trims", () => {
|
|
36
|
+
assert.equal(normalizeQueryText(" Hello\tWorld\n"), "hello world");
|
|
37
|
+
assert.equal(normalizeQueryText(""), "");
|
|
38
|
+
assert.equal(normalizeQueryText("ALREADY SPACED"), "already spaced");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("disabled detector returns zero flags but still reports window count", () => {
|
|
42
|
+
const entries = [
|
|
43
|
+
makeEntry({ ts: tsAt(1_000), queryText: "a" }),
|
|
44
|
+
makeEntry({ ts: tsAt(2_000), queryText: "a" }),
|
|
45
|
+
];
|
|
46
|
+
const result = detectRecallAnomalies({
|
|
47
|
+
entries,
|
|
48
|
+
now: 10_000,
|
|
49
|
+
config: { enabled: false, windowMs: 60_000, repeatQueryLimit: 1 },
|
|
50
|
+
});
|
|
51
|
+
assert.equal(result.flags.length, 0);
|
|
52
|
+
assert.equal(result.windowEntryCount, 2);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test("repeat-query flag fires on bursts of the same normalized query", () => {
|
|
56
|
+
const entries: RecallAuditEntry[] = [];
|
|
57
|
+
for (let i = 0; i < 10; i++) {
|
|
58
|
+
entries.push(
|
|
59
|
+
makeEntry({ ts: tsAt(1_000 + i * 100), queryText: "ALEX" }),
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
const result = detectRecallAnomalies({
|
|
63
|
+
entries,
|
|
64
|
+
now: 5_000,
|
|
65
|
+
config: {
|
|
66
|
+
enabled: true,
|
|
67
|
+
windowMs: 60_000,
|
|
68
|
+
repeatQueryLimit: 5,
|
|
69
|
+
namespaceWalkLimit: 100,
|
|
70
|
+
highCardinalityReturnLimit: 1_000,
|
|
71
|
+
rapidFireLimit: 1_000,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const repeat = result.flags.find((f) => f.kind === "repeat-query");
|
|
75
|
+
assert.ok(repeat, "repeat-query flag must fire");
|
|
76
|
+
assert.equal(repeat.signal, "alex");
|
|
77
|
+
assert.equal(repeat.entryIndices.length, 10);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test("namespace-walk fires when candidate IDs span > namespaceWalkLimit namespaces", () => {
|
|
81
|
+
const entries = [
|
|
82
|
+
makeEntry({
|
|
83
|
+
ts: tsAt(1_000),
|
|
84
|
+
candidateMemoryIds: ["victim/mem-1", "other/mem-2"],
|
|
85
|
+
}),
|
|
86
|
+
makeEntry({
|
|
87
|
+
ts: tsAt(2_000),
|
|
88
|
+
candidateMemoryIds: ["third/mem-3", "fourth/mem-4"],
|
|
89
|
+
}),
|
|
90
|
+
];
|
|
91
|
+
const result = detectRecallAnomalies({
|
|
92
|
+
entries,
|
|
93
|
+
now: 10_000,
|
|
94
|
+
config: {
|
|
95
|
+
enabled: true,
|
|
96
|
+
windowMs: 60_000,
|
|
97
|
+
namespaceWalkLimit: 3,
|
|
98
|
+
repeatQueryLimit: 1_000,
|
|
99
|
+
highCardinalityReturnLimit: 1_000,
|
|
100
|
+
rapidFireLimit: 1_000,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
const walk = result.flags.find((f) => f.kind === "namespace-walk");
|
|
104
|
+
assert.ok(walk, "namespace-walk flag must fire");
|
|
105
|
+
assert.equal(walk.severity, "alert");
|
|
106
|
+
assert.equal(walk.signal, 4);
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
test("high-cardinality-return fires on a single huge response", () => {
|
|
110
|
+
const bigList = Array.from({ length: 120 }, (_, i) => `victim/mem-${i}`);
|
|
111
|
+
const entries = [
|
|
112
|
+
makeEntry({
|
|
113
|
+
ts: tsAt(1_000),
|
|
114
|
+
queryText: "dump",
|
|
115
|
+
candidateMemoryIds: bigList,
|
|
116
|
+
}),
|
|
117
|
+
];
|
|
118
|
+
const result = detectRecallAnomalies({
|
|
119
|
+
entries,
|
|
120
|
+
now: 5_000,
|
|
121
|
+
config: {
|
|
122
|
+
enabled: true,
|
|
123
|
+
windowMs: 60_000,
|
|
124
|
+
highCardinalityReturnLimit: 100,
|
|
125
|
+
repeatQueryLimit: 1_000,
|
|
126
|
+
namespaceWalkLimit: 1_000,
|
|
127
|
+
rapidFireLimit: 1_000,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const hc = result.flags.find((f) => f.kind === "high-cardinality-return");
|
|
131
|
+
assert.ok(hc, "high-cardinality-return must fire");
|
|
132
|
+
assert.equal(hc.signal, 120);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
test("rapid-fire fires on too many entries in the window", () => {
|
|
136
|
+
const entries: RecallAuditEntry[] = [];
|
|
137
|
+
for (let i = 0; i < 40; i++) {
|
|
138
|
+
entries.push(makeEntry({ ts: tsAt(1_000 + i), queryText: `q-${i}` }));
|
|
139
|
+
}
|
|
140
|
+
const result = detectRecallAnomalies({
|
|
141
|
+
entries,
|
|
142
|
+
now: 5_000,
|
|
143
|
+
config: {
|
|
144
|
+
enabled: true,
|
|
145
|
+
windowMs: 60_000,
|
|
146
|
+
repeatQueryLimit: 1_000,
|
|
147
|
+
namespaceWalkLimit: 1_000,
|
|
148
|
+
highCardinalityReturnLimit: 1_000,
|
|
149
|
+
rapidFireLimit: 30,
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
const rf = result.flags.find((f) => f.kind === "rapid-fire");
|
|
153
|
+
assert.ok(rf, "rapid-fire flag must fire");
|
|
154
|
+
assert.equal(rf.signal, 40);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
test("entries outside the window are ignored", () => {
|
|
158
|
+
const entries: RecallAuditEntry[] = [];
|
|
159
|
+
// 20 old entries (outside window), 2 new entries (inside).
|
|
160
|
+
for (let i = 0; i < 20; i++) {
|
|
161
|
+
entries.push(makeEntry({ ts: tsAt(0 + i), queryText: "old" }));
|
|
162
|
+
}
|
|
163
|
+
entries.push(makeEntry({ ts: tsAt(10_000), queryText: "new" }));
|
|
164
|
+
entries.push(makeEntry({ ts: tsAt(11_000), queryText: "new" }));
|
|
165
|
+
const result = detectRecallAnomalies({
|
|
166
|
+
entries,
|
|
167
|
+
now: 12_000,
|
|
168
|
+
config: {
|
|
169
|
+
enabled: true,
|
|
170
|
+
windowMs: 5_000, // <- covers 7_000..12_000 only
|
|
171
|
+
repeatQueryLimit: 1,
|
|
172
|
+
namespaceWalkLimit: 1_000,
|
|
173
|
+
highCardinalityReturnLimit: 1_000,
|
|
174
|
+
rapidFireLimit: 1_000,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
assert.equal(result.windowEntryCount, 2);
|
|
178
|
+
// The repeat-query flag fires on "new" (2 repeats > limit 1), not on "old".
|
|
179
|
+
const flag = result.flags.find((f) => f.kind === "repeat-query");
|
|
180
|
+
assert.ok(flag);
|
|
181
|
+
assert.equal(flag.signal, "new");
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
test("invalid ts entries are skipped silently", () => {
|
|
185
|
+
const entries = [
|
|
186
|
+
makeEntry({ ts: "not-a-date", queryText: "a" }),
|
|
187
|
+
makeEntry({ ts: tsAt(1_000), queryText: "a" }),
|
|
188
|
+
];
|
|
189
|
+
const result = detectRecallAnomalies({
|
|
190
|
+
entries,
|
|
191
|
+
now: 5_000,
|
|
192
|
+
config: { ...DEFAULT_ANOMALY_DETECTOR_CONFIG, enabled: true },
|
|
193
|
+
});
|
|
194
|
+
assert.equal(result.windowEntryCount, 1);
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
test("flags are sorted by severity then kind for deterministic output", () => {
|
|
198
|
+
const entries: RecallAuditEntry[] = [];
|
|
199
|
+
// Trigger alert (namespace-walk) + warn (repeat-query + rapid-fire).
|
|
200
|
+
for (let i = 0; i < 10; i++) {
|
|
201
|
+
entries.push(
|
|
202
|
+
makeEntry({
|
|
203
|
+
ts: tsAt(1_000 + i),
|
|
204
|
+
queryText: "same",
|
|
205
|
+
candidateMemoryIds: [`ns-${i}/mem`],
|
|
206
|
+
}),
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
const result = detectRecallAnomalies({
|
|
210
|
+
entries,
|
|
211
|
+
now: 5_000,
|
|
212
|
+
config: {
|
|
213
|
+
enabled: true,
|
|
214
|
+
windowMs: 60_000,
|
|
215
|
+
repeatQueryLimit: 5,
|
|
216
|
+
namespaceWalkLimit: 3,
|
|
217
|
+
highCardinalityReturnLimit: 1_000,
|
|
218
|
+
rapidFireLimit: 5,
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
assert.ok(result.flags.length >= 2);
|
|
222
|
+
// alert comes before warn.
|
|
223
|
+
const severities = result.flags.map((f) => f.severity);
|
|
224
|
+
const firstWarn = severities.indexOf("warn");
|
|
225
|
+
const lastAlert = severities.lastIndexOf("alert");
|
|
226
|
+
if (firstWarn >= 0 && lastAlert >= 0) {
|
|
227
|
+
assert.ok(lastAlert < firstWarn, "alerts must precede warns");
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
test("invalid config values are replaced by defaults", () => {
|
|
232
|
+
const entries = [makeEntry({ ts: tsAt(1_000) })];
|
|
233
|
+
const result = detectRecallAnomalies({
|
|
234
|
+
entries,
|
|
235
|
+
now: 2_000,
|
|
236
|
+
config: {
|
|
237
|
+
enabled: true,
|
|
238
|
+
windowMs: Number.NaN,
|
|
239
|
+
repeatQueryLimit: -1,
|
|
240
|
+
namespaceWalkLimit: 0,
|
|
241
|
+
highCardinalityReturnLimit: Number.POSITIVE_INFINITY,
|
|
242
|
+
rapidFireLimit: Number.NaN,
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
assert.equal(result.windowMs, DEFAULT_ANOMALY_DETECTOR_CONFIG.windowMs);
|
|
246
|
+
});
|