@remnic/core 9.69.23 → 9.69.25

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.
Files changed (438) hide show
  1. package/dist/abstraction-nodes.js +3 -2
  2. package/dist/access-admin-ops-surface.d.ts +1 -1
  3. package/dist/access-admin-ops-surface.js +53 -53
  4. package/dist/access-authorization-probe.d.ts +1 -1
  5. package/dist/access-authorization-probe.js +54 -54
  6. package/dist/access-boundary.d.ts +1 -1
  7. package/dist/access-boundary.js +53 -53
  8. package/dist/access-citation-namespace.js +3 -3
  9. package/dist/access-cli.js +112 -112
  10. package/dist/access-extraction-force-flush.d.ts +1 -1
  11. package/dist/access-extraction-force-flush.js +53 -53
  12. package/dist/access-http-briefing.d.ts +1 -1
  13. package/dist/access-http-briefing.js +54 -54
  14. package/dist/access-http-lcm-compaction.d.ts +1 -1
  15. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  16. package/dist/access-http-offline-stream.d.ts +1 -1
  17. package/dist/access-http-query.js +55 -55
  18. package/dist/access-http.d.ts +2 -2
  19. package/dist/access-http.js +72 -72
  20. package/dist/access-identity-continuity-surface.js +53 -53
  21. package/dist/access-lcm-surface.d.ts +1 -1
  22. package/dist/access-lcm-surface.js +53 -53
  23. package/dist/access-mcp.d.ts +1 -1
  24. package/dist/access-mcp.js +64 -64
  25. package/dist/access-namespace-preflight.js +53 -53
  26. package/dist/access-observe-write-surface.d.ts +1 -1
  27. package/dist/access-observe-write-surface.js +53 -53
  28. package/dist/access-offline-manifest.js +10 -10
  29. package/dist/access-operations-batch.js +58 -58
  30. package/dist/access-operations.d.ts +1 -1
  31. package/dist/access-operations.js +63 -63
  32. package/dist/access-recall-concurrency.d.ts +1 -1
  33. package/dist/access-recall-concurrency.js +53 -53
  34. package/dist/access-recall-response.d.ts +1 -1
  35. package/dist/access-recall-response.js +53 -53
  36. package/dist/access-recall-surface.d.ts +1 -1
  37. package/dist/access-recall-surface.js +53 -53
  38. package/dist/access-schema.js +6 -5
  39. package/dist/access-service-helpers.d.ts +1 -1
  40. package/dist/access-service.d.ts +1 -1
  41. package/dist/access-service.js +53 -53
  42. package/dist/access-surface-catalog.d.ts +1 -1
  43. package/dist/access-surface-catalog.js +55 -55
  44. package/dist/active-recall.js +12 -11
  45. package/dist/active-recall.js.map +1 -1
  46. package/dist/{auto-sync-TTIEWJ5X.js → auto-sync-WNGG2GC2.js} +7 -7
  47. package/dist/briefing.js +20 -20
  48. package/dist/buffer.js +9 -9
  49. package/dist/calibration.js +2 -1
  50. package/dist/calibration.js.map +1 -1
  51. package/dist/{capsule-merge-CU6QJBSV.js → capsule-merge-IPG4IOFP.js} +4 -4
  52. package/dist/causal-behavior.js +4 -3
  53. package/dist/causal-behavior.js.map +1 -1
  54. package/dist/causal-chain.js +4 -3
  55. package/dist/causal-consolidation.js +25 -25
  56. package/dist/causal-retrieval.js +4 -3
  57. package/dist/causal-retrieval.js.map +1 -1
  58. package/dist/causal-trajectory-graph.js +2 -1
  59. package/dist/causal-trajectory-graph.js.map +1 -1
  60. package/dist/causal-trajectory.js +3 -2
  61. package/dist/{chunk-5RWHODVF.js → chunk-27QVNSQ3.js} +2 -2
  62. package/dist/{chunk-2MX7RU7B.js → chunk-2EKJDQZB.js} +2 -2
  63. package/dist/{chunk-XLRM6PPI.js → chunk-2IOHTUP3.js} +4 -4
  64. package/dist/{chunk-ZGQDTD5T.js → chunk-2ITE4C2Z.js} +2 -2
  65. package/dist/{chunk-O5ZR7SXV.js → chunk-2SGLMP2E.js} +2 -2
  66. package/dist/{chunk-FYWLSFFS.js → chunk-2Z4GS5E6.js} +2 -2
  67. package/dist/{chunk-WELP4CG6.js → chunk-37KUQPX4.js} +6 -6
  68. package/dist/{chunk-DDQQY2E3.js → chunk-3BTFBQLO.js} +7 -7
  69. package/dist/chunk-3BTFBQLO.js.map +1 -0
  70. package/dist/{chunk-UR6PBX2J.js → chunk-3K7V3HE6.js} +35 -60
  71. package/dist/chunk-3K7V3HE6.js.map +1 -0
  72. package/dist/{chunk-MRSLR6TB.js → chunk-3QQTXYZ6.js} +2 -2
  73. package/dist/{chunk-DJUKBGAD.js → chunk-46EST7JO.js} +5 -5
  74. package/dist/chunk-46EST7JO.js.map +1 -0
  75. package/dist/{chunk-CI6C33EO.js → chunk-46ZPIGWI.js} +3 -3
  76. package/dist/{chunk-HTIIXNJQ.js → chunk-4FIH6MPS.js} +6 -3
  77. package/dist/chunk-4FIH6MPS.js.map +1 -0
  78. package/dist/{chunk-MCA2X4WH.js → chunk-4IHBN6WU.js} +2 -2
  79. package/dist/{chunk-W7IGLX4G.js → chunk-4O6WRBGE.js} +7 -7
  80. package/dist/chunk-4O6WRBGE.js.map +1 -0
  81. package/dist/{chunk-TOZCM7WN.js → chunk-4TKJGOCJ.js} +2 -2
  82. package/dist/{chunk-3ADRFFRO.js → chunk-54WHLA65.js} +4 -4
  83. package/dist/{chunk-Z2N2AHEM.js → chunk-56Y6EKZN.js} +2 -2
  84. package/dist/{chunk-2H2N5UQW.js → chunk-5ATKSPEQ.js} +2 -2
  85. package/dist/{chunk-MSOXFXCA.js → chunk-5FAGCOZD.js} +5 -5
  86. package/dist/chunk-5FAGCOZD.js.map +1 -0
  87. package/dist/{chunk-ZVZHG7AI.js → chunk-5UBH37SL.js} +3 -3
  88. package/dist/{chunk-YZYZ2BEU.js → chunk-66OJSCI6.js} +2 -2
  89. package/dist/{chunk-HNPE66LB.js → chunk-6CVNSDCZ.js} +4 -4
  90. package/dist/{chunk-ERVJFFTR.js → chunk-6NXSYYGP.js} +2 -2
  91. package/dist/{chunk-2HIJHXB3.js → chunk-6WHJ2EAB.js} +2 -2
  92. package/dist/{chunk-34VTBPNE.js → chunk-6XL73HQ4.js} +4 -4
  93. package/dist/{chunk-YK3UIF7X.js → chunk-AQ7SYDVO.js} +2 -2
  94. package/dist/{chunk-DSCCM66R.js → chunk-B3O3IRZN.js} +2 -2
  95. package/dist/{chunk-P77QX3ID.js → chunk-B6O2YLUR.js} +21 -20
  96. package/dist/chunk-B6O2YLUR.js.map +1 -0
  97. package/dist/{chunk-N37X5RU7.js → chunk-BD7JTBYP.js} +2 -2
  98. package/dist/{chunk-VO43BJ2F.js → chunk-BLJWYCNO.js} +5 -5
  99. package/dist/{chunk-ACPCA4NO.js → chunk-BMWN7B3Y.js} +6 -6
  100. package/dist/chunk-BMWN7B3Y.js.map +1 -0
  101. package/dist/{chunk-HSKSVY3Q.js → chunk-C553ZTLF.js} +15 -15
  102. package/dist/{chunk-GCASGYIO.js → chunk-C7HJ3NEI.js} +2 -2
  103. package/dist/{chunk-WVGXCBOC.js → chunk-D5F7TKMH.js} +2 -2
  104. package/dist/{chunk-UFT2XNBW.js → chunk-DGS34QSY.js} +2 -2
  105. package/dist/{chunk-VAOL3SOT.js → chunk-DZD3WGCD.js} +4 -4
  106. package/dist/{chunk-KHMS2FQS.js → chunk-E2P7TZTF.js} +2 -2
  107. package/dist/{chunk-6FC3IZ26.js → chunk-EBA5DA77.js} +2 -2
  108. package/dist/{chunk-E6EANYLD.js → chunk-EOQ6FSQP.js} +2 -2
  109. package/dist/{chunk-7RPPCA26.js → chunk-FVOP3NT7.js} +2 -2
  110. package/dist/{chunk-NRLELHAY.js → chunk-G7NYVKD6.js} +2 -2
  111. package/dist/{chunk-QY34X2QJ.js → chunk-GHTSNGBZ.js} +2 -2
  112. package/dist/{chunk-SLIOMMPF.js → chunk-H272ZPQ3.js} +5 -5
  113. package/dist/{chunk-ZZBQNQS6.js → chunk-H3TKENU4.js} +2 -2
  114. package/dist/{chunk-5OPNUUBX.js → chunk-H4SEGIZY.js} +2 -2
  115. package/dist/{chunk-F2HMDGLC.js → chunk-H54VWRPS.js} +13 -13
  116. package/dist/{chunk-HTP6XRUI.js → chunk-HM7RHKS4.js} +2 -2
  117. package/dist/{chunk-O7H3P2SJ.js → chunk-HWLIMQE2.js} +2 -2
  118. package/dist/{chunk-62WZDHTW.js → chunk-ICKJ52PE.js} +33 -33
  119. package/dist/chunk-ICKJ52PE.js.map +1 -0
  120. package/dist/{chunk-I3FDDCY3.js → chunk-JEC4DVM3.js} +8 -8
  121. package/dist/chunk-JEC4DVM3.js.map +1 -0
  122. package/dist/{chunk-ET2CNMLD.js → chunk-JN72EPOE.js} +2 -2
  123. package/dist/{chunk-E7UQOS4C.js → chunk-JPKK466T.js} +2 -2
  124. package/dist/{chunk-JCCWJHOP.js → chunk-JYZSRNR7.js} +2 -2
  125. package/dist/{chunk-7IUESBLV.js → chunk-K7724CH2.js} +2 -2
  126. package/dist/{chunk-UK7HXNNJ.js → chunk-KAXCYM66.js} +3 -3
  127. package/dist/{chunk-7XVP4P4O.js → chunk-KB2G2I6Q.js} +3 -3
  128. package/dist/{chunk-K7LTRJZU.js → chunk-KEF46KL2.js} +2 -2
  129. package/dist/{chunk-5UZXUTVO.js → chunk-KNA3BXXL.js} +6 -2
  130. package/dist/chunk-KNA3BXXL.js.map +1 -0
  131. package/dist/{chunk-JYYTWCPU.js → chunk-KTWG7CNY.js} +6 -6
  132. package/dist/{chunk-XTYDEO7M.js → chunk-L7Z57SID.js} +2 -2
  133. package/dist/{chunk-EYMPUXAN.js → chunk-LO4UKPKX.js} +3 -3
  134. package/dist/{chunk-LDWIPYJ6.js → chunk-LS2FHUML.js} +3 -3
  135. package/dist/{chunk-GDB4J2H3.js → chunk-MPC7TYTZ.js} +2 -2
  136. package/dist/{chunk-2GF27PGH.js → chunk-MRPOZBJC.js} +3 -3
  137. package/dist/{chunk-7OLKAQMG.js → chunk-MWN6QEI2.js} +2 -2
  138. package/dist/{chunk-J62HG52Z.js → chunk-MY5EDR46.js} +4 -4
  139. package/dist/{chunk-IZRMWPGS.js → chunk-N3ZOP7KC.js} +2 -2
  140. package/dist/{chunk-N6A2RP5S.js → chunk-NB3LRY4T.js} +3 -3
  141. package/dist/{chunk-4N5BIR2U.js → chunk-ND6IQGSZ.js} +2 -2
  142. package/dist/{chunk-NOB2T2FC.js → chunk-NHLLKEKK.js} +2 -2
  143. package/dist/{chunk-WW6B7NQJ.js → chunk-NLYVH66G.js} +6 -6
  144. package/dist/chunk-NLYVH66G.js.map +1 -0
  145. package/dist/{chunk-M5CQNOQN.js → chunk-O6ZNNVSP.js} +2 -2
  146. package/dist/{chunk-NNBZS3DY.js → chunk-OB3XMWX5.js} +2 -2
  147. package/dist/{chunk-TXJNRGMI.js → chunk-OEYZXDQI.js} +6 -6
  148. package/dist/chunk-OEYZXDQI.js.map +1 -0
  149. package/dist/{chunk-SIBVIP2Y.js → chunk-PAZY2ZKP.js} +2 -2
  150. package/dist/{chunk-LXESHEBP.js → chunk-PX4UMA5Z.js} +2 -2
  151. package/dist/{chunk-4KNRKJXQ.js → chunk-QOOBICJF.js} +5 -5
  152. package/dist/chunk-QOOBICJF.js.map +1 -0
  153. package/dist/{chunk-NNZFPYYX.js → chunk-R7QY5ZVB.js} +2 -2
  154. package/dist/{chunk-WTRTFIIN.js → chunk-R7RTXEYG.js} +2 -2
  155. package/dist/{chunk-XRBJ5R3P.js → chunk-RBCQVOVJ.js} +3 -3
  156. package/dist/{chunk-WFZNT4KB.js → chunk-RC5DXXWC.js} +2 -2
  157. package/dist/{chunk-OH7LZHGJ.js → chunk-RJYJ7KR7.js} +52 -52
  158. package/dist/{chunk-OH7LZHGJ.js.map → chunk-RJYJ7KR7.js.map} +1 -1
  159. package/dist/{chunk-5QZR2RA3.js → chunk-ROBHL3GL.js} +2 -2
  160. package/dist/{chunk-6PST2SFW.js → chunk-SCXURCVT.js} +3 -3
  161. package/dist/{chunk-AYG7ML7O.js → chunk-SJDQ5RSN.js} +3 -3
  162. package/dist/{chunk-3ZBLKIHJ.js → chunk-SMWTZLHE.js} +51 -41
  163. package/dist/{chunk-3ZBLKIHJ.js.map → chunk-SMWTZLHE.js.map} +1 -1
  164. package/dist/{chunk-IQXDSKTL.js → chunk-SVXJLDDC.js} +6 -6
  165. package/dist/{chunk-SEF4IOFE.js → chunk-SWIKABKI.js} +2 -2
  166. package/dist/{chunk-ZJABRLCZ.js → chunk-TBXAY2SS.js} +4 -4
  167. package/dist/{chunk-GIC6BASP.js → chunk-TNSCIPBQ.js} +2 -2
  168. package/dist/{chunk-ZMDMHSV2.js → chunk-TVEONGBU.js} +2 -2
  169. package/dist/{chunk-4FSEZRGK.js → chunk-TWF35IC6.js} +2 -2
  170. package/dist/{chunk-LS2SGMQE.js → chunk-U6N5IBVY.js} +2 -2
  171. package/dist/{chunk-62YW6OYI.js → chunk-UCKYTA2T.js} +3 -3
  172. package/dist/{chunk-YFCHNOGJ.js → chunk-UNNPNBR2.js} +9 -9
  173. package/dist/{chunk-Z2M7F4QM.js → chunk-VVX5PZFS.js} +3 -3
  174. package/dist/{chunk-NTYLZXDX.js → chunk-VYCOJKSX.js} +2 -2
  175. package/dist/{chunk-UICSQESY.js → chunk-W24T5YMW.js} +2 -2
  176. package/dist/{chunk-HDQUQBPW.js → chunk-W3K3HITK.js} +2 -2
  177. package/dist/{chunk-GDASG7NC.js → chunk-W4F3C7N7.js} +2 -2
  178. package/dist/{chunk-YBLZFNIQ.js → chunk-WJHGDE7X.js} +2 -2
  179. package/dist/{chunk-ZBPXG5PJ.js → chunk-WMLEPWMO.js} +9 -9
  180. package/dist/chunk-WMLEPWMO.js.map +1 -0
  181. package/dist/{chunk-4F24PHNX.js → chunk-WQZZDN5M.js} +2 -2
  182. package/dist/{chunk-CDZEUCV7.js → chunk-X5K5TAQZ.js} +4 -4
  183. package/dist/{chunk-5AUODSOQ.js → chunk-XM24CDZX.js} +3 -3
  184. package/dist/{chunk-6VML2LII.js → chunk-XOVKXJEP.js} +3 -3
  185. package/dist/{chunk-OU5TIWDQ.js → chunk-XSGUMQQQ.js} +12 -12
  186. package/dist/{chunk-7CFVBWDC.js → chunk-XUE46UYW.js} +3 -3
  187. package/dist/{chunk-DJORULH3.js → chunk-YRLHEEQT.js} +2 -2
  188. package/dist/{chunk-YRWDPE32.js → chunk-Z3O53WZR.js} +2 -2
  189. package/dist/{chunk-CSY5DA7O.js → chunk-Z6COGHHN.js} +2 -2
  190. package/dist/{chunk-OYR3IPHD.js → chunk-ZIW5JVRM.js} +2 -2
  191. package/dist/{cli-B_YwqoIr.d.ts → cli-BqMNkQn5.d.ts} +1 -1
  192. package/dist/cli.d.ts +2 -2
  193. package/dist/cli.js +94 -94
  194. package/dist/coding/export-okf-codegraph.js +21 -21
  195. package/dist/coding/pre-action-gate.js +4 -3
  196. package/dist/commitment-ledger.js +3 -2
  197. package/dist/compounding/engine.js +21 -21
  198. package/dist/config.js +12 -11
  199. package/dist/connectors/codex-materialize-runner.js +21 -21
  200. package/dist/connectors/codex-materialize.js +3 -3
  201. package/dist/connectors/index.js +21 -21
  202. package/dist/consolidation-provenance-check.js +4 -4
  203. package/dist/consolidation-undo.js +3 -3
  204. package/dist/contradiction/index.js +7 -7
  205. package/dist/convergence-refresh.js +22 -22
  206. package/dist/corpus-watermark.js +22 -22
  207. package/dist/cue-anchors.js +4 -3
  208. package/dist/deep-recall-http-glue.d.ts +1 -1
  209. package/dist/deep-recall-http-glue.js +7 -6
  210. package/dist/deep-recall-mcp-tools.d.ts +1 -1
  211. package/dist/entity-retrieval.js +20 -20
  212. package/dist/eval-trajectory-store.js +4 -3
  213. package/dist/eval-trajectory.js +4 -3
  214. package/dist/evals.js +3 -2
  215. package/dist/explicit-capture.js +8 -8
  216. package/dist/external-wiki-access.d.ts +1 -1
  217. package/dist/external-wiki-access.js +54 -54
  218. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  219. package/dist/extraction.js +25 -25
  220. package/dist/{first-start-migration-KHIMCBIC.js → first-start-migration-RC345GPL.js} +6 -5
  221. package/dist/{first-start-migration-KHIMCBIC.js.map → first-start-migration-RC345GPL.js.map} +1 -1
  222. package/dist/{graph-edge-decay-CJW4OT2X.js → graph-edge-decay-MKIRZ762.js} +5 -4
  223. package/dist/graph-jsonl.js +3 -2
  224. package/dist/graph-snapshot.js +3 -2
  225. package/dist/graph.js +2 -1
  226. package/dist/harmonic-construction.js +5 -4
  227. package/dist/harmonic-retrieval.js +5 -4
  228. package/dist/index.d.ts +19 -7
  229. package/dist/index.js +114 -112
  230. package/dist/json-store.js +2 -1
  231. package/dist/live-connectors-runner.js +3 -2
  232. package/dist/location/index.js +23 -23
  233. package/dist/maintenance/memory-governance.js +20 -20
  234. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +20 -20
  235. package/dist/maintenance/rebuild-memory-projection.js +21 -21
  236. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  237. package/dist/memory-projection-mutations.js +3 -3
  238. package/dist/memory-subject-cli.d.ts +1 -1
  239. package/dist/memory-subject.d.ts +1 -1
  240. package/dist/memory-subject.js +4 -4
  241. package/dist/namespaces/migrate.js +21 -21
  242. package/dist/namespaces/search.js +8 -8
  243. package/dist/namespaces/storage.js +20 -20
  244. package/dist/objective-state-writers.js +4 -3
  245. package/dist/objective-state.js +3 -2
  246. package/dist/offline-sync-file-io.js +4 -3
  247. package/dist/offline-sync-impression-drain.js +5 -5
  248. package/dist/offline-sync.js +5 -4
  249. package/dist/operator-doctor-corpus.js +23 -23
  250. package/dist/operator-toolkit.js +38 -38
  251. package/dist/orchestration/maintenance.js +29 -29
  252. package/dist/orchestrator.js +112 -112
  253. package/dist/page-versioning.js +3 -3
  254. package/dist/{public-http-D6d4W8x-.d.ts → public-http-ByX2eTla.d.ts} +1 -1
  255. package/dist/{purge-OP6BEDFY.js → purge-TZKRE6ZQ.js} +5 -5
  256. package/dist/purge-TZKRE6ZQ.js.map +1 -0
  257. package/dist/recall-state.js +3 -3
  258. package/dist/reconcile/manifest.js +4 -4
  259. package/dist/{resolution-U5O4QANY.js → resolution-VKATP2HT.js} +8 -8
  260. package/dist/resume-bundles.js +16 -15
  261. package/dist/salvage-envelope.js +6 -6
  262. package/dist/schemas.d.ts +42 -42
  263. package/dist/search/document-scanner.js +3 -3
  264. package/dist/search/factory.js +7 -7
  265. package/dist/search/index.js +7 -7
  266. package/dist/search/lancedb-backend.js +4 -4
  267. package/dist/search/meilisearch-backend.js +4 -4
  268. package/dist/search/orama-backend.js +4 -4
  269. package/dist/secure-store/index.js +3 -3
  270. package/dist/semantic-consolidation.js +22 -22
  271. package/dist/semantic-rule-promotion.js +20 -20
  272. package/dist/semantic-rule-verifier.js +20 -20
  273. package/dist/source-agent-qualifier.js +24 -24
  274. package/dist/standup/build.js +20 -20
  275. package/dist/storage.js +19 -19
  276. package/dist/subject-config.js +5 -5
  277. package/dist/support-passport/index.d.ts +4 -4
  278. package/dist/support-passport/index.js +56 -56
  279. package/dist/{tier-stats-2TOW3QNL.js → tier-stats-KA6OZX2C.js} +6 -5
  280. package/dist/{tier-stats-2TOW3QNL.js.map → tier-stats-KA6OZX2C.js.map} +1 -1
  281. package/dist/transfer/capsule-import.js +4 -4
  282. package/dist/transfer/export-okf.js +21 -21
  283. package/dist/transfer/types.d.ts +12 -12
  284. package/dist/trust-zones.js +3 -2
  285. package/dist/utility-learner.js +4 -3
  286. package/dist/utility-runtime.js +5 -4
  287. package/dist/utility-telemetry.js +3 -2
  288. package/dist/verified-recall.js +20 -20
  289. package/dist/who-knows-cli.d.ts +1 -1
  290. package/dist/who-knows-cli.js +21 -21
  291. package/dist/who-knows.d.ts +1 -1
  292. package/dist/who-knows.js +20 -20
  293. package/dist/work/board.js +3 -3
  294. package/dist/work/storage.js +2 -2
  295. package/dist/work-product-ledger.js +3 -2
  296. package/dist/write-envelope.js +5 -5
  297. package/package.json +2 -2
  298. package/src/abstraction-nodes.ts +1 -4
  299. package/src/binary-lifecycle/backend.ts +2 -1
  300. package/src/connectors/live/github.ts +10 -17
  301. package/src/connectors/live/gmail.ts +8 -19
  302. package/src/connectors/live/google-drive.ts +6 -13
  303. package/src/connectors/live/notion.ts +11 -21
  304. package/src/cue-anchors.ts +1 -6
  305. package/src/graph.ts +2 -4
  306. package/src/json-store.ts +17 -20
  307. package/src/live-connectors-runner.ts +2 -1
  308. package/src/location/store.ts +1 -4
  309. package/src/maintenance/purge.ts +2 -5
  310. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +3 -6
  311. package/src/maintenance/rebuild-memory-projection.ts +2 -5
  312. package/src/namespaces/catalog.ts +1 -9
  313. package/src/offline-sync-file-io.test.ts +39 -0
  314. package/src/offline-sync-file-io.ts +3 -7
  315. package/src/procedural/procedure-miner.ts +1 -9
  316. package/src/search/document-scanner.ts +3 -6
  317. package/src/semantic-rule-promotion.ts +1 -4
  318. package/src/utils/errno.test.ts +31 -0
  319. package/src/utils/errno.ts +5 -0
  320. package/src/wearables/index.ts +1 -0
  321. package/src/wearables/registry.ts +23 -0
  322. package/dist/chunk-4KNRKJXQ.js.map +0 -1
  323. package/dist/chunk-5UZXUTVO.js.map +0 -1
  324. package/dist/chunk-62WZDHTW.js.map +0 -1
  325. package/dist/chunk-ACPCA4NO.js.map +0 -1
  326. package/dist/chunk-DDQQY2E3.js.map +0 -1
  327. package/dist/chunk-DJUKBGAD.js.map +0 -1
  328. package/dist/chunk-HTIIXNJQ.js.map +0 -1
  329. package/dist/chunk-I3FDDCY3.js.map +0 -1
  330. package/dist/chunk-MSOXFXCA.js.map +0 -1
  331. package/dist/chunk-P77QX3ID.js.map +0 -1
  332. package/dist/chunk-TXJNRGMI.js.map +0 -1
  333. package/dist/chunk-UR6PBX2J.js.map +0 -1
  334. package/dist/chunk-W7IGLX4G.js.map +0 -1
  335. package/dist/chunk-WW6B7NQJ.js.map +0 -1
  336. package/dist/chunk-ZBPXG5PJ.js.map +0 -1
  337. package/dist/purge-OP6BEDFY.js.map +0 -1
  338. package/dist/{access-service-Cv8Rizo0.d.ts → access-service-GrdVg_-Z.d.ts} +6 -6
  339. /package/dist/{auto-sync-TTIEWJ5X.js.map → auto-sync-WNGG2GC2.js.map} +0 -0
  340. /package/dist/{capsule-merge-CU6QJBSV.js.map → capsule-merge-IPG4IOFP.js.map} +0 -0
  341. /package/dist/{chunk-5RWHODVF.js.map → chunk-27QVNSQ3.js.map} +0 -0
  342. /package/dist/{chunk-2MX7RU7B.js.map → chunk-2EKJDQZB.js.map} +0 -0
  343. /package/dist/{chunk-XLRM6PPI.js.map → chunk-2IOHTUP3.js.map} +0 -0
  344. /package/dist/{chunk-ZGQDTD5T.js.map → chunk-2ITE4C2Z.js.map} +0 -0
  345. /package/dist/{chunk-O5ZR7SXV.js.map → chunk-2SGLMP2E.js.map} +0 -0
  346. /package/dist/{chunk-FYWLSFFS.js.map → chunk-2Z4GS5E6.js.map} +0 -0
  347. /package/dist/{chunk-WELP4CG6.js.map → chunk-37KUQPX4.js.map} +0 -0
  348. /package/dist/{chunk-MRSLR6TB.js.map → chunk-3QQTXYZ6.js.map} +0 -0
  349. /package/dist/{chunk-CI6C33EO.js.map → chunk-46ZPIGWI.js.map} +0 -0
  350. /package/dist/{chunk-MCA2X4WH.js.map → chunk-4IHBN6WU.js.map} +0 -0
  351. /package/dist/{chunk-TOZCM7WN.js.map → chunk-4TKJGOCJ.js.map} +0 -0
  352. /package/dist/{chunk-3ADRFFRO.js.map → chunk-54WHLA65.js.map} +0 -0
  353. /package/dist/{chunk-Z2N2AHEM.js.map → chunk-56Y6EKZN.js.map} +0 -0
  354. /package/dist/{chunk-2H2N5UQW.js.map → chunk-5ATKSPEQ.js.map} +0 -0
  355. /package/dist/{chunk-ZVZHG7AI.js.map → chunk-5UBH37SL.js.map} +0 -0
  356. /package/dist/{chunk-YZYZ2BEU.js.map → chunk-66OJSCI6.js.map} +0 -0
  357. /package/dist/{chunk-HNPE66LB.js.map → chunk-6CVNSDCZ.js.map} +0 -0
  358. /package/dist/{chunk-ERVJFFTR.js.map → chunk-6NXSYYGP.js.map} +0 -0
  359. /package/dist/{chunk-2HIJHXB3.js.map → chunk-6WHJ2EAB.js.map} +0 -0
  360. /package/dist/{chunk-34VTBPNE.js.map → chunk-6XL73HQ4.js.map} +0 -0
  361. /package/dist/{chunk-YK3UIF7X.js.map → chunk-AQ7SYDVO.js.map} +0 -0
  362. /package/dist/{chunk-DSCCM66R.js.map → chunk-B3O3IRZN.js.map} +0 -0
  363. /package/dist/{chunk-N37X5RU7.js.map → chunk-BD7JTBYP.js.map} +0 -0
  364. /package/dist/{chunk-VO43BJ2F.js.map → chunk-BLJWYCNO.js.map} +0 -0
  365. /package/dist/{chunk-HSKSVY3Q.js.map → chunk-C553ZTLF.js.map} +0 -0
  366. /package/dist/{chunk-GCASGYIO.js.map → chunk-C7HJ3NEI.js.map} +0 -0
  367. /package/dist/{chunk-WVGXCBOC.js.map → chunk-D5F7TKMH.js.map} +0 -0
  368. /package/dist/{chunk-UFT2XNBW.js.map → chunk-DGS34QSY.js.map} +0 -0
  369. /package/dist/{chunk-VAOL3SOT.js.map → chunk-DZD3WGCD.js.map} +0 -0
  370. /package/dist/{chunk-KHMS2FQS.js.map → chunk-E2P7TZTF.js.map} +0 -0
  371. /package/dist/{chunk-6FC3IZ26.js.map → chunk-EBA5DA77.js.map} +0 -0
  372. /package/dist/{chunk-E6EANYLD.js.map → chunk-EOQ6FSQP.js.map} +0 -0
  373. /package/dist/{chunk-7RPPCA26.js.map → chunk-FVOP3NT7.js.map} +0 -0
  374. /package/dist/{chunk-NRLELHAY.js.map → chunk-G7NYVKD6.js.map} +0 -0
  375. /package/dist/{chunk-QY34X2QJ.js.map → chunk-GHTSNGBZ.js.map} +0 -0
  376. /package/dist/{chunk-SLIOMMPF.js.map → chunk-H272ZPQ3.js.map} +0 -0
  377. /package/dist/{chunk-ZZBQNQS6.js.map → chunk-H3TKENU4.js.map} +0 -0
  378. /package/dist/{chunk-5OPNUUBX.js.map → chunk-H4SEGIZY.js.map} +0 -0
  379. /package/dist/{chunk-F2HMDGLC.js.map → chunk-H54VWRPS.js.map} +0 -0
  380. /package/dist/{chunk-HTP6XRUI.js.map → chunk-HM7RHKS4.js.map} +0 -0
  381. /package/dist/{chunk-O7H3P2SJ.js.map → chunk-HWLIMQE2.js.map} +0 -0
  382. /package/dist/{chunk-ET2CNMLD.js.map → chunk-JN72EPOE.js.map} +0 -0
  383. /package/dist/{chunk-E7UQOS4C.js.map → chunk-JPKK466T.js.map} +0 -0
  384. /package/dist/{chunk-JCCWJHOP.js.map → chunk-JYZSRNR7.js.map} +0 -0
  385. /package/dist/{chunk-7IUESBLV.js.map → chunk-K7724CH2.js.map} +0 -0
  386. /package/dist/{chunk-UK7HXNNJ.js.map → chunk-KAXCYM66.js.map} +0 -0
  387. /package/dist/{chunk-7XVP4P4O.js.map → chunk-KB2G2I6Q.js.map} +0 -0
  388. /package/dist/{chunk-K7LTRJZU.js.map → chunk-KEF46KL2.js.map} +0 -0
  389. /package/dist/{chunk-JYYTWCPU.js.map → chunk-KTWG7CNY.js.map} +0 -0
  390. /package/dist/{chunk-XTYDEO7M.js.map → chunk-L7Z57SID.js.map} +0 -0
  391. /package/dist/{chunk-EYMPUXAN.js.map → chunk-LO4UKPKX.js.map} +0 -0
  392. /package/dist/{chunk-LDWIPYJ6.js.map → chunk-LS2FHUML.js.map} +0 -0
  393. /package/dist/{chunk-GDB4J2H3.js.map → chunk-MPC7TYTZ.js.map} +0 -0
  394. /package/dist/{chunk-2GF27PGH.js.map → chunk-MRPOZBJC.js.map} +0 -0
  395. /package/dist/{chunk-7OLKAQMG.js.map → chunk-MWN6QEI2.js.map} +0 -0
  396. /package/dist/{chunk-J62HG52Z.js.map → chunk-MY5EDR46.js.map} +0 -0
  397. /package/dist/{chunk-IZRMWPGS.js.map → chunk-N3ZOP7KC.js.map} +0 -0
  398. /package/dist/{chunk-N6A2RP5S.js.map → chunk-NB3LRY4T.js.map} +0 -0
  399. /package/dist/{chunk-4N5BIR2U.js.map → chunk-ND6IQGSZ.js.map} +0 -0
  400. /package/dist/{chunk-NOB2T2FC.js.map → chunk-NHLLKEKK.js.map} +0 -0
  401. /package/dist/{chunk-M5CQNOQN.js.map → chunk-O6ZNNVSP.js.map} +0 -0
  402. /package/dist/{chunk-NNBZS3DY.js.map → chunk-OB3XMWX5.js.map} +0 -0
  403. /package/dist/{chunk-SIBVIP2Y.js.map → chunk-PAZY2ZKP.js.map} +0 -0
  404. /package/dist/{chunk-LXESHEBP.js.map → chunk-PX4UMA5Z.js.map} +0 -0
  405. /package/dist/{chunk-NNZFPYYX.js.map → chunk-R7QY5ZVB.js.map} +0 -0
  406. /package/dist/{chunk-WTRTFIIN.js.map → chunk-R7RTXEYG.js.map} +0 -0
  407. /package/dist/{chunk-XRBJ5R3P.js.map → chunk-RBCQVOVJ.js.map} +0 -0
  408. /package/dist/{chunk-WFZNT4KB.js.map → chunk-RC5DXXWC.js.map} +0 -0
  409. /package/dist/{chunk-5QZR2RA3.js.map → chunk-ROBHL3GL.js.map} +0 -0
  410. /package/dist/{chunk-6PST2SFW.js.map → chunk-SCXURCVT.js.map} +0 -0
  411. /package/dist/{chunk-AYG7ML7O.js.map → chunk-SJDQ5RSN.js.map} +0 -0
  412. /package/dist/{chunk-IQXDSKTL.js.map → chunk-SVXJLDDC.js.map} +0 -0
  413. /package/dist/{chunk-SEF4IOFE.js.map → chunk-SWIKABKI.js.map} +0 -0
  414. /package/dist/{chunk-ZJABRLCZ.js.map → chunk-TBXAY2SS.js.map} +0 -0
  415. /package/dist/{chunk-GIC6BASP.js.map → chunk-TNSCIPBQ.js.map} +0 -0
  416. /package/dist/{chunk-ZMDMHSV2.js.map → chunk-TVEONGBU.js.map} +0 -0
  417. /package/dist/{chunk-4FSEZRGK.js.map → chunk-TWF35IC6.js.map} +0 -0
  418. /package/dist/{chunk-LS2SGMQE.js.map → chunk-U6N5IBVY.js.map} +0 -0
  419. /package/dist/{chunk-62YW6OYI.js.map → chunk-UCKYTA2T.js.map} +0 -0
  420. /package/dist/{chunk-YFCHNOGJ.js.map → chunk-UNNPNBR2.js.map} +0 -0
  421. /package/dist/{chunk-Z2M7F4QM.js.map → chunk-VVX5PZFS.js.map} +0 -0
  422. /package/dist/{chunk-NTYLZXDX.js.map → chunk-VYCOJKSX.js.map} +0 -0
  423. /package/dist/{chunk-UICSQESY.js.map → chunk-W24T5YMW.js.map} +0 -0
  424. /package/dist/{chunk-HDQUQBPW.js.map → chunk-W3K3HITK.js.map} +0 -0
  425. /package/dist/{chunk-GDASG7NC.js.map → chunk-W4F3C7N7.js.map} +0 -0
  426. /package/dist/{chunk-YBLZFNIQ.js.map → chunk-WJHGDE7X.js.map} +0 -0
  427. /package/dist/{chunk-4F24PHNX.js.map → chunk-WQZZDN5M.js.map} +0 -0
  428. /package/dist/{chunk-CDZEUCV7.js.map → chunk-X5K5TAQZ.js.map} +0 -0
  429. /package/dist/{chunk-5AUODSOQ.js.map → chunk-XM24CDZX.js.map} +0 -0
  430. /package/dist/{chunk-6VML2LII.js.map → chunk-XOVKXJEP.js.map} +0 -0
  431. /package/dist/{chunk-OU5TIWDQ.js.map → chunk-XSGUMQQQ.js.map} +0 -0
  432. /package/dist/{chunk-7CFVBWDC.js.map → chunk-XUE46UYW.js.map} +0 -0
  433. /package/dist/{chunk-DJORULH3.js.map → chunk-YRLHEEQT.js.map} +0 -0
  434. /package/dist/{chunk-YRWDPE32.js.map → chunk-Z3O53WZR.js.map} +0 -0
  435. /package/dist/{chunk-CSY5DA7O.js.map → chunk-Z6COGHHN.js.map} +0 -0
  436. /package/dist/{chunk-OYR3IPHD.js.map → chunk-ZIW5JVRM.js.map} +0 -0
  437. /package/dist/{graph-edge-decay-CJW4OT2X.js.map → graph-edge-decay-MKIRZ762.js.map} +0 -0
  438. /package/dist/{resolution-U5O4QANY.js.map → resolution-VKATP2HT.js.map} +0 -0
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  readChainIndex,
3
3
  resolveChainsDir
