@remnic/core 1.1.11 → 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/README.md +3 -3
- package/dist/access-cli.d.ts +2 -1
- package/dist/access-cli.js +293 -104
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +31 -62
- package/dist/access-http.js +53 -35
- package/dist/access-mcp.d.ts +31 -8
- package/dist/access-mcp.js +45 -34
- package/dist/access-schema.d.ts +197 -14
- package/dist/access-schema.js +16 -5
- package/dist/access-service-DcCDmNYC.d.ts +1542 -0
- package/dist/access-service.d.ts +30 -9
- package/dist/access-service.js +42 -32
- package/dist/action-confidence.d.ts +83 -0
- package/dist/action-confidence.js +22 -0
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-memory-bridge.js +2 -2
- package/dist/active-recall.d.ts +1 -1
- 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/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +23 -6
- package/dist/boxes.d.ts +7 -0
- package/dist/boxes.js +1 -1
- package/dist/briefing.d.ts +5 -3
- package/dist/briefing.js +10 -7
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer-surprise-report.js +1 -1
- package/dist/buffer.d.ts +18 -4
- package/dist/buffer.js +1 -1
- package/dist/calibration.d.ts +1 -1
- package/dist/calibration.js +6 -6
- 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 +9 -29
- 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 +2 -2
- package/dist/causal-consolidation.js +28 -17
- 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-4RA3C3EV.js +60 -0
- package/dist/chunk-4RA3C3EV.js.map +1 -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-5NXIJZFX.js +180 -0
- package/dist/chunk-5NXIJZFX.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-6NKAQ74D.js +2237 -0
- package/dist/chunk-6NKAQ74D.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-AC5LO7IU.js +308 -0
- package/dist/chunk-AC5LO7IU.js.map +1 -0
- package/dist/chunk-AGZQD76C.js +201 -0
- package/dist/chunk-AGZQD76C.js.map +1 -0
- package/dist/chunk-AH2JUU6X.js +336 -0
- package/dist/chunk-AH2JUU6X.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-C5BCH4ZS.js +317 -0
- package/dist/chunk-C5BCH4ZS.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-DB5A3NHS.js +906 -0
- package/dist/chunk-DB5A3NHS.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-EDTHC6UD.js.map +1 -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-FBYESMQ2.js.map +1 -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-MGKYQQYF.js.map +1 -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-OAZ5MFUB.js +4124 -0
- package/dist/chunk-OAZ5MFUB.js.map +1 -0
- package/dist/chunk-OIGNEXKZ.js +237 -0
- package/dist/chunk-OIGNEXKZ.js.map +1 -0
- package/dist/chunk-OZKZ2TRP.js +3729 -0
- package/dist/chunk-OZKZ2TRP.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-PD6O7AXF.js +110 -0
- package/dist/chunk-PD6O7AXF.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-PYPOFEMK.js +294 -0
- package/dist/chunk-PYPOFEMK.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-QDZ2RLEC.js +908 -0
- package/dist/chunk-QDZ2RLEC.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-RK6F44Y6.js +84 -0
- package/dist/chunk-RK6F44Y6.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-SOAU2OE2.js +125 -0
- package/dist/chunk-SOAU2OE2.js.map +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-V5OCT34X.js.map +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-VWT3F4IV.js +2161 -0
- package/dist/chunk-VWT3F4IV.js.map +1 -0
- package/dist/chunk-W3LR522O.js +2296 -0
- package/dist/chunk-W3LR522O.js.map +1 -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 +42 -10
- package/dist/cli.js +121 -58
- package/dist/codex-cli-fallback.d.ts +1 -0
- package/dist/codex-cli-fallback.js +1 -1
- 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/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +5 -3
- 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 +4 -2
- package/dist/consolidation-undo.d.ts +4 -2
- 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/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer-wiring.js +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- 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 +9 -6
- package/dist/entity-schema.d.ts +1 -1
- package/dist/evals.js +1 -1
- package/dist/event-order-recall.d.ts +17 -0
- package/dist/event-order-recall.js +11 -0
- package/dist/event-order-recall.js.map +1 -0
- package/dist/evidence-pack.d.ts +3 -1
- package/dist/evidence-pack.js +5 -3
- package/dist/explicit-capture.d.ts +23 -6
- package/dist/explicit-capture.js +2 -2
- package/dist/explicit-cue-recall.d.ts +4 -1
- package/dist/explicit-cue-recall.js +4 -2
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge-training.js +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +11 -10
- package/dist/faiss-adapter-CzPghc4C.d.ts +70 -0
- package/dist/fallback-llm.d.ts +4 -1
- package/dist/fallback-llm.js +6 -6
- package/dist/focused-list-recall.d.ts +17 -0
- package/dist/focused-list-recall.js +11 -0
- package/dist/focused-list-recall.js.map +1 -0
- package/dist/graph-edge-decay-5DI5GUNL.js +207 -0
- package/dist/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/index-DJ9QWMw-.d.ts +35 -0
- package/dist/index.d.ts +107 -715
- package/dist/index.js +657 -2611
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +1 -1
- package/dist/intent.js +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/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/live-connectors-runner.js +5 -5
- package/dist/local-llm.d.ts +8 -4
- 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 +124 -0
- package/dist/mcp-memory-inspector-app.js +20 -0
- package/dist/mcp-memory-inspector-app.js.map +1 -0
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +108 -3
- package/dist/memory-projection-store.js +2 -1
- package/dist/memory-provenance.d.ts +57 -0
- package/dist/memory-provenance.js +13 -0
- package/dist/memory-provenance.js.map +1 -0
- 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/models-json.d.ts +1 -1
- 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/native-knowledge.d.ts +1 -1
- 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.d.ts +1 -1
- package/dist/objective-state-writers.js +2 -2
- package/dist/operator-toolkit.d.ts +4 -2
- package/dist/operator-toolkit.js +35 -17
- 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 +24 -7
- package/dist/orchestrator.js +107 -65
- package/dist/path-MR5JPYOP.js +9 -0
- package/dist/path-MR5JPYOP.js.map +1 -0
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/qmd-recall-cache.d.ts +2 -2
- package/dist/qmd.d.ts +103 -4
- package/dist/qmd.js +23 -5
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +3 -1
- package/dist/recall-explain-renderer.js +5 -3
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +3 -1
- package/dist/recall-xray-cli.d.ts +3 -1
- package/dist/recall-xray-cli.js +6 -4
- package/dist/recall-xray-renderer.d.ts +3 -1
- package/dist/recall-xray-renderer.js +5 -3
- package/dist/recall-xray.d.ts +8 -1
- package/dist/recall-xray.js +4 -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-auth-token.d.ts +1 -1
- package/dist/resolve-provider-secret.js +2 -2
- package/dist/response-guidance-recall.d.ts +18 -0
- package/dist/response-guidance-recall.js +11 -0
- package/dist/response-guidance-recall.js.map +1 -0
- package/dist/resume-bundles.js +7 -5
- package/dist/retrieval-agents.d.ts +2 -2
- package/dist/retrieval-tiers.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/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 +3 -3
- package/dist/semantic-consolidation.js +15 -8
- package/dist/semantic-rule-promotion.js +9 -6
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +10 -7
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- 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/signal.d.ts +1 -1
- 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 +6 -2
- package/dist/storage.js +8 -5
- package/dist/summarizer.d.ts +6 -1
- package/dist/summarizer.js +11 -10
- package/dist/summary-snapshot.d.ts +1 -1
- 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/targeted-fact-recall.d.ts +17 -0
- package/dist/targeted-fact-recall.js +11 -0
- package/dist/targeted-fact-recall.js.map +1 -0
- package/dist/telemetry-transcript.d.ts +7 -0
- package/dist/telemetry-transcript.js +16 -0
- package/dist/telemetry-transcript.js.map +1 -0
- package/dist/temporal-supersession.d.ts +4 -2
- package/dist/temporal-supersession.js +2 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +6 -1
- package/dist/threading.js +2 -1
- package/dist/tier-migration.d.ts +5 -3
- package/dist/tier-routing.d.ts +1 -1
- package/dist/tokens.js +2 -2
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +16 -2
- 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/trust-zones.d.ts +3 -2
- package/dist/trust-zones.js +1 -1
- package/dist/types.d.ts +88 -3
- package/dist/types.js +1 -1
- package/dist/user-model.d.ts +37 -0
- package/dist/user-model.js +28 -0
- package/dist/user-model.js.map +1 -0
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +11 -8
- 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-BkXt3di1.d.ts +0 -2039
- package/dist/capsule-crypto-SJS5VVAP.js +0 -18
- package/dist/capsule-export-LLEVB2RG.js +0 -17
- package/dist/capsule-import-UW45R2MZ.js +0 -16
- package/dist/capsule-merge-DI7PNQ2H.js +0 -189
- package/dist/chunk-2LGMW3DJ.js +0 -111
- package/dist/chunk-2YMTO4ZJ.js +0 -265
- package/dist/chunk-2YMTO4ZJ.js.map +0 -1
- package/dist/chunk-363MWCD3.js +0 -9683
- package/dist/chunk-363MWCD3.js.map +0 -1
- package/dist/chunk-36CTNQY7.js +0 -1554
- package/dist/chunk-36CTNQY7.js.map +0 -1
- package/dist/chunk-457A4P3L.js +0 -119
- package/dist/chunk-457A4P3L.js.map +0 -1
- package/dist/chunk-4DXC6HQQ.js +0 -1837
- package/dist/chunk-4DXC6HQQ.js.map +0 -1
- package/dist/chunk-4IS4SXIQ.js +0 -2040
- package/dist/chunk-57QNCUEZ.js +0 -1914
- package/dist/chunk-57QNCUEZ.js.map +0 -1
- package/dist/chunk-6AUUAZEX.js +0 -150
- package/dist/chunk-6AUUAZEX.js.map +0 -1
- package/dist/chunk-6TBWYBJ3.js +0 -236
- package/dist/chunk-6XA7UN4Z.js +0 -135
- package/dist/chunk-6Z6UH6TK.js +0 -2129
- package/dist/chunk-6Z6UH6TK.js.map +0 -1
- package/dist/chunk-74EMIVE4.js +0 -329
- package/dist/chunk-74EMIVE4.js.map +0 -1
- package/dist/chunk-74WWN7ZW.js +0 -82
- package/dist/chunk-74WWN7ZW.js.map +0 -1
- package/dist/chunk-767ODGE6.js +0 -183
- package/dist/chunk-A4ACKWIW.js +0 -289
- package/dist/chunk-A4ACKWIW.js.map +0 -1
- package/dist/chunk-ASAITVLA.js +0 -64
- package/dist/chunk-ASAITVLA.js.map +0 -1
- package/dist/chunk-C5HUWVH2.js +0 -891
- package/dist/chunk-C5HUWVH2.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-E6K4NIEU.js +0 -747
- package/dist/chunk-E6K4NIEU.js.map +0 -1
- package/dist/chunk-EEQLFRUM.js +0 -89
- package/dist/chunk-EQINRHYR.js +0 -672
- package/dist/chunk-EQINRHYR.js.map +0 -1
- package/dist/chunk-ETOW6ACV.js +0 -158
- package/dist/chunk-ETOW6ACV.js.map +0 -1
- package/dist/chunk-EYNQTST2.js +0 -721
- 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-GGD5W7TB.js +0 -105
- package/dist/chunk-GGD5W7TB.js.map +0 -1
- package/dist/chunk-GVPWB7EY.js +0 -390
- package/dist/chunk-GVPWB7EY.js.map +0 -1
- package/dist/chunk-HJYHRE4S.js +0 -647
- package/dist/chunk-I6BQZSML.js +0 -1451
- package/dist/chunk-I6BQZSML.js.map +0 -1
- package/dist/chunk-IBX3VFOM.js +0 -446
- package/dist/chunk-IBX3VFOM.js.map +0 -1
- 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-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-KBYWQWSB.js +0 -271
- package/dist/chunk-KUHRUM6B.js +0 -14397
- package/dist/chunk-KUHRUM6B.js.map +0 -1
- package/dist/chunk-KWBPHZUU.js +0 -83
- package/dist/chunk-KWBPHZUU.js.map +0 -1
- package/dist/chunk-LIO5X3CM.js +0 -596
- package/dist/chunk-MARWOCVP.js +0 -48
- package/dist/chunk-MCC6KDQF.js +0 -5095
- package/dist/chunk-MCC6KDQF.js.map +0 -1
- package/dist/chunk-N5AKDXAI.js +0 -74
- package/dist/chunk-NN3LPQ5D.js +0 -936
- package/dist/chunk-NN3LPQ5D.js.map +0 -1
- package/dist/chunk-O4XJUPSF.js +0 -533
- package/dist/chunk-O4XJUPSF.js.map +0 -1
- 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-P73JTV34.js +0 -275
- package/dist/chunk-P73JTV34.js.map +0 -1
- package/dist/chunk-P77UEOU2.js +0 -1521
- package/dist/chunk-P77UEOU2.js.map +0 -1
- package/dist/chunk-PB5KW5PL.js +0 -118
- package/dist/chunk-PHNGXFQ6.js +0 -623
- package/dist/chunk-PHNGXFQ6.js.map +0 -1
- package/dist/chunk-QIGOEM65.js +0 -228
- package/dist/chunk-RXTFCYQF.js +0 -108
- package/dist/chunk-S2JJBLJG.js +0 -2101
- package/dist/chunk-S2JJBLJG.js.map +0 -1
- package/dist/chunk-S3IP6R6K.js +0 -219
- package/dist/chunk-S3IP6R6K.js.map +0 -1
- package/dist/chunk-SRBJUAMP.js +0 -403
- package/dist/chunk-SRBJUAMP.js.map +0 -1
- package/dist/chunk-URB2WSKZ.js +0 -350
- package/dist/chunk-URB2WSKZ.js.map +0 -1
- package/dist/chunk-VQXK37XA.js +0 -26
- package/dist/chunk-VQXK37XA.js.map +0 -1
- package/dist/chunk-VTU2B4VF.js +0 -146
- package/dist/chunk-VTU2B4VF.js.map +0 -1
- package/dist/chunk-VX2IUQFE.js +0 -613
- package/dist/chunk-VX2IUQFE.js.map +0 -1
- package/dist/chunk-WGK4VHGP.js +0 -4292
- package/dist/chunk-WGK4VHGP.js.map +0 -1
- package/dist/chunk-WTFWLUSX.js +0 -827
- package/dist/chunk-WTFWLUSX.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-Y5KDIOKF.js +0 -2403
- package/dist/chunk-Y5KDIOKF.js.map +0 -1
- 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-Z5S5HNGY.js +0 -2280
- package/dist/chunk-Z5S5HNGY.js.map +0 -1
- package/dist/chunk-ZL4S7ARC.js +0 -53
- package/dist/chunk-ZTSE2ZJ6.js +0 -190
- package/dist/chunk-ZTSE2ZJ6.js.map +0 -1
- package/dist/cli-Cvy2SNhF.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-3Z6YW7YA.js +0 -413
- package/dist/contradiction-scan-3Z6YW7YA.js.map +0 -1
- package/dist/engine-FOC3IJLA.js +0 -28
- package/dist/fs-utils-IRVUFB6G.js +0 -30
- package/dist/graph-edge-decay-PWB63GRE.js +0 -207
- package/dist/index-1qIcnbG1.d.ts +0 -34
- package/dist/memory-governance-F3QOJGEY.js +0 -37
- package/dist/memory-projection-store-CY8TU40w.d.ts +0 -222
- package/dist/orchestrator-AOQMo7QI.d.ts +0 -1784
- 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 → action-confidence.js.map} +0 -0
- /package/dist/{capsule-export-LLEVB2RG.js.map → adapters/claude-code.js.map} +0 -0
- /package/dist/{capsule-import-UW45R2MZ.js.map → adapters/codex.js.map} +0 -0
- /package/dist/{contradiction-review-5LTTVDQV.js.map → adapters/hermes.js.map} +0 -0
- /package/dist/{engine-FOC3IJLA.js.map → adapters/index.js.map} +0 -0
- /package/dist/{fs-utils-IRVUFB6G.js.map → adapters/registry.js.map} +0 -0
- /package/dist/{memory-governance-F3QOJGEY.js.map → adapters/replit.js.map} +0 -0
- /package/dist/{path-RMTY5Y5A.js.map → adapters/types.js.map} +0 -0
- /package/dist/{secure-store-4R2GSO7S.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-KBYWQWSB.js.map → chunk-4CRG46BG.js.map} +0 -0
- /package/dist/{chunk-LIO5X3CM.js.map → chunk-7IASACLB.js.map} +0 -0
- /package/dist/{chunk-EYNQTST2.js.map → chunk-EFJ3MQ4V.js.map} +0 -0
- /package/dist/{chunk-D54LZC5L.js.map → chunk-FDU6HUUL.js.map} +0 -0
- /package/dist/{chunk-QIGOEM65.js.map → chunk-GGKRUQOO.js.map} +0 -0
- /package/dist/{chunk-HJYHRE4S.js.map → chunk-GL6I6MEQ.js.map} +0 -0
- /package/dist/{state-store-3EH7HYIN.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-PB5KW5PL.js.map → chunk-MC26UJIM.js.map} +0 -0
- /package/dist/{chunk-ZL4S7ARC.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-RXTFCYQF.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/{types-V3FJ26TF.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/{chunk-MARWOCVP.js.map → chunk-XIG5PDM7.js.map} +0 -0
- /package/dist/{chunk-6XA7UN4Z.js.map → chunk-XVZ7B3HG.js.map} +0 -0
- /package/dist/{graph-edge-decay-PWB63GRE.js.map → graph-edge-decay-5DI5GUNL.js.map} +0 -0
package/dist/chunk-OA3L7BFR.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
// src/transfer/types.ts
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
var ExportManifestV1Schema = z.object({
|
|
4
|
-
format: z.literal("openclaw-engram-export"),
|
|
5
|
-
schemaVersion: z.literal(1),
|
|
6
|
-
createdAt: z.string(),
|
|
7
|
-
pluginVersion: z.string(),
|
|
8
|
-
includesTranscripts: z.boolean(),
|
|
9
|
-
files: z.array(
|
|
10
|
-
z.object({
|
|
11
|
-
path: z.string(),
|
|
12
|
-
sha256: z.string(),
|
|
13
|
-
bytes: z.number().int().nonnegative()
|
|
14
|
-
})
|
|
15
|
-
)
|
|
16
|
-
});
|
|
17
|
-
var ExportMemoryRecordV1Schema = z.object({
|
|
18
|
-
path: z.string(),
|
|
19
|
-
content: z.string()
|
|
20
|
-
});
|
|
21
|
-
var ExportBundleV1Schema = z.object({
|
|
22
|
-
manifest: ExportManifestV1Schema,
|
|
23
|
-
records: z.array(ExportMemoryRecordV1Schema)
|
|
24
|
-
});
|
|
25
|
-
var CAPSULE_ID_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9]|-(?!-))*[A-Za-z0-9]$|^[A-Za-z0-9]$/;
|
|
26
|
-
var CapsuleIdSchema = z.string().min(1, "capsule.id must not be empty").max(64, "capsule.id must be 64 characters or fewer").regex(
|
|
27
|
-
CAPSULE_ID_PATTERN,
|
|
28
|
-
"capsule.id must be alphanumeric with single dashes (no spaces, no leading/trailing dashes)"
|
|
29
|
-
);
|
|
30
|
-
var SemverLikeSchema = z.string().min(1, "capsule.version must not be empty").regex(
|
|
31
|
-
/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,
|
|
32
|
-
"capsule.version must be a semver-like string (e.g. 1.0.0)"
|
|
33
|
-
);
|
|
34
|
-
var CapsuleRetrievalPolicySchema = z.object({
|
|
35
|
-
/**
|
|
36
|
-
* Per-tier weight overrides applied during recall when the capsule is the
|
|
37
|
-
* active scope. Keys are tier names (e.g. `bm25`, `vector`, `graph`); values
|
|
38
|
-
* are non-negative finite multipliers. The set of valid keys is left open
|
|
39
|
-
* for now so future tiers do not break older manifests.
|
|
40
|
-
*/
|
|
41
|
-
tierWeights: z.record(
|
|
42
|
-
z.string().min(1),
|
|
43
|
-
z.number().finite().nonnegative()
|
|
44
|
-
),
|
|
45
|
-
/**
|
|
46
|
-
* Whether the direct-answer fast path is allowed when this capsule is
|
|
47
|
-
* active. Operators may disable it for capsules whose contents should
|
|
48
|
-
* always flow through the full retrieval pipeline.
|
|
49
|
-
*/
|
|
50
|
-
directAnswerEnabled: z.boolean()
|
|
51
|
-
});
|
|
52
|
-
var CapsuleIncludesSchema = z.object({
|
|
53
|
-
taxonomy: z.boolean(),
|
|
54
|
-
identityAnchors: z.boolean(),
|
|
55
|
-
peerProfiles: z.boolean(),
|
|
56
|
-
procedural: z.boolean()
|
|
57
|
-
});
|
|
58
|
-
var CapsuleParentSchema = z.object({
|
|
59
|
-
capsuleId: CapsuleIdSchema,
|
|
60
|
-
version: SemverLikeSchema,
|
|
61
|
-
/**
|
|
62
|
-
* Posix-relative path prefix under the fork's memory root where the parent
|
|
63
|
-
* capsule's records were placed. Typically `forks/<parent-capsule-id>`.
|
|
64
|
-
* Must be a non-empty string with no leading slash.
|
|
65
|
-
*/
|
|
66
|
-
forkRoot: z.string().min(1, "capsule.parent.forkRoot must not be empty").refine((v) => !v.startsWith("/"), {
|
|
67
|
-
message: "capsule.parent.forkRoot must be a relative path (no leading slash)"
|
|
68
|
-
})
|
|
69
|
-
});
|
|
70
|
-
var CapsuleBlockSchema = z.object({
|
|
71
|
-
id: CapsuleIdSchema,
|
|
72
|
-
version: SemverLikeSchema,
|
|
73
|
-
/**
|
|
74
|
-
* Taxonomy schema version the capsule was authored against. Free-form for
|
|
75
|
-
* now; later PRs may tighten this to a known taxonomy registry.
|
|
76
|
-
*/
|
|
77
|
-
schemaVersion: z.string().min(1, "capsule.schemaVersion must not be empty"),
|
|
78
|
-
/**
|
|
79
|
-
* Optional reference to the parent capsule this one was forked or derived
|
|
80
|
-
* from. `null` (not `undefined`) is the explicit "no parent" sentinel so
|
|
81
|
-
* that round-trips through JSON do not silently drop the field.
|
|
82
|
-
*
|
|
83
|
-
* @deprecated Prefer {@link parent} (structured). This field is preserved
|
|
84
|
-
* for backward compatibility with V2 manifests written before PR 4/6.
|
|
85
|
-
*/
|
|
86
|
-
parentCapsule: z.string().min(1).nullable(),
|
|
87
|
-
/**
|
|
88
|
-
* Structured fork-lineage pointer added in PR 4/6. When present, this
|
|
89
|
-
* capsule is a fork of the described parent. `null` is the explicit
|
|
90
|
-
* "not a fork" sentinel — round-trips through JSON cleanly without
|
|
91
|
-
* silently dropping the field.
|
|
92
|
-
*
|
|
93
|
-
* Defaults to `null` so that V2 manifests written before PR 4/6 (which
|
|
94
|
-
* omit this field) still parse without error. This preserves backward
|
|
95
|
-
* compatibility with the existing `makeV2Manifest()` test fixtures and
|
|
96
|
-
* any in-the-wild V2 archives produced by PR 2/6 and PR 3/6.
|
|
97
|
-
*
|
|
98
|
-
* Invariant: when `parent` is non-null, `parentCapsule` SHOULD equal
|
|
99
|
-
* `parent.capsuleId` for backward compatibility with readers that only
|
|
100
|
-
* understand the legacy field. `forkCapsule()` sets both.
|
|
101
|
-
*/
|
|
102
|
-
parent: CapsuleParentSchema.nullable().default(null),
|
|
103
|
-
description: z.string(),
|
|
104
|
-
retrievalPolicy: CapsuleRetrievalPolicySchema,
|
|
105
|
-
includes: CapsuleIncludesSchema
|
|
106
|
-
});
|
|
107
|
-
var ExportManifestV2Schema = z.object({
|
|
108
|
-
format: z.literal("openclaw-engram-export"),
|
|
109
|
-
schemaVersion: z.literal(2),
|
|
110
|
-
createdAt: z.string(),
|
|
111
|
-
pluginVersion: z.string(),
|
|
112
|
-
includesTranscripts: z.boolean(),
|
|
113
|
-
files: z.array(
|
|
114
|
-
z.object({
|
|
115
|
-
path: z.string(),
|
|
116
|
-
sha256: z.string(),
|
|
117
|
-
bytes: z.number().int().nonnegative()
|
|
118
|
-
})
|
|
119
|
-
),
|
|
120
|
-
capsule: CapsuleBlockSchema
|
|
121
|
-
});
|
|
122
|
-
var ExportBundleV2Schema = z.object({
|
|
123
|
-
manifest: ExportManifestV2Schema,
|
|
124
|
-
records: z.array(ExportMemoryRecordV1Schema)
|
|
125
|
-
});
|
|
126
|
-
function parseExportManifest(input) {
|
|
127
|
-
const version = typeof input === "object" && input !== null ? input.schemaVersion : void 0;
|
|
128
|
-
if (version === 2) {
|
|
129
|
-
const manifest = ExportManifestV2Schema.parse(input);
|
|
130
|
-
return {
|
|
131
|
-
capsuleVersion: 2,
|
|
132
|
-
manifest,
|
|
133
|
-
capsule: manifest.capsule
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
if (version === 1) {
|
|
137
|
-
const manifest = ExportManifestV1Schema.parse(input);
|
|
138
|
-
return { capsuleVersion: 1, manifest, capsule: null };
|
|
139
|
-
}
|
|
140
|
-
const v1 = ExportManifestV1Schema.safeParse(input);
|
|
141
|
-
if (v1.success) {
|
|
142
|
-
return { capsuleVersion: 1, manifest: v1.data, capsule: null };
|
|
143
|
-
}
|
|
144
|
-
const v2 = ExportManifestV2Schema.safeParse(input);
|
|
145
|
-
if (v2.success) {
|
|
146
|
-
return {
|
|
147
|
-
capsuleVersion: 2,
|
|
148
|
-
manifest: v2.data,
|
|
149
|
-
capsule: v2.data.capsule
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
throw v2.error;
|
|
153
|
-
}
|
|
154
|
-
function parseExportBundle(input) {
|
|
155
|
-
if (typeof input !== "object" || input === null) {
|
|
156
|
-
ExportBundleV1Schema.parse(input);
|
|
157
|
-
throw new Error("unreachable");
|
|
158
|
-
}
|
|
159
|
-
const manifestRaw = input.manifest;
|
|
160
|
-
const normalized = parseExportManifest(manifestRaw);
|
|
161
|
-
if (normalized.capsuleVersion === 2) {
|
|
162
|
-
const bundle2 = ExportBundleV2Schema.parse(input);
|
|
163
|
-
return { capsuleVersion: 2, bundle: bundle2, capsule: bundle2.manifest.capsule };
|
|
164
|
-
}
|
|
165
|
-
const bundle = ExportBundleV1Schema.parse(input);
|
|
166
|
-
return { capsuleVersion: 1, bundle, capsule: null };
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
export {
|
|
170
|
-
ExportManifestV1Schema,
|
|
171
|
-
ExportMemoryRecordV1Schema,
|
|
172
|
-
ExportBundleV1Schema,
|
|
173
|
-
CAPSULE_ID_PATTERN,
|
|
174
|
-
CapsuleRetrievalPolicySchema,
|
|
175
|
-
CapsuleIncludesSchema,
|
|
176
|
-
CapsuleParentSchema,
|
|
177
|
-
CapsuleBlockSchema,
|
|
178
|
-
ExportManifestV2Schema,
|
|
179
|
-
ExportBundleV2Schema,
|
|
180
|
-
parseExportManifest,
|
|
181
|
-
parseExportBundle
|
|
182
|
-
};
|
|
183
|
-
//# sourceMappingURL=chunk-OA3L7BFR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transfer/types.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const ExportManifestV1Schema = z.object({\n format: z.literal(\"openclaw-engram-export\"),\n schemaVersion: z.literal(1),\n createdAt: z.string(),\n pluginVersion: z.string(),\n includesTranscripts: z.boolean(),\n files: z.array(\n z.object({\n path: z.string(),\n sha256: z.string(),\n bytes: z.number().int().nonnegative(),\n }),\n ),\n});\n\nexport type ExportManifestV1 = z.infer<typeof ExportManifestV1Schema>;\n\nexport const ExportMemoryRecordV1Schema = z.object({\n path: z.string(),\n content: z.string(),\n});\n\nexport type ExportMemoryRecordV1 = z.infer<typeof ExportMemoryRecordV1Schema>;\n\nexport const ExportBundleV1Schema = z.object({\n manifest: ExportManifestV1Schema,\n records: z.array(ExportMemoryRecordV1Schema),\n});\n\nexport type ExportBundleV1 = z.infer<typeof ExportBundleV1Schema>;\n\n// ---------------------------------------------------------------------------\n// V2 capsule manifest (issue #676 PR 1/6)\n// ---------------------------------------------------------------------------\n//\n// The V2 manifest extends V1 with a `capsule` block describing a reusable,\n// shareable bundle of memory state (\"capsule\"). This PR introduces ONLY the\n// schema and a backward-compatible reader. Actual export/import pipelines and\n// CLI surfaces are deferred to subsequent PRs (2/6 through 6/6).\n\n/**\n * Allowed pattern for a user-chosen capsule id.\n *\n * - lowercase or uppercase alphanumerics and dashes\n * - must start and end with an alphanumeric (no leading/trailing dashes)\n * - no consecutive dashes\n * - 1..64 characters\n *\n * The constraints are intentionally narrow so capsule ids round-trip cleanly\n * through filesystem paths, URLs, and registry slugs without escaping.\n */\nexport const CAPSULE_ID_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9]|-(?!-))*[A-Za-z0-9]$|^[A-Za-z0-9]$/;\n\nconst CapsuleIdSchema = z\n .string()\n .min(1, \"capsule.id must not be empty\")\n .max(64, \"capsule.id must be 64 characters or fewer\")\n .regex(\n CAPSULE_ID_PATTERN,\n \"capsule.id must be alphanumeric with single dashes (no spaces, no leading/trailing dashes)\",\n );\n\n/**\n * Permissive semver-ish validator. We accept the common subset\n * `MAJOR.MINOR.PATCH` with optional pre-release / build suffixes. This is\n * intentionally looser than full semver 2.0 so capsule authors can use simple\n * versions like `1.0.0` or `0.1.0-rc.1` without pulling in a parser.\n */\nconst SemverLikeSchema = z\n .string()\n .min(1, \"capsule.version must not be empty\")\n .regex(\n /^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$/,\n \"capsule.version must be a semver-like string (e.g. 1.0.0)\",\n );\n\nexport const CapsuleRetrievalPolicySchema = z.object({\n /**\n * Per-tier weight overrides applied during recall when the capsule is the\n * active scope. Keys are tier names (e.g. `bm25`, `vector`, `graph`); values\n * are non-negative finite multipliers. The set of valid keys is left open\n * for now so future tiers do not break older manifests.\n */\n tierWeights: z.record(\n z.string().min(1),\n z.number().finite().nonnegative(),\n ),\n /**\n * Whether the direct-answer fast path is allowed when this capsule is\n * active. Operators may disable it for capsules whose contents should\n * always flow through the full retrieval pipeline.\n */\n directAnswerEnabled: z.boolean(),\n});\n\nexport type CapsuleRetrievalPolicy = z.infer<typeof CapsuleRetrievalPolicySchema>;\n\nexport const CapsuleIncludesSchema = z.object({\n taxonomy: z.boolean(),\n identityAnchors: z.boolean(),\n peerProfiles: z.boolean(),\n procedural: z.boolean(),\n});\n\nexport type CapsuleIncludes = z.infer<typeof CapsuleIncludesSchema>;\n\n/**\n * Structured linkage to the capsule that was forked to produce this one.\n *\n * - `capsuleId` — the `id` field from the parent capsule's manifest block.\n * - `version` — the `version` field from the parent capsule's manifest block\n * at the time the fork was taken.\n * - `forkRoot` — the posix-relative directory prefix under which the parent's\n * records were planted inside the fork's memory root, e.g.\n * `forks/parent-id`. Stored here so downstream tooling can\n * locate the imported parent tree without re-parsing paths.\n */\nexport const CapsuleParentSchema = z.object({\n capsuleId: CapsuleIdSchema,\n version: SemverLikeSchema,\n /**\n * Posix-relative path prefix under the fork's memory root where the parent\n * capsule's records were placed. Typically `forks/<parent-capsule-id>`.\n * Must be a non-empty string with no leading slash.\n */\n forkRoot: z\n .string()\n .min(1, \"capsule.parent.forkRoot must not be empty\")\n .refine((v) => !v.startsWith(\"/\"), {\n message: \"capsule.parent.forkRoot must be a relative path (no leading slash)\",\n }),\n});\n\nexport type CapsuleParent = z.infer<typeof CapsuleParentSchema>;\n\nexport const CapsuleBlockSchema = z.object({\n id: CapsuleIdSchema,\n version: SemverLikeSchema,\n /**\n * Taxonomy schema version the capsule was authored against. Free-form for\n * now; later PRs may tighten this to a known taxonomy registry.\n */\n schemaVersion: z.string().min(1, \"capsule.schemaVersion must not be empty\"),\n /**\n * Optional reference to the parent capsule this one was forked or derived\n * from. `null` (not `undefined`) is the explicit \"no parent\" sentinel so\n * that round-trips through JSON do not silently drop the field.\n *\n * @deprecated Prefer {@link parent} (structured). This field is preserved\n * for backward compatibility with V2 manifests written before PR 4/6.\n */\n parentCapsule: z.string().min(1).nullable(),\n /**\n * Structured fork-lineage pointer added in PR 4/6. When present, this\n * capsule is a fork of the described parent. `null` is the explicit\n * \"not a fork\" sentinel — round-trips through JSON cleanly without\n * silently dropping the field.\n *\n * Defaults to `null` so that V2 manifests written before PR 4/6 (which\n * omit this field) still parse without error. This preserves backward\n * compatibility with the existing `makeV2Manifest()` test fixtures and\n * any in-the-wild V2 archives produced by PR 2/6 and PR 3/6.\n *\n * Invariant: when `parent` is non-null, `parentCapsule` SHOULD equal\n * `parent.capsuleId` for backward compatibility with readers that only\n * understand the legacy field. `forkCapsule()` sets both.\n */\n parent: CapsuleParentSchema.nullable().default(null),\n description: z.string(),\n retrievalPolicy: CapsuleRetrievalPolicySchema,\n includes: CapsuleIncludesSchema,\n});\n\nexport type CapsuleBlock = z.infer<typeof CapsuleBlockSchema>;\n\nexport const ExportManifestV2Schema = z.object({\n format: z.literal(\"openclaw-engram-export\"),\n schemaVersion: z.literal(2),\n createdAt: z.string(),\n pluginVersion: z.string(),\n includesTranscripts: z.boolean(),\n files: z.array(\n z.object({\n path: z.string(),\n sha256: z.string(),\n bytes: z.number().int().nonnegative(),\n }),\n ),\n capsule: CapsuleBlockSchema,\n});\n\nexport type ExportManifestV2 = z.infer<typeof ExportManifestV2Schema>;\n\nexport const ExportBundleV2Schema = z.object({\n manifest: ExportManifestV2Schema,\n records: z.array(ExportMemoryRecordV1Schema),\n});\n\nexport type ExportBundleV2 = z.infer<typeof ExportBundleV2Schema>;\n\n// ---------------------------------------------------------------------------\n// Backward-compatible reader\n// ---------------------------------------------------------------------------\n\nexport type AnyExportManifest = ExportManifestV1 | ExportManifestV2;\nexport type AnyExportBundle = ExportBundleV1 | ExportBundleV2;\n\n/**\n * Normalized form returned by {@link parseExportManifest}. Callers that don't\n * care about the wire-format version can branch on `capsuleVersion` (1 or 2)\n * and trust that V1 manifests surface as `{ capsuleVersion: 1, capsule: null }`.\n */\nexport interface NormalizedExportManifest {\n capsuleVersion: 1 | 2;\n manifest: AnyExportManifest;\n capsule: CapsuleBlock | null;\n}\n\n/**\n * Parse an unknown manifest payload as either V1 or V2.\n *\n * Dispatch is driven by `schemaVersion` so we surface the most relevant\n * validation error per branch. If `schemaVersion` is missing or unknown we\n * fall back to V1 first (the historical wire format) and only report the V2\n * error if both branches fail.\n */\nexport function parseExportManifest(input: unknown): NormalizedExportManifest {\n const version =\n typeof input === \"object\" && input !== null\n ? (input as { schemaVersion?: unknown }).schemaVersion\n : undefined;\n\n if (version === 2) {\n const manifest = ExportManifestV2Schema.parse(input);\n return {\n capsuleVersion: 2,\n manifest,\n capsule: manifest.capsule,\n };\n }\n\n if (version === 1) {\n const manifest = ExportManifestV1Schema.parse(input);\n return { capsuleVersion: 1, manifest, capsule: null };\n }\n\n // Unknown / missing schemaVersion: try V1 then V2 so the reader stays\n // forgiving for hand-authored payloads but still produces a clear error.\n const v1 = ExportManifestV1Schema.safeParse(input);\n if (v1.success) {\n return { capsuleVersion: 1, manifest: v1.data, capsule: null };\n }\n const v2 = ExportManifestV2Schema.safeParse(input);\n if (v2.success) {\n return {\n capsuleVersion: 2,\n manifest: v2.data,\n capsule: v2.data.capsule,\n };\n }\n // Surface the V2 error since callers introducing capsules likely care most\n // about that branch's diagnostics.\n throw v2.error;\n}\n\n/**\n * Convenience: parse a full bundle (manifest + records) accepting either V1\n * or V2 manifests. Records currently share the V1 shape across both versions.\n */\nexport function parseExportBundle(input: unknown): {\n capsuleVersion: 1 | 2;\n bundle: AnyExportBundle;\n capsule: CapsuleBlock | null;\n} {\n if (typeof input !== \"object\" || input === null) {\n // Defer to V1 schema so the user sees a familiar zod error.\n ExportBundleV1Schema.parse(input);\n throw new Error(\"unreachable\");\n }\n const manifestRaw = (input as { manifest?: unknown }).manifest;\n const normalized = parseExportManifest(manifestRaw);\n if (normalized.capsuleVersion === 2) {\n const bundle = ExportBundleV2Schema.parse(input);\n return { capsuleVersion: 2, bundle, capsule: bundle.manifest.capsule };\n }\n const bundle = ExportBundleV1Schema.parse(input);\n return { capsuleVersion: 1, bundle, capsule: null };\n}\n"],"mappings":"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","names":["bundle"]}
|
package/dist/chunk-OR64ZGRZ.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// src/runtime/child-process.ts
|
|
2
|
-
import { createRequire } from "module";
|
|
3
|
-
var require2 = createRequire(import.meta.url);
|
|
4
|
-
var PROCESS_MODULE_NAME = `node:${"child"}_${"process"}`;
|
|
5
|
-
function loadModule() {
|
|
6
|
-
return require2(PROCESS_MODULE_NAME);
|
|
7
|
-
}
|
|
8
|
-
function launchProcess(command, args, options) {
|
|
9
|
-
const moduleApi = loadModule();
|
|
10
|
-
const launch = moduleApi["spawn"];
|
|
11
|
-
return launch(command, args, options);
|
|
12
|
-
}
|
|
13
|
-
function launchProcessSync(command, args, options) {
|
|
14
|
-
const moduleApi = loadModule();
|
|
15
|
-
const launchSync = moduleApi["spawnSync"];
|
|
16
|
-
return launchSync(command, args, options);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export {
|
|
20
|
-
launchProcess,
|
|
21
|
-
launchProcessSync
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=chunk-OR64ZGRZ.js.map
|
package/dist/chunk-P73JTV34.js
DELETED
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
listFilesRecursive,
|
|
3
|
-
sha256File,
|
|
4
|
-
toPosixRelPath,
|
|
5
|
-
writeJsonFile
|
|
6
|
-
} from "./chunk-457A4P3L.js";
|
|
7
|
-
import {
|
|
8
|
-
CAPSULE_ID_PATTERN,
|
|
9
|
-
CapsuleBlockSchema,
|
|
10
|
-
ExportBundleV2Schema,
|
|
11
|
-
ExportManifestV2Schema
|
|
12
|
-
} from "./chunk-OA3L7BFR.js";
|
|
13
|
-
import {
|
|
14
|
-
encryptCapsuleFile
|
|
15
|
-
} from "./chunk-767ODGE6.js";
|
|
16
|
-
|
|
17
|
-
// src/transfer/capsule-export.ts
|
|
18
|
-
import { mkdir, readFile, stat, writeFile } from "fs/promises";
|
|
19
|
-
import path from "path";
|
|
20
|
-
import { gzipSync } from "zlib";
|
|
21
|
-
|
|
22
|
-
// src/transfer/constants.ts
|
|
23
|
-
var EXPORT_FORMAT = "openclaw-engram-export";
|
|
24
|
-
var EXPORT_SCHEMA_VERSION = 1;
|
|
25
|
-
var CAPSULE_SCHEMA_VERSION = 2;
|
|
26
|
-
|
|
27
|
-
// src/transfer/capsule-export.ts
|
|
28
|
-
var DEFAULT_EXCLUDE_DIRS = /* @__PURE__ */ new Set([
|
|
29
|
-
"node_modules",
|
|
30
|
-
".git",
|
|
31
|
-
// Never export the secure-store directory: it contains the encryption
|
|
32
|
-
// header (KDF params + verifier) which is security-sensitive and
|
|
33
|
-
// machine-specific. The passphrase is not stored here, but including
|
|
34
|
-
// the header in a capsule would let an attacker brute-force the
|
|
35
|
-
// passphrase offline if the capsule is intercepted.
|
|
36
|
-
".secure-store",
|
|
37
|
-
// Exclude .capsules to avoid recursive self-inclusion.
|
|
38
|
-
".capsules"
|
|
39
|
-
]);
|
|
40
|
-
var TRANSCRIPTS_DIR = "transcripts";
|
|
41
|
-
var PEERS_DIR = "peers";
|
|
42
|
-
async function exportCapsule(opts) {
|
|
43
|
-
validateName(opts.name);
|
|
44
|
-
const sinceMs = parseSince(opts.since);
|
|
45
|
-
const includeKinds = normalizeIncludeKinds(opts.includeKinds);
|
|
46
|
-
const peerFilter = normalizePeerIds(opts.peerIds);
|
|
47
|
-
const transcriptsOverride = opts.includeTranscripts === true;
|
|
48
|
-
const rootAbs = path.resolve(opts.root);
|
|
49
|
-
await assertIsDirectory(rootAbs);
|
|
50
|
-
const outDirAbs = path.resolve(opts.outDir ?? path.join(rootAbs, ".capsules"));
|
|
51
|
-
if (outDirAbs === rootAbs) {
|
|
52
|
-
throw new Error(
|
|
53
|
-
"exportCapsule: 'outDir' must not equal 'root'. Choose a separate directory (default: <root>/.capsules) so the export does not overwrite or shadow the source tree."
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
await mkdir(outDirAbs, { recursive: true });
|
|
57
|
-
const outDirRelPosix = computeOutDirRel(rootAbs, outDirAbs);
|
|
58
|
-
const filesAbs = await listFilesRecursive(rootAbs);
|
|
59
|
-
const records = [];
|
|
60
|
-
const manifestFiles = [];
|
|
61
|
-
for (const abs of filesAbs) {
|
|
62
|
-
const relPosix = toPosixRelPath(abs, rootAbs);
|
|
63
|
-
if (!shouldInclude(relPosix, includeKinds, peerFilter, outDirRelPosix, transcriptsOverride)) continue;
|
|
64
|
-
if (sinceMs !== null) {
|
|
65
|
-
const st = await stat(abs);
|
|
66
|
-
if (st.mtimeMs < sinceMs) continue;
|
|
67
|
-
}
|
|
68
|
-
const content = await readFile(abs, "utf-8");
|
|
69
|
-
records.push({ path: relPosix, content });
|
|
70
|
-
const { sha256, bytes } = await sha256File(abs);
|
|
71
|
-
manifestFiles.push({ path: relPosix, sha256, bytes });
|
|
72
|
-
}
|
|
73
|
-
records.sort((a, b) => a.path.localeCompare(b.path));
|
|
74
|
-
manifestFiles.sort((a, b) => a.path.localeCompare(b.path));
|
|
75
|
-
const capsule = buildCapsuleBlock(opts.name, opts.capsule);
|
|
76
|
-
const includesTranscripts = transcriptsOverride || (includeKinds ?? /* @__PURE__ */ new Set()).has(TRANSCRIPTS_DIR);
|
|
77
|
-
const createdAtMs = opts.now ?? Date.now();
|
|
78
|
-
const manifest = ExportManifestV2Schema.parse({
|
|
79
|
-
format: EXPORT_FORMAT,
|
|
80
|
-
schemaVersion: CAPSULE_SCHEMA_VERSION,
|
|
81
|
-
createdAt: new Date(createdAtMs).toISOString(),
|
|
82
|
-
pluginVersion: opts.pluginVersion ?? "0.0.0",
|
|
83
|
-
includesTranscripts,
|
|
84
|
-
files: manifestFiles,
|
|
85
|
-
capsule
|
|
86
|
-
});
|
|
87
|
-
const bundle = ExportBundleV2Schema.parse({
|
|
88
|
-
manifest,
|
|
89
|
-
records
|
|
90
|
-
});
|
|
91
|
-
const archivePath = path.join(outDirAbs, `${opts.name}.capsule.json.gz`);
|
|
92
|
-
const manifestPath = path.join(outDirAbs, `${opts.name}.manifest.json`);
|
|
93
|
-
await writeJsonFile(manifestPath, manifest);
|
|
94
|
-
const json = JSON.stringify(bundle);
|
|
95
|
-
const gz = gzipSync(Buffer.from(json, "utf-8"));
|
|
96
|
-
await writeFile(archivePath, gz);
|
|
97
|
-
if (opts.encrypt === true) {
|
|
98
|
-
if (!opts.memoryDir) {
|
|
99
|
-
throw new Error(
|
|
100
|
-
"exportCapsule: 'memoryDir' is required when 'encrypt' is true so the secure-store key can be retrieved."
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
const { encPath } = await encryptCapsuleFile({
|
|
104
|
-
sourceGzPath: archivePath,
|
|
105
|
-
memoryDir: opts.memoryDir
|
|
106
|
-
});
|
|
107
|
-
const { unlink } = await import("fs/promises");
|
|
108
|
-
await unlink(archivePath);
|
|
109
|
-
return { archivePath: encPath, manifestPath, manifest, encryptedArchivePath: encPath };
|
|
110
|
-
}
|
|
111
|
-
return { archivePath, manifestPath, manifest, encryptedArchivePath: null };
|
|
112
|
-
}
|
|
113
|
-
function validateName(name) {
|
|
114
|
-
if (typeof name !== "string" || !CAPSULE_ID_PATTERN.test(name)) {
|
|
115
|
-
throw new Error(
|
|
116
|
-
`exportCapsule: invalid capsule name. Expected /${CAPSULE_ID_PATTERN.source}/`
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
if (name.length > 64) {
|
|
120
|
-
throw new Error(
|
|
121
|
-
"exportCapsule: invalid capsule name. Must be 64 characters or fewer."
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
var ISO_8601_RE = /^\d{4}-\d{2}-\d{2}(?:[Tt]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:[Zz]|[+-]\d{2}:?\d{2}))?$/;
|
|
126
|
-
function parseSince(since) {
|
|
127
|
-
if (since === void 0) return null;
|
|
128
|
-
if (typeof since !== "string" || since.trim() === "") {
|
|
129
|
-
throw new Error("exportCapsule: 'since' must be a non-empty ISO-8601 string");
|
|
130
|
-
}
|
|
131
|
-
if (!ISO_8601_RE.test(since)) {
|
|
132
|
-
throw new Error(
|
|
133
|
-
`exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
const ms = Date.parse(since);
|
|
137
|
-
if (!Number.isFinite(ms)) {
|
|
138
|
-
throw new Error(
|
|
139
|
-
`exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
assertCalendarRoundTrip(since, ms);
|
|
143
|
-
return ms;
|
|
144
|
-
}
|
|
145
|
-
function isValidCapsuleSince(since) {
|
|
146
|
-
try {
|
|
147
|
-
parseSince(since);
|
|
148
|
-
return true;
|
|
149
|
-
} catch {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
function assertCalendarRoundTrip(since, ms) {
|
|
154
|
-
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(since);
|
|
155
|
-
if (!m) return;
|
|
156
|
-
const wantY = Number(m[1]);
|
|
157
|
-
const wantMo = Number(m[2]);
|
|
158
|
-
const wantD = Number(m[3]);
|
|
159
|
-
const offsetMatch = /([+-])(\d{2}):?(\d{2})$/.exec(since);
|
|
160
|
-
let displayMs = ms;
|
|
161
|
-
if (offsetMatch) {
|
|
162
|
-
const sign = offsetMatch[1] === "-" ? -1 : 1;
|
|
163
|
-
const offsetMin = sign * (Number(offsetMatch[2]) * 60 + Number(offsetMatch[3]));
|
|
164
|
-
displayMs = ms + offsetMin * 6e4;
|
|
165
|
-
}
|
|
166
|
-
const dd = new Date(displayMs);
|
|
167
|
-
const gotY = dd.getUTCFullYear();
|
|
168
|
-
const gotMo = dd.getUTCMonth() + 1;
|
|
169
|
-
const gotD = dd.getUTCDate();
|
|
170
|
-
if (gotY !== wantY || gotMo !== wantMo || gotD !== wantD) {
|
|
171
|
-
throw new Error(
|
|
172
|
-
`exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
function normalizeIncludeKinds(kinds) {
|
|
177
|
-
if (kinds === void 0) return null;
|
|
178
|
-
const set = /* @__PURE__ */ new Set();
|
|
179
|
-
for (const raw of kinds) {
|
|
180
|
-
if (typeof raw !== "string" || raw.trim() === "") {
|
|
181
|
-
throw new Error("exportCapsule: 'includeKinds' entries must be non-empty strings");
|
|
182
|
-
}
|
|
183
|
-
if (raw.includes("/") || raw.includes("\\")) {
|
|
184
|
-
throw new Error(
|
|
185
|
-
`exportCapsule: 'includeKinds' entries must be top-level segment names, got: ${raw}`
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
set.add(raw);
|
|
189
|
-
}
|
|
190
|
-
return set;
|
|
191
|
-
}
|
|
192
|
-
function normalizePeerIds(peerIds) {
|
|
193
|
-
if (peerIds === void 0) return null;
|
|
194
|
-
const set = /* @__PURE__ */ new Set();
|
|
195
|
-
for (const raw of peerIds) {
|
|
196
|
-
if (typeof raw !== "string" || raw.trim() === "") {
|
|
197
|
-
throw new Error("exportCapsule: 'peerIds' entries must be non-empty strings");
|
|
198
|
-
}
|
|
199
|
-
if (raw.includes("/") || raw.includes("\\") || raw === "." || raw === "..") {
|
|
200
|
-
throw new Error(
|
|
201
|
-
`exportCapsule: 'peerIds' entries must be plain segment names, got: ${raw}`
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
set.add(raw);
|
|
205
|
-
}
|
|
206
|
-
return set;
|
|
207
|
-
}
|
|
208
|
-
function computeOutDirRel(rootAbs, outDirAbs) {
|
|
209
|
-
const rel = path.relative(rootAbs, outDirAbs);
|
|
210
|
-
if (rel === "") return null;
|
|
211
|
-
if (rel === ".." || rel.startsWith(`..${path.sep}`)) return null;
|
|
212
|
-
if (path.isAbsolute(rel)) return null;
|
|
213
|
-
return rel.split(path.sep).join("/");
|
|
214
|
-
}
|
|
215
|
-
async function assertIsDirectory(absPath) {
|
|
216
|
-
const st = await stat(absPath).catch(() => null);
|
|
217
|
-
if (!st || !st.isDirectory()) {
|
|
218
|
-
throw new Error(
|
|
219
|
-
`exportCapsule: 'root' must be an existing directory: ${absPath}`
|
|
220
|
-
);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
function shouldInclude(relPosix, includeKinds, peerFilter, outDirRelPosix, transcriptsOverride = false) {
|
|
224
|
-
const parts = relPosix.split("/");
|
|
225
|
-
if (parts.some((p) => DEFAULT_EXCLUDE_DIRS.has(p))) return false;
|
|
226
|
-
if (outDirRelPosix !== null) {
|
|
227
|
-
if (relPosix === outDirRelPosix) return false;
|
|
228
|
-
if (relPosix.startsWith(`${outDirRelPosix}/`)) return false;
|
|
229
|
-
}
|
|
230
|
-
const top = parts[0];
|
|
231
|
-
if (top === TRANSCRIPTS_DIR && !transcriptsOverride && (includeKinds === null || !includeKinds.has(TRANSCRIPTS_DIR))) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
if (includeKinds !== null) {
|
|
235
|
-
if (parts.length < 2) return false;
|
|
236
|
-
if (!includeKinds.has(top)) return false;
|
|
237
|
-
}
|
|
238
|
-
if (top === PEERS_DIR && peerFilter !== null) {
|
|
239
|
-
if (peerFilter.size === 0) return false;
|
|
240
|
-
if (parts.length < 2) return false;
|
|
241
|
-
if (!peerFilter.has(parts[1])) return false;
|
|
242
|
-
}
|
|
243
|
-
return true;
|
|
244
|
-
}
|
|
245
|
-
function buildCapsuleBlock(name, override) {
|
|
246
|
-
const parent = override?.parent ?? null;
|
|
247
|
-
const parentCapsule = override && Object.prototype.hasOwnProperty.call(override, "parentCapsule") ? override.parentCapsule ?? null : parent?.capsuleId ?? null;
|
|
248
|
-
const merged = {
|
|
249
|
-
id: name,
|
|
250
|
-
version: override?.version ?? "0.1.0",
|
|
251
|
-
schemaVersion: override?.schemaVersion ?? "taxonomy-v1",
|
|
252
|
-
parentCapsule,
|
|
253
|
-
parent,
|
|
254
|
-
description: override?.description ?? "",
|
|
255
|
-
retrievalPolicy: override?.retrievalPolicy ?? {
|
|
256
|
-
tierWeights: {},
|
|
257
|
-
directAnswerEnabled: false
|
|
258
|
-
},
|
|
259
|
-
includes: override?.includes ?? {
|
|
260
|
-
taxonomy: false,
|
|
261
|
-
identityAnchors: false,
|
|
262
|
-
peerProfiles: false,
|
|
263
|
-
procedural: false
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
return CapsuleBlockSchema.parse(merged);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
export {
|
|
270
|
-
EXPORT_FORMAT,
|
|
271
|
-
EXPORT_SCHEMA_VERSION,
|
|
272
|
-
exportCapsule,
|
|
273
|
-
isValidCapsuleSince
|
|
274
|
-
};
|
|
275
|
-
//# sourceMappingURL=chunk-P73JTV34.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transfer/capsule-export.ts","../src/transfer/constants.ts"],"sourcesContent":["import { mkdir, readFile, stat, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { gzipSync } from \"node:zlib\";\nimport { CAPSULE_SCHEMA_VERSION, EXPORT_FORMAT } from \"./constants.js\";\nimport {\n listFilesRecursive,\n sha256File,\n toPosixRelPath,\n writeJsonFile,\n} from \"./fs-utils.js\";\nimport {\n CAPSULE_ID_PATTERN,\n CapsuleBlockSchema,\n ExportBundleV2Schema,\n ExportManifestV2Schema,\n type CapsuleBlock,\n type ExportBundleV2,\n type ExportManifestV2,\n type ExportMemoryRecordV1,\n} from \"./types.js\";\nimport { encryptCapsuleFile } from \"./capsule-crypto.js\";\n\n/**\n * Default subdirectory excludes applied to every capsule export. These match\n * the existing `export-json` / `export-md` exclusions plus the `transcripts`\n * directory, which is excluded by default and only included when the caller\n * explicitly passes `transcripts` in {@link ExportCapsuleOptions.includeKinds}.\n */\nconst DEFAULT_EXCLUDE_DIRS: ReadonlySet<string> = new Set([\n \"node_modules\",\n \".git\",\n // Never export the secure-store directory: it contains the encryption\n // header (KDF params + verifier) which is security-sensitive and\n // machine-specific. The passphrase is not stored here, but including\n // the header in a capsule would let an attacker brute-force the\n // passphrase offline if the capsule is intercepted.\n \".secure-store\",\n // Exclude .capsules to avoid recursive self-inclusion.\n \".capsules\",\n]);\n\nconst TRANSCRIPTS_DIR = \"transcripts\" as const;\n\n/**\n * Top-level directory under {@link ExportCapsuleOptions.root} that holds\n * per-peer profile bundles. When {@link ExportCapsuleOptions.peerIds} is\n * provided, only files under `peers/<peerId>/...` for the listed ids are\n * included; the rest of the `peers/` tree is excluded.\n */\nconst PEERS_DIR = \"peers\" as const;\n\n/**\n * Options accepted by {@link exportCapsule}.\n *\n * `name` — capsule id, validated against {@link CAPSULE_ID_PATTERN}. The id\n * also forms the manifest's `capsule.id` and the archive filename.\n *\n * `root` — absolute or cwd-relative path to the memory directory to export.\n *\n * `since` — optional ISO-8601 timestamp; only files with `mtime >= since`\n * are included.\n *\n * `includeKinds` — optional allow-list of top-level subdirectory names\n * (e.g. `facts`, `entities`, `corrections`, `transcripts`). When set, files\n * directly under {@link root} are excluded and only files whose first path\n * segment is in the allow-list are kept. Pass `transcripts` here explicitly\n * to opt-in transcripts (they are excluded by default).\n *\n * `peerIds` — optional allow-list restricting the `peers/` tree to files\n * under `peers/<peerId>/...`. When omitted the entire `peers/` tree is\n * included (subject to {@link includeKinds}). When set to an empty array\n * the `peers/` tree is excluded entirely.\n *\n * `outDir` — optional output directory. Defaults to `<root>/.capsules`.\n *\n * `pluginVersion` — recorded in the manifest. Defaults to `\"0.0.0\"` so\n * tests do not need to thread a version through; production callers SHOULD\n * pass the running plugin version.\n *\n * `capsule` — optional overrides for the manifest's `capsule` block. The\n * caller may pass any subset; remaining fields are filled with conservative\n * defaults documented inline below.\n *\n * `now` — optional clock override (ms epoch) used for `manifest.createdAt`.\n * Tests pass a fixed value for deterministic output.\n *\n * `encrypt` — when `true`, encrypt the output archive using the secure-store\n * master key for `memoryDir`. The keyring must be unlocked before calling\n * (`remnic secure-store unlock`). The plaintext `.capsule.json.gz` is written\n * first, then encrypted to `<name>.capsule.json.gz.enc`; the plaintext is\n * removed after successful encryption. Requires `memoryDir` to be provided.\n *\n * `memoryDir` — required when `encrypt` is `true`. The memory directory whose\n * secure-store keyring holds the master key.\n */\nexport interface ExportCapsuleOptions {\n name: string;\n root: string;\n since?: string;\n includeKinds?: readonly string[];\n peerIds?: readonly string[];\n outDir?: string;\n pluginVersion?: string;\n capsule?: Partial<Omit<CapsuleBlock, \"id\">>;\n now?: number;\n /**\n * When `true`, encrypt the output archive. Requires the secure-store to be\n * unlocked and `memoryDir` to be set. The plaintext `.capsule.json.gz` is\n * replaced by `<name>.capsule.json.gz.enc` on success.\n */\n encrypt?: boolean;\n /**\n * Memory directory whose secure-store keyring holds the master key. Required\n * when `encrypt` is `true`; ignored otherwise.\n */\n memoryDir?: string;\n /**\n * When `true`, include the `transcripts/` directory in the export even\n * though it is excluded by default. Using this flag avoids hard-coding an\n * explicit `includeKinds` allow-list that would inadvertently drop other\n * valid memory directories (`peers/`, `forks/`, etc.). (Cursor / #747)\n *\n * Ignored when `includeKinds` is provided and already contains\n * `\"transcripts\"`.\n */\n includeTranscripts?: boolean;\n}\n\nexport interface ExportCapsuleResult {\n archivePath: string;\n manifestPath: string;\n manifest: ExportManifestV2;\n /** When the export was encrypted, the `.enc` path. `null` when unencrypted. */\n encryptedArchivePath: string | null;\n}\n\n/**\n * Pure function that exports a memory directory as a portable, capsule-aware\n * V2 bundle.\n *\n * The output is a single `.capsule.json.gz` archive containing the entire\n * `ExportBundleV2` (manifest + records) plus a sidecar `manifest.json` for\n * cheap inspection. The bundle format is intentionally identical to the\n * existing `export-json` shape so PR 3/6's importer can reuse the V1 code\n * path with only a manifest version-dispatch.\n *\n * Determinism guarantees:\n * - `manifest.files` and `bundle.records` are sorted by posix path.\n * - `manifest.createdAt` is taken from {@link ExportCapsuleOptions.now}\n * when provided.\n * - The archive is gzip-compressed with default settings; no timestamp is\n * embedded (Node's `gzipSync` does not write a header timestamp when\n * using the synchronous helper, so byte-identical outputs are possible\n * given identical inputs).\n *\n * Empty result handling: a capsule with zero matching files is still a\n * valid capsule and produces a well-formed manifest with an empty `files`\n * array and an archive containing the empty bundle.\n */\nexport async function exportCapsule(\n opts: ExportCapsuleOptions,\n): Promise<ExportCapsuleResult> {\n validateName(opts.name);\n const sinceMs = parseSince(opts.since);\n const includeKinds = normalizeIncludeKinds(opts.includeKinds);\n const peerFilter = normalizePeerIds(opts.peerIds);\n // `includeTranscripts: true` overrides the default transcripts exclusion\n // without requiring an explicit `includeKinds` list — so callers that want\n // all memory dirs + transcripts don't need to hard-code a list that would\n // inadvertently drop new dirs like `peers/` or `forks/`. (Cursor / #747)\n const transcriptsOverride = opts.includeTranscripts === true;\n\n const rootAbs = path.resolve(opts.root);\n await assertIsDirectory(rootAbs);\n\n const outDirAbs = path.resolve(opts.outDir ?? path.join(rootAbs, \".capsules\"));\n // Reject outDir === root: the input scan would otherwise be entirely\n // skipped by `shouldInclude` (outDirRelPosix === \".\") and the export would\n // silently succeed with an empty manifest/archive — a Rule 51 violation\n // and a data-loss footgun for callers that point outDir at the root.\n if (outDirAbs === rootAbs) {\n throw new Error(\n \"exportCapsule: 'outDir' must not equal 'root'. \" +\n \"Choose a separate directory (default: <root>/.capsules) so the \" +\n \"export does not overwrite or shadow the source tree.\",\n );\n }\n await mkdir(outDirAbs, { recursive: true });\n\n // If the output directory lives inside the export root, scan results would\n // re-import previous capsule archives on subsequent runs. Compute the\n // posix-relative path of the outDir under rootAbs (or `null` when it sits\n // outside) so {@link shouldInclude} can skip the entire subtree.\n const outDirRelPosix = computeOutDirRel(rootAbs, outDirAbs);\n\n const filesAbs = await listFilesRecursive(rootAbs);\n\n const records: ExportMemoryRecordV1[] = [];\n const manifestFiles: ExportManifestV2[\"files\"] = [];\n\n for (const abs of filesAbs) {\n const relPosix = toPosixRelPath(abs, rootAbs);\n if (!shouldInclude(relPosix, includeKinds, peerFilter, outDirRelPosix, transcriptsOverride)) continue;\n\n if (sinceMs !== null) {\n const st = await stat(abs);\n if (st.mtimeMs < sinceMs) continue;\n }\n\n const content = await readFile(abs, \"utf-8\");\n records.push({ path: relPosix, content });\n const { sha256, bytes } = await sha256File(abs);\n manifestFiles.push({ path: relPosix, sha256, bytes });\n }\n\n records.sort((a, b) => a.path.localeCompare(b.path));\n manifestFiles.sort((a, b) => a.path.localeCompare(b.path));\n\n const capsule = buildCapsuleBlock(opts.name, opts.capsule);\n const includesTranscripts =\n transcriptsOverride || (includeKinds ?? new Set<string>()).has(TRANSCRIPTS_DIR);\n\n const createdAtMs = opts.now ?? Date.now();\n const manifest = ExportManifestV2Schema.parse({\n format: EXPORT_FORMAT,\n schemaVersion: CAPSULE_SCHEMA_VERSION,\n createdAt: new Date(createdAtMs).toISOString(),\n pluginVersion: opts.pluginVersion ?? \"0.0.0\",\n includesTranscripts,\n files: manifestFiles,\n capsule,\n } satisfies ExportManifestV2);\n\n const bundle: ExportBundleV2 = ExportBundleV2Schema.parse({\n manifest,\n records,\n });\n\n const archivePath = path.join(outDirAbs, `${opts.name}.capsule.json.gz`);\n const manifestPath = path.join(outDirAbs, `${opts.name}.manifest.json`);\n\n // Sidecar manifest for cheap inspection without decompressing the archive.\n await writeJsonFile(manifestPath, manifest);\n\n // Single-artifact gzip archive containing the whole bundle. JSON encoded\n // before gzip so the archive is opaque to file-tree filtering. Using the\n // sync helper keeps the function pure async (no filesystem callback chain)\n // and matches the existing transfer modules' style.\n const json = JSON.stringify(bundle);\n const gz = gzipSync(Buffer.from(json, \"utf-8\"));\n await writeFile(archivePath, gz);\n\n // Optional encryption (PR 4/4). When opts.encrypt is true, wrap the\n // plaintext gzip in a REMNIC-ENC sealed envelope and remove the plaintext.\n // Per gotcha #54: write the encrypted file before removing the plaintext so\n // a crash mid-encrypt does not destroy the only copy.\n if (opts.encrypt === true) {\n if (!opts.memoryDir) {\n throw new Error(\n \"exportCapsule: 'memoryDir' is required when 'encrypt' is true so the \" +\n \"secure-store key can be retrieved.\",\n );\n }\n const { encPath } = await encryptCapsuleFile({\n sourceGzPath: archivePath,\n memoryDir: opts.memoryDir,\n });\n // Remove the plaintext only after the encrypted file was written successfully.\n const { unlink } = await import(\"node:fs/promises\");\n await unlink(archivePath);\n return { archivePath: encPath, manifestPath, manifest, encryptedArchivePath: encPath };\n }\n\n return { archivePath, manifestPath, manifest, encryptedArchivePath: null };\n}\n\n// ---------------------------------------------------------------------------\n// Validation helpers\n// ---------------------------------------------------------------------------\n\nfunction validateName(name: unknown): void {\n if (typeof name !== \"string\" || !CAPSULE_ID_PATTERN.test(name)) {\n throw new Error(\n `exportCapsule: invalid capsule name. Expected /${CAPSULE_ID_PATTERN.source}/`,\n );\n }\n if (name.length > 64) {\n throw new Error(\n \"exportCapsule: invalid capsule name. Must be 64 characters or fewer.\",\n );\n }\n}\n\n/**\n * Strict ISO-8601 form accepted by {@link parseSince}. We accept exactly two\n * shapes:\n *\n * 1. Date-only: `YYYY-MM-DD` — interpreted as UTC midnight per ECMAScript.\n * 2. Date+time with an explicit timezone designator:\n * `YYYY-MM-DDTHH:MM(:SS(.fff)?)?(Z|±HH:MM)`.\n *\n * Notably **rejected**: date+time **without** a timezone (e.g.\n * `2026-02-28T00:00:00`). ECMAScript treats this as local time, which makes\n * acceptance and the resulting cutoff depend on the host's `TZ` and silently\n * shifts incremental-export windows for users outside UTC. Rule 51: reject\n * inputs that silently coerce to a host-dependent meaning.\n */\nconst ISO_8601_RE =\n /^\\d{4}-\\d{2}-\\d{2}(?:[Tt]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,9})?)?(?:[Zz]|[+-]\\d{2}:?\\d{2}))?$/;\n\nfunction parseSince(since: string | undefined): number | null {\n if (since === undefined) return null;\n if (typeof since !== \"string\" || since.trim() === \"\") {\n throw new Error(\"exportCapsule: 'since' must be a non-empty ISO-8601 string\");\n }\n if (!ISO_8601_RE.test(since)) {\n throw new Error(\n `exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`,\n );\n }\n const ms = Date.parse(since);\n if (!Number.isFinite(ms)) {\n throw new Error(\n `exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`,\n );\n }\n // Reject calendar overflow: `Date.parse(\"2026-02-31\")` returns a finite ms\n // for March 3 because the JS Date constructor silently normalizes invalid\n // calendar values. Round-trip through `Date` and compare the year/month/day\n // components against the input prefix to catch this. Rule 51: silent\n // coercion of an exact time boundary is a Rule 51 violation that breaks\n // incremental exports.\n assertCalendarRoundTrip(since, ms);\n return ms;\n}\n\nexport function isValidCapsuleSince(since: string): boolean {\n try {\n parseSince(since);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Verify that parsing {@link since} did not silently normalize an invalid\n * calendar date (e.g. `2026-02-31` → `2026-03-03`). We extract the\n * year/month/day from the input string (regex-validated above) and compare\n * against the parsed Date's UTC components. Both date-only forms and forms\n * with an explicit Z/offset are normalized to UTC by `Date.parse`; for the\n * non-Z case where the offset shifts the calendar day across midnight, we\n * re-derive the input's intended UTC instant by accounting for the offset\n * before the comparison.\n */\nfunction assertCalendarRoundTrip(since: string, ms: number): void {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(since);\n if (!m) return;\n const wantY = Number(m[1]);\n const wantMo = Number(m[2]);\n const wantD = Number(m[3]);\n\n // For inputs with an explicit non-zero offset, compare against the\n // wall-clock components of that offset instead of UTC. Date.parse maps to\n // UTC, so 2026-02-31T00:00:00-05:00 and 2026-02-31T00:00:00Z both fail the\n // calendar check; the wall-clock comparison via `m[1..3]` is still the\n // right reference because the input's stated calendar day must exist.\n const offsetMatch = /([+-])(\\d{2}):?(\\d{2})$/.exec(since);\n let displayMs = ms;\n if (offsetMatch) {\n const sign = offsetMatch[1] === \"-\" ? -1 : 1;\n const offsetMin = sign * (Number(offsetMatch[2]) * 60 + Number(offsetMatch[3]));\n displayMs = ms + offsetMin * 60_000;\n }\n const dd = new Date(displayMs);\n const gotY = dd.getUTCFullYear();\n const gotMo = dd.getUTCMonth() + 1;\n const gotD = dd.getUTCDate();\n if (gotY !== wantY || gotMo !== wantMo || gotD !== wantD) {\n throw new Error(\n `exportCapsule: 'since' is not a valid ISO-8601 timestamp: ${since}`,\n );\n }\n}\n\nfunction normalizeIncludeKinds(\n kinds: readonly string[] | undefined,\n): ReadonlySet<string> | null {\n if (kinds === undefined) return null;\n // Empty array is treated as \"include nothing\" rather than \"include all\"\n // so callers cannot accidentally widen the filter by passing []. This\n // mirrors PR-1/6 Rule 51: reject ambiguous input — but here we model it\n // as \"explicit empty allow-list\" rather than throwing, because empty\n // capsules ARE valid (see acceptance criteria).\n const set = new Set<string>();\n for (const raw of kinds) {\n if (typeof raw !== \"string\" || raw.trim() === \"\") {\n throw new Error(\"exportCapsule: 'includeKinds' entries must be non-empty strings\");\n }\n if (raw.includes(\"/\") || raw.includes(\"\\\\\")) {\n throw new Error(\n `exportCapsule: 'includeKinds' entries must be top-level segment names, got: ${raw}`,\n );\n }\n set.add(raw);\n }\n return set;\n}\n\nfunction normalizePeerIds(\n peerIds: readonly string[] | undefined,\n): ReadonlySet<string> | null {\n if (peerIds === undefined) return null;\n const set = new Set<string>();\n for (const raw of peerIds) {\n if (typeof raw !== \"string\" || raw.trim() === \"\") {\n throw new Error(\"exportCapsule: 'peerIds' entries must be non-empty strings\");\n }\n if (raw.includes(\"/\") || raw.includes(\"\\\\\") || raw === \".\" || raw === \"..\") {\n throw new Error(\n `exportCapsule: 'peerIds' entries must be plain segment names, got: ${raw}`,\n );\n }\n set.add(raw);\n }\n return set;\n}\n\n/**\n * Return the posix-relative path of {@link outDirAbs} under {@link rootAbs},\n * or `null` if the output directory sits outside the export root. Used to\n * exclude the output directory's subtree from the input scan so re-running\n * the export does not package prior archives back into the new bundle.\n *\n * Both inputs are expected to be absolute paths already (post-`path.resolve`).\n */\nfunction computeOutDirRel(rootAbs: string, outDirAbs: string): string | null {\n const rel = path.relative(rootAbs, outDirAbs);\n // outDir == root: degenerate. {@link exportCapsule} rejects this case\n // before calling us; this branch is defensive only. Returning `\".\"` would\n // make `shouldInclude` drop every file, masking the misuse — return `null`\n // instead so any direct caller that bypasses the check still produces a\n // populated manifest rather than a silent empty export.\n if (rel === \"\") return null;\n // outDir outside root: nothing to exclude. Match real parent-traversal\n // segments only — `rel.startsWith(\"..\")` would also match valid in-tree\n // names like `..capsules` and would skip excluding that subtree. The\n // boundary check (`rel === \"..\"` or `rel` starts with `\"..\" + sep`) is\n // platform-aware via `path.sep` so Windows backslashes are respected.\n if (rel === \"..\" || rel.startsWith(`..${path.sep}`)) return null;\n if (path.isAbsolute(rel)) return null;\n return rel.split(path.sep).join(\"/\");\n}\n\nasync function assertIsDirectory(absPath: string): Promise<void> {\n // Mirror gotcha #24: existsSync returns true for files. The export root\n // MUST be a directory or the walk silently succeeds with zero entries.\n const st = await stat(absPath).catch(() => null);\n if (!st || !st.isDirectory()) {\n throw new Error(\n `exportCapsule: 'root' must be an existing directory: ${absPath}`,\n );\n }\n}\n\nfunction shouldInclude(\n relPosix: string,\n includeKinds: ReadonlySet<string> | null,\n peerFilter: ReadonlySet<string> | null,\n outDirRelPosix: string | null,\n transcriptsOverride = false,\n): boolean {\n const parts = relPosix.split(\"/\");\n if (parts.some((p) => DEFAULT_EXCLUDE_DIRS.has(p))) return false;\n\n // Exclude the output directory subtree. Without this, re-running against\n // the same root packages prior `.capsule.json.gz` archives and sidecar\n // manifests as records, causing bundle bloat and leaking stale exports.\n // `outDir === root` is rejected at the entrypoint (`exportCapsule`), so\n // {@link computeOutDirRel} never returns `\".\"` for the in-tree case here.\n if (outDirRelPosix !== null) {\n if (relPosix === outDirRelPosix) return false;\n if (relPosix.startsWith(`${outDirRelPosix}/`)) return false;\n }\n\n const top = parts[0];\n\n // Transcripts are opt-in: excluded unless caller explicitly listed them\n // in includeKinds OR passed `includeTranscripts: true`. The override flag\n // avoids the footgun of having the CLI build a hard-coded kinds list that\n // inadvertently drops valid memory dirs like `peers/` or `forks/`. (Cursor / #747)\n if (\n top === TRANSCRIPTS_DIR &&\n !transcriptsOverride &&\n (includeKinds === null || !includeKinds.has(TRANSCRIPTS_DIR))\n ) {\n return false;\n }\n\n if (includeKinds !== null) {\n // includeKinds restricts to whitelisted top-level segments. Files at\n // the repo root (no top-level dir) are excluded under an explicit\n // allow-list because they are not categorized.\n if (parts.length < 2) return false;\n if (!includeKinds.has(top)) return false;\n }\n\n if (top === PEERS_DIR && peerFilter !== null) {\n if (peerFilter.size === 0) return false;\n if (parts.length < 2) return false;\n if (!peerFilter.has(parts[1])) return false;\n }\n\n return true;\n}\n\n// ---------------------------------------------------------------------------\n// Capsule-block defaults\n// ---------------------------------------------------------------------------\n\n/**\n * Build a {@link CapsuleBlock} for the manifest. PR 2/6 ships a minimal\n * snapshot: tier-weights and `directAnswerEnabled` default to zod-passing\n * placeholders so the bundle parses cleanly. PRs 3/6+ will wire real\n * retrieval-policy and identity-anchor snapshots into the override path.\n *\n * Defaults (chosen to be safe + least-surprising):\n * - `version` — `0.1.0` (capsule authors override per release).\n * - `schemaVersion` — `taxonomy-v1` until the taxonomy registry stabilizes.\n * - `parentCapsule` — `null` (explicit \"no parent\" sentinel).\n * - `description` — empty string. Capsule authors override.\n * - `retrievalPolicy` — empty `tierWeights` map + `directAnswerEnabled: false`.\n * Empty weights mean \"no overrides\"; importers fall back to their local\n * policy. `false` is the least-privileged default per Rule 48.\n * - `includes` — all flags `false` until later PRs wire the\n * sub-bundles in.\n */\nfunction buildCapsuleBlock(\n name: string,\n override: Partial<Omit<CapsuleBlock, \"id\">> | undefined,\n): CapsuleBlock {\n // `parent` (structured, PR 4/6) and `parentCapsule` (legacy string) carry\n // overlapping information. The schema documents the invariant: when\n // `parent` is non-null, `parentCapsule` SHOULD equal `parent.capsuleId`.\n // We derive the legacy field from the structured field whenever the\n // caller supplies `parent` but omits `parentCapsule`, so a single-source\n // override path produces a manifest that satisfies the documented\n // invariant for legacy V2 readers (Cursor medium #751 round 3).\n // An explicit `parentCapsule` override still wins — including an explicit\n // `null` — so callers can intentionally diverge from the structured field\n // for migration scenarios.\n const parent = override?.parent ?? null;\n const parentCapsule =\n override && Object.prototype.hasOwnProperty.call(override, \"parentCapsule\")\n ? (override.parentCapsule ?? null)\n : (parent?.capsuleId ?? null);\n\n const merged: CapsuleBlock = {\n id: name,\n version: override?.version ?? \"0.1.0\",\n schemaVersion: override?.schemaVersion ?? \"taxonomy-v1\",\n parentCapsule,\n parent,\n description: override?.description ?? \"\",\n retrievalPolicy: override?.retrievalPolicy ?? {\n tierWeights: {},\n directAnswerEnabled: false,\n },\n includes: override?.includes ?? {\n taxonomy: false,\n identityAnchors: false,\n peerProfiles: false,\n procedural: false,\n },\n };\n // Re-parse to surface invalid overrides with the same zod errors a caller\n // would get when constructing a CapsuleBlock by hand.\n return CapsuleBlockSchema.parse(merged);\n}\n","export const EXPORT_FORMAT = \"openclaw-engram-export\" as const;\nexport const EXPORT_SCHEMA_VERSION = 1 as const;\n\n/**\n * Schema version for capsule-aware (V2) export manifests. See\n * {@link ../types.ts} `ExportManifestV2Schema` for the wire format.\n *\n * V1 manifests remain the default for non-capsule exports\n * (`exportJsonBundle` / `exportMarkdownBundle`). V2 is emitted by the\n * capsule export pipeline only.\n */\nexport const CAPSULE_SCHEMA_VERSION = 2 as const;\n\n"],"mappings":"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","names":[]}
|