@remnic/core 10.0.2 → 10.0.4

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 (369) hide show
  1. package/dist/access-admin-ops-surface.js +46 -46
  2. package/dist/access-authorization-probe.js +47 -47
  3. package/dist/access-boundary.js +46 -46
  4. package/dist/access-citation-namespace.js +2 -2
  5. package/dist/access-cli.js +111 -109
  6. package/dist/access-cli.js.map +1 -1
  7. package/dist/access-extraction-force-flush.js +46 -46
  8. package/dist/access-http-briefing.js +47 -47
  9. package/dist/access-http-query.js +48 -48
  10. package/dist/access-http.js +65 -65
  11. package/dist/access-identity-continuity-surface.js +46 -46
  12. package/dist/access-lcm-surface.js +46 -46
  13. package/dist/access-mcp.js +56 -56
  14. package/dist/access-namespace-preflight.js +46 -46
  15. package/dist/access-observe-write-category.js +2 -2
  16. package/dist/access-observe-write-surface.js +46 -46
  17. package/dist/access-offline-manifest.js +4 -4
  18. package/dist/access-operations-batch.js +47 -47
  19. package/dist/access-operations.js +54 -54
  20. package/dist/access-recall-concurrency.js +46 -46
  21. package/dist/access-recall-diagnostics.js +2 -2
  22. package/dist/access-recall-response.js +46 -46
  23. package/dist/access-recall-surface.js +46 -46
  24. package/dist/access-service.js +46 -46
  25. package/dist/access-surface-catalog.js +48 -48
  26. package/dist/active-recall.js +19 -18
  27. package/dist/active-recall.js.map +1 -1
  28. package/dist/adapters/index.js +4 -4
  29. package/dist/adapters/registry.js +2 -2
  30. package/dist/{auto-sync-PAWBFQWL.js → auto-sync-FN7E3OTO.js} +4 -4
  31. package/dist/briefing.js +18 -18
  32. package/dist/buffer.js +7 -7
  33. package/dist/causal-consolidation.js +19 -19
  34. package/dist/{chunk-G3T6YMBO.js → chunk-2KB7TTAP.js} +4 -4
  35. package/dist/{chunk-345MEMRU.js → chunk-3OUGSOJP.js} +2 -2
  36. package/dist/{chunk-CVQWNACA.js → chunk-3QAIX7TV.js} +2 -2
  37. package/dist/{chunk-PTGPU4DC.js → chunk-436IRJUD.js} +4 -4
  38. package/dist/{chunk-G2STTRYB.js → chunk-4D2YH47Z.js} +2 -2
  39. package/dist/{chunk-DQQ4IM5L.js → chunk-4DXVWBDB.js} +2 -2
  40. package/dist/{chunk-M2OPC4BD.js → chunk-4NFRYOHT.js} +2 -2
  41. package/dist/{chunk-PWVBVIOP.js → chunk-5QHTQMRL.js} +5 -5
  42. package/dist/{chunk-RFIJRZ4K.js → chunk-5XXTZ4Y7.js} +2 -2
  43. package/dist/{chunk-S4DDLTPX.js → chunk-5Y43VGYB.js} +2 -2
  44. package/dist/{chunk-LQGX5TCI.js → chunk-5YDWSWBU.js} +3 -3
  45. package/dist/{chunk-FNVSBUC3.js → chunk-6AH2DDHI.js} +2 -2
  46. package/dist/{chunk-5GINB5LC.js → chunk-6MKLMEBE.js} +1 -1
  47. package/dist/{chunk-5GINB5LC.js.map → chunk-6MKLMEBE.js.map} +1 -1
  48. package/dist/{chunk-JDOBIFBK.js → chunk-7CXL25AA.js} +2 -2
  49. package/dist/{chunk-YLBE6PLR.js → chunk-7IGMKQWK.js} +2 -2
  50. package/dist/{chunk-JFDKPW54.js → chunk-7OOW72QA.js} +27 -27
  51. package/dist/{chunk-J5CUQRST.js → chunk-ABDTBGI2.js} +2 -2
  52. package/dist/{chunk-LHOIYLKH.js → chunk-ABET5LA5.js} +61 -50
  53. package/dist/chunk-ABET5LA5.js.map +1 -0
  54. package/dist/{chunk-IB63OVUB.js → chunk-AJ6ORARY.js} +6 -6
  55. package/dist/{chunk-U6VC6RP3.js → chunk-AWLQNLTM.js} +2 -2
  56. package/dist/{chunk-PJSK6OJM.js → chunk-BANSBRNX.js} +2 -2
  57. package/dist/{chunk-32HO62I4.js → chunk-BDHWKFGM.js} +2 -2
  58. package/dist/{chunk-AW4QUFQF.js → chunk-BTNNL7ZW.js} +3 -2
  59. package/dist/{chunk-AW4QUFQF.js.map → chunk-BTNNL7ZW.js.map} +1 -1
  60. package/dist/{chunk-MY7B3HYC.js → chunk-CLCMDKTB.js} +2 -2
  61. package/dist/{chunk-AALVXJJ7.js → chunk-CQQTEDHS.js} +2 -2
  62. package/dist/{chunk-2SYRHFUG.js → chunk-CV5AMCPX.js} +2 -2
  63. package/dist/{chunk-BTOHGPHC.js → chunk-CXG2T7BJ.js} +3 -3
  64. package/dist/{chunk-4A2UMSNB.js → chunk-DBA2W6VV.js} +230 -81
  65. package/dist/chunk-DBA2W6VV.js.map +1 -0
  66. package/dist/{chunk-E7FN5N5E.js → chunk-DQJCQHII.js} +2 -2
  67. package/dist/{chunk-CAXMG4JI.js → chunk-DYRXRQHV.js} +2 -2
  68. package/dist/{chunk-IIFFC3RL.js → chunk-EDR6CVWZ.js} +2 -2
  69. package/dist/{chunk-6O2VUWV6.js → chunk-EIFYYHAF.js} +2 -2
  70. package/dist/{chunk-2JRB3Z5N.js → chunk-EP5WXE2G.js} +3 -3
  71. package/dist/chunk-EWMRFW3F.js +38 -0
  72. package/dist/chunk-EWMRFW3F.js.map +1 -0
  73. package/dist/chunk-FMIVV5SV.js +80 -0
  74. package/dist/chunk-FMIVV5SV.js.map +1 -0
  75. package/dist/{chunk-2EZB2DL5.js → chunk-GE6HETIF.js} +3 -3
  76. package/dist/{chunk-YVHNBOK2.js → chunk-GLS3A4SQ.js} +2 -2
  77. package/dist/{chunk-7IGNDEUJ.js → chunk-H2XCCUOT.js} +3 -3
  78. package/dist/{chunk-A5N6ZEUW.js → chunk-H6FA36LC.js} +2 -2
  79. package/dist/{chunk-WPMDNCGB.js → chunk-HSZBALHV.js} +2 -2
  80. package/dist/{chunk-XG4XXI66.js → chunk-I25RQA65.js} +2 -2
  81. package/dist/{chunk-NBK24POV.js → chunk-IHIP7TJ3.js} +2 -2
  82. package/dist/{chunk-DAVONFNK.js → chunk-IINXHPCV.js} +2 -2
  83. package/dist/{chunk-EJJMDLVB.js → chunk-IJ4FEGZR.js} +2 -2
  84. package/dist/{chunk-SQPC6MUM.js → chunk-IRYKRBEX.js} +4 -4
  85. package/dist/{chunk-JOBE47EJ.js → chunk-IVGJXS5F.js} +2 -2
  86. package/dist/{chunk-36BUOTVN.js → chunk-IXF7TRMQ.js} +2 -2
  87. package/dist/{chunk-RVQVWDSN.js → chunk-IY7ZISXV.js} +2 -2
  88. package/dist/{chunk-5FLFPTDK.js → chunk-JA72X46J.js} +2 -2
  89. package/dist/{chunk-NLYOOGZ7.js → chunk-KE5PWLI6.js} +3 -3
  90. package/dist/{chunk-FF4KLI5W.js → chunk-LDPPTPO5.js} +8 -1
  91. package/dist/chunk-LDPPTPO5.js.map +1 -0
  92. package/dist/{chunk-U4SG4HKQ.js → chunk-LIGP5M2C.js} +2 -2
  93. package/dist/{chunk-EB3RXN2L.js → chunk-MEMH5NKJ.js} +2 -2
  94. package/dist/{chunk-4G2COUSD.js → chunk-MEP3POVW.js} +2 -2
  95. package/dist/{chunk-35A7GCHG.js → chunk-MYBCB4AT.js} +2 -2
  96. package/dist/{chunk-U46P4UAR.js → chunk-NQHSXHJP.js} +4 -4
  97. package/dist/{chunk-QPWUG2S3.js → chunk-NSQ3GUVO.js} +2 -2
  98. package/dist/{chunk-VQTPEL7O.js → chunk-O57VUN4U.js} +4 -4
  99. package/dist/{chunk-WY4IV62O.js → chunk-OAFRMLL4.js} +2 -2
  100. package/dist/{chunk-PCO3P7WJ.js → chunk-OGVJXIHX.js} +2 -2
  101. package/dist/{chunk-IR5LZCE6.js → chunk-ORAL4HJC.js} +2 -2
  102. package/dist/{chunk-LMZV3H4W.js → chunk-P22M3DX3.js} +3 -3
  103. package/dist/{chunk-2J3M2KV4.js → chunk-PTFL3INS.js} +2 -2
  104. package/dist/{chunk-AM4T6CHX.js → chunk-Q4E24IRR.js} +9 -8
  105. package/dist/chunk-Q4E24IRR.js.map +1 -0
  106. package/dist/{chunk-CQBFEGLF.js → chunk-QDKABMUE.js} +2 -2
  107. package/dist/{chunk-34G4U6HS.js → chunk-QRZMJ2WN.js} +2 -2
  108. package/dist/{chunk-I2VQ7WBJ.js → chunk-QVBB2CLG.js} +13 -13
  109. package/dist/{chunk-H5YACCE3.js → chunk-QWNBQ2T5.js} +244 -47
  110. package/dist/chunk-QWNBQ2T5.js.map +1 -0
  111. package/dist/{chunk-GUD6FYQG.js → chunk-R4O2G6ML.js} +2 -2
  112. package/dist/{chunk-OSDAF7HH.js → chunk-R6EOFKZG.js} +2 -2
  113. package/dist/{chunk-OJP3N7UK.js → chunk-R7WYAXPO.js} +2 -2
  114. package/dist/{chunk-RU744TNX.js → chunk-RGPPNNDJ.js} +8 -8
  115. package/dist/{chunk-BLHPADUX.js → chunk-RH6MQ5NG.js} +6 -11
  116. package/dist/chunk-RH6MQ5NG.js.map +1 -0
  117. package/dist/{chunk-6DNMUYEE.js → chunk-RIEGCK2W.js} +2 -2
  118. package/dist/{chunk-KHOINMCN.js → chunk-RZCRXCLI.js} +2 -2
  119. package/dist/{chunk-WI37MWRZ.js → chunk-SNGNGH53.js} +2 -2
  120. package/dist/{chunk-R4NGLTUS.js → chunk-TDMNADPI.js} +2 -2
  121. package/dist/{chunk-K4TWTUEY.js → chunk-TSEUVMJL.js} +47 -47
  122. package/dist/{chunk-PT6DQK5T.js → chunk-TYOBAFCY.js} +3 -3
  123. package/dist/{chunk-LI76ESJL.js → chunk-TZQOCQXB.js} +2 -2
  124. package/dist/{chunk-WHTMVTU4.js → chunk-U3LVARGV.js} +2 -2
  125. package/dist/{chunk-RNYVAQX2.js → chunk-UCCB7RKF.js} +2 -2
  126. package/dist/{chunk-NUSQ3YEL.js → chunk-UXIZ5XN5.js} +2 -2
  127. package/dist/{chunk-OV7EYM6M.js → chunk-VWCFR4NR.js} +9 -9
  128. package/dist/{chunk-DQTCGVFK.js → chunk-WHCD4Z3D.js} +2 -2
  129. package/dist/{chunk-P57VR7AI.js → chunk-WLC6XA6C.js} +4 -4
  130. package/dist/{chunk-QCP75JGO.js → chunk-WQUGCOKF.js} +5 -5
  131. package/dist/{chunk-P5FPO2BR.js → chunk-WWDO7ZWM.js} +3 -3
  132. package/dist/{chunk-KATEWTQJ.js → chunk-X7J56GPG.js} +2 -2
  133. package/dist/{chunk-W6K6BC3H.js → chunk-XTWF5XR6.js} +57 -57
  134. package/dist/{chunk-22DYJLFN.js → chunk-XVC7JU2N.js} +39 -18
  135. package/dist/chunk-XVC7JU2N.js.map +1 -0
  136. package/dist/{chunk-YFET6A4I.js → chunk-Y7CXM7UM.js} +3 -3
  137. package/dist/{chunk-YAPTJQI7.js → chunk-YMXCJ7SE.js} +2 -2
  138. package/dist/{chunk-AXFWMRKI.js → chunk-YQJCWR4R.js} +2 -2
  139. package/dist/{chunk-3J54RR3A.js → chunk-Z2EVKNZR.js} +2 -2
  140. package/dist/{chunk-RKDSELA3.js → chunk-Z63GU5NN.js} +1 -1
  141. package/dist/chunk-Z63GU5NN.js.map +1 -0
  142. package/dist/{chunk-BAREPCLY.js → chunk-ZOGZMAGI.js} +2 -2
  143. package/dist/cli.js +89 -88
  144. package/dist/coding/export-okf-codegraph.js +18 -18
  145. package/dist/compounding/engine.js +18 -18
  146. package/dist/config.d.ts.map +1 -1
  147. package/dist/config.js +19 -18
  148. package/dist/connectors/codex-materialize-runner.js +18 -18
  149. package/dist/connectors/index.js +18 -18
  150. package/dist/convergence-refresh.js +20 -20
  151. package/dist/conversation-index/backend.js +2 -2
  152. package/dist/corpus-read-cancellation.d.ts +7 -0
  153. package/dist/corpus-read-cancellation.d.ts.map +1 -1
  154. package/dist/corpus-read-cancellation.js +1 -1
  155. package/dist/corpus-watermark.js +20 -20
  156. package/dist/directory-sidecars.js +2 -2
  157. package/dist/entity-retrieval.js +18 -18
  158. package/dist/explicit-capture.js +3 -3
  159. package/dist/external-wiki-access.js +47 -47
  160. package/dist/extraction.js +23 -23
  161. package/dist/harmonic-retrieval.js +18 -18
  162. package/dist/index.js +113 -111
  163. package/dist/location/index.js +21 -21
  164. package/dist/maintenance/archive-observations.js +2 -2
  165. package/dist/maintenance/atomic-file.d.ts +1 -1
  166. package/dist/maintenance/atomic-file.d.ts.map +1 -1
  167. package/dist/maintenance/atomic-file.js +1 -1
  168. package/dist/maintenance/memory-governance.js +18 -18
  169. package/dist/maintenance/migrate-observations.js +3 -3
  170. package/dist/maintenance/observation-ledger-utils.js +2 -2
  171. package/dist/maintenance/projection-rebuild-abort.d.ts +17 -0
  172. package/dist/maintenance/projection-rebuild-abort.d.ts.map +1 -0
  173. package/dist/maintenance/projection-timeline.d.ts +19 -0
  174. package/dist/maintenance/projection-timeline.d.ts.map +1 -0
  175. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +18 -18
  176. package/dist/maintenance/rebuild-memory-projection-runner.d.ts +8 -0
  177. package/dist/maintenance/rebuild-memory-projection-runner.d.ts.map +1 -0
  178. package/dist/maintenance/rebuild-memory-projection-runner.js +113 -0
  179. package/dist/maintenance/rebuild-memory-projection-runner.js.map +1 -0
  180. package/dist/maintenance/rebuild-memory-projection.d.ts +8 -0
  181. package/dist/maintenance/rebuild-memory-projection.d.ts.map +1 -1
  182. package/dist/maintenance/rebuild-memory-projection.js +19 -19
  183. package/dist/maintenance/rebuild-observations.js +3 -3
  184. package/dist/memory-browse-operations.js +47 -47
  185. package/dist/memory-browse.js +7 -7
  186. package/dist/namespaces/migrate.js +19 -19
  187. package/dist/namespaces/search.js +8 -8
  188. package/dist/namespaces/storage.js +18 -18
  189. package/dist/offline-sync-impression-drain.js +3 -3
  190. package/dist/operator-doctor-corpus.js +21 -21
  191. package/dist/operator-toolkit.js +28 -27
  192. package/dist/orchestration/full-corpus-heap-guard.d.ts +25 -0
  193. package/dist/orchestration/full-corpus-heap-guard.d.ts.map +1 -0
  194. package/dist/orchestration/maintenance.d.ts.map +1 -1
  195. package/dist/orchestration/maintenance.js +29 -27
  196. package/dist/orchestration/projection-rebuild-schedule.d.ts +40 -0
  197. package/dist/orchestration/projection-rebuild-schedule.d.ts.map +1 -1
  198. package/dist/orchestrator.js +111 -109
  199. package/dist/projection-rebuild-config.d.ts +52 -0
  200. package/dist/projection-rebuild-config.d.ts.map +1 -0
  201. package/dist/projection-rebuild-config.js +14 -0
  202. package/dist/projection-rebuild-config.js.map +1 -0
  203. package/dist/qmd.js +4 -4
  204. package/dist/recall-explain-renderer.js +3 -3
  205. package/dist/recall-navigate-access.js +2 -2
  206. package/dist/recall-navigate-disclosure.js +2 -2
  207. package/dist/recall-navigate.js +2 -2
  208. package/dist/recall-navigation-operations.js +47 -47
  209. package/dist/recall-navigation.js +46 -46
  210. package/dist/recall-state-view-admission.js +7 -7
  211. package/dist/recall-state.js +2 -2
  212. package/dist/recall-why-service.js +7 -7
  213. package/dist/recall-xray-cli.js +4 -4
  214. package/dist/recall-xray-renderer.js +3 -3
  215. package/dist/recall-xray.js +2 -2
  216. package/dist/relevance.js +2 -2
  217. package/dist/resume-bundles.js +22 -21
  218. package/dist/search/factory.js +7 -7
  219. package/dist/search/index.js +11 -11
  220. package/dist/semantic-consolidation.js +19 -19
  221. package/dist/semantic-rule-promotion.js +18 -18
  222. package/dist/semantic-rule-verifier.js +18 -18
  223. package/dist/session-identity.js +2 -2
  224. package/dist/session-transcript-migration.js +3 -3
  225. package/dist/source-agent-qualifier.js +22 -22
  226. package/dist/standup/build.js +18 -18
  227. package/dist/storage/memory-lifecycle-ledger-access.d.ts +5 -3
  228. package/dist/storage/memory-lifecycle-ledger-access.d.ts.map +1 -1
  229. package/dist/storage/memory-read-store.d.ts +2 -2
  230. package/dist/storage/memory-read-store.d.ts.map +1 -1
  231. package/dist/storage-paths.d.ts +11 -0
  232. package/dist/storage-paths.d.ts.map +1 -1
  233. package/dist/storage-paths.js +3 -1
  234. package/dist/storage.d.ts +4 -2
  235. package/dist/storage.d.ts.map +1 -1
  236. package/dist/storage.js +17 -17
  237. package/dist/summarizer.js +4 -4
  238. package/dist/summary-snapshot.js +2 -2
  239. package/dist/support-passport/index.js +49 -49
  240. package/dist/threading.js +2 -2
  241. package/dist/transcript.d.ts +3 -3
  242. package/dist/transcript.d.ts.map +1 -1
  243. package/dist/transcript.js +3 -3
  244. package/dist/transfer/export-okf.js +19 -19
  245. package/dist/types.d.ts +2 -17
  246. package/dist/types.d.ts.map +1 -1
  247. package/dist/types.js +1 -1
  248. package/dist/verified-recall.js +18 -18
  249. package/dist/who-knows-cli.js +19 -19
  250. package/dist/who-knows.js +18 -18
  251. package/dist/write-quarantine.js +2 -2
  252. package/package.json +2 -2
  253. package/src/config.test.ts +9 -0
  254. package/src/config.ts +2 -5
  255. package/src/corpus-read-cancellation.ts +7 -0
  256. package/src/maintenance/atomic-file.ts +2 -0
  257. package/src/maintenance/projection-rebuild-abort.ts +40 -0
  258. package/src/maintenance/projection-timeline.ts +209 -0
  259. package/src/maintenance/rebuild-memory-projection-runner.ts +94 -0
  260. package/src/maintenance/rebuild-memory-projection.memory.test.ts +159 -0
  261. package/src/maintenance/rebuild-memory-projection.retain-raw.test.ts +202 -0
  262. package/src/maintenance/rebuild-memory-projection.ts +63 -91
  263. package/src/orchestration/full-corpus-heap-guard.ts +38 -0
  264. package/src/orchestration/maintenance.test.ts +2 -2
  265. package/src/orchestration/maintenance.ts +2 -0
  266. package/src/orchestration/projection-rebuild-schedule.test.ts +498 -0
  267. package/src/orchestration/projection-rebuild-schedule.ts +280 -9
  268. package/src/projection-rebuild-config.ts +82 -0
  269. package/src/storage/memory-lifecycle-ledger-access.ts +61 -33
  270. package/src/storage/memory-read-store.ts +10 -4
  271. package/src/storage-paths.ts +18 -0
  272. package/src/storage.ts +45 -33
  273. package/src/transcript-recent-unscoped.test.ts +139 -0
  274. package/src/transcript.ts +6 -6
  275. package/src/types.ts +2 -18
  276. package/dist/chunk-22DYJLFN.js.map +0 -1
  277. package/dist/chunk-4A2UMSNB.js.map +0 -1
  278. package/dist/chunk-AM4T6CHX.js.map +0 -1
  279. package/dist/chunk-BLHPADUX.js.map +0 -1
  280. package/dist/chunk-FF4KLI5W.js.map +0 -1
  281. package/dist/chunk-H5YACCE3.js.map +0 -1
  282. package/dist/chunk-LHOIYLKH.js.map +0 -1
  283. package/dist/chunk-RKDSELA3.js.map +0 -1
  284. /package/dist/{auto-sync-PAWBFQWL.js.map → auto-sync-FN7E3OTO.js.map} +0 -0
  285. /package/dist/{chunk-G3T6YMBO.js.map → chunk-2KB7TTAP.js.map} +0 -0
  286. /package/dist/{chunk-345MEMRU.js.map → chunk-3OUGSOJP.js.map} +0 -0
  287. /package/dist/{chunk-CVQWNACA.js.map → chunk-3QAIX7TV.js.map} +0 -0
  288. /package/dist/{chunk-PTGPU4DC.js.map → chunk-436IRJUD.js.map} +0 -0
  289. /package/dist/{chunk-G2STTRYB.js.map → chunk-4D2YH47Z.js.map} +0 -0
  290. /package/dist/{chunk-DQQ4IM5L.js.map → chunk-4DXVWBDB.js.map} +0 -0
  291. /package/dist/{chunk-M2OPC4BD.js.map → chunk-4NFRYOHT.js.map} +0 -0
  292. /package/dist/{chunk-PWVBVIOP.js.map → chunk-5QHTQMRL.js.map} +0 -0
  293. /package/dist/{chunk-RFIJRZ4K.js.map → chunk-5XXTZ4Y7.js.map} +0 -0
  294. /package/dist/{chunk-S4DDLTPX.js.map → chunk-5Y43VGYB.js.map} +0 -0
  295. /package/dist/{chunk-LQGX5TCI.js.map → chunk-5YDWSWBU.js.map} +0 -0
  296. /package/dist/{chunk-FNVSBUC3.js.map → chunk-6AH2DDHI.js.map} +0 -0
  297. /package/dist/{chunk-JDOBIFBK.js.map → chunk-7CXL25AA.js.map} +0 -0
  298. /package/dist/{chunk-YLBE6PLR.js.map → chunk-7IGMKQWK.js.map} +0 -0
  299. /package/dist/{chunk-JFDKPW54.js.map → chunk-7OOW72QA.js.map} +0 -0
  300. /package/dist/{chunk-J5CUQRST.js.map → chunk-ABDTBGI2.js.map} +0 -0
  301. /package/dist/{chunk-IB63OVUB.js.map → chunk-AJ6ORARY.js.map} +0 -0
  302. /package/dist/{chunk-U6VC6RP3.js.map → chunk-AWLQNLTM.js.map} +0 -0
  303. /package/dist/{chunk-PJSK6OJM.js.map → chunk-BANSBRNX.js.map} +0 -0
  304. /package/dist/{chunk-32HO62I4.js.map → chunk-BDHWKFGM.js.map} +0 -0
  305. /package/dist/{chunk-MY7B3HYC.js.map → chunk-CLCMDKTB.js.map} +0 -0
  306. /package/dist/{chunk-AALVXJJ7.js.map → chunk-CQQTEDHS.js.map} +0 -0
  307. /package/dist/{chunk-2SYRHFUG.js.map → chunk-CV5AMCPX.js.map} +0 -0
  308. /package/dist/{chunk-BTOHGPHC.js.map → chunk-CXG2T7BJ.js.map} +0 -0
  309. /package/dist/{chunk-E7FN5N5E.js.map → chunk-DQJCQHII.js.map} +0 -0
  310. /package/dist/{chunk-CAXMG4JI.js.map → chunk-DYRXRQHV.js.map} +0 -0
  311. /package/dist/{chunk-IIFFC3RL.js.map → chunk-EDR6CVWZ.js.map} +0 -0
  312. /package/dist/{chunk-6O2VUWV6.js.map → chunk-EIFYYHAF.js.map} +0 -0
  313. /package/dist/{chunk-2JRB3Z5N.js.map → chunk-EP5WXE2G.js.map} +0 -0
  314. /package/dist/{chunk-2EZB2DL5.js.map → chunk-GE6HETIF.js.map} +0 -0
  315. /package/dist/{chunk-YVHNBOK2.js.map → chunk-GLS3A4SQ.js.map} +0 -0
  316. /package/dist/{chunk-7IGNDEUJ.js.map → chunk-H2XCCUOT.js.map} +0 -0
  317. /package/dist/{chunk-A5N6ZEUW.js.map → chunk-H6FA36LC.js.map} +0 -0
  318. /package/dist/{chunk-WPMDNCGB.js.map → chunk-HSZBALHV.js.map} +0 -0
  319. /package/dist/{chunk-XG4XXI66.js.map → chunk-I25RQA65.js.map} +0 -0
  320. /package/dist/{chunk-NBK24POV.js.map → chunk-IHIP7TJ3.js.map} +0 -0
  321. /package/dist/{chunk-DAVONFNK.js.map → chunk-IINXHPCV.js.map} +0 -0
  322. /package/dist/{chunk-EJJMDLVB.js.map → chunk-IJ4FEGZR.js.map} +0 -0
  323. /package/dist/{chunk-SQPC6MUM.js.map → chunk-IRYKRBEX.js.map} +0 -0
  324. /package/dist/{chunk-JOBE47EJ.js.map → chunk-IVGJXS5F.js.map} +0 -0
  325. /package/dist/{chunk-36BUOTVN.js.map → chunk-IXF7TRMQ.js.map} +0 -0
  326. /package/dist/{chunk-RVQVWDSN.js.map → chunk-IY7ZISXV.js.map} +0 -0
  327. /package/dist/{chunk-5FLFPTDK.js.map → chunk-JA72X46J.js.map} +0 -0
  328. /package/dist/{chunk-NLYOOGZ7.js.map → chunk-KE5PWLI6.js.map} +0 -0
  329. /package/dist/{chunk-U4SG4HKQ.js.map → chunk-LIGP5M2C.js.map} +0 -0
  330. /package/dist/{chunk-EB3RXN2L.js.map → chunk-MEMH5NKJ.js.map} +0 -0
  331. /package/dist/{chunk-4G2COUSD.js.map → chunk-MEP3POVW.js.map} +0 -0
  332. /package/dist/{chunk-35A7GCHG.js.map → chunk-MYBCB4AT.js.map} +0 -0
  333. /package/dist/{chunk-U46P4UAR.js.map → chunk-NQHSXHJP.js.map} +0 -0
  334. /package/dist/{chunk-QPWUG2S3.js.map → chunk-NSQ3GUVO.js.map} +0 -0
  335. /package/dist/{chunk-VQTPEL7O.js.map → chunk-O57VUN4U.js.map} +0 -0
  336. /package/dist/{chunk-WY4IV62O.js.map → chunk-OAFRMLL4.js.map} +0 -0
  337. /package/dist/{chunk-PCO3P7WJ.js.map → chunk-OGVJXIHX.js.map} +0 -0
  338. /package/dist/{chunk-IR5LZCE6.js.map → chunk-ORAL4HJC.js.map} +0 -0
  339. /package/dist/{chunk-LMZV3H4W.js.map → chunk-P22M3DX3.js.map} +0 -0
  340. /package/dist/{chunk-2J3M2KV4.js.map → chunk-PTFL3INS.js.map} +0 -0
  341. /package/dist/{chunk-CQBFEGLF.js.map → chunk-QDKABMUE.js.map} +0 -0
  342. /package/dist/{chunk-34G4U6HS.js.map → chunk-QRZMJ2WN.js.map} +0 -0
  343. /package/dist/{chunk-I2VQ7WBJ.js.map → chunk-QVBB2CLG.js.map} +0 -0
  344. /package/dist/{chunk-GUD6FYQG.js.map → chunk-R4O2G6ML.js.map} +0 -0
  345. /package/dist/{chunk-OSDAF7HH.js.map → chunk-R6EOFKZG.js.map} +0 -0
  346. /package/dist/{chunk-OJP3N7UK.js.map → chunk-R7WYAXPO.js.map} +0 -0
  347. /package/dist/{chunk-RU744TNX.js.map → chunk-RGPPNNDJ.js.map} +0 -0
  348. /package/dist/{chunk-6DNMUYEE.js.map → chunk-RIEGCK2W.js.map} +0 -0
  349. /package/dist/{chunk-KHOINMCN.js.map → chunk-RZCRXCLI.js.map} +0 -0
  350. /package/dist/{chunk-WI37MWRZ.js.map → chunk-SNGNGH53.js.map} +0 -0
  351. /package/dist/{chunk-R4NGLTUS.js.map → chunk-TDMNADPI.js.map} +0 -0
  352. /package/dist/{chunk-K4TWTUEY.js.map → chunk-TSEUVMJL.js.map} +0 -0
  353. /package/dist/{chunk-PT6DQK5T.js.map → chunk-TYOBAFCY.js.map} +0 -0
  354. /package/dist/{chunk-LI76ESJL.js.map → chunk-TZQOCQXB.js.map} +0 -0
  355. /package/dist/{chunk-WHTMVTU4.js.map → chunk-U3LVARGV.js.map} +0 -0
  356. /package/dist/{chunk-RNYVAQX2.js.map → chunk-UCCB7RKF.js.map} +0 -0
  357. /package/dist/{chunk-NUSQ3YEL.js.map → chunk-UXIZ5XN5.js.map} +0 -0
  358. /package/dist/{chunk-OV7EYM6M.js.map → chunk-VWCFR4NR.js.map} +0 -0
  359. /package/dist/{chunk-DQTCGVFK.js.map → chunk-WHCD4Z3D.js.map} +0 -0
  360. /package/dist/{chunk-P57VR7AI.js.map → chunk-WLC6XA6C.js.map} +0 -0
  361. /package/dist/{chunk-QCP75JGO.js.map → chunk-WQUGCOKF.js.map} +0 -0
  362. /package/dist/{chunk-P5FPO2BR.js.map → chunk-WWDO7ZWM.js.map} +0 -0
  363. /package/dist/{chunk-KATEWTQJ.js.map → chunk-X7J56GPG.js.map} +0 -0
  364. /package/dist/{chunk-W6K6BC3H.js.map → chunk-XTWF5XR6.js.map} +0 -0
  365. /package/dist/{chunk-YFET6A4I.js.map → chunk-Y7CXM7UM.js.map} +0 -0
  366. /package/dist/{chunk-YAPTJQI7.js.map → chunk-YMXCJ7SE.js.map} +0 -0
  367. /package/dist/{chunk-AXFWMRKI.js.map → chunk-YQJCWR4R.js.map} +0 -0
  368. /package/dist/{chunk-3J54RR3A.js.map → chunk-Z2EVKNZR.js.map} +0 -0
  369. /package/dist/{chunk-BAREPCLY.js.map → chunk-ZOGZMAGI.js.map} +0 -0