4
- } from "./chunk-EYMPUXAN.js";
4
+ } from "./chunk-LO4UKPKX.js";
5
5
  import {
6
6
  buildExtensionsBlockForConsolidation
7
- } from "./chunk-UICSQESY.js";
7
+ } from "./chunk-W24T5YMW.js";
8
8
  import "./chunk-5JMAGU26.js";
9
9
  import "./chunk-B7RWBZXW.js";
10
10
  import {
11
11
  runPostConsolidationMaterialize
12
- } from "./chunk-UK7HXNNJ.js";
12
+ } from "./chunk-KAXCYM66.js";
13
13
  import "./chunk-3UXOZBHV.js";
14
- import "./chunk-K7LTRJZU.js";
15
- import "./chunk-OU5TIWDQ.js";
14
+ import "./chunk-KEF46KL2.js";
15
+ import "./chunk-XSGUMQQQ.js";
16
16
  import "./chunk-UHVXE24Y.js";
17
17
  import "./chunk-46WM6JX2.js";
18
- import "./chunk-WVGXCBOC.js";
19
- import "./chunk-FYWLSFFS.js";
20
- import "./chunk-HNPE66LB.js";
21
- import "./chunk-N37X5RU7.js";
22
- import "./chunk-NNBZS3DY.js";
18
+ import "./chunk-D5F7TKMH.js";
19
+ import "./chunk-2Z4GS5E6.js";
20
+ import "./chunk-6CVNSDCZ.js";
21
+ import "./chunk-BD7JTBYP.js";
22
+ import "./chunk-OB3XMWX5.js";
23
23
  import "./chunk-CYEPCZN5.js";
24
- import "./chunk-GIC6BASP.js";
24
+ import "./chunk-TNSCIPBQ.js";
25
25
  import "./chunk-YQNNHLCG.js";
26
- import "./chunk-W7IGLX4G.js";
26
+ import "./chunk-4O6WRBGE.js";
27
27
  import "./chunk-6KTXE6A3.js";
28
28
  import "./chunk-GUMZC2BO.js";
29
29
  import "./chunk-227UFSEQ.js";
@@ -33,29 +33,29 @@ import "./chunk-A7Q43EUZ.js";
33
33
  import "./chunk-S2V7RUCL.js";
34
34
  import "./chunk-SO7SV523.js";
35
35
  import "./chunk-SCU65EZI.js";
36
- import "./chunk-2GF27PGH.js";
36
+ import "./chunk-MRPOZBJC.js";
37
37
  import "./chunk-S2HLHAZ4.js";
38
38
  import "./chunk-DM2T26WE.js";
39
39
  import "./chunk-LDXUBPMO.js";
40
40
  import "./chunk-XSTNGNJP.js";
41
41
  import "./chunk-AAD2ZS6P.js";
42
- import "./chunk-SLIOMMPF.js";
42
+ import "./chunk-H272ZPQ3.js";
43
43
  import "./chunk-YXZG5TVN.js";