@@ -1,3 +1,8 @@
1
+ import {
2
+ EMPTY_QMD_STATUS,
3
+ embedQmdFiles,
4
+ fetchQmdStatus
5
+ } from "./chunk-IUM3VSHI.js";
1
6
  import {
2
7
  resolveEnsureCollectionArgs
3
8
  } from "./chunk-G26YNEOC.js";
@@ -20,11 +25,6 @@ import {
20
25
  qmdVersionToString,
21
26
  resolveQmdCapabilities
22
27
  } from "./chunk-SIGAGKNE.js";
23
- import {
24
- EMPTY_QMD_STATUS,
25
- embedQmdFiles,
26
- fetchQmdStatus
27
- } from "./chunk-IUM3VSHI.js";
28
28
  import {
29
29
  clearQmdResultCaches,
30
30
  getCachedQmdSearch,
@@ -2028,4 +2028,4 @@ export {
2028
2028
  sharedDaemonSessionCountForTest,
2029
2029
  QmdClient
2030
2030
  };
2031
- //# sourceMappingURL=chunk-IB63OVUB.js.map
2031
+ //# sourceMappingURL=chunk-AJ6ORARY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isPathInsideStorageRoot
3
- } from "./chunk-FF4KLI5W.js";
3
+ } from "./chunk-LDPPTPO5.js";
4
4
  import {
5
5
  SecureStoreLockedError
6
6
  } from "./chunk-MAAL6OZV.js";