44
44
  import "./chunk-3ONXXHQO.js";
45
45
  import "./chunk-5GINB5LC.js";
46
46
  import "./chunk-3WU7XOFN.js";
47
47
  import "./chunk-G7D6GZ5J.js";
48
- import "./chunk-E7UQOS4C.js";
48
+ import "./chunk-JPKK466T.js";
49
49
  import "./chunk-XCB6QDL6.js";
50
50
  import "./chunk-RBOJCG4T.js";
51
- import "./chunk-NNZFPYYX.js";
51
+ import "./chunk-R7QY5ZVB.js";
52
52
  import "./chunk-5WITETWU.js";
53
53
  import "./chunk-6CIAGZ6X.js";
54
54
  import "./chunk-CEH2AFXG.js";
55
55
  import "./chunk-JXN77SGO.js";
56
56
  import "./chunk-IUM3VSHI.js";
57
57
  import "./chunk-ZLQ37WJX.js";
58
- import "./chunk-MRSLR6TB.js";
58
+ import "./chunk-3QQTXYZ6.js";
59
59
  import "./chunk-BT7NVCML.js";
60
60
  import "./chunk-C64XATK7.js";
61
61
  import "./chunk-42JKGUFJ.js";
@@ -73,10 +73,10 @@ import "./chunk-ZCUTSMR2.js";
73
73
  import "./chunk-QDW3E4RD.js";
74
74
  import {
75
75
  resolveCausalTrajectoryStoreDir
76
- } from "./chunk-DSCCM66R.js";
76
+ } from "./chunk-B3O3IRZN.js";
77
77
  import "./chunk-NXH34IPL.js";
78
78
  import "./chunk-ZIKENA2C.js";
79
- import "./chunk-NTYLZXDX.js";
79
+ import "./chunk-VYCOJKSX.js";
80
80
  import "./chunk-6Q3ZTEF6.js";
81
81
  import "./chunk-W5BIQOAJ.js";
82
82
  import "./chunk-Z7L72ZHL.js";
@@ -86,13 +86,13 @@ import "./chunk-TOTT6S2V.js";
86
86
  import "./chunk-PQVCH2AE.js";
87
87
  import "./chunk-PJKTFXE2.js";
88
88
  import "./chunk-TG3FAM2S.js";
89
- import "./chunk-ZJABRLCZ.js";
89
+ import "./chunk-TBXAY2SS.js";
90
90
  import "./chunk-ZA53AZND.js";
91
91
  import "./chunk-AL3UYZ5N.js";
92
92
  import "./chunk-RL6NEVXT.js";
93
- import "./chunk-GCASGYIO.js";
93
+ import "./chunk-C7HJ3NEI.js";
94
94
  import "./chunk-7RJUVTVF.js";
95
- import "./chunk-N6A2RP5S.js";
95
+ import "./chunk-NB3LRY4T.js";
96
96
  import "./chunk-5FVVY2EB.js";
97
97
  import "./chunk-FFAZ2XFU.js";
98
98
  import "./chunk-EEOUMG3J.js";
@@ -116,12 +116,12 @@ import {
116
116
  import {
117
117
  listJsonFiles,
118
118
  readJsonFile
119
- } from "./chunk-P77QX3ID.js";
119
+ } from "./chunk-B6O2YLUR.js";
120
120
  import "./chunk-FF4KLI5W.js";
121
- import "./chunk-ET2CNMLD.js";
121
+ import "./chunk-JN72EPOE.js";
122
122
  import "./chunk-A6XUJE5D.js";
123
123
  import "./chunk-VS2IYZRU.js";
124
- import "./chunk-5UZXUTVO.js";
124
+ import "./chunk-KNA3BXXL.js";
125
125
  import {
126
126
  log
127
127
  } from "./chunk-3WCASNQZ.js";
@@ -1,15 +1,16 @@
1
1
  import {
2
2
  readChainIndex,
3
3
  resolveChainsDir
4
- } from "./chunk-EYMPUXAN.js";
4
+ } from "./chunk-LO4UKPKX.js";
5
5
  import "./chunk-B7RWBZXW.js";
6
6
  import {
7
7
  readCausalTrajectoryRecords,
8
8
  searchCausalTrajectories
9
- } from "./chunk-DSCCM66R.js";
9
+ } from "./chunk-B3O3IRZN.js";
10
10
  import "./chunk-YCVB7X56.js";
11
11
  import "./chunk-A2IYSXDQ.js";