@@ -45,4 +45,4 @@ async function decodeCitationNamespace(getStorage, authorizedNamespaces, memoryP
45
45
  export {
46
46
  decodeCitationNamespace
47
47
  };
48
- //# sourceMappingURL=chunk-U6VC6RP3.js.map
48
+ //# sourceMappingURL=chunk-AWLQNLTM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  encodeStoragePathSegment,
3
3
  resolveSafeStoragePath
4
- } from "./chunk-FF4KLI5W.js";
4
+ } from "./chunk-LDPPTPO5.js";
5
5
 
6
6
  // src/write-quarantine.ts
7
7
  import { randomUUID } from "crypto";
@@ -198,4 +198,4 @@ export {
198
198
  DEFAULT_QUARANTINE_CAPS,
199
199
  WriteQuarantineStore
200
200
  };
201
- //# sourceMappingURL=chunk-PJSK6OJM.js.map
201
+ //# sourceMappingURL=chunk-BANSBRNX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-SOBJ6NEY.js";
4
4
  import {
5
5
  summarizeDisclosureTokens
6
- } from "./chunk-QPWUG2S3.js";
6
+ } from "./chunk-NSQ3GUVO.js";
7
7
  import {
8
8
  summarizeRetrievedMemoryProvenance
9
9
  } from "./chunk-I4WBNM3M.js";