12
- import "./chunk-P77QX3ID.js";
12
+ import "./chunk-B6O2YLUR.js";
13
+ import "./chunk-KNA3BXXL.js";
13
14
  import {
14
15
  log
15
16
  } from "./chunk-3WCASNQZ.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/causal-retrieval.ts"],"sourcesContent":["/**\n * causal-retrieval.ts — CMC Phase 3: Causal Retrieval Channel\n *\n * Walks upstream/downstream causal chains during recall to surface\n * connected trajectories. Branching points (multiple outgoing edges\n * with different outcomes) get a counterfactual boost as they represent\n * decision points worth surfacing.\n */\n\nimport type { CausalTrajectoryRecord } from \"./causal-trajectory.js\";\nimport { readCausalTrajectoryRecords, searchCausalTrajectories } from \"./causal-trajectory.js\";\nimport {\n readChainIndex,\n resolveChainsDir,\n type CausalChainIndex,\n type CausalEdge,\n} from \"./causal-chain.js\";\nimport { log } from \"./logger.js\";\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport interface CausalRetrievalConfig {\n maxDepth: number;\n maxChars: number;\n counterfactualBoost: number;\n}\n\nexport interface CausalRetrievalResult {\n trajectoryId: string;\n direction: \"upstream\" | \"downstream\" | \"seed\";\n depth: number;\n score: number;\n edgeType?: CausalEdge[\"edgeType\"];\n edgeConfidence?: number;\n isCounterfactual: boolean;\n summary: string;\n}\n\n// ─── Graph Traversal ─────────────────────────────────────────────────────────\n\n/**\n * Walk upstream (incoming edges) from a seed trajectory.\n */\nfunction walkUpstream(\n seedId: string,\n index: CausalChainIndex,\n maxDepth: number,\n counterfactualBoost: number,\n): Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> {\n const visited = new Set<string>([seedId]);\n const results: Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> = [];\n\n let frontier = [seedId];\n for (let depth = 1; depth <= maxDepth; depth++) {\n const nextFrontier: string[] = [];\n\n for (const currentId of frontier) {\n const incomingEdgeIds = index.incoming[currentId] ?? [];\n\n for (const edgeId of incomingEdgeIds) {\n const edge = index.edges[edgeId];\n if (!edge) continue;\n\n const fromId = edge.fromTrajectoryId;\n if (visited.has(fromId)) continue;\n visited.add(fromId);\n\n // Check if this is a counterfactual branching point\n const outgoingFromSource = index.outgoing[fromId] ?? [];\n const isCounterfactual = outgoingFromSource.length > 1;\n\n const depthDecay = 1 / depth;\n let score = depthDecay * edge.confidence;\n if (isCounterfactual) score += counterfactualBoost;\n\n results.push({\n trajectoryId: fromId,\n depth,\n score,\n edgeType: edge.edgeType,\n edgeConfidence: edge.confidence,\n isCounterfactual,\n });\n\n nextFrontier.push(fromId);\n }\n }\n\n frontier = nextFrontier;\n if (frontier.length === 0) break;\n }\n\n return results;\n}\n\n/**\n * Walk downstream (outgoing edges) from a seed trajectory.\n * Max 2 hops downstream (less relevant than upstream context).\n */\nfunction walkDownstream(\n seedId: string,\n index: CausalChainIndex,\n maxDepth: number,\n counterfactualBoost: number,\n): Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> {\n const downstreamMaxDepth = Math.min(maxDepth, 2);\n const visited = new Set<string>([seedId]);\n const results: Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> = [];\n\n let frontier = [seedId];\n for (let depth = 1; depth <= downstreamMaxDepth; depth++) {\n const nextFrontier: string[] = [];\n\n for (const currentId of frontier) {\n const outgoingEdgeIds = index.outgoing[currentId] ?? [];\n\n // Counterfactual: multiple outgoing = branching point\n const isCounterfactual = outgoingEdgeIds.length > 1;\n\n for (const edgeId of outgoingEdgeIds) {\n const edge = index.edges[edgeId];\n if (!edge) continue;\n\n const toId = edge.toTrajectoryId;\n if (visited.has(toId)) continue;\n visited.add(toId);\n\n const depthDecay = 1 / (depth + 1); // downstream penalized more\n let score = depthDecay * edge.confidence;\n if (isCounterfactual) score += counterfactualBoost;\n\n results.push({\n trajectoryId: toId,\n depth,\n score,\n edgeType: edge.edgeType,\n edgeConfidence: edge.confidence,\n isCounterfactual,\n });\n\n nextFrontier.push(toId);\n }\n }\n\n frontier = nextFrontier;\n if (frontier.length === 0) break;\n }\n\n return results;\n}\n\n// ─── Section Formatting ──────────────────────────────────────────────────────\n\nfunction formatRetrievalResult(result: CausalRetrievalResult): string {\n const direction = result.direction === \"upstream\" ? \"↑\" : result.direction === \"downstream\" ? \"↓\" : \"•\";\n const counterfactual = result.isCounterfactual ? \" [branching point]\" : \"\";\n const edgeInfo = result.edgeType ? ` (${result.edgeType})` : \"\";\n return `- ${direction} ${result.summary}${edgeInfo}${counterfactual}`;\n}\n\nfunction formatConnectedTrajectorySummary(\n trajectoryId: string,\n depth: number,\n trajectoriesById: Map<string, CausalTrajectoryRecord>,\n): string {\n const record = trajectoriesById.get(trajectoryId);\n if (!record) return `Depth ${depth}: trajectory ${trajectoryId.slice(0, 12)}`;\n return `Depth ${depth}: [${record.outcomeKind}] ${record.goal} → ${record.outcomeSummary}`;\n}\n\nexport function formatCausalRetrievalSection(\n results: CausalRetrievalResult[],\n maxChars: number,\n): string | null {\n if (results.length === 0) return null;\n\n const lines: string[] = [\n \"## Causal Chain Context\",\n \"\",\n \"Related causal trajectories from connected sessions:\",\n \"\",\n ];\n\n let totalChars = lines.join(\"\\n\").length;\n\n for (const result of results) {\n const line = formatRetrievalResult(result);\n if (totalChars + line.length + 1 > maxChars) break;\n lines.push(line);\n totalChars += line.length + 1;\n }\n\n if (lines.length <= 4) return null; // only header, no content\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\n// ─── Public API ──────────────────────────────────────────────────────────────\n\n/**\n * Retrieve causal chain context for a recall query.\n * 1. Use existing causal trajectory search for seed trajectories\n * 2. Walk upstream/downstream from seeds\n * 3. Format as recall section\n */\nexport async function retrieveCausalChains(options: {\n memoryDir: string;\n causalTrajectoryStoreDir?: string;\n query: string;\n sessionKey?: string;\n config: CausalRetrievalConfig;\n}): Promise<string | null> {\n try {\n const { memoryDir, causalTrajectoryStoreDir, query, sessionKey, config: retrievalConfig } = options;\n\n // 1. Search for seed trajectories matching the query\n const seeds = await searchCausalTrajectories({\n memoryDir,\n causalTrajectoryStoreDir,\n query,\n maxResults: 3,\n sessionKey,\n });\n\n if (seeds.length === 0) return null;\n\n // 2. Load chain index\n const chainsDir = resolveChainsDir(memoryDir, causalTrajectoryStoreDir);\n const chainIndex = await readChainIndex(chainsDir);\n\n if (Object.keys(chainIndex.edges).length === 0) return null;\n\n const { trajectories } = await readCausalTrajectoryRecords({ memoryDir, causalTrajectoryStoreDir });\n const trajectoriesById = new Map(trajectories.map((trajectory) => [trajectory.trajectoryId, trajectory]));\n\n // 3. Walk chains from each seed\n const allResults: CausalRetrievalResult[] = [];\n\n for (const seed of seeds) {\n // Add seed itself\n allResults.push({\n trajectoryId: seed.record.trajectoryId,\n direction: \"seed\",\n depth: 0,\n score: seed.score,\n isCounterfactual: false,\n summary: `[${seed.record.outcomeKind}] ${seed.record.goal} → ${seed.record.outcomeSummary}`,\n });\n\n // Walk upstream\n const upstream = walkUpstream(\n seed.record.trajectoryId,\n chainIndex,\n retrievalConfig.maxDepth,\n retrievalConfig.counterfactualBoost,\n );\n for (const u of upstream) {\n allResults.push({\n trajectoryId: u.trajectoryId,\n direction: \"upstream\",\n depth: u.depth,\n score: u.score,\n edgeType: u.edgeType,\n edgeConfidence: u.edgeConfidence,\n isCounterfactual: u.isCounterfactual,\n summary: formatConnectedTrajectorySummary(u.trajectoryId, u.depth, trajectoriesById),\n });\n }\n\n // Walk downstream\n const downstream = walkDownstream(\n seed.record.trajectoryId,\n chainIndex,\n retrievalConfig.maxDepth,\n retrievalConfig.counterfactualBoost,\n );\n for (const d of downstream) {\n allResults.push({\n trajectoryId: d.trajectoryId,\n direction: \"downstream\",\n depth: d.depth,\n score: d.score,\n edgeType: d.edgeType,\n edgeConfidence: d.edgeConfidence,\n isCounterfactual: d.isCounterfactual,\n summary: formatConnectedTrajectorySummary(d.trajectoryId, d.depth, trajectoriesById),\n });\n }\n }\n\n // 4. Sort by score and format\n allResults.sort((a, b) => b.score - a.score);\n\n return formatCausalRetrievalSection(allResults, retrievalConfig.maxChars);\n } catch (error) {\n log.warn(`[cmc] causal retrieval failed (non-fatal): ${error instanceof Error ? error.message : String(error)}`);\n return null;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/causal-retrieval.ts"],"sourcesContent":["/**\n * causal-retrieval.ts — CMC Phase 3: Causal Retrieval Channel\n *\n * Walks upstream/downstream causal chains during recall to surface\n * connected trajectories. Branching points (multiple outgoing edges\n * with different outcomes) get a counterfactual boost as they represent\n * decision points worth surfacing.\n */\n\nimport type { CausalTrajectoryRecord } from \"./causal-trajectory.js\";\nimport { readCausalTrajectoryRecords, searchCausalTrajectories } from \"./causal-trajectory.js\";\nimport {\n readChainIndex,\n resolveChainsDir,\n type CausalChainIndex,\n type CausalEdge,\n} from \"./causal-chain.js\";\nimport { log } from \"./logger.js\";\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport interface CausalRetrievalConfig {\n maxDepth: number;\n maxChars: number;\n counterfactualBoost: number;\n}\n\nexport interface CausalRetrievalResult {\n trajectoryId: string;\n direction: \"upstream\" | \"downstream\" | \"seed\";\n depth: number;\n score: number;\n edgeType?: CausalEdge[\"edgeType\"];\n edgeConfidence?: number;\n isCounterfactual: boolean;\n summary: string;\n}\n\n// ─── Graph Traversal ─────────────────────────────────────────────────────────\n\n/**\n * Walk upstream (incoming edges) from a seed trajectory.\n */\nfunction walkUpstream(\n seedId: string,\n index: CausalChainIndex,\n maxDepth: number,\n counterfactualBoost: number,\n): Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> {\n const visited = new Set<string>([seedId]);\n const results: Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> = [];\n\n let frontier = [seedId];\n for (let depth = 1; depth <= maxDepth; depth++) {\n const nextFrontier: string[] = [];\n\n for (const currentId of frontier) {\n const incomingEdgeIds = index.incoming[currentId] ?? [];\n\n for (const edgeId of incomingEdgeIds) {\n const edge = index.edges[edgeId];\n if (!edge) continue;\n\n const fromId = edge.fromTrajectoryId;\n if (visited.has(fromId)) continue;\n visited.add(fromId);\n\n // Check if this is a counterfactual branching point\n const outgoingFromSource = index.outgoing[fromId] ?? [];\n const isCounterfactual = outgoingFromSource.length > 1;\n\n const depthDecay = 1 / depth;\n let score = depthDecay * edge.confidence;\n if (isCounterfactual) score += counterfactualBoost;\n\n results.push({\n trajectoryId: fromId,\n depth,\n score,\n edgeType: edge.edgeType,\n edgeConfidence: edge.confidence,\n isCounterfactual,\n });\n\n nextFrontier.push(fromId);\n }\n }\n\n frontier = nextFrontier;\n if (frontier.length === 0) break;\n }\n\n return results;\n}\n\n/**\n * Walk downstream (outgoing edges) from a seed trajectory.\n * Max 2 hops downstream (less relevant than upstream context).\n */\nfunction walkDownstream(\n seedId: string,\n index: CausalChainIndex,\n maxDepth: number,\n counterfactualBoost: number,\n): Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> {\n const downstreamMaxDepth = Math.min(maxDepth, 2);\n const visited = new Set<string>([seedId]);\n const results: Array<{ trajectoryId: string; depth: number; score: number; edgeType: CausalEdge[\"edgeType\"]; edgeConfidence: number; isCounterfactual: boolean }> = [];\n\n let frontier = [seedId];\n for (let depth = 1; depth <= downstreamMaxDepth; depth++) {\n const nextFrontier: string[] = [];\n\n for (const currentId of frontier) {\n const outgoingEdgeIds = index.outgoing[currentId] ?? [];\n\n // Counterfactual: multiple outgoing = branching point\n const isCounterfactual = outgoingEdgeIds.length > 1;\n\n for (const edgeId of outgoingEdgeIds) {\n const edge = index.edges[edgeId];\n if (!edge) continue;\n\n const toId = edge.toTrajectoryId;\n if (visited.has(toId)) continue;\n visited.add(toId);\n\n const depthDecay = 1 / (depth + 1); // downstream penalized more\n let score = depthDecay * edge.confidence;\n if (isCounterfactual) score += counterfactualBoost;\n\n results.push({\n trajectoryId: toId,\n depth,\n score,\n edgeType: edge.edgeType,\n edgeConfidence: edge.confidence,\n isCounterfactual,\n });\n\n nextFrontier.push(toId);\n }\n }\n\n frontier = nextFrontier;\n if (frontier.length === 0) break;\n }\n\n return results;\n}\n\n// ─── Section Formatting ──────────────────────────────────────────────────────\n\nfunction formatRetrievalResult(result: CausalRetrievalResult): string {\n const direction = result.direction === \"upstream\" ? \"↑\" : result.direction === \"downstream\" ? \"↓\" : \"•\";\n const counterfactual = result.isCounterfactual ? \" [branching point]\" : \"\";\n const edgeInfo = result.edgeType ? ` (${result.edgeType})` : \"\";\n return `- ${direction} ${result.summary}${edgeInfo}${counterfactual}`;\n}\n\nfunction formatConnectedTrajectorySummary(\n trajectoryId: string,\n depth: number,\n trajectoriesById: Map<string, CausalTrajectoryRecord>,\n): string {\n const record = trajectoriesById.get(trajectoryId);\n if (!record) return `Depth ${depth}: trajectory ${trajectoryId.slice(0, 12)}`;\n return `Depth ${depth}: [${record.outcomeKind}] ${record.goal} → ${record.outcomeSummary}`;\n}\n\nexport function formatCausalRetrievalSection(\n results: CausalRetrievalResult[],\n maxChars: number,\n): string | null {\n if (results.length === 0) return null;\n\n const lines: string[] = [\n \"## Causal Chain Context\",\n \"\",\n \"Related causal trajectories from connected sessions:\",\n \"\",\n ];\n\n let totalChars = lines.join(\"\\n\").length;\n\n for (const result of results) {\n const line = formatRetrievalResult(result);\n if (totalChars + line.length + 1 > maxChars) break;\n lines.push(line);\n totalChars += line.length + 1;\n }\n\n if (lines.length <= 4) return null; // only header, no content\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\n// ─── Public API ──────────────────────────────────────────────────────────────\n\n/**\n * Retrieve causal chain context for a recall query.\n * 1. Use existing causal trajectory search for seed trajectories\n * 2. Walk upstream/downstream from seeds\n * 3. Format as recall section\n */\nexport async function retrieveCausalChains(options: {\n memoryDir: string;\n causalTrajectoryStoreDir?: string;\n query: string;\n sessionKey?: string;\n config: CausalRetrievalConfig;\n}): Promise<string | null> {\n try {\n const { memoryDir, causalTrajectoryStoreDir, query, sessionKey, config: retrievalConfig } = options;\n\n // 1. Search for seed trajectories matching the query\n const seeds = await searchCausalTrajectories({\n memoryDir,\n causalTrajectoryStoreDir,\n query,\n maxResults: 3,\n sessionKey,\n });\n\n if (seeds.length === 0) return null;\n\n // 2. Load chain index\n const chainsDir = resolveChainsDir(memoryDir, causalTrajectoryStoreDir);\n const chainIndex = await readChainIndex(chainsDir);\n\n if (Object.keys(chainIndex.edges).length === 0) return null;\n\n const { trajectories } = await readCausalTrajectoryRecords({ memoryDir, causalTrajectoryStoreDir });\n const trajectoriesById = new Map(trajectories.map((trajectory) => [trajectory.trajectoryId, trajectory]));\n\n // 3. Walk chains from each seed\n const allResults: CausalRetrievalResult[] = [];\n\n for (const seed of seeds) {\n // Add seed itself\n allResults.push({\n trajectoryId: seed.record.trajectoryId,\n direction: \"seed\",\n depth: 0,\n score: seed.score,\n isCounterfactual: false,\n summary: `[${seed.record.outcomeKind}] ${seed.record.goal} → ${seed.record.outcomeSummary}`,\n });\n\n // Walk upstream\n const upstream = walkUpstream(\n seed.record.trajectoryId,\n chainIndex,\n retrievalConfig.maxDepth,\n retrievalConfig.counterfactualBoost,\n );\n for (const u of upstream) {\n allResults.push({\n trajectoryId: u.trajectoryId,\n direction: \"upstream\",\n depth: u.depth,\n score: u.score,\n edgeType: u.edgeType,\n edgeConfidence: u.edgeConfidence,\n isCounterfactual: u.isCounterfactual,\n summary: formatConnectedTrajectorySummary(u.trajectoryId, u.depth, trajectoriesById),\n });\n }\n\n // Walk downstream\n const downstream = walkDownstream(\n seed.record.trajectoryId,\n chainIndex,\n retrievalConfig.maxDepth,\n retrievalConfig.counterfactualBoost,\n );\n for (const d of downstream) {\n allResults.push({\n trajectoryId: d.trajectoryId,\n direction: \"downstream\",\n depth: d.depth,\n score: d.score,\n edgeType: d.edgeType,\n edgeConfidence: d.edgeConfidence,\n isCounterfactual: d.isCounterfactual,\n summary: formatConnectedTrajectorySummary(d.trajectoryId, d.depth, trajectoriesById),\n });\n }\n }\n\n // 4. Sort by score and format\n allResults.sort((a, b) => b.score - a.score);\n\n return formatCausalRetrievalSection(allResults, retrievalConfig.maxChars);\n } catch (error) {\n log.warn(`[cmc] causal retrieval failed (non-fatal): ${error instanceof Error ? error.message : String(error)}`);\n return null;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  appendEdge
3
- } from "./chunk-MSOXFXCA.js";
3
+ } from "./chunk-5FAGCOZD.js";
4
4
  import "./chunk-EUT2WCWS.js";
5
5
  import "./chunk-2LSZVONP.js";
6
6
  import "./chunk-DEUNUKTD.js";
7
7
  import "./chunk-LXY5VVGM.js";
8
8
  import "./chunk-GKCXTSFF.js";
9
9
  import "./chunk-FFAZ2XFU.js";
10
+ import "./chunk-KNA3BXXL.js";
10
11
  import "./chunk-PZ5AY32C.js";
11
12
 
12
13
  // src/causal-trajectory-graph.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/causal-trajectory-graph.ts"],"sourcesContent":["import { appendEdge, type GraphEdge } from \"./graph.js\";\nimport type { CausalTrajectoryRecord } from \"./causal-trajectory.js\";\n\nexport type CausalTrajectoryGraphStage = \"goal\" | \"action\" | \"observation\" | \"outcome\" | \"follow_up\";\n\nexport function causalTrajectoryGraphNodeId(trajectoryId: string, stage: CausalTrajectoryGraphStage): string {\n return `causal-trajectory/${trajectoryId}#${stage}`;\n}\n\nexport function buildCausalTrajectoryGraphEdges(record: CausalTrajectoryRecord): GraphEdge[] {\n const edges: GraphEdge[] = [\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"goal\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"action\"),\n type: \"causal\",\n weight: 1.0,\n label: \"goal_to_action\",\n ts: record.recordedAt,\n },\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"action\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"observation\"),\n type: \"causal\",\n weight: 1.0,\n label: \"action_to_observation\",\n ts: record.recordedAt,\n },\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"observation\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"outcome\"),\n type: \"causal\",\n weight: 1.0,\n label: `observation_to_outcome:${record.outcomeKind}`,\n ts: record.recordedAt,\n },\n ];\n\n if (record.followUpSummary) {\n edges.push({\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"outcome\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"follow_up\"),\n type: \"causal\",\n weight: 1.0,\n label: \"outcome_to_follow_up\",\n ts: record.recordedAt,\n });\n }\n\n return edges;\n}\n\nexport async function appendCausalTrajectoryGraphEdges(options: {\n memoryDir: string;\n record: CausalTrajectoryRecord;\n}): Promise<void> {\n const edges = buildCausalTrajectoryGraphEdges(options.record);\n for (const edge of edges) {\n await appendEdge(options.memoryDir, edge);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAKO,SAAS,4BAA4B,cAAsB,OAA2C;AAC3G,SAAO,qBAAqB,YAAY,IAAI,KAAK;AACnD;AAEO,SAAS,gCAAgC,QAA6C;AAC3F,QAAM,QAAqB;AAAA,IACzB;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,MAAM;AAAA,MAC7D,IAAI,4BAA4B,OAAO,cAAc,QAAQ;AAAA,MAC7D,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb;AAAA,IACA;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,QAAQ;AAAA,MAC/D,IAAI,4BAA4B,OAAO,cAAc,aAAa;AAAA,MAClE,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb;AAAA,IACA;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,aAAa;AAAA,MACpE,IAAI,4BAA4B,OAAO,cAAc,SAAS;AAAA,MAC9D,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO,0BAA0B,OAAO,WAAW;AAAA,MACnD,IAAI,OAAO;AAAA,IACb;AAAA,EACF;AAEA,MAAI,OAAO,iBAAiB;AAC1B,UAAM,KAAK;AAAA,MACT,MAAM,4BAA4B,OAAO,cAAc,SAAS;AAAA,MAChE,IAAI,4BAA4B,OAAO,cAAc,WAAW;AAAA,MAChE,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,eAAsB,iCAAiC,SAGrC;AAChB,QAAM,QAAQ,gCAAgC,QAAQ,MAAM;AAC5D,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,QAAQ,WAAW,IAAI;AAAA,EAC1C;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/causal-trajectory-graph.ts"],"sourcesContent":["import { appendEdge, type GraphEdge } from \"./graph.js\";\nimport type { CausalTrajectoryRecord } from \"./causal-trajectory.js\";\n\nexport type CausalTrajectoryGraphStage = \"goal\" | \"action\" | \"observation\" | \"outcome\" | \"follow_up\";\n\nexport function causalTrajectoryGraphNodeId(trajectoryId: string, stage: CausalTrajectoryGraphStage): string {\n return `causal-trajectory/${trajectoryId}#${stage}`;\n}\n\nexport function buildCausalTrajectoryGraphEdges(record: CausalTrajectoryRecord): GraphEdge[] {\n const edges: GraphEdge[] = [\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"goal\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"action\"),\n type: \"causal\",\n weight: 1.0,\n label: \"goal_to_action\",\n ts: record.recordedAt,\n },\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"action\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"observation\"),\n type: \"causal\",\n weight: 1.0,\n label: \"action_to_observation\",\n ts: record.recordedAt,\n },\n {\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"observation\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"outcome\"),\n type: \"causal\",\n weight: 1.0,\n label: `observation_to_outcome:${record.outcomeKind}`,\n ts: record.recordedAt,\n },\n ];\n\n if (record.followUpSummary) {\n edges.push({\n from: causalTrajectoryGraphNodeId(record.trajectoryId, \"outcome\"),\n to: causalTrajectoryGraphNodeId(record.trajectoryId, \"follow_up\"),\n type: \"causal\",\n weight: 1.0,\n label: \"outcome_to_follow_up\",\n ts: record.recordedAt,\n });\n }\n\n return edges;\n}\n\nexport async function appendCausalTrajectoryGraphEdges(options: {\n memoryDir: string;\n record: CausalTrajectoryRecord;\n}): Promise<void> {\n const edges = buildCausalTrajectoryGraphEdges(options.record);\n for (const edge of edges) {\n await appendEdge(options.memoryDir, edge);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAKO,SAAS,4BAA4B,cAAsB,OAA2C;AAC3G,SAAO,qBAAqB,YAAY,IAAI,KAAK;AACnD;AAEO,SAAS,gCAAgC,QAA6C;AAC3F,QAAM,QAAqB;AAAA,IACzB;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,MAAM;AAAA,MAC7D,IAAI,4BAA4B,OAAO,cAAc,QAAQ;AAAA,MAC7D,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb;AAAA,IACA;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,QAAQ;AAAA,MAC/D,IAAI,4BAA4B,OAAO,cAAc,aAAa;AAAA,MAClE,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb;AAAA,IACA;AAAA,MACE,MAAM,4BAA4B,OAAO,cAAc,aAAa;AAAA,MACpE,IAAI,4BAA4B,OAAO,cAAc,SAAS;AAAA,MAC9D,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO,0BAA0B,OAAO,WAAW;AAAA,MACnD,IAAI,OAAO;AAAA,IACb;AAAA,EACF;AAEA,MAAI,OAAO,iBAAiB;AAC1B,UAAM,KAAK;AAAA,MACT,MAAM,4BAA4B,OAAO,cAAc,SAAS;AAAA,MAChE,IAAI,4BAA4B,OAAO,cAAc,WAAW;AAAA,MAChE,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,IAAI,OAAO;AAAA,IACb,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,eAAsB,iCAAiC,SAGrC;AAChB,QAAM,QAAQ,gCAAgC,QAAQ,MAAM;AAC5D,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,QAAQ,WAAW,IAAI;AAAA,EAC1C;AACF;","names":[]}
@@ -9,10 +9,11 @@ import {
9
9
  resolveCausalTrajectoryStoreDir,
10
10
  searchCausalTrajectories,
11
11
  validateCausalTrajectoryRecord
12
- } from "./chunk-DSCCM66R.js";
12
+ } from "./chunk-B3O3IRZN.js";
13
13
  import "./chunk-YCVB7X56.js";
14
14
  import "./chunk-A2IYSXDQ.js";
15
- import "./chunk-P77QX3ID.js";
15
+ import "./chunk-B6O2YLUR.js";
16
+ import "./chunk-KNA3BXXL.js";
16
17
  import "./chunk-PZ5AY32C.js";
17
18
  export {
18
19
  advanceCausalTrajectoryRevisionToken,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
3
3
  SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES
4
- } from "./chunk-62WZDHTW.js";
4
+ } from "./chunk-ICKJ52PE.js";
5
5
  import {
6
6
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
7
7
  } from "./chunk-EEOUMG3J.js";
@@ -343,4 +343,4 @@ export {
343
343
  parseSupportPassportModelJob,
344
344
  SupportPassportModelBridge
345
345
  };
346
- //# sourceMappingURL=chunk-5RWHODVF.js.map
346
+ //# sourceMappingURL=chunk-27QVNSQ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-OU5TIWDQ.js";
3
+ } from "./chunk-XSGUMQQQ.js";
4
4
  import {
5
5
  inferMemoryStatus
6
6
  } from "./chunk-7RJUVTVF.js";
@@ -253,4 +253,4 @@ export {
253
253
  WHO_KNOWS_MCP_TOOLS,
254
254
  handleWhoKnowsHttpQuery
255
255
  };
256
- //# sourceMappingURL=chunk-2MX7RU7B.js.map
256
+ //# sourceMappingURL=chunk-2EKJDQZB.js.map
@@ -15,10 +15,10 @@ import {
15
15
  PRE_ACTION_GATE_DEFAULT_TIMEOUT_MS,
16
16
  normalizeActionIntent,
17
17
  sanitizePayloadString
18
- } from "./chunk-YRWDPE32.js";
18
+ } from "./chunk-Z3O53WZR.js";
19
19
  import {
20
20
  parseSubjectRuntimeConfig
21
- } from "./chunk-ZZBQNQS6.js";
21
+ } from "./chunk-H3TKENU4.js";
22
22
  import {
23
23
  cloneDefaultSessionObserverBands
24
24
  } from "./chunk-Z5LAYHGJ.js";
@@ -107,7 +107,7 @@ import {
107
107
  } from "./chunk-5GKPFL3S.js";
108
108
  import {
109
109
  parseOfflineSyncExcludes
110
- } from "./chunk-4F24PHNX.js";
110
+ } from "./chunk-WQZZDN5M.js";
111
111
  import {
112
112
  expandTildePath
113
113
  } from "./chunk-EYIEWJNI.js";
@@ -4792,4 +4792,4 @@ export {
4792
4792
  VALID_MEMORY_CATEGORIES,
4793
4793
  parseConfig
4794
4794
  };