@@ -620,4 +620,4 @@ export {
620
620
  renderRecallExplain,
621
621
  parseRecallExplainFormat
622
622
  };
623
- //# sourceMappingURL=chunk-32HO62I4.js.map
623
+ //# sourceMappingURL=chunk-BDHWKFGM.js.map
@@ -54,13 +54,14 @@ async function writeFileAtomically(outputPath, content, backupPath) {
54
54
  throw err;
55
55
  }
56
56
  }
57
- async function commitPreparedFileAtomically(tempPath, outputPath, backupPath) {
57
+ async function commitPreparedFileAtomically(tempPath, outputPath, backupPath, beforeRename) {
58
58
  const dir = path.dirname(outputPath);
59
59
  let resolvedBackupPath;
60
60
  try {
61
61
  if (backupPath) {
62
62
  resolvedBackupPath = await copyExistingFileToBackup(outputPath, backupPath);
63
63
  }
64
+ if (beforeRename) await beforeRename();
64
65
  await rename(tempPath, outputPath);
65
66
  await syncDirectory(dir);
66
67
  return resolvedBackupPath;
@@ -75,4 +76,4 @@ export {
75
76
  writeFileAtomically,
76
77
  commitPreparedFileAtomically
77
78
  };
78
- //# sourceMappingURL=chunk-AW4QUFQF.js.map
79
+ //# sourceMappingURL=chunk-BTNNL7ZW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/maintenance/atomic-file.ts"],"sourcesContent":["import path from \"node:path\";\nimport { copyFile, mkdir, open, rename, rm, stat } from \"node:fs/promises\";\n\nasync function syncDirectory(dir: string): Promise<void> {\n let handle: Awaited<ReturnType<typeof open>> | undefined;\n try {\n handle = await open(dir, \"r\");\n await handle.sync();\n } catch {\n // Directory fsync is best-effort across platforms and filesystems.\n } finally {\n await handle?.close().catch(() => undefined);\n }\n}\n\nfunction tempPathFor(outputPath: string): string {\n const suffix = `${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}`;\n return path.join(path.dirname(outputPath), `.${path.basename(outputPath)}.${suffix}.tmp`);\n}\n\nexport async function copyExistingFileToBackup(\n sourcePath: string,\n backupPath: string,\n): Promise<string | undefined> {\n try {\n await stat(sourcePath);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return undefined;\n throw err;\n }\n\n await mkdir(path.dirname(backupPath), { recursive: true });\n await copyFile(sourcePath, backupPath);\n return backupPath;\n}\n\nexport async function writeFileAtomically(\n outputPath: string,\n content: string | Uint8Array,\n backupPath?: string,\n): Promise<string | undefined> {\n const dir = path.dirname(outputPath);\n await mkdir(dir, { recursive: true });\n const tempPath = tempPathFor(outputPath);\n let handle: Awaited<ReturnType<typeof open>> | undefined;\n let resolvedBackupPath: string | undefined;\n try {\n handle = await open(tempPath, \"w\");\n if (typeof content === \"string\") {\n await handle.writeFile(content, \"utf-8\");\n } else {\n await handle.writeFile(content);\n }\n await handle.sync();\n await handle.close();\n handle = undefined;\n\n if (backupPath) {\n resolvedBackupPath = await copyExistingFileToBackup(outputPath, backupPath);\n }\n await rename(tempPath, outputPath);\n await syncDirectory(dir);\n return resolvedBackupPath;\n } catch (err) {\n await handle?.close().catch(() => undefined);\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw err;\n }\n}\n\nexport async function commitPreparedFileAtomically(\n tempPath: string,\n outputPath: string,\n backupPath?: string,\n): Promise<string | undefined> {\n const dir = path.dirname(outputPath);\n let resolvedBackupPath: string | undefined;\n try {\n if (backupPath) {\n resolvedBackupPath = await copyExistingFileToBackup(outputPath, backupPath);\n }\n await rename(tempPath, outputPath);\n await syncDirectory(dir);\n return resolvedBackupPath;\n } catch (err) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw err;\n }\n}\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,SAAS,UAAU,OAAO,MAAM,QAAQ,IAAI,YAAY;AAExD,eAAe,cAAc,KAA4B;AACvD,MAAI;AACJ,MAAI;AACF,aAAS,MAAM,KAAK,KAAK,GAAG;AAC5B,UAAM,OAAO,KAAK;AAAA,EACpB,QAAQ;AAAA,EAER,UAAE;AACA,UAAM,QAAQ,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,EAC7C;AACF;AAEA,SAAS,YAAY,YAA4B;AAC/C,QAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,SAAO,KAAK,KAAK,KAAK,QAAQ,UAAU,GAAG,IAAI,KAAK,SAAS,UAAU,CAAC,IAAI,MAAM,MAAM;AAC1F;AAEA,eAAsB,yBACpB,YACA,YAC6B;AAC7B,MAAI;AACF,UAAM,KAAK,UAAU;AAAA,EACvB,SAAS,KAAK;AACZ,QAAK,IAA8B,SAAS,SAAU,QAAO;AAC7D,UAAM;AAAA,EACR;AAEA,QAAM,MAAM,KAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AACzD,QAAM,SAAS,YAAY,UAAU;AACrC,SAAO;AACT;AAEA,eAAsB,oBACpB,YACA,SACA,YAC6B;AAC7B,QAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,QAAM,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AACpC,QAAM,WAAW,YAAY,UAAU;AACvC,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,aAAS,MAAM,KAAK,UAAU,GAAG;AACjC,QAAI,OAAO,YAAY,UAAU;AAC/B,YAAM,OAAO,UAAU,SAAS,OAAO;AAAA,IACzC,OAAO;AACL,YAAM,OAAO,UAAU,OAAO;AAAA,IAChC;AACA,UAAM,OAAO,KAAK;AAClB,UAAM,OAAO,MAAM;AACnB,aAAS;AAET,QAAI,YAAY;AACd,2BAAqB,MAAM,yBAAyB,YAAY,UAAU;AAAA,IAC5E;AACA,UAAM,OAAO,UAAU,UAAU;AACjC,UAAM,cAAc,GAAG;AACvB,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,UAAM,QAAQ,MAAM,EAAE,MAAM,MAAM,MAAS;AAC3C,UAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,MAAM,MAAS;AACzD,UAAM;AAAA,EACR;AACF;AAEA,eAAsB,6BACpB,UACA,YACA,YAC6B;AAC7B,QAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,MAAI;AACJ,MAAI;AACF,QAAI,YAAY;AACd,2BAAqB,MAAM,yBAAyB,YAAY,UAAU;AAAA,IAC5E;AACA,UAAM,OAAO,UAAU,UAAU;AACjC,UAAM,cAAc,GAAG;AACvB,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,UAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,MAAM,MAAS;AACzD,UAAM;AAAA,EACR;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/maintenance/atomic-file.ts"],"sourcesContent":["import path from \"node:path\";\nimport { copyFile, mkdir, open, rename, rm, stat } from \"node:fs/promises\";\n\nasync function syncDirectory(dir: string): Promise<void> {\n let handle: Awaited<ReturnType<typeof open>> | undefined;\n try {\n handle = await open(dir, \"r\");\n await handle.sync();\n } catch {\n // Directory fsync is best-effort across platforms and filesystems.\n } finally {\n await handle?.close().catch(() => undefined);\n }\n}\n\nfunction tempPathFor(outputPath: string): string {\n const suffix = `${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2)}`;\n return path.join(path.dirname(outputPath), `.${path.basename(outputPath)}.${suffix}.tmp`);\n}\n\nexport async function copyExistingFileToBackup(\n sourcePath: string,\n backupPath: string,\n): Promise<string | undefined> {\n try {\n await stat(sourcePath);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return undefined;\n throw err;\n }\n\n await mkdir(path.dirname(backupPath), { recursive: true });\n await copyFile(sourcePath, backupPath);\n return backupPath;\n}\n\nexport async function writeFileAtomically(\n outputPath: string,\n content: string | Uint8Array,\n backupPath?: string,\n): Promise<string | undefined> {\n const dir = path.dirname(outputPath);\n await mkdir(dir, { recursive: true });\n const tempPath = tempPathFor(outputPath);\n let handle: Awaited<ReturnType<typeof open>> | undefined;\n let resolvedBackupPath: string | undefined;\n try {\n handle = await open(tempPath, \"w\");\n if (typeof content === \"string\") {\n await handle.writeFile(content, \"utf-8\");\n } else {\n await handle.writeFile(content);\n }\n await handle.sync();\n await handle.close();\n handle = undefined;\n\n if (backupPath) {\n resolvedBackupPath = await copyExistingFileToBackup(outputPath, backupPath);\n }\n await rename(tempPath, outputPath);\n await syncDirectory(dir);\n return resolvedBackupPath;\n } catch (err) {\n await handle?.close().catch(() => undefined);\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw err;\n }\n}\n\nexport async function commitPreparedFileAtomically(\n tempPath: string,\n outputPath: string,\n backupPath?: string,\n beforeRename?: () => void | Promise<void>,\n): Promise<string | undefined> {\n const dir = path.dirname(outputPath);\n let resolvedBackupPath: string | undefined;\n try {\n if (backupPath) {\n resolvedBackupPath = await copyExistingFileToBackup(outputPath, backupPath);\n }\n if (beforeRename) await beforeRename();\n await rename(tempPath, outputPath);\n await syncDirectory(dir);\n return resolvedBackupPath;\n } catch (err) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw err;\n }\n}\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,SAAS,UAAU,OAAO,MAAM,QAAQ,IAAI,YAAY;AAExD,eAAe,cAAc,KAA4B;AACvD,MAAI;AACJ,MAAI;AACF,aAAS,MAAM,KAAK,KAAK,GAAG;AAC5B,UAAM,OAAO,KAAK;AAAA,EACpB,QAAQ;AAAA,EAER,UAAE;AACA,UAAM,QAAQ,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,EAC7C;AACF;AAEA,SAAS,YAAY,YAA4B;AAC/C,QAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,SAAO,KAAK,KAAK,KAAK,QAAQ,UAAU,GAAG,IAAI,KAAK,SAAS,UAAU,CAAC,IAAI,MAAM,MAAM;AAC1F;AAEA,eAAsB,yBACpB,YACA,YAC6B;AAC7B,MAAI;AACF,UAAM,KAAK,UAAU;AAAA,EACvB,SAAS,KAAK;AACZ,QAAK,IAA8B,SAAS,SAAU,QAAO;AAC7D,UAAM;AAAA,EACR;AAEA,QAAM,MAAM,KAAK,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AACzD,QAAM,SAAS,YAAY,UAAU;AACrC,SAAO;AACT;AAEA,eAAsB,oBACpB,YACA,SACA,YAC6B;AAC7B,QAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,QAAM,MAAM,KAAK,EAAE,WAAW,KAAK,CAAC;AACpC,QAAM,WAAW,YAAY,UAAU;AACvC,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,aAAS,MAAM,KAAK,UAAU,GAAG;AACjC,QAAI,OAAO,YAAY,UAAU;AAC/B,YAAM,OAAO,UAAU,SAAS,OAAO;AAAA,IACzC,OAAO;AACL,YAAM,OAAO,UAAU,OAAO;AAAA,IAChC;AACA,UAAM,OAAO,KAAK;AAClB,UAAM,OAAO,MAAM;AACnB,aAAS;AAET,QAAI,YAAY;AACd,2BAAqB,MAAM,yBAAyB,YAAY,UAAU;AAAA,IAC5E;AACA,UAAM,OAAO,UAAU,UAAU;AACjC,UAAM,cAAc,GAAG;AACvB,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,UAAM,QAAQ,MAAM,EAAE,MAAM,MAAM,MAAS;AAC3C,UAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,MAAM,MAAS;AACzD,UAAM;AAAA,EACR;AACF;AAEA,eAAsB,6BACpB,UACA,YACA,YACA,cAC6B;AAC7B,QAAM,MAAM,KAAK,QAAQ,UAAU;AACnC,MAAI;AACJ,MAAI;AACF,QAAI,YAAY;AACd,2BAAqB,MAAM,yBAAyB,YAAY,UAAU;AAAA,IAC5E;AACA,QAAI,aAAc,OAAM,aAAa;AACrC,UAAM,OAAO,UAAU,UAAU;AACjC,UAAM,cAAc,GAAG;AACvB,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,UAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE,MAAM,MAAM,MAAS;AACzD,UAAM;AAAA,EACR;AACF;","names":[]}
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-C7HJ3NEI.js";
12
12
  import {
13
13
  writeFileAtomically
14
- } from "./chunk-AW4QUFQF.js";
14
+ } from "./chunk-BTNNL7ZW.js";
15
15
  import {
16
16
  isErrnoCode
17
17
  } from "./chunk-KNA3BXXL.js";
@@ -889,4 +889,4 @@ export {
889
889
  applyBriefingLocationContext,
890
890
  daySummaryAutoOptions
891
891
  };
892
- //# sourceMappingURL=chunk-MY7B3HYC.js.map
892
+ //# sourceMappingURL=chunk-CLCMDKTB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-4A2UMSNB.js";
3
+ } from "./chunk-DBA2W6VV.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-AALVXJJ7.js.map
35
+ //# sourceMappingURL=chunk-CQQTEDHS.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-B7RWBZXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-LHOIYLKH.js";
6
+ } from "./chunk-ABET5LA5.js";
7
7
  import {
8
8
  getCachedEpisodeMap,
9
9
  setCachedEpisodeMap
@@ -109,4 +109,4 @@ export {
109
109
  compareVerifiedEpisodeResults,
110
110
  searchVerifiedEpisodes
111
111
  };
112
- //# sourceMappingURL=chunk-2SYRHFUG.js.map
112
+ //# sourceMappingURL=chunk-CV5AMCPX.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseXrayFormat
3
- } from "./chunk-32HO62I4.js";
3
+ } from "./chunk-BDHWKFGM.js";
4
4
  import {
5
5
  RECALL_DISCLOSURE_LEVELS,
6
6
  isRecallDisclosure
7
- } from "./chunk-RKDSELA3.js";
7
+ } from "./chunk-Z63GU5NN.js";
8
8
 
9
9
  // src/recall-xray-cli.ts
10
10
  function parseXrayDisclosureFlag(value) {
@@ -50,4 +50,4 @@ export {
50
50
  parseXrayBudgetFlag,
51
51
  parseXrayCliOptions
52
52
  };
53
- //# sourceMappingURL=chunk-BTOHGPHC.js.map
53
+ //# sourceMappingURL=chunk-CXG2T7BJ.js.map
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-A5N6ZEUW.js";
10
+ } from "./chunk-H6FA36LC.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-LHOIYLKH.js";
13
+ } from "./chunk-ABET5LA5.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
@@ -21,10 +21,11 @@ import {
21
21
  readProjectedGovernanceRows,
22
22
  readProjectedNativeKnowledgeRows,
23
23
  writeProjectionMetaHighWater
24
- } from "./chunk-22DYJLFN.js";
24
+ } from "./chunk-XVC7JU2N.js";
25
25
  import {
26
26
  MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
27
27
  buildLifecycleEventsForMemory,
28
+ compareMemoryLifecycleEvents,
28
29
  inferMemoryStatus,
29
30
  memoryLifecycleEventProjectionIdentity,
30
31
  sortMemoryLifecycleEvents,
@@ -44,10 +45,13 @@ import {
44
45
  } from "./chunk-RL6NEVXT.js";
45
46
  import {
46
47
  commitPreparedFileAtomically
47
- } from "./chunk-AW4QUFQF.js";
48
+ } from "./chunk-BTNNL7ZW.js";
48
49
  import {
49
50
  isSupportPassportPrivateMemory
50
51
  } from "./chunk-PWPIERBM.js";