4795
- //# sourceMappingURL=chunk-XLRM6PPI.js.map
4795
+ //# sourceMappingURL=chunk-2IOHTUP3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-OU5TIWDQ.js";
3
+ } from "./chunk-XSGUMQQQ.js";
4
4
  import {
5
5
  activityDigestPath,
6
6
  isValidActivityDate
@@ -199,4 +199,4 @@ export {
199
199
  buildStandup,
200
200
  standupHelp
201
201
  };
202
- //# sourceMappingURL=chunk-ZGQDTD5T.js.map
202
+ //# sourceMappingURL=chunk-2ITE4C2Z.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-G7D6GZ5J.js";
5
5
  import {
6
6
  sidecarKey
7
- } from "./chunk-E7UQOS4C.js";
7
+ } from "./chunk-JPKK466T.js";
8
8
  import {
9
9
  RECALL_FALLBACK_DIRS
10
10
  } from "./chunk-VS2IYZRU.js";
@@ -342,4 +342,4 @@ function isPathWithin(candidate, root) {
342
342
  export {
343
343
  runConsolidationProvenanceCheck
344
344
  };
345
- //# sourceMappingURL=chunk-O5ZR7SXV.js.map
345
+ //# sourceMappingURL=chunk-2SGLMP2E.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-HNPE66LB.js";
3
+ } from "./chunk-6CVNSDCZ.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -470,4 +470,4 @@ export {
470
470
  NamespaceSearchRouter,
471
471
  normalizeQmdResultPath
472
472
  };
473
- //# sourceMappingURL=chunk-FYWLSFFS.js.map
473
+ //# sourceMappingURL=chunk-2Z4GS5E6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runGraphEdgeDecayMaintenanceAcrossNamespaces
3
- } from "./chunk-6PST2SFW.js";
3
+ } from "./chunk-SCXURCVT.js";
4
4
  import {
5
5
  normalizeDreamsStatusWindowHours
6
6
  } from "./chunk-EQWEIIKQ.js";
@@ -8,7 +8,7 @@ import {
8
8
  executeResolution,
9
9
  isValidResolutionVerb,
10
10
  runPreferenceDriftScan
11
- } from "./chunk-6VML2LII.js";
11
+ } from "./chunk-XOVKXJEP.js";
12
12
  import {
13
13
  runContradictionScan
14
14
  } from "./chunk-YYGZJPOK.js";
@@ -28,15 +28,15 @@ import {
28
28
  import {
29
29
  observeRequestSchema,
30
30
  recallRequestSchema
31
- } from "./chunk-IZRMWPGS.js";
31
+ } from "./chunk-N3ZOP7KC.js";
32
32
  import {
33
33
  defineOperation,
34
34
  parseNamespacePreflightWriteOp,
35
35
  resolveAuthorizedNamespaceWritablePreflight
36
- } from "./chunk-62WZDHTW.js";
36
+ } from "./chunk-ICKJ52PE.js";
37
37
  import {
38
38
  validateBriefingFormat
39
- } from "./chunk-YBLZFNIQ.js";
39
+ } from "./chunk-WJHGDE7X.js";
40
40
  import {
41
41
  enforceNamespaceAllowList,
42
42
  tokenCapabilityStore
@@ -543,4 +543,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
543
543
  defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
544
544
  defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
545
545
  defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
546
- //# sourceMappingURL=chunk-WELP4CG6.js.map
546
+ //# sourceMappingURL=chunk-37KUQPX4.js.map
@@ -1,15 +1,15 @@
1
+ import {
2
+ throwIfAborted
3
+ } from "./chunk-BTTPKDIL.js";
1
4
  import {
2
5
  MAGIC_HEADER_SIZE,
3
6
  isEncryptedFile
4
- } from "./chunk-ET2CNMLD.js";
7
+ } from "./chunk-JN72EPOE.js";
5
8
 
6
9
  // src/offline-sync-file-io.ts
7
10
  import { createHash } from "crypto";
8
11
  import { createReadStream } from "fs";
9
12
  import { open } from "fs/promises";
10
- function throwIfAborted(signal) {
11
- if (signal?.aborted) throw new Error("offline sync request aborted");
12
- }
13
13
  async function shouldExcludeOfflineSyncFile(excludeFile, target) {
14
14
  return excludeFile ? await excludeFile(target) : false;
15
15
  }
@@ -17,12 +17,12 @@ async function sha256OfflineSyncFile(filePath, signal) {
17
17
  const hash = createHash("sha256");
18
18
  let bytes = 0;
19
19
  for await (const chunk of createReadStream(filePath)) {
20
- throwIfAborted(signal);
20
+ throwIfAborted(signal, "offline sync request aborted");
21
21
  const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
22
22
  hash.update(buffer);
23
23
  bytes += buffer.length;
24
24
  }
25
- throwIfAborted(signal);
25
+ throwIfAborted(signal, "offline sync request aborted");
26
26
  return { sha256: hash.digest("hex"), bytes };
27
27
  }
28
28
  async function isEncryptedOfflineSyncFile(filePath) {
@@ -62,4 +62,4 @@ export {
62
62
  readPlainOfflineSyncFileChunk,
63
63
  plainFileDigest
64
64
  };
65
- //# sourceMappingURL=chunk-DDQQY2E3.js.map
65
+ //# sourceMappingURL=chunk-3BTFBQLO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/offline-sync-file-io.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { createReadStream } from \"node:fs\";\nimport { open } from \"node:fs/promises\";\nimport { throwIfAborted } from \"./abort-error.js\";\nimport { MAGIC_HEADER_SIZE, isEncryptedFile } from \"./secure-store/secure-fs.js\";\n\nexport interface OfflineSyncFileTarget {\n root: string;\n path: string;\n filePath: string;\n}\n\nexport type OfflineSyncExcludeFile = (target: OfflineSyncFileTarget) => boolean | Promise<boolean>;\nexport async function shouldExcludeOfflineSyncFile(\n excludeFile: OfflineSyncExcludeFile | undefined,\n target: OfflineSyncFileTarget\n): Promise<boolean> {\n return excludeFile ? await excludeFile(target) : false;\n}\n\nexport async function sha256OfflineSyncFile(\n filePath: string,\n signal?: AbortSignal\n): Promise<{ sha256: string; bytes: number }> {\n const hash = createHash(\"sha256\");\n let bytes = 0;\n for await (const chunk of createReadStream(filePath)) {\n throwIfAborted(signal, \"offline sync request aborted\");\n const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);\n hash.update(buffer);\n bytes += buffer.length;\n }\n throwIfAborted(signal, \"offline sync request aborted\");\n return { sha256: hash.digest(\"hex\"), bytes };\n}\n\nexport async function isEncryptedOfflineSyncFile(filePath: string): Promise<boolean> {\n const handle = await open(filePath, \"r\");\n try {\n const header = Buffer.alloc(MAGIC_HEADER_SIZE);\n const { bytesRead } = await handle.read(header, 0, header.length, 0);\n return bytesRead >= MAGIC_HEADER_SIZE && isEncryptedFile(header);\n } finally {\n await handle.close();\n }\n}\n\nexport async function readPlainOfflineSyncFileChunk(options: {\n filePath: string;\n offset: number;\n length: number;\n bytes: number;\n}): Promise<Buffer> {\n const chunkBytes = Math.min(options.length, options.bytes - options.offset);\n const chunk = Buffer.alloc(chunkBytes);\n if (chunkBytes === 0) return chunk;\n const handle = await open(options.filePath, \"r\");\n try {\n const { bytesRead } = await handle.read(chunk, 0, chunk.length, options.offset);\n return bytesRead === chunk.length ? chunk : chunk.subarray(0, bytesRead);\n } finally {\n await handle.close();\n }\n}\n\n/** Streamed whole-file sha256 for plain-file chunk reads — the value the\n * file-content response contract exposes as x-remnic-file-sha256. Deliberately\n * UNCACHED: identity keys like (path, size, mtimeMs) are spoofable (a rewrite\n * that preserves size and mtime would serve a stale digest, defeating the\n * uploader's verify-before-idempotent-skip check). One bounded-memory hash\n * pass per chunk request; content reads stay windowed. */\nexport async function plainFileDigest(filePath: string): Promise<string> {\n const hash = createHash(\"sha256\");\n for await (const piece of createReadStream(filePath)) {\n hash.update(piece as Buffer);\n }\n return hash.digest(\"hex\");\n}\n"],"mappings":";;;;;;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,SAAS,YAAY;AAWrB,eAAsB,6BACpB,aACA,QACkB;AAClB,SAAO,cAAc,MAAM,YAAY,MAAM,IAAI;AACnD;AAEA,eAAsB,sBACpB,UACA,QAC4C;AAC5C,QAAM,OAAO,WAAW,QAAQ;AAChC,MAAI,QAAQ;AACZ,mBAAiB,SAAS,iBAAiB,QAAQ,GAAG;AACpD,mBAAe,QAAQ,8BAA8B;AACrD,UAAM,SAAS,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,KAAK,KAAK;AACjE,SAAK,OAAO,MAAM;AAClB,aAAS,OAAO;AAAA,EAClB;AACA,iBAAe,QAAQ,8BAA8B;AACrD,SAAO,EAAE,QAAQ,KAAK,OAAO,KAAK,GAAG,MAAM;AAC7C;AAEA,eAAsB,2BAA2B,UAAoC;AACnF,QAAM,SAAS,MAAM,KAAK,UAAU,GAAG;AACvC,MAAI;AACF,UAAM,SAAS,OAAO,MAAM,iBAAiB;AAC7C,UAAM,EAAE,UAAU,IAAI,MAAM,OAAO,KAAK,QAAQ,GAAG,OAAO,QAAQ,CAAC;AACnE,WAAO,aAAa,qBAAqB,gBAAgB,MAAM;AAAA,EACjE,UAAE;AACA,UAAM,OAAO,MAAM;AAAA,EACrB;AACF;AAEA,eAAsB,8BAA8B,SAKhC;AAClB,QAAM,aAAa,KAAK,IAAI,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAC1E,QAAM,QAAQ,OAAO,MAAM,UAAU;AACrC,MAAI,eAAe,EAAG,QAAO;AAC7B,QAAM,SAAS,MAAM,KAAK,QAAQ,UAAU,GAAG;AAC/C,MAAI;AACF,UAAM,EAAE,UAAU,IAAI,MAAM,OAAO,KAAK,OAAO,GAAG,MAAM,QAAQ,QAAQ,MAAM;AAC9E,WAAO,cAAc,MAAM,SAAS,QAAQ,MAAM,SAAS,GAAG,SAAS;AAAA,EACzE,UAAE;AACA,UAAM,OAAO,MAAM;AAAA,EACrB;AACF;AAQA,eAAsB,gBAAgB,UAAmC;AACvE,QAAM,OAAO,WAAW,QAAQ;AAChC,mBAAiB,SAAS,iBAAiB,QAAQ,GAAG;AACpD,SAAK,OAAO,KAAe;AAAA,EAC7B;AACA,SAAO,KAAK,OAAO,KAAK;AAC1B;","names":[]}