52
+ import {
53
+ throwIfAborted
54
+ } from "./chunk-BTTPKDIL.js";
51
55
  import {
52
56
  isErrnoCode
53
57
  } from "./chunk-KNA3BXXL.js";
@@ -56,8 +60,177 @@ import {
56
60
  } from "./chunk-3WCASNQZ.js";
57
61
 
58
62
  // src/maintenance/rebuild-memory-projection.ts
59
- import path from "path";
63
+ import path2 from "path";
60
64
  import { mkdir, rm, stat } from "fs/promises";
65
+
66
+ // src/maintenance/projection-timeline.ts
67
+ import path from "path";
68
+ function loadTimelineEvents(memories, lifecycleEvents) {
69
+ if (lifecycleEvents.length > 0) {
70
+ return {
71
+ events: sortMemoryLifecycleEvents(lifecycleEvents),
72
+ usedLifecycleLedger: true
73
+ };
74
+ }
75
+ return {
76
+ events: sortMemoryLifecycleEvents(memories.flatMap((memory) => buildLifecycleEventsForMemory(memory))),
77
+ usedLifecycleLedger: false
78
+ };
79
+ }
80
+ function deduplicateTimelineEvents(events, sourcePathFor) {
81
+ const keptById = /* @__PURE__ */ new Map();
82
+ const unique = [];
83
+ const skipped = [];
84
+ const skippedBlankIds = [];
85
+ for (const event of sortMemoryLifecycleEvents(events)) {
86
+ const sourcePath = sourcePathFor(event);
87
+ if (!event.memoryId.trim()) {
88
+ skippedBlankIds.push({ eventId: event.eventId, path: sourcePath });
89
+ log.warn(
90
+ `projection rebuild skipped timeline event with blank memory id: event_id=${event.eventId} path=${sourcePath}`
91
+ );
92
+ continue;
93
+ }
94
+ const kept = keptById.get(event.eventId);
95
+ if (kept) {
96
+ skipped.push({
97
+ eventId: event.eventId,
98
+ keptPath: kept.path,
99
+ skippedPath: sourcePath
100
+ });
101
+ log.warn(
102
+ `projection rebuild skipped duplicate timeline event_id=${event.eventId}: kept=${kept.path} skipped=${sourcePath}`
103
+ );
104
+ continue;
105
+ }
106
+ keptById.set(event.eventId, { event, path: sourcePath });
107
+ unique.push(event);
108
+ }
109
+ return { events: unique, skipped, skippedBlankIds };
110
+ }
111
+ function internPool() {
112
+ const pool = /* @__PURE__ */ new Map();
113
+ return (value) => {
114
+ const existing = pool.get(value);
115
+ if (existing !== void 0) return existing;
116
+ pool.set(value, value);
117
+ return value;
118
+ };
119
+ }
120
+ function internLedgerEvent(event, intern) {
121
+ event.memoryId = intern(event.memoryId);
122
+ event.eventType = intern(event.eventType);
123
+ event.timestamp = intern(event.timestamp);
124
+ event.actor = intern(event.actor);
125
+ event.ruleVersion = intern(event.ruleVersion);
126
+ if (event.reasonCode) event.reasonCode = intern(event.reasonCode);
127
+ if (event.correlationId) event.correlationId = intern(event.correlationId);
128
+ }
129
+ async function consumeLifecycleLedger(events, ledgerPath, signal) {
130
+ const intern = internPool();
131
+ const best = /* @__PURE__ */ new Map();
132
+ const losers = [];
133
+ const blanks = [];
134
+ const identities = /* @__PURE__ */ new Set();
135
+ let sawEvent = false;
136
+ for await (const event of events) {
137
+ throwIfAborted(signal, "projection rebuild aborted");
138
+ sawEvent = true;
139
+ internLedgerEvent(event, intern);
140
+ identities.add(memoryLifecycleEventProjectionIdentity(event));
141
+ if (!event.memoryId.trim()) {
142
+ blanks.push(event);
143
+ continue;
144
+ }
145
+ const prev = best.get(event.eventId);
146
+ if (!prev) {
147
+ best.set(event.eventId, event);
148
+ continue;
149
+ }
150
+ if (compareMemoryLifecycleEvents(event, prev) < 0) {
151
+ losers.push(prev);
152
+ best.set(event.eventId, event);
153
+ } else {
154
+ losers.push(event);
155
+ }
156
+ }
157
+ if (!sawEvent) return null;
158
+ const sourceLifecycleLedgerEventCount = identities.size;
159
+ identities.clear();
160
+ const skippedBlankIds = sortMemoryLifecycleEvents(blanks).map((event) => {
161
+ log.warn(
162
+ `projection rebuild skipped timeline event with blank memory id: event_id=${event.eventId} path=${ledgerPath}`
163
+ );
164
+ return { eventId: event.eventId, path: ledgerPath };
165
+ });
166
+ const skipped = sortMemoryLifecycleEvents(losers).map((event) => {
167
+ log.warn(
168
+ `projection rebuild skipped duplicate timeline event_id=${event.eventId}: kept=${ledgerPath} skipped=${ledgerPath}`
169
+ );
170
+ return {
171
+ eventId: event.eventId,
172
+ keptPath: ledgerPath,
173
+ skippedPath: ledgerPath
174
+ };
175
+ });
176
+ return {
177
+ events: sortMemoryLifecycleEvents([...best.values()]),
178
+ usedLifecycleLedger: true,
179
+ sourceLifecycleLedgerEventCount,
180
+ skipped,
181
+ skippedBlankIds
182
+ };
183
+ }
184
+ async function loadProjectionTimeline(options) {
185
+ const ledgerPath = path.join(options.memoryDir, "state", "memory-lifecycle-ledger.jsonl");
186
+ const streamed = await consumeLifecycleLedger(
187
+ options.storage.iterateMemoryLifecycleEvents(),
188
+ ledgerPath,
189
+ options.signal
190
+ );
191
+ if (streamed) return streamed;
192
+ const timeline = loadTimelineEvents(options.memories, []);
193
+ const memoryPathById = new Map(
194
+ options.memories.map((memory) => [memory.frontmatter.id, memory.path])
195
+ );
196
+ const deduplicated = deduplicateTimelineEvents(
197
+ timeline.events,
198
+ (event) => memoryPathById.get(event.memoryId) ?? ledgerPath
199
+ );
200
+ return {
201
+ events: deduplicated.events,
202
+ usedLifecycleLedger: false,
203
+ sourceLifecycleLedgerEventCount: 0,
204
+ skipped: deduplicated.skipped,
205
+ skippedBlankIds: deduplicated.skippedBlankIds
206
+ };
207
+ }
208
+
209
+ // src/maintenance/projection-rebuild-abort.ts
210
+ function projectionRebuildParentDisconnected() {
211
+ return new Error("projection rebuild runner parent disconnected");
212
+ }
213
+ function watchProjectionRebuildParent() {
214
+ const abort = new AbortController();
215
+ const stop = () => {
216
+ if (abort.signal.aborted) return;
217
+ abort.abort(projectionRebuildParentDisconnected());
218
+ };
219
+ process.on("disconnect", stop);
220
+ if (process.connected === false) stop();
221
+ return abort.signal;
222
+ }
223
+ async function throwIfProjectionRebuildAborted(signal) {
224
+ if (!signal) return;
225
+ await new Promise((resolve) => {
226
+ setImmediate(resolve);
227
+ });
228
+ if (!signal.aborted) return;
229
+ const reason = signal.reason;
230
+ throw reason instanceof Error ? reason : projectionRebuildParentDisconnected();
231
+ }
232
+
233
+ // src/maintenance/rebuild-memory-projection.ts
61
234
  async function backupExistingProjection(memoryDir, outputPath, now) {
62
235
  try {
63
236
  await stat(outputPath);
@@ -67,7 +240,7 @@ async function backupExistingProjection(memoryDir, outputPath, now) {
67
240
  }
68
241
  throw err;
69
242
  }
70
- const backupPath = path.join(
243
+ const backupPath = path2.join(
71
244
  memoryDir,
72
245
  "archive",
73
246
  "memory-projection",
@@ -101,7 +274,8 @@ function toCurrentStateRow(memoryDir, memory) {
101
274
  accessCount: memory.frontmatter.accessCount,
102
275
  lastAccessed: memory.frontmatter.lastAccessed,
103
276
  tags: normalizeProjectionTags(memory.frontmatter.tags),
104
- preview: normalizeProjectionPreview(memory.content),
277
+ // Copy the preview off the source string so the full document can be collected.
278
+ preview: Buffer.from(normalizeProjectionPreview(memory.content), "utf8").toString("utf8"),
105
279
  privateRecord: isSupportPassportPrivateMemory(memory)
106
280
  };
107
281
  }
@@ -176,18 +350,6 @@ async function loadLatestGovernanceProjection(memoryDir) {
176
350
  return null;
177
351
  }
178
352
  }
179
- function loadTimelineEvents(memories, lifecycleEvents) {
180
- if (lifecycleEvents.length > 0) {
181
- return {
182
- events: sortMemoryLifecycleEvents(lifecycleEvents),
183
- usedLifecycleLedger: true
184
- };
185
- }
186
- return {
187
- events: sortMemoryLifecycleEvents(memories.flatMap((memory) => buildLifecycleEventsForMemory(memory))),
188
- usedLifecycleLedger: false
189
- };
190
- }
191
353
  function normalizeScopedIso(value) {
192
354
  if (!value) return null;
193
355
  const trimmed = value.trim();
@@ -337,67 +499,39 @@ function selectProjectionMemories(tiers) {
337
499
  }
338
500
  return { allMemories, memories, skippedDuplicateMemories, skippedBlankIdMemories };
339
501
  }
340
- function deduplicateTimelineEvents(events, sourcePathFor) {
341
- const keptById = /* @__PURE__ */ new Map();
342
- const unique = [];
343
- const skipped = [];
344
- const skippedBlankIds = [];
345
- for (const event of sortMemoryLifecycleEvents(events)) {
346
- const sourcePath = sourcePathFor(event);
347
- if (!event.memoryId.trim()) {
348
- skippedBlankIds.push({ eventId: event.eventId, path: sourcePath });
349
- log.warn(
350
- `projection rebuild skipped timeline event with blank memory id: event_id=${event.eventId} path=${sourcePath}`
351
- );
352
- continue;
353
- }
354
- const kept = keptById.get(event.eventId);
355
- if (kept) {
356
- skipped.push({
357
- eventId: event.eventId,
358
- keptPath: kept.path,
359
- skippedPath: sourcePath
360
- });
361
- log.warn(
362
- `projection rebuild skipped duplicate timeline event_id=${event.eventId}: kept=${kept.path} skipped=${sourcePath}`
363
- );
364
- continue;
365
- }
366
- keptById.set(event.eventId, { event, path: sourcePath });
367
- unique.push(event);
368
- }
369
- return { events: unique, skipped, skippedBlankIds };
370
- }
371
502
  async function loadAuthoritativeProjectionSnapshot(options) {
372
503
  const storage = assertInjectedStorageRooted("rebuildMemoryProjection", options.memoryDir, options.storage) ?? new StorageManager(options.memoryDir);
373
504
  storage.invalidateAllMemoriesCacheForDir({ indexedText: false });
374
- const selected = selectProjectionMemories([
375
- await storage.readAllMemories(),
376
- await storage.readAllColdMemories(),
377
- await storage.readArchivedMemories()
378
- ]);
505
+ const corpusRead = {
506
+ retainRaw: options.retainRaw === true,
507
+ abortSignal: options.signal
508
+ };
509
+ const hot = await storage.readAllMemories(corpusRead);
510
+ await throwIfProjectionRebuildAborted(options.signal);
511
+ const cold = await storage.readAllColdMemories(corpusRead);
512
+ await throwIfProjectionRebuildAborted(options.signal);
513
+ const archived = await storage.readArchivedMemories(corpusRead);
514
+ await throwIfProjectionRebuildAborted(options.signal);
515
+ const selected = selectProjectionMemories([hot, cold, archived]);
379
516
  const allMemories = selected.allMemories;
380
517
  const projectionMemories = selected.memories;
381
- const lifecycleEvents = await storage.readAllMemoryLifecycleEvents();
382
- const timeline = loadTimelineEvents(projectionMemories, lifecycleEvents);
383
- const lifecycleLedgerPath = path.join(
384
- options.memoryDir,
385
- "state",
386
- "memory-lifecycle-ledger.jsonl"
387
- );
388
- const memoryPathById = new Map(
389
- projectionMemories.map((memory) => [memory.frontmatter.id, memory.path])
390
- );
391
- const deduplicatedTimeline = deduplicateTimelineEvents(
392
- timeline.events,
393
- (event) => timeline.usedLifecycleLedger ? lifecycleLedgerPath : memoryPathById.get(event.memoryId) ?? lifecycleLedgerPath
394
- );
395
- const events = deduplicatedTimeline.events;
396
- const usedLifecycleLedger = timeline.usedLifecycleLedger;
397
- const sourceLifecycleLedgerEventCount = new Set(
398
- lifecycleEvents.map(memoryLifecycleEventProjectionIdentity)
399
- ).size;
400
518
  const currentRows = projectionMemories.map((memory) => toCurrentStateRow(options.memoryDir, memory));
519
+ if (options.retainRaw !== true) {
520
+ for (const memory of allMemories) memory.content = "";
521
+ }
522
+ const {
523
+ events,
524
+ usedLifecycleLedger,
525
+ sourceLifecycleLedgerEventCount,
526
+ skipped: skippedDuplicateTimelineEvents,
527
+ skippedBlankIds: skippedBlankIdTimelineEvents
528
+ } = await loadProjectionTimeline({
529
+ storage,
530
+ memoryDir: options.memoryDir,
531
+ memories: projectionMemories,
532
+ signal: options.signal
533
+ });
534
+ await throwIfProjectionRebuildAborted(options.signal);
401
535
  const scope = normalizeProjectionScope(options);
402
536
  const scopedMemories = filterMemoriesForProjectionScope(projectionMemories, scope);
403
537
  const scopedMemoryIds = new Set(scopedMemories.map((memory) => memory.frontmatter.id));
@@ -438,8 +572,8 @@ async function loadAuthoritativeProjectionSnapshot(options) {
438
572
  scope,
439
573
  skippedDuplicateMemories: selected.skippedDuplicateMemories,
440
574
  skippedBlankIdMemories: selected.skippedBlankIdMemories,
441
- skippedDuplicateTimelineEvents: deduplicatedTimeline.skipped,
442
- skippedBlankIdTimelineEvents: deduplicatedTimeline.skippedBlankIds
575
+ skippedDuplicateTimelineEvents,
576
+ skippedBlankIdTimelineEvents
443
577
  };
444
578
  }
445
579
  function readProjectedCurrentRows(memoryDir) {
@@ -513,7 +647,7 @@ function readProjectedTimelineRows(memoryDir) {
513
647
  }
514
648
  function writeProjectionDb(dbPath, nowIso, currentRows, timelineRows, entityMentionRows, nativeKnowledgeRows, governance, usedLifecycleLedger, sourceLifecycleLedgerEventCount, complete) {
515
649
  const db = openBetterSqlite3(dbPath);
516
- const memoryDir = path.dirname(path.dirname(dbPath));
650
+ const memoryDir = path2.dirname(path2.dirname(dbPath));
517
651
  try {
518
652
  initializeMemoryProjectionDb(db);
519
653
  const insertMeta = db.prepare("INSERT OR REPLACE INTO meta(key, value) VALUES (?, ?)");
@@ -774,6 +908,7 @@ async function rebuildMemoryProjection(options) {
774
908
  const now = options.now ?? /* @__PURE__ */ new Date();
775
909
  const outputPath = getMemoryProjectionPath(options.memoryDir);
776
910
  const snapshot = await loadAuthoritativeProjectionSnapshot(options);
911
+ await throwIfProjectionRebuildAborted(options.signal);
777
912
  let backupPath;
778
913
  if (!dryRun) {
779
914
  let nextCurrentRows = snapshot.currentRows;
@@ -824,7 +959,8 @@ async function rebuildMemoryProjection(options) {
824
959
  }
825
960
  }
826
961
  const tempPath = `${outputPath}.tmp`;
827
- await mkdir(path.dirname(outputPath), { recursive: true });
962
+ await mkdir(path2.dirname(outputPath), { recursive: true });
963
+ await throwIfProjectionRebuildAborted(options.signal);
828
964
  await rm(tempPath, { force: true });
829
965
  writeProjectionDb(
830
966
  tempPath,
@@ -838,8 +974,20 @@ async function rebuildMemoryProjection(options) {
838
974
  snapshot.sourceLifecycleLedgerEventCount,
839
975
  !hasScopedProjectionFilter(snapshot.scope)
840
976
  );
841
- backupPath = await backupExistingProjection(options.memoryDir, outputPath, now);
842
- backupPath = await commitPreparedFileAtomically(tempPath, outputPath, backupPath);
977
+ try {
978
+ await throwIfProjectionRebuildAborted(options.signal);
979
+ backupPath = await backupExistingProjection(options.memoryDir, outputPath, now);
980
+ await throwIfProjectionRebuildAborted(options.signal);
981
+ backupPath = await commitPreparedFileAtomically(
982
+ tempPath,
983
+ outputPath,
984
+ backupPath,
985
+ () => throwIfProjectionRebuildAborted(options.signal)
986
+ );
987
+ } catch (err) {
988
+ if (options.signal?.aborted) await rm(tempPath, { force: true });
989
+ throw err;
990
+ }
843
991
  }
844
992
  return {
845
993
  dryRun,
@@ -1002,9 +1150,10 @@ async function repairMemoryProjection(options) {
1002
1150
  }
1003
1151
 
1004
1152
  export {
1153
+ watchProjectionRebuildParent,
1005
1154
  backupExistingProjection,
1006
1155
  rebuildMemoryProjection,
1007
1156
  verifyMemoryProjection,
1008
1157
  repairMemoryProjection
1009
1158
  };
1010
- //# sourceMappingURL=chunk-4A2UMSNB.js.map
1159
+ //# sourceMappingURL=chunk-DBA2W6VV.js.map