@remnic/core 9.69.87 → 9.69.89

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 (416) hide show
  1. package/dist/access-admin-ops-surface.js +56 -49
  2. package/dist/access-authorization-probe.js +57 -50
  3. package/dist/access-boundary.js +56 -49
  4. package/dist/access-citation-namespace.js +2 -2
  5. package/dist/access-cli.js +129 -122
  6. package/dist/access-cli.js.map +1 -1
  7. package/dist/access-extraction-force-flush.js +56 -49
  8. package/dist/access-http-briefing.js +57 -50
  9. package/dist/access-http-offline-stream.d.ts.map +1 -1
  10. package/dist/access-http-offline-stream.js +1 -1
  11. package/dist/access-http-query.js +58 -51
  12. package/dist/access-http.js +78 -71
  13. package/dist/access-identity-continuity-surface.js +56 -49
  14. package/dist/access-lcm-surface.js +56 -49
  15. package/dist/access-mcp-output-schemas.d.ts.map +1 -1
  16. package/dist/access-mcp-output-schemas.js +1 -1
  17. package/dist/access-mcp.js +69 -62
  18. package/dist/access-namespace-preflight.js +56 -49
  19. package/dist/access-observe-write-category.js +20 -13
  20. package/dist/access-observe-write-surface.js +56 -49
  21. package/dist/access-offline-manifest.js +16 -10
  22. package/dist/access-operations-batch.js +60 -53
  23. package/dist/access-operations.js +67 -60
  24. package/dist/access-recall-concurrency.js +56 -49
  25. package/dist/access-recall-response.js +56 -49
  26. package/dist/access-recall-surface.js +56 -49
  27. package/dist/access-schema.js +16 -7
  28. package/dist/access-service.d.ts.map +1 -1
  29. package/dist/access-service.js +56 -49
  30. package/dist/access-surface-catalog.js +58 -51
  31. package/dist/access-surface-catalog.js.map +1 -1
  32. package/dist/active-recall.js +24 -18
  33. package/dist/active-recall.js.map +1 -1
  34. package/dist/{auto-sync-6IPX2BAC.js → auto-sync-U5N3CB5Y.js} +7 -7
  35. package/dist/briefing.js +11 -11
  36. package/dist/buffer.js +7 -7
  37. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-GWVG7LGC.js} +2 -2
  38. package/dist/{capsule-merge-3MNURAQ3.js → capsule-merge-ZCXUPLNJ.js} +2 -2
  39. package/dist/causal-behavior.js +2 -2
  40. package/dist/causal-chain.js +2 -2
  41. package/dist/causal-consolidation.js +14 -14
  42. package/dist/causal-retrieval.js +2 -2
  43. package/dist/causal-trajectory-graph.js +2 -2
  44. package/dist/causal-trajectory.js +1 -1
  45. package/dist/{chunk-JE334SIA.js → chunk-22DYJLFN.js} +2 -2
  46. package/dist/{chunk-YTQGGO3K.js → chunk-22LMCQ5B.js} +85 -82
  47. package/dist/{chunk-YTQGGO3K.js.map → chunk-22LMCQ5B.js.map} +1 -1
  48. package/dist/{chunk-JGSQ6P4D.js → chunk-2FX374UI.js} +2 -2
  49. package/dist/{chunk-SY5KDWGU.js → chunk-2WLMWP2T.js} +2 -2
  50. package/dist/{chunk-6TT6HRE4.js → chunk-3AGHSQPM.js} +2 -2
  51. package/dist/{chunk-P6WFK4ZJ.js → chunk-3O5BB45T.js} +4 -4
  52. package/dist/{chunk-3C3J243X.js → chunk-3QKO4QN7.js} +3 -3
  53. package/dist/{chunk-KFCMMDHH.js → chunk-3YD44CH2.js} +2 -2
  54. package/dist/{chunk-FRCESVV6.js → chunk-4HUCP4R4.js} +18 -18
  55. package/dist/chunk-4HUCP4R4.js.map +1 -0
  56. package/dist/chunk-4NSLQ7EU.js +137 -0
  57. package/dist/chunk-4NSLQ7EU.js.map +1 -0
  58. package/dist/{chunk-7DE2NOON.js → chunk-4O4XCBOS.js} +3 -3
  59. package/dist/{chunk-GDYU6VF4.js → chunk-5AYUHSAU.js} +2 -2
  60. package/dist/{chunk-ICZQG4XE.js → chunk-5FAGCOZD.js} +4 -4
  61. package/dist/{chunk-VKQI47DJ.js → chunk-5FNZ3G6X.js} +4 -4
  62. package/dist/{chunk-CK5KOVHW.js → chunk-5R627MYY.js} +3 -2
  63. package/dist/{chunk-CK5KOVHW.js.map → chunk-5R627MYY.js.map} +1 -1
  64. package/dist/{chunk-VQNONC4E.js → chunk-5STPRPE7.js} +2 -2
  65. package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
  66. package/dist/{chunk-SRZW7FNU.js → chunk-64ZUALXK.js} +2 -2
  67. package/dist/{chunk-4BZP2B4U.js → chunk-6MNKDTDI.js} +2 -2
  68. package/dist/{chunk-DUJYRVUD.js → chunk-6O2VUWV6.js} +3 -3
  69. package/dist/chunk-75PT4N7Q.js +75 -0
  70. package/dist/chunk-75PT4N7Q.js.map +1 -0
  71. package/dist/{chunk-HESDNYRB.js → chunk-76M5OK7V.js} +2 -2
  72. package/dist/{chunk-FAN73COB.js → chunk-7D7OUO5W.js} +2 -2
  73. package/dist/{chunk-DZ525SNQ.js → chunk-7QE46QXI.js} +1 -1
  74. package/dist/{chunk-VX6GCKBS.js → chunk-7WBSMXGC.js} +4 -4
  75. package/dist/{chunk-VVDWZRZG.js → chunk-A6RVIHHK.js} +3 -3
  76. package/dist/{chunk-M536WNTQ.js → chunk-AEJ3TE5H.js} +2 -2
  77. package/dist/{chunk-72JNNJJJ.js → chunk-AXC4WSF3.js} +3 -3
  78. package/dist/chunk-AXGJMDBS.js +684 -0
  79. package/dist/chunk-AXGJMDBS.js.map +1 -0
  80. package/dist/{chunk-UA5DX5C3.js → chunk-AZIOEOK4.js} +2 -2
  81. package/dist/{chunk-N4S4NUX5.js → chunk-B3O3IRZN.js} +1 -1
  82. package/dist/{chunk-XTYX6V52.js → chunk-BJVO4H5C.js} +2 -2
  83. package/dist/{chunk-7LCGFUMB.js → chunk-BUKK5SWA.js} +4 -4
  84. package/dist/{chunk-TM3RXL4G.js → chunk-BUQKSQXL.js} +2 -2
  85. package/dist/chunk-C6HPNPNK.js +64 -0
  86. package/dist/chunk-C6HPNPNK.js.map +1 -0
  87. package/dist/{chunk-RB776UH3.js → chunk-C7V3KPKJ.js} +235 -93
  88. package/dist/chunk-C7V3KPKJ.js.map +1 -0
  89. package/dist/{chunk-FOH7AMMI.js → chunk-CALBQ2NG.js} +71 -72
  90. package/dist/chunk-CALBQ2NG.js.map +1 -0
  91. package/dist/{chunk-37S3IMYB.js → chunk-DGS34QSY.js} +2 -2
  92. package/dist/{chunk-4IEOGIPB.js → chunk-DO4C4AXD.js} +2 -2
  93. package/dist/{chunk-SPSRGEDQ.js → chunk-EAQQ2FD3.js} +9 -9
  94. package/dist/{chunk-3BTFBQLO.js → chunk-EFHNFTWB.js} +49 -3
  95. package/dist/chunk-EFHNFTWB.js.map +1 -0
  96. package/dist/{chunk-C3QXITIP.js → chunk-EQUD7FP4.js} +2 -2
  97. package/dist/chunk-ETUZFFPU.js +218 -0
  98. package/dist/chunk-ETUZFFPU.js.map +1 -0
  99. package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
  100. package/dist/{chunk-YITN5WXI.js → chunk-FC52YWAO.js} +2 -2
  101. package/dist/{chunk-ZI7QA4MK.js → chunk-FEIXG5FA.js} +2 -2
  102. package/dist/{chunk-CLXTDOKV.js → chunk-FUNBJQYR.js} +2 -2
  103. package/dist/{chunk-CLSYE5OZ.js → chunk-G2STTRYB.js} +2 -2
  104. package/dist/{chunk-TDYAIXHK.js → chunk-H36X4NRH.js} +5 -5
  105. package/dist/{chunk-3GQC3NMB.js → chunk-H56VY4BY.js} +5 -5
  106. package/dist/{chunk-PUKTBULQ.js → chunk-HWLIMQE2.js} +2 -2
  107. package/dist/{chunk-V2ES4WCZ.js → chunk-IIARQTZ2.js} +2 -2
  108. package/dist/{chunk-QEV26L2F.js → chunk-IKDRGVVJ.js} +2 -2
  109. package/dist/{chunk-WQZZDN5M.js → chunk-IVEHY2VT.js} +254 -377
  110. package/dist/chunk-IVEHY2VT.js.map +1 -0
  111. package/dist/{chunk-LS3XH3UE.js → chunk-IYIBGSHJ.js} +2 -2
  112. package/dist/{chunk-YSJTCOHR.js → chunk-J27JML5O.js} +2 -2
  113. package/dist/{chunk-AQK54Q7O.js → chunk-JB56XYHP.js} +2 -2
  114. package/dist/{chunk-NE6PHPLG.js → chunk-JBH26P62.js} +10 -10
  115. package/dist/{chunk-CWHV574S.js → chunk-JUT3OR2L.js} +6 -6
  116. package/dist/{chunk-6ET2VII7.js → chunk-JYG2334B.js} +2 -2
  117. package/dist/{chunk-LF5IGOOD.js → chunk-JYM4Y6SO.js} +16 -16
  118. package/dist/{chunk-FB64XE3R.js → chunk-JZ4TJHR2.js} +2 -2
  119. package/dist/{chunk-EHS5MJEF.js → chunk-KTKHO3UI.js} +3 -3
  120. package/dist/{chunk-WIKO4SCR.js → chunk-LHRQBMJN.js} +2 -2
  121. package/dist/{chunk-K4J4E7WV.js → chunk-LO4UKPKX.js} +2 -2
  122. package/dist/{chunk-JN72EPOE.js → chunk-MAAL6OZV.js} +7 -7
  123. package/dist/chunk-MAAL6OZV.js.map +1 -0
  124. package/dist/{chunk-MY2PLXSM.js → chunk-MCTM4YPL.js} +2 -1
  125. package/dist/{chunk-MY2PLXSM.js.map → chunk-MCTM4YPL.js.map} +1 -1
  126. package/dist/{chunk-6NQ4LSMS.js → chunk-MGZMC6WN.js} +47 -47
  127. package/dist/chunk-MSAI3Q7D.js +372 -0
  128. package/dist/chunk-MSAI3Q7D.js.map +1 -0
  129. package/dist/{chunk-BMYZTZ5D.js → chunk-MY7B3HYC.js} +2 -2
  130. package/dist/{chunk-NB3LRY4T.js → chunk-N4PYB235.js} +2 -2
  131. package/dist/{chunk-S3YM4SZQ.js → chunk-N7QV3CMX.js} +2 -2
  132. package/dist/{chunk-L6UZEAID.js → chunk-NJVR724O.js} +4 -4
  133. package/dist/{chunk-VLLD4TOB.js → chunk-NMZVDRVP.js} +2 -2
  134. package/dist/{chunk-P2WZHLUF.js → chunk-NOL7SEWN.js} +2 -2
  135. package/dist/{chunk-2NLLXCJG.js → chunk-OWHERGF2.js} +2 -2
  136. package/dist/{chunk-6L3PBSAR.js → chunk-PMNLL2TL.js} +2 -2
  137. package/dist/{chunk-VYCOJKSX.js → chunk-PO7NXNGC.js} +2 -2
  138. package/dist/{chunk-4IIMMZZK.js → chunk-PULDSMCJ.js} +10 -10
  139. package/dist/{chunk-G6SVZWPB.js → chunk-PZX3AQLF.js} +44 -1
  140. package/dist/chunk-PZX3AQLF.js.map +1 -0
  141. package/dist/{chunk-HBBHL4YF.js → chunk-QOXNTKXB.js} +2 -2
  142. package/dist/{chunk-CUCWX3MO.js → chunk-QZLCVO2V.js} +2 -2
  143. package/dist/{chunk-NE7I2RCT.js → chunk-R3X2T2LP.js} +2 -2
  144. package/dist/{chunk-S7GCT7NU.js → chunk-RBITPCMK.js} +8 -8
  145. package/dist/{chunk-EVBI7S4J.js → chunk-RMDGAAZF.js} +4 -4
  146. package/dist/{chunk-BJRAELDH.js → chunk-SCXURCVT.js} +3 -3
  147. package/dist/{chunk-EQ6YOIKO.js → chunk-ST2RQUXC.js} +3 -3
  148. package/dist/{chunk-CS52MFDV.js → chunk-SZG4WFAG.js} +2 -2
  149. package/dist/{chunk-BFO3IR56.js → chunk-TPEZ2SHV.js} +2 -2
  150. package/dist/chunk-TYT4TEQV.js +45 -0
  151. package/dist/chunk-TYT4TEQV.js.map +1 -0
  152. package/dist/{chunk-YRLHEEQT.js → chunk-U6VC6RP3.js} +2 -2
  153. package/dist/chunk-UCPGOUDZ.js +726 -0
  154. package/dist/chunk-UCPGOUDZ.js.map +1 -0
  155. package/dist/{chunk-MOQPEFLN.js → chunk-UP75KL3L.js} +2 -2
  156. package/dist/{chunk-W4AOR52H.js → chunk-UQDC3W77.js} +2 -2
  157. package/dist/{chunk-X7Y7WX73.js → chunk-UVYI6VIX.js} +1 -1
  158. package/dist/{chunk-D5F7TKMH.js → chunk-V4JZCTMK.js} +2 -2
  159. package/dist/{chunk-MQJL6CDZ.js → chunk-VA4O3U7U.js} +4 -4
  160. package/dist/{chunk-4CDYONWO.js → chunk-VDO32NLK.js} +3 -3
  161. package/dist/{chunk-SOZUJCME.js → chunk-VHDKPGMG.js} +6 -6
  162. package/dist/{chunk-QWW2JDDX.js → chunk-WNRTXEWW.js} +6 -6
  163. package/dist/{chunk-NR2ASHBL.js → chunk-XOV7NRY5.js} +2 -2
  164. package/dist/{chunk-KP7SANCF.js → chunk-YPI4RQWV.js} +2 -2
  165. package/dist/{chunk-JKMHZF3Q.js → chunk-YSWJXOOL.js} +2 -2
  166. package/dist/{chunk-LQG5O5EP.js → chunk-Z3O53WZR.js} +2 -2
  167. package/dist/{chunk-QVS22WTO.js → chunk-ZG5DWWKK.js} +2 -2
  168. package/dist/cli.js +99 -92
  169. package/dist/coding/export-okf-codegraph.js +12 -12
  170. package/dist/coding/pre-action-gate.js +2 -2
  171. package/dist/compounding/engine.js +12 -12
  172. package/dist/config.js +24 -18
  173. package/dist/connectors/codex-materialize-runner.js +11 -11
  174. package/dist/connectors/index.js +11 -11
  175. package/dist/console/state.d.ts +30 -0
  176. package/dist/console/state.d.ts.map +1 -1
  177. package/dist/contradiction/index.js +5 -5
  178. package/dist/convergence-refresh.js +13 -13
  179. package/dist/corpus-watermark.js +13 -13
  180. package/dist/dashboard-runtime.js +2 -2
  181. package/dist/deep-recall-http-glue.js +16 -8
  182. package/dist/embedding-fallback.d.ts +41 -31
  183. package/dist/embedding-fallback.d.ts.map +1 -1
  184. package/dist/embedding-fallback.js +9 -1
  185. package/dist/embedding-generation-lock.d.ts +49 -0
  186. package/dist/embedding-generation-lock.d.ts.map +1 -0
  187. package/dist/embedding-generation-lock.js +19 -0
  188. package/dist/embedding-index-storage.d.ts +276 -0
  189. package/dist/embedding-index-storage.d.ts.map +1 -0
  190. package/dist/embedding-index-storage.js +28 -0
  191. package/dist/entity-retrieval.js +12 -12
  192. package/dist/event-order-recall.js +3 -3
  193. package/dist/explicit-capture.js +6 -6
  194. package/dist/external-wiki-access.js +57 -50
  195. package/dist/extraction.js +17 -17
  196. package/dist/{first-start-migration-7OATHJKB.js → first-start-migration-GAT7G733.js} +4 -4
  197. package/dist/{graph-edge-decay-KQGS3L3B.js → graph-edge-decay-MKIRZ762.js} +5 -5
  198. package/dist/graph-jsonl.js +3 -3
  199. package/dist/graph-snapshot.js +3 -3
  200. package/dist/graph.js +2 -2
  201. package/dist/harmonic-retrieval.js +1 -1
  202. package/dist/index.d.ts +2 -0
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +195 -164
  205. package/dist/lcm/engine.js +2 -2
  206. package/dist/lcm/index.js +5 -5
  207. package/dist/local-llm.js +2 -2
  208. package/dist/location/index.js +14 -14
  209. package/dist/maintenance/memory-governance.js +11 -11
  210. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -11
  211. package/dist/maintenance/rebuild-memory-projection.js +12 -12
  212. package/dist/memory-browse-operations.js +57 -50
  213. package/dist/memory-subject.js +3 -3
  214. package/dist/namespaces/migrate.js +12 -12
  215. package/dist/namespaces/storage.js +11 -11
  216. package/dist/offline-sync-changeset-generations.d.ts +82 -0
  217. package/dist/offline-sync-changeset-generations.d.ts.map +1 -0
  218. package/dist/offline-sync-changeset-generations.js +21 -0
  219. package/dist/offline-sync-embedding-generation.d.ts +257 -0
  220. package/dist/offline-sync-embedding-generation.d.ts.map +1 -0
  221. package/dist/offline-sync-embedding-generation.js +44 -0
  222. package/dist/offline-sync-embedding-generation.js.map +1 -0
  223. package/dist/offline-sync-exclude-globs.d.ts +15 -0
  224. package/dist/offline-sync-exclude-globs.d.ts.map +1 -1
  225. package/dist/offline-sync-exclude-globs.js +11 -3
  226. package/dist/offline-sync-file-io.d.ts +7 -0
  227. package/dist/offline-sync-file-io.d.ts.map +1 -1
  228. package/dist/offline-sync-file-io.js +14 -2
  229. package/dist/offline-sync-impression-drain.js +3 -3
  230. package/dist/offline-sync-runtime-state.d.ts +5 -0
  231. package/dist/offline-sync-runtime-state.d.ts.map +1 -0
  232. package/dist/offline-sync-runtime-state.js +14 -0
  233. package/dist/offline-sync-runtime-state.js.map +1 -0
  234. package/dist/offline-sync-snapshot-stream.d.ts +26 -0
  235. package/dist/offline-sync-snapshot-stream.d.ts.map +1 -0
  236. package/dist/offline-sync-snapshot-stream.js +29 -0
  237. package/dist/offline-sync-snapshot-stream.js.map +1 -0
  238. package/dist/offline-sync-upload-staging.d.ts +34 -0
  239. package/dist/offline-sync-upload-staging.d.ts.map +1 -0
  240. package/dist/offline-sync-upload-staging.js +26 -0
  241. package/dist/offline-sync-upload-staging.js.map +1 -0
  242. package/dist/offline-sync.d.ts +58 -28
  243. package/dist/offline-sync.d.ts.map +1 -1
  244. package/dist/offline-sync.js +22 -8
  245. package/dist/operator-doctor-corpus.js +14 -14
  246. package/dist/operator-toolkit.js +35 -29
  247. package/dist/orchestration/maintenance.js +22 -22
  248. package/dist/orchestrator.d.ts.map +1 -1
  249. package/dist/orchestrator.js +129 -122
  250. package/dist/recall-navigation-operations.js +57 -50
  251. package/dist/recall-navigation.js +56 -49
  252. package/dist/reconcile/manifest.js +4 -4
  253. package/dist/{resolution-DNX7FO7A.js → resolution-K4A3VPKZ.js} +6 -6
  254. package/dist/resolution-K4A3VPKZ.js.map +1 -0
  255. package/dist/resume-bundles.js +25 -19
  256. package/dist/salvage-envelope.js +5 -5
  257. package/dist/secure-store/index.js +2 -2
  258. package/dist/secure-store/secure-fs.d.ts +14 -1
  259. package/dist/secure-store/secure-fs.d.ts.map +1 -1
  260. package/dist/semantic-consolidation.js +12 -12
  261. package/dist/semantic-rule-promotion.js +11 -11
  262. package/dist/semantic-rule-verifier.js +11 -11
  263. package/dist/source-agent-qualifier.js +14 -14
  264. package/dist/standup/build.js +11 -11
  265. package/dist/{state-ITXJKXRE.js → state-JB47KHYV.js} +2 -2
  266. package/dist/state-JB47KHYV.js.map +1 -0
  267. package/dist/storage.d.ts +9 -3
  268. package/dist/storage.d.ts.map +1 -1
  269. package/dist/storage.js +10 -10
  270. package/dist/subject-config.js +4 -4
  271. package/dist/summarizer.js +3 -3
  272. package/dist/support-passport/index.js +59 -52
  273. package/dist/support-passport/offline-sync-guard.d.ts +6 -2
  274. package/dist/support-passport/offline-sync-guard.d.ts.map +1 -1
  275. package/dist/{trace-ZFVRH4GO.js → trace-LXXCMZJA.js} +3 -3
  276. package/dist/transfer/backup.js +2 -2
  277. package/dist/transfer/capsule-export.js +2 -2
  278. package/dist/transfer/capsule-import.js +3 -3
  279. package/dist/transfer/export-okf.js +12 -12
  280. package/dist/{tui-55UJMJX7.js → tui-2Z5WOV7L.js} +3 -3
  281. package/dist/tui-2Z5WOV7L.js.map +1 -0
  282. package/dist/verified-recall.js +11 -11
  283. package/dist/who-knows-cli.js +12 -12
  284. package/dist/who-knows.js +11 -11
  285. package/dist/write-envelope.js +4 -4
  286. package/package.json +2 -2
  287. package/src/access-http-offline-stream.ts +3 -0
  288. package/src/access-mcp-output-schemas.ts +1 -0
  289. package/src/access-service.ts +7 -18
  290. package/src/console/state.test.ts +56 -0
  291. package/src/console/state.ts +83 -0
  292. package/src/embedding-fallback.ts +325 -141
  293. package/src/embedding-generation-lock.ts +141 -0
  294. package/src/embedding-index-storage.test.ts +245 -0
  295. package/src/embedding-index-storage.ts +1068 -0
  296. package/src/index.ts +3 -3
  297. package/src/offline-sync-changeset-generations.test.ts +962 -0
  298. package/src/offline-sync-changeset-generations.ts +549 -0
  299. package/src/offline-sync-embedding-generation.test.ts +2173 -0
  300. package/src/offline-sync-embedding-generation.ts +1153 -0
  301. package/src/offline-sync-exclude-globs.ts +112 -0
  302. package/src/offline-sync-file-io.ts +48 -0
  303. package/src/offline-sync-runtime-state.ts +48 -0
  304. package/src/offline-sync-snapshot-stream.ts +99 -0
  305. package/src/offline-sync-upload-staging.ts +291 -0
  306. package/src/offline-sync.test.ts +164 -1
  307. package/src/offline-sync.ts +372 -454
  308. package/src/orchestrator.ts +2 -1
  309. package/src/secure-store/secure-fs.ts +26 -6
  310. package/src/storage.ts +11 -6
  311. package/src/support-passport/offline-sync-guard.ts +16 -2
  312. package/dist/chunk-3BTFBQLO.js.map +0 -1
  313. package/dist/chunk-AREGMX2J.js +0 -50
  314. package/dist/chunk-AREGMX2J.js.map +0 -1
  315. package/dist/chunk-FOH7AMMI.js.map +0 -1
  316. package/dist/chunk-FRCESVV6.js.map +0 -1
  317. package/dist/chunk-G6SVZWPB.js.map +0 -1
  318. package/dist/chunk-JN72EPOE.js.map +0 -1
  319. package/dist/chunk-RB776UH3.js.map +0 -1
  320. package/dist/chunk-WQZZDN5M.js.map +0 -1
  321. /package/dist/{auto-sync-6IPX2BAC.js.map → auto-sync-U5N3CB5Y.js.map} +0 -0
  322. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
  323. /package/dist/{capsule-merge-3MNURAQ3.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
  324. /package/dist/{chunk-JE334SIA.js.map → chunk-22DYJLFN.js.map} +0 -0
  325. /package/dist/{chunk-JGSQ6P4D.js.map → chunk-2FX374UI.js.map} +0 -0
  326. /package/dist/{chunk-SY5KDWGU.js.map → chunk-2WLMWP2T.js.map} +0 -0
  327. /package/dist/{chunk-6TT6HRE4.js.map → chunk-3AGHSQPM.js.map} +0 -0
  328. /package/dist/{chunk-P6WFK4ZJ.js.map → chunk-3O5BB45T.js.map} +0 -0
  329. /package/dist/{chunk-3C3J243X.js.map → chunk-3QKO4QN7.js.map} +0 -0
  330. /package/dist/{chunk-KFCMMDHH.js.map → chunk-3YD44CH2.js.map} +0 -0
  331. /package/dist/{chunk-7DE2NOON.js.map → chunk-4O4XCBOS.js.map} +0 -0
  332. /package/dist/{chunk-GDYU6VF4.js.map → chunk-5AYUHSAU.js.map} +0 -0
  333. /package/dist/{chunk-ICZQG4XE.js.map → chunk-5FAGCOZD.js.map} +0 -0
  334. /package/dist/{chunk-VKQI47DJ.js.map → chunk-5FNZ3G6X.js.map} +0 -0
  335. /package/dist/{chunk-VQNONC4E.js.map → chunk-5STPRPE7.js.map} +0 -0
  336. /package/dist/{chunk-52II7PB6.js.map → chunk-645WOU5I.js.map} +0 -0
  337. /package/dist/{chunk-SRZW7FNU.js.map → chunk-64ZUALXK.js.map} +0 -0
  338. /package/dist/{chunk-4BZP2B4U.js.map → chunk-6MNKDTDI.js.map} +0 -0
  339. /package/dist/{chunk-DUJYRVUD.js.map → chunk-6O2VUWV6.js.map} +0 -0
  340. /package/dist/{chunk-HESDNYRB.js.map → chunk-76M5OK7V.js.map} +0 -0
  341. /package/dist/{chunk-FAN73COB.js.map → chunk-7D7OUO5W.js.map} +0 -0
  342. /package/dist/{chunk-DZ525SNQ.js.map → chunk-7QE46QXI.js.map} +0 -0
  343. /package/dist/{chunk-VX6GCKBS.js.map → chunk-7WBSMXGC.js.map} +0 -0
  344. /package/dist/{chunk-VVDWZRZG.js.map → chunk-A6RVIHHK.js.map} +0 -0
  345. /package/dist/{chunk-M536WNTQ.js.map → chunk-AEJ3TE5H.js.map} +0 -0
  346. /package/dist/{chunk-72JNNJJJ.js.map → chunk-AXC4WSF3.js.map} +0 -0
  347. /package/dist/{chunk-UA5DX5C3.js.map → chunk-AZIOEOK4.js.map} +0 -0
  348. /package/dist/{chunk-N4S4NUX5.js.map → chunk-B3O3IRZN.js.map} +0 -0
  349. /package/dist/{chunk-XTYX6V52.js.map → chunk-BJVO4H5C.js.map} +0 -0
  350. /package/dist/{chunk-7LCGFUMB.js.map → chunk-BUKK5SWA.js.map} +0 -0
  351. /package/dist/{chunk-TM3RXL4G.js.map → chunk-BUQKSQXL.js.map} +0 -0
  352. /package/dist/{chunk-37S3IMYB.js.map → chunk-DGS34QSY.js.map} +0 -0
  353. /package/dist/{chunk-4IEOGIPB.js.map → chunk-DO4C4AXD.js.map} +0 -0
  354. /package/dist/{chunk-SPSRGEDQ.js.map → chunk-EAQQ2FD3.js.map} +0 -0
  355. /package/dist/{chunk-C3QXITIP.js.map → chunk-EQUD7FP4.js.map} +0 -0
  356. /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
  357. /package/dist/{chunk-YITN5WXI.js.map → chunk-FC52YWAO.js.map} +0 -0
  358. /package/dist/{chunk-ZI7QA4MK.js.map → chunk-FEIXG5FA.js.map} +0 -0
  359. /package/dist/{chunk-CLXTDOKV.js.map → chunk-FUNBJQYR.js.map} +0 -0
  360. /package/dist/{chunk-CLSYE5OZ.js.map → chunk-G2STTRYB.js.map} +0 -0
  361. /package/dist/{chunk-TDYAIXHK.js.map → chunk-H36X4NRH.js.map} +0 -0
  362. /package/dist/{chunk-3GQC3NMB.js.map → chunk-H56VY4BY.js.map} +0 -0
  363. /package/dist/{chunk-PUKTBULQ.js.map → chunk-HWLIMQE2.js.map} +0 -0
  364. /package/dist/{chunk-V2ES4WCZ.js.map → chunk-IIARQTZ2.js.map} +0 -0
  365. /package/dist/{chunk-QEV26L2F.js.map → chunk-IKDRGVVJ.js.map} +0 -0
  366. /package/dist/{chunk-LS3XH3UE.js.map → chunk-IYIBGSHJ.js.map} +0 -0
  367. /package/dist/{chunk-YSJTCOHR.js.map → chunk-J27JML5O.js.map} +0 -0
  368. /package/dist/{chunk-AQK54Q7O.js.map → chunk-JB56XYHP.js.map} +0 -0
  369. /package/dist/{chunk-NE6PHPLG.js.map → chunk-JBH26P62.js.map} +0 -0
  370. /package/dist/{chunk-CWHV574S.js.map → chunk-JUT3OR2L.js.map} +0 -0
  371. /package/dist/{chunk-6ET2VII7.js.map → chunk-JYG2334B.js.map} +0 -0
  372. /package/dist/{chunk-LF5IGOOD.js.map → chunk-JYM4Y6SO.js.map} +0 -0
  373. /package/dist/{chunk-FB64XE3R.js.map → chunk-JZ4TJHR2.js.map} +0 -0
  374. /package/dist/{chunk-EHS5MJEF.js.map → chunk-KTKHO3UI.js.map} +0 -0
  375. /package/dist/{chunk-WIKO4SCR.js.map → chunk-LHRQBMJN.js.map} +0 -0
  376. /package/dist/{chunk-K4J4E7WV.js.map → chunk-LO4UKPKX.js.map} +0 -0
  377. /package/dist/{chunk-6NQ4LSMS.js.map → chunk-MGZMC6WN.js.map} +0 -0
  378. /package/dist/{chunk-BMYZTZ5D.js.map → chunk-MY7B3HYC.js.map} +0 -0
  379. /package/dist/{chunk-NB3LRY4T.js.map → chunk-N4PYB235.js.map} +0 -0
  380. /package/dist/{chunk-S3YM4SZQ.js.map → chunk-N7QV3CMX.js.map} +0 -0
  381. /package/dist/{chunk-L6UZEAID.js.map → chunk-NJVR724O.js.map} +0 -0
  382. /package/dist/{chunk-VLLD4TOB.js.map → chunk-NMZVDRVP.js.map} +0 -0
  383. /package/dist/{chunk-P2WZHLUF.js.map → chunk-NOL7SEWN.js.map} +0 -0
  384. /package/dist/{chunk-2NLLXCJG.js.map → chunk-OWHERGF2.js.map} +0 -0
  385. /package/dist/{chunk-6L3PBSAR.js.map → chunk-PMNLL2TL.js.map} +0 -0
  386. /package/dist/{chunk-VYCOJKSX.js.map → chunk-PO7NXNGC.js.map} +0 -0
  387. /package/dist/{chunk-4IIMMZZK.js.map → chunk-PULDSMCJ.js.map} +0 -0
  388. /package/dist/{chunk-HBBHL4YF.js.map → chunk-QOXNTKXB.js.map} +0 -0
  389. /package/dist/{chunk-CUCWX3MO.js.map → chunk-QZLCVO2V.js.map} +0 -0
  390. /package/dist/{chunk-NE7I2RCT.js.map → chunk-R3X2T2LP.js.map} +0 -0
  391. /package/dist/{chunk-S7GCT7NU.js.map → chunk-RBITPCMK.js.map} +0 -0
  392. /package/dist/{chunk-EVBI7S4J.js.map → chunk-RMDGAAZF.js.map} +0 -0
  393. /package/dist/{chunk-BJRAELDH.js.map → chunk-SCXURCVT.js.map} +0 -0
  394. /package/dist/{chunk-EQ6YOIKO.js.map → chunk-ST2RQUXC.js.map} +0 -0
  395. /package/dist/{chunk-CS52MFDV.js.map → chunk-SZG4WFAG.js.map} +0 -0
  396. /package/dist/{chunk-BFO3IR56.js.map → chunk-TPEZ2SHV.js.map} +0 -0
  397. /package/dist/{chunk-YRLHEEQT.js.map → chunk-U6VC6RP3.js.map} +0 -0
  398. /package/dist/{chunk-MOQPEFLN.js.map → chunk-UP75KL3L.js.map} +0 -0
  399. /package/dist/{chunk-W4AOR52H.js.map → chunk-UQDC3W77.js.map} +0 -0
  400. /package/dist/{chunk-X7Y7WX73.js.map → chunk-UVYI6VIX.js.map} +0 -0
  401. /package/dist/{chunk-D5F7TKMH.js.map → chunk-V4JZCTMK.js.map} +0 -0
  402. /package/dist/{chunk-MQJL6CDZ.js.map → chunk-VA4O3U7U.js.map} +0 -0
  403. /package/dist/{chunk-4CDYONWO.js.map → chunk-VDO32NLK.js.map} +0 -0
  404. /package/dist/{chunk-SOZUJCME.js.map → chunk-VHDKPGMG.js.map} +0 -0
  405. /package/dist/{chunk-QWW2JDDX.js.map → chunk-WNRTXEWW.js.map} +0 -0
  406. /package/dist/{chunk-NR2ASHBL.js.map → chunk-XOV7NRY5.js.map} +0 -0
  407. /package/dist/{chunk-KP7SANCF.js.map → chunk-YPI4RQWV.js.map} +0 -0
  408. /package/dist/{chunk-JKMHZF3Q.js.map → chunk-YSWJXOOL.js.map} +0 -0
  409. /package/dist/{chunk-LQG5O5EP.js.map → chunk-Z3O53WZR.js.map} +0 -0
  410. /package/dist/{chunk-QVS22WTO.js.map → chunk-ZG5DWWKK.js.map} +0 -0
  411. /package/dist/{graph-edge-decay-KQGS3L3B.js.map → embedding-generation-lock.js.map} +0 -0
  412. /package/dist/{resolution-DNX7FO7A.js.map → embedding-index-storage.js.map} +0 -0
  413. /package/dist/{first-start-migration-7OATHJKB.js.map → first-start-migration-GAT7G733.js.map} +0 -0
  414. /package/dist/{state-ITXJKXRE.js.map → graph-edge-decay-MKIRZ762.js.map} +0 -0
  415. /package/dist/{tui-55UJMJX7.js.map → offline-sync-changeset-generations.js.map} +0 -0
  416. /package/dist/{trace-ZFVRH4GO.js.map → trace-LXXCMZJA.js.map} +0 -0
@@ -2,11 +2,11 @@ import {
2
2
  NamespaceStorageRouter,
3
3
  resolveDefaultNamespaceRoot,
4
4
  resolveNamespaceStorageRoot
5
- } from "../chunk-BFO3IR56.js";
6
- import "../chunk-FRCESVV6.js";
5
+ } from "../chunk-TPEZ2SHV.js";
6
+ import "../chunk-4HUCP4R4.js";
7
7
  import "../chunk-UHVXE24Y.js";
8
8
  import "../chunk-46WM6JX2.js";
9
- import "../chunk-D5F7TKMH.js";
9
+ import "../chunk-V4JZCTMK.js";
10
10
  import "../chunk-RJLV4BKR.js";
11
11
  import "../chunk-SLEAJ67D.js";
12
12
  import "../chunk-S7LWX2PQ.js";
@@ -24,15 +24,15 @@ import "../chunk-A7Q43EUZ.js";
24
24
  import "../chunk-S2V7RUCL.js";
25
25
  import "../chunk-MRPOZBJC.js";
26
26
  import "../chunk-S2HLHAZ4.js";
27
- import "../chunk-LDXUBPMO.js";
28
27
  import "../chunk-DM2T26WE.js";
28
+ import "../chunk-LDXUBPMO.js";
29
29
  import "../chunk-FF6N7BXC.js";
30
30
  import "../chunk-2DT7PIDZ.js";
31
31
  import "../chunk-AAD2ZS6P.js";
32
- import "../chunk-DUJYRVUD.js";
32
+ import "../chunk-6O2VUWV6.js";
33
+ import "../chunk-ZIKENA2C.js";
33
34
  import "../chunk-3ONXXHQO.js";
34
35
  import "../chunk-YXZG5TVN.js";
35
- import "../chunk-ZIKENA2C.js";
36
36
  import "../chunk-345MEMRU.js";
37
37
  import "../chunk-SCU65EZI.js";
38
38
  import "../chunk-5GINB5LC.js";
@@ -63,20 +63,20 @@ import "../chunk-PJKTFXE2.js";
63
63
  import "../chunk-W5BIQOAJ.js";
64
64
  import "../chunk-Z7L72ZHL.js";
65
65
  import "../chunk-4O4TKIXQ.js";
66
- import "../chunk-GDYU6VF4.js";
66
+ import "../chunk-5AYUHSAU.js";
67
67
  import "../chunk-BT7NVCML.js";
68
- import "../chunk-VYCOJKSX.js";
68
+ import "../chunk-PO7NXNGC.js";
69
69
  import "../chunk-BJMBJZ2Y.js";
70
70
  import "../chunk-UKJAGEXH.js";
71
71
  import "../chunk-FP2373TW.js";
72
72
  import "../chunk-L272A5QW.js";
73
- import "../chunk-JE334SIA.js";
73
+ import "../chunk-22DYJLFN.js";
74
74
  import "../chunk-ZA53AZND.js";
75
75
  import "../chunk-7RJUVTVF.js";
76
76
  import "../chunk-AL3UYZ5N.js";
77
77
  import "../chunk-RL6NEVXT.js";
78
78
  import "../chunk-C7HJ3NEI.js";
79
- import "../chunk-NB3LRY4T.js";
79
+ import "../chunk-N4PYB235.js";
80
80
  import "../chunk-AW4QUFQF.js";
81
81
  import "../chunk-5FVVY2EB.js";
82
82
  import "../chunk-FFAZ2XFU.js";
@@ -95,7 +95,7 @@ import "../chunk-6KH5NLQS.js";
95
95
  import "../chunk-P2QRMMVQ.js";
96
96
  import "../chunk-BTTPKDIL.js";
97
97
  import "../chunk-FF4KLI5W.js";
98
- import "../chunk-JN72EPOE.js";
98
+ import "../chunk-MAAL6OZV.js";
99
99
  import "../chunk-A6XUJE5D.js";
100
100
  import "../chunk-VS2IYZRU.js";
101
101
  import "../chunk-KNA3BXXL.js";
@@ -0,0 +1,82 @@
1
+ import { type EmbeddingGenerationTransactionIo } from "./offline-sync-embedding-generation.js";
2
+ import type { OfflineSyncChange, OfflineSyncConflict, OfflineSyncFileState } from "./offline-sync.js";
3
+ import { type SafeArchiveRoot } from "./transfer/fs-utils.js";
4
+ export interface OfflineSyncChangesetGenerationMember {
5
+ path: string;
6
+ sha256: string;
7
+ bytes: number;
8
+ }
9
+ /** Complete post-change membership of ONE sharded generation. */
10
+ export interface OfflineSyncChangesetGeneration {
11
+ /** The generation dir, e.g. `state/embeddings`. */
12
+ shardDir: string;
13
+ members: OfflineSyncChangesetGenerationMember[];
14
+ }
15
+ /**
16
+ * Validate the optional `embeddingGenerations` changeset field (receiver
17
+ * boundary). Returns undefined when the field is absent (legacy sender);
18
+ * throws on any incoherence — duplicate dirs or member paths, noncanonical
19
+ * dirs, members outside their dir, or a manifested generation that does not
20
+ * account for every upserted shard — so bad manifests fail closed BEFORE any
21
+ * apply-time write.
22
+ */
23
+ export declare function normalizeChangesetGenerations(raw: unknown, changes: readonly OfflineSyncChange[]): OfflineSyncChangesetGeneration[] | undefined;
24
+ export interface ChangesetGenerationApplication {
25
+ /** Paths the per-file apply loop must skip (published, swept, or removed). */
26
+ transactionHandled: Set<string>;
27
+ /** Conflicts for deferred generations — surfaced so the push side never
28
+ * checkpoints a deferred generation as applied. */
29
+ conflicts: OfflineSyncConflict[];
30
+ conflictedPaths: Set<string>;
31
+ appliedUpserts: number;
32
+ appliedDeletes: number;
33
+ /** Result-map updates for published members. */
34
+ writtenStates: Map<string, OfflineSyncFileState>;
35
+ /** Result-map removals for swept/removed members. */
36
+ removedPaths: Set<string>;
37
+ }
38
+ export interface ChangesetGenerationApplyOptions {
39
+ root: SafeArchiveRoot;
40
+ /** NORMALIZED changeset (manifest validated by normalizeChangesetGenerations). */
41
+ changeset: {
42
+ changes: readonly OfflineSyncChange[];
43
+ embeddingGenerations?: readonly OfflineSyncChangesetGeneration[];
44
+ };
45
+ incomingBuffers: ReadonlyMap<string, Buffer>;
46
+ currentMap: ReadonlyMap<string, OfflineSyncFileState>;
47
+ io: EmbeddingGenerationTransactionIo;
48
+ /** True when the caller supplied ANY custom storage IO — the staging-pair
49
+ * fail-closed rule then applies (mirrors the snapshot apply). */
50
+ customIoPresent: boolean;
51
+ now: number;
52
+ }
53
+ /**
54
+ * Route a changeset's embedding-generation changes through the shared locked
55
+ * transaction: manifested dirs publish atomically (changed members inline,
56
+ * unchanged members carried over, removed members swept), manifested
57
+ * shrink-deletes ride the same swap, full-evidence tombstones remove the
58
+ * whole generation through the removal transaction, and everything that
59
+ * cannot be proven (legacy manifest-less shard upserts, under-lock
60
+ * divergence, remote-only members) is DEFERRED as conflicts with the disk
61
+ * untouched — a mixed generation is never published and the push side never
62
+ * checkpoints a deferred generation as applied.
63
+ */
64
+ export declare function applyChangesetEmbeddingGenerations(options: ChangesetGenerationApplyOptions): Promise<ChangesetGenerationApplication>;
65
+ export interface ChangesetGenerationManifestOptions {
66
+ changes: readonly OfflineSyncChange[];
67
+ /** The sender's complete current state (post-change generation members). */
68
+ currentFiles: readonly OfflineSyncFileState[];
69
+ baseFiles: readonly OfflineSyncFileState[];
70
+ /** The exact exclusion predicate the change walk used — any member it
71
+ * drops forces whole-generation omission (filter-to-omit, #3148). */
72
+ isExcluded: (relPath: string) => boolean;
73
+ }
74
+ /**
75
+ * Sender side: complete post-change membership for every generation touched
76
+ * by the changeset. A touched generation with ANY excluded member is omitted
77
+ * WHOLE — its changes are dropped by the caller contract below and no
78
+ * manifest is emitted — so a filtered generation can never look like a
79
+ * partial replacement on the receiver.
80
+ */
81
+ export declare function buildChangesetGenerationManifest(options: ChangesetGenerationManifestOptions): OfflineSyncChangesetGeneration[];
82
+ //# sourceMappingURL=offline-sync-changeset-generations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-sync-changeset-generations.d.ts","sourceRoot":"","sources":["../src/offline-sync-changeset-generations.ts"],"names":[],"mappings":"AAWA,OAAO,EAQL,KAAK,gCAAgC,EAEtC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EAInB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,eAAe,EAA4B,MAAM,wBAAwB,CAAC;AA4BxF,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,8BAA8B;IAC7C,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,oCAAoC,EAAE,CAAC;CACjD;AAMD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,SAAS,iBAAiB,EAAE,GACpC,8BAA8B,EAAE,GAAG,SAAS,CA0E9C;AAuBD,MAAM,WAAW,8BAA8B;IAC7C,8EAA8E;IAC9E,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC;uDACmD;IACnD,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,qDAAqD;IACrD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,eAAe,CAAC;IACtB,kFAAkF;IAClF,SAAS,EAAE;QAAE,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAAC,oBAAoB,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAA;KAAE,CAAC;IACvH,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACtD,EAAE,EAAE,gCAAgC,CAAC;IACrC;qEACiE;IACjE,eAAe,EAAE,OAAO,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAKD;;;;;;;;;;GAUG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,8BAA8B,CAAC,CAgQzC;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtC,4EAA4E;IAC5E,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C;yEACqE;IACrE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,kCAAkC,GAC1C,8BAA8B,EAAE,CA2ClC"}
@@ -0,0 +1,21 @@
1
+ import {
2
+ applyChangesetEmbeddingGenerations,
3
+ buildChangesetGenerationManifest,
4
+ normalizeChangesetGenerations
5
+ } from "./chunk-MSAI3Q7D.js";
6
+ import "./chunk-AXGJMDBS.js";
7
+ import "./chunk-TYT4TEQV.js";
8
+ import "./chunk-4NSLQ7EU.js";
9
+ import "./chunk-GCGJW34D.js";
10
+ import "./chunk-75PT4N7Q.js";
11
+ import "./chunk-UCPGOUDZ.js";
12
+ import "./chunk-FFAZ2XFU.js";
13
+ import "./chunk-P2QRMMVQ.js";
14
+ import "./chunk-3WCASNQZ.js";
15
+ import "./chunk-PZ5AY32C.js";
16
+ export {
17
+ applyChangesetEmbeddingGenerations,
18
+ buildChangesetGenerationManifest,
19
+ normalizeChangesetGenerations
20
+ };
21
+ //# sourceMappingURL=offline-sync-changeset-generations.js.map
@@ -0,0 +1,257 @@
1
+ import { type EmbeddingIndexFile, type EmbeddingIndexStoreIo } from "./embedding-index-storage.js";
2
+ import type { OfflineSyncExcludeFile, OfflineSyncFileTarget } from "./offline-sync-file-io.js";
3
+ import type { OfflineSyncFileDeleteTarget, OfflineSyncFileStagingReadTarget, OfflineSyncFileStagingWriteTarget, OfflineSyncFileState } from "./offline-sync.js";
4
+ import { type SafeArchiveRoot } from "./transfer/fs-utils.js";
5
+ export declare const EMBEDDING_SHARD_DIR_BASENAME = "embeddings";
6
+ /** The sharded-generation directory when `relPath` is one of its shards. */
7
+ export declare function embeddingShardDirOf(relPath: string): string | null;
8
+ /**
9
+ * True when `dirPath` is a canonical embeddings generation dir
10
+ * (`state/embeddings` or `namespaces/<ns>/state/embeddings`). Encodes the
11
+ * snapshot-field shape contract without a ReDoS-shaped literal (issue #2439).
12
+ */
13
+ export declare function isEmbeddingGenerationDirPath(dirPath: string): boolean;
14
+ /** The state dir when `relPath` is the legacy single-file marker. */
15
+ export declare function embeddingMarkerDirOf(relPath: string): string | null;
16
+ /**
17
+ * Membership of `relPath` in an embedding generation: shards belong to their
18
+ * `.../embeddings` directory, the legacy marker belongs to the sibling
19
+ * `.../embeddings` directory of its state dir.
20
+ */
21
+ export declare function embeddingGenerationMembership(relPath: string): {
22
+ kind: "shard" | "marker";
23
+ shardDir: string;
24
+ } | null;
25
+ export interface IncomingEmbeddingGenerations {
26
+ /** Generation dirs with at least one incoming shard. */
27
+ shardDirs: Set<string>;
28
+ /** State dirs whose incoming snapshot carries the legacy marker. */
29
+ legacyMarkerDirs: Set<string>;
30
+ }
31
+ /** Classify incoming snapshot paths into embedding generations. */
32
+ export declare function detectIncomingEmbeddingGenerations(incomingPaths: Iterable<string>): IncomingEmbeddingGenerations;
33
+ export interface EmbeddingGenerationTransactionIo {
34
+ /** Storage-backed local read: hydrates unchanged shards (metadata-only
35
+ * pulls skip their content) and decrypts secure-store files. */
36
+ readFile?: (target: OfflineSyncFileTarget) => Promise<Buffer>;
37
+ writeStagingFile?: (target: OfflineSyncFileStagingWriteTarget) => Promise<void>;
38
+ readStagingFile?: (target: OfflineSyncFileStagingReadTarget) => Promise<Buffer>;
39
+ deleteFile?: (target: OfflineSyncFileDeleteTarget) => Promise<void>;
40
+ }
41
+ export interface EmbeddingGenerationTransactionInput {
42
+ root: SafeArchiveRoot;
43
+ /** The generation dir, e.g. `state/embeddings`. */
44
+ shardDirRel: string;
45
+ /** Incoming shard rel paths — the complete incoming sharded generation. */
46
+ incomingShardPaths: string[];
47
+ /** Incoming legacy marker (rel path + verified content), when the
48
+ * incoming generation is legacy-layout. Mutually exclusive with
49
+ * `incomingShardPaths`. */
50
+ incomingMarker: {
51
+ path: string;
52
+ sha256: string;
53
+ buffer: Buffer | null;
54
+ } | null;
55
+ /** True when the incoming snapshot ALSO carries the legacy marker while
56
+ * shards form the generation (mixed remote): the per-file loop then writes
57
+ * the marker as the inert remote artifact, so this transaction must NOT
58
+ * remove a local marker. */
59
+ incomingMarkerPresent: boolean;
60
+ /** Incoming shard records (sha256 for local hydration of unchanged
61
+ * metadata-only pulls). */
62
+ incomingShardStates: ReadonlyMap<string, OfflineSyncFileState>;
63
+ /** Verified incoming content by rel path (absent for shards the metadata
64
+ * hydration skipped because the local hash already matches). */
65
+ incomingBuffers: ReadonlyMap<string, Buffer>;
66
+ /**
67
+ * Shared-base states (pre-census): lets the transaction re-evaluate
68
+ * divergence against ACTUAL disk contents while holding the mutation
69
+ * lock, instead of trusting the census taken before the lock
70
+ * (codex P1: a daemon mutation between census and lock was discarded).
71
+ */
72
+ baseStates?: ReadonlyMap<string, {
73
+ sha256: string;
74
+ }>;
75
+ /**
76
+ * Paths this apply is pre-authorized to remove (changeset deletes / remote
77
+ * tombstones). A base member absent from the under-lock census is
78
+ * divergence UNLESS it is pre-authorized — the retry after a response loss
79
+ * must re-apply idempotently instead of failing as diverged (#3150
80
+ * review). A pre-authorized member still present with a changed digest
81
+ * defers as before, so a daemon rewrite is never silently swept.
82
+ */
83
+ justifiedRemovals?: ReadonlySet<string>;
84
+ /**
85
+ * Deletion revisions (mtimeMs by path) to record through the delete hook
86
+ * AFTER the swap publishes. Swept members bypass the per-file delete path,
87
+ * so without this their tombstones are lost and a later peer without
88
+ * shared-base evidence can reintroduce the removed shards (codex P1).
89
+ */
90
+ deletionMtimeByPath?: ReadonlyMap<string, number>;
91
+ /**
92
+ * True when the incoming set claims to be a FRESH creation but carries no
93
+ * base evidence (manifested changeset members are all base-less upserts):
94
+ * a non-empty local generation must match the incoming set exactly or the
95
+ * apply defers as diverged, because the empty-base divergence skip would
96
+ * otherwise silently replace it (#3150 review).
97
+ */
98
+ freshCreateClaim?: boolean;
99
+ io: EmbeddingGenerationTransactionIo;
100
+ now: number;
101
+ }
102
+ export interface EmbeddingGenerationTransactionResult {
103
+ shardDirRel: string;
104
+ upserted: number;
105
+ deleted: number;
106
+ /** nextBase states for files the transaction published. */
107
+ writtenStates: Map<string, OfflineSyncFileState>;
108
+ /** nextBase paths the transaction removed (stale shards, demoted marker). */
109
+ removedPaths: Set<string>;
110
+ /** Paths the per-file apply loop must skip — all handled here. */
111
+ handledPaths: Set<string>;
112
+ /** True when the generation was deferred (not published) because the disk
113
+ * diverged from the shared base while the lock was held. */
114
+ deferredLocalDivergence?: boolean;
115
+ }
116
+ export declare function applyEmbeddingGenerationTransaction(input: EmbeddingGenerationTransactionInput): Promise<EmbeddingGenerationTransactionResult>;
117
+ export interface EmbeddingGenerationOmissionOptions {
118
+ rootAbs: string;
119
+ userExcludeRegexps?: readonly RegExp[];
120
+ excludeFile?: OfflineSyncExcludeFile;
121
+ /** Recorded deletion-revision paths: a tombstoned member counts as a
122
+ * generation member for omission detection even though it is absent on
123
+ * disk (its exclusion must omit the WHOLE generation). */
124
+ tombstonedPaths?: readonly string[];
125
+ /**
126
+ * Per-path push exclusion predicate (structural + node-local defaults +
127
+ * user regexps). Defaults to the built-in default excludes + the supplied
128
+ * user regexps, matching the walk that consumes the result.
129
+ */
130
+ isExcludedRelPath?: (relPath: string) => boolean;
131
+ }
132
+ export interface EmbeddingGenerationOmission {
133
+ /** Existing member paths omitted because their generation is partial. */
134
+ omittedPaths: Set<string>;
135
+ /** Generation dirs whose members are omitted (snapshot field value). */
136
+ omittedDirs: string[];
137
+ }
138
+ /**
139
+ * Compute the push-side whole-generation omission set: when ANY on-disk
140
+ * member of an embedding generation is excluded by a push filter, EVERY
141
+ * member of that generation is omitted (issue #3148, round 4).
142
+ */
143
+ export declare function computeOmittedEmbeddingGenerationPaths(options: EmbeddingGenerationOmissionOptions): Promise<EmbeddingGenerationOmission>;
144
+ /** Reject an exclusion introduced after the snapshot header was computed. */
145
+ export declare function assertEmbeddingGenerationStillIncluded(rootAbs: string, shardDirRel: string, excludeFile: OfflineSyncExcludeFile | undefined, isExcludedRelPath: (relPath: string) => boolean, tombstonedPaths: readonly string[]): Promise<void>;
146
+ /** True when a path belongs to a generation the push omitted. */
147
+ export declare function isPathInOmittedEmbeddingGeneration(relPath: string, omittedDirs: ReadonlySet<string>): boolean;
148
+ export type { EmbeddingIndexFile };
149
+ import type { OfflineSyncDeletionRevision } from "./offline-sync.js";
150
+ export interface PushEmbeddingGenerationState {
151
+ /** Generation dirs omitted by the push filters (snapshot header value). */
152
+ omittedDirs: string[];
153
+ /** All omitted member paths (walk skip set). */
154
+ omittedPaths: Set<string>;
155
+ /** Deletions with whole-generation suppression applied. */
156
+ deletions: OfflineSyncDeletionRevision[];
157
+ }
158
+ /**
159
+ * One-call push-side generation state for streaming snapshot builders: the
160
+ * whole-generation omission set (from user regexps, excludeFile, and default
161
+ * excludes) plus the deletion list with omitted-generation revisions
162
+ * suppressed — including revisions for members that are already absent, so a
163
+ * filtered generation can never be announced as deleted.
164
+ */
165
+ export declare function resolvePushEmbeddingGenerationState(options: {
166
+ rootAbs: string;
167
+ includeTranscripts: boolean;
168
+ userExcludeRegexps?: readonly RegExp[];
169
+ excludeFile?: OfflineSyncExcludeFile;
170
+ deletions: readonly OfflineSyncDeletionRevision[];
171
+ }): Promise<PushEmbeddingGenerationState>;
172
+ interface StorageBackedIndexIoHost {
173
+ readOfflineSyncFile(filePath: string, opts?: {
174
+ aadFilePath?: string;
175
+ }): Promise<Buffer>;
176
+ writeOfflineSyncStagingFile(filePath: string, content: Buffer, opts?: {
177
+ aadFilePath?: string;
178
+ }): Promise<void>;
179
+ }
180
+ /**
181
+ * Daemon wiring for the index store IO backed by a StorageManager:
182
+ * canonical-path secure reads/writes, so sync-published encrypted shards
183
+ * decrypt in the daemon and daemon-written shards decrypt on sync. Shard
184
+ * STAGING writes bind the FINAL published path.
185
+ */
186
+ export declare function storageBackedIndexStoreIo(storage: StorageBackedIndexIoHost): EmbeddingIndexStoreIo;
187
+ export interface EmbeddingGenerationRemovalInput {
188
+ root: SafeArchiveRoot;
189
+ /** The generation dir, e.g. `state/embeddings`. */
190
+ shardDirRel: string;
191
+ io: Pick<EmbeddingGenerationTransactionIo, "deleteFile" | "readFile">;
192
+ /** Incoming deletion revisions by path, threaded so each removed member's
193
+ * tombstone is recorded through the configured delete hook AFTER the
194
+ * atomic empty publication (round 6: raw removal must not lose them). */
195
+ deletionMtimeByPath?: ReadonlyMap<string, number>;
196
+ now: number;
197
+ /**
198
+ * Shared-base states: when the live generation diverged from the base
199
+ * (daemon indexed, added, or removed members after the census), the
200
+ * removal DEFERS instead of erasing the local work (codex P1).
201
+ */
202
+ baseStates?: ReadonlyMap<string, {
203
+ sha256: string;
204
+ }>;
205
+ }
206
+ /**
207
+ * Remove a LOCAL embedding generation atomically because the remote deleted
208
+ * it wholesale (every member has a deletion revision): recover first, then
209
+ * demote the published directory through the store's single swap state
210
+ * machine and delete the backup — a crash or delete failure can never leave
211
+ * a partial same-identity generation serving silently missing memories.
212
+ * The local legacy marker, when present, is removed through the same delete
213
+ * hook the per-file path uses.
214
+ */
215
+ export declare function applyEmbeddingGenerationRemoval(input: EmbeddingGenerationRemovalInput): Promise<EmbeddingGenerationTransactionResult>;
216
+ /** Defer a whole generation when the shared remote base would erase a local change. */
217
+ export declare function divergedEmbeddingGenerationDeferrals(options: {
218
+ incomingFiles: readonly {
219
+ path: string;
220
+ sha256: string;
221
+ }[];
222
+ baseFiles: readonly {
223
+ path: string;
224
+ sha256: string;
225
+ }[];
226
+ currentFiles: readonly {
227
+ path: string;
228
+ sha256: string;
229
+ }[];
230
+ }): string[];
231
+ export interface IncomingEmbeddingGenerationApply {
232
+ transactionResults: EmbeddingGenerationTransactionResult[];
233
+ deferredGenerationDirs: Set<string>;
234
+ }
235
+ export interface IncomingEmbeddingGenerationApplyOptions {
236
+ root: SafeArchiveRoot;
237
+ incomingMap: ReadonlyMap<string, OfflineSyncFileState>;
238
+ incomingBuffers: ReadonlyMap<string, Buffer>;
239
+ baseMap: ReadonlyMap<string, OfflineSyncFileState>;
240
+ currentMap: ReadonlyMap<string, OfflineSyncFileState>;
241
+ deferredPaths: ReadonlySet<string>;
242
+ omittedGenerationDirs: ReadonlySet<string>;
243
+ deletionMtimeByPath?: ReadonlyMap<string, number>;
244
+ io: EmbeddingGenerationTransactionIo;
245
+ /** True when the caller supplied ANY custom storage IO. */
246
+ customIoPresent: boolean;
247
+ now: number;
248
+ }
249
+ /**
250
+ * Snapshot-side generation routing, extracted from applyOfflineSyncSnapshot
251
+ * for issue #3150 (the changeset path needed the same machinery and the
252
+ * offline-sync.ts line ratchet had no headroom). Incoming generations replace
253
+ * as ONE unit through the shared locked transaction. Behavior-preserving —
254
+ * the #3148 regression suites own this contract.
255
+ */
256
+ export declare function applyIncomingEmbeddingGenerations(options: IncomingEmbeddingGenerationApplyOptions): Promise<IncomingEmbeddingGenerationApply>;
257
+ //# sourceMappingURL=offline-sync-embedding-generation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-sync-embedding-generation.d.ts","sourceRoot":"","sources":["../src/offline-sync-embedding-generation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import {
2
+ EMBEDDING_SHARD_DIR_BASENAME,
3
+ applyEmbeddingGenerationRemoval,
4
+ applyEmbeddingGenerationTransaction,
5
+ applyIncomingEmbeddingGenerations,
6
+ assertEmbeddingGenerationStillIncluded,
7
+ computeOmittedEmbeddingGenerationPaths,
8
+ detectIncomingEmbeddingGenerations,
9
+ divergedEmbeddingGenerationDeferrals,
10
+ embeddingGenerationMembership,
11
+ embeddingMarkerDirOf,
12
+ embeddingShardDirOf,
13
+ isEmbeddingGenerationDirPath,
14
+ isPathInOmittedEmbeddingGeneration,
15
+ resolvePushEmbeddingGenerationState,
16
+ storageBackedIndexStoreIo
17
+ } from "./chunk-AXGJMDBS.js";
18
+ import "./chunk-TYT4TEQV.js";
19
+ import "./chunk-4NSLQ7EU.js";
20
+ import "./chunk-GCGJW34D.js";
21
+ import "./chunk-75PT4N7Q.js";
22
+ import "./chunk-UCPGOUDZ.js";
23
+ import "./chunk-FFAZ2XFU.js";
24
+ import "./chunk-P2QRMMVQ.js";
25
+ import "./chunk-3WCASNQZ.js";
26
+ import "./chunk-PZ5AY32C.js";
27
+ export {
28
+ EMBEDDING_SHARD_DIR_BASENAME,
29
+ applyEmbeddingGenerationRemoval,
30
+ applyEmbeddingGenerationTransaction,
31
+ applyIncomingEmbeddingGenerations,
32
+ assertEmbeddingGenerationStillIncluded,
33
+ computeOmittedEmbeddingGenerationPaths,
34
+ detectIncomingEmbeddingGenerations,
35
+ divergedEmbeddingGenerationDeferrals,
36
+ embeddingGenerationMembership,
37
+ embeddingMarkerDirOf,
38
+ embeddingShardDirOf,
39
+ isEmbeddingGenerationDirPath,
40
+ isPathInOmittedEmbeddingGeneration,
41
+ resolvePushEmbeddingGenerationState,
42
+ storageBackedIndexStoreIo
43
+ };
44
+ //# sourceMappingURL=offline-sync-embedding-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -9,4 +9,19 @@
9
9
  */
10
10
  export declare const OFFLINE_DECRYPT_STAGING_DIR_PREFIX = ".remnic-offline-decrypt-";
11
11
  export declare const DEFAULT_OFFLINE_SYNC_EXCLUDE_GLOBS: readonly string[];
12
+ /**
13
+ * Precompiled-once default-exclude check for the snapshot enumeration hot
14
+ * path (Kilo review, PR #1793). Moved here from offline-sync.ts with the
15
+ * glob list so the two can never drift (issue #1995).
16
+ */
17
+ export declare function matchesOfflineSyncDefaultExclude(relPosix: string): boolean;
18
+ export declare function globToRegExp(glob: string): RegExp;
19
+ export declare function compileOfflineSyncExcludeGlobs(globs: readonly unknown[]): RegExp[];
20
+ /**
21
+ * Validate the operator-supplied offline-sync exclude list (#1786).
22
+ * Rejects loudly instead of silently defaulting (CLAUDE.md rule 39):
23
+ * a misspelled key value must fail config parse, not be ignored.
24
+ * Lives next to the glob compiler so config.ts only carries the call.
25
+ */
26
+ export declare function parseOfflineSyncExcludes(raw: unknown): string[];
12
27
  //# sourceMappingURL=offline-sync-exclude-globs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offline-sync-exclude-globs.d.ts","sourceRoot":"","sources":["../src/offline-sync-exclude-globs.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAE7E,eAAO,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAyC/D,CAAC"}
1
+ {"version":3,"file":"offline-sync-exclude-globs.d.ts","sourceRoot":"","sources":["../src/offline-sync-exclude-globs.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAE7E,eAAO,MAAM,kCAAkC,EAAE,SAAS,MAAM,EAqD/D,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyCjD;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,SAAS,OAAO,EAAE,GACxB,MAAM,EAAE,CASV;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAoB/D"}
@@ -1,10 +1,18 @@
1
1
  import {
2
2
  DEFAULT_OFFLINE_SYNC_EXCLUDE_GLOBS,
3
- OFFLINE_DECRYPT_STAGING_DIR_PREFIX
4
- } from "./chunk-AREGMX2J.js";
3
+ OFFLINE_DECRYPT_STAGING_DIR_PREFIX,
4
+ compileOfflineSyncExcludeGlobs,
5
+ globToRegExp,
6
+ matchesOfflineSyncDefaultExclude,
7
+ parseOfflineSyncExcludes
8
+ } from "./chunk-4NSLQ7EU.js";
5
9
  import "./chunk-PZ5AY32C.js";
6
10
  export {
7
11
  DEFAULT_OFFLINE_SYNC_EXCLUDE_GLOBS,
8
- OFFLINE_DECRYPT_STAGING_DIR_PREFIX
12
+ OFFLINE_DECRYPT_STAGING_DIR_PREFIX,
13
+ compileOfflineSyncExcludeGlobs,
14
+ globToRegExp,
15
+ matchesOfflineSyncDefaultExclude,
16
+ parseOfflineSyncExcludes
9
17
  };
10
18
  //# sourceMappingURL=offline-sync-exclude-globs.js.map
@@ -23,4 +23,11 @@ export declare function readPlainOfflineSyncFileChunk(options: {
23
23
  * uploader's verify-before-idempotent-skip check). One bounded-memory hash
24
24
  * pass per chunk request; content reads stay windowed. */
25
25
  export declare function plainFileDigest(filePath: string): Promise<string>;
26
+ import { type SafeArchiveRoot } from "./transfer/fs-utils.js";
27
+ /** Sync-internal directory spooling partial uploads and coordination state. */
28
+ export declare const SYNC_INTERNAL_DIR = ".offline-sync";
29
+ export declare const OFFLINE_SYNC_FAST_BASE_MTIME_TOLERANCE_MS = 1000;
30
+ export declare function assertNonNegativeFinite(value: unknown, field: string): number;
31
+ export declare function assertOfflineSyncMtimeMs(value: unknown, field: string): number;
32
+ export declare function setSafeFileMtime(root: SafeArchiveRoot, relPath: string, mtimeMs: number | undefined): Promise<boolean>;
26
33
  //# sourceMappingURL=offline-sync-file-io.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"offline-sync-file-io.d.ts","sourceRoot":"","sources":["../src/offline-sync-file-io.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACnG,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,sBAAsB,GAAG,SAAS,EAC/C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAW5C;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAED,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED;;;;;0DAK0D;AAC1D,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
1
+ {"version":3,"file":"offline-sync-file-io.d.ts","sourceRoot":"","sources":["../src/offline-sync-file-io.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACnG,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,sBAAsB,GAAG,SAAS,EAC/C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAW5C;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF;AAED,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED;;;;;0DAK0D;AAC1D,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE;AAID,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAExF,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,yCAAyC,OAAQ,CAAC;AAE/D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
@@ -1,20 +1,32 @@
1
1
  import {
2
+ OFFLINE_SYNC_FAST_BASE_MTIME_TOLERANCE_MS,
3
+ SYNC_INTERNAL_DIR,
4
+ assertNonNegativeFinite,
5
+ assertOfflineSyncMtimeMs,
2
6
  isEncryptedOfflineSyncFile,
3
7
  plainFileDigest,
4
8
  readPlainOfflineSyncFileChunk,
9
+ setSafeFileMtime,
5
10
  sha256OfflineSyncFile,
6
11
  shouldExcludeOfflineSyncFile
7
- } from "./chunk-3BTFBQLO.js";
12
+ } from "./chunk-EFHNFTWB.js";
13
+ import "./chunk-GCGJW34D.js";
14
+ import "./chunk-LQWOFU6L.js";
8
15
  import "./chunk-BTTPKDIL.js";
9
- import "./chunk-JN72EPOE.js";
16
+ import "./chunk-MAAL6OZV.js";
10
17
  import "./chunk-A6XUJE5D.js";
11
18
  import "./chunk-VS2IYZRU.js";
12
19
  import "./chunk-KNA3BXXL.js";
13
20
  import "./chunk-PZ5AY32C.js";
14
21
  export {
22
+ OFFLINE_SYNC_FAST_BASE_MTIME_TOLERANCE_MS,
23
+ SYNC_INTERNAL_DIR,
24
+ assertNonNegativeFinite,
25
+ assertOfflineSyncMtimeMs,
15
26
  isEncryptedOfflineSyncFile,
16
27
  plainFileDigest,
17
28
  readPlainOfflineSyncFileChunk,
29
+ setSafeFileMtime,
18
30
  sha256OfflineSyncFile,
19
31
  shouldExcludeOfflineSyncFile
20
32
  };
@@ -4,10 +4,10 @@ import {
4
4
  getOfflineSyncStorage,
5
5
  listOfflineSyncNamespaces,
6
6
  offlineSyncStorageForSnapshot
7
- } from "./chunk-MOQPEFLN.js";
7
+ } from "./chunk-UP75KL3L.js";
8
8
  import "./chunk-OWYHHW67.js";
9
9
  import "./chunk-WBYQA3VN.js";
10
- import "./chunk-JE334SIA.js";
10
+ import "./chunk-22DYJLFN.js";
11
11
  import "./chunk-ZA53AZND.js";
12
12
  import "./chunk-7RJUVTVF.js";
13
13
  import "./chunk-AL3UYZ5N.js";
@@ -26,7 +26,7 @@ import "./chunk-6KH5NLQS.js";
26
26
  import "./chunk-P2QRMMVQ.js";
27
27
  import "./chunk-3MUKQQ7A.js";
28
28
  import "./chunk-BTTPKDIL.js";
29
- import "./chunk-JN72EPOE.js";
29
+ import "./chunk-MAAL6OZV.js";
30
30
  import "./chunk-A6XUJE5D.js";
31
31
  import "./chunk-VS2IYZRU.js";
32
32
  import "./chunk-KNA3BXXL.js";
@@ -0,0 +1,5 @@
1
+ export declare const EMBEDDING_SHARD_FILE_PATTERN: RegExp;
2
+ export declare function isCanonicalRuntimeStatePath(parts: string[]): boolean;
3
+ export declare function shouldPreferIncomingOfflineRuntimeFile(relPosix: string): boolean;
4
+ export declare function shouldDeleteAbsentIncomingOfflineRuntimeFile(relPosix: string): boolean;
5
+ //# sourceMappingURL=offline-sync-runtime-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-sync-runtime-state.d.ts","sourceRoot":"","sources":["../src/offline-sync-runtime-state.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,4BAA4B,QAAwB,CAAC;AAElE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAGpE;AA2BD,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKhF;AAED,wBAAgB,4CAA4C,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAItF"}
@@ -0,0 +1,14 @@
1
+ import {
2
+ EMBEDDING_SHARD_FILE_PATTERN,
3
+ isCanonicalRuntimeStatePath,
4
+ shouldDeleteAbsentIncomingOfflineRuntimeFile,
5
+ shouldPreferIncomingOfflineRuntimeFile
6
+ } from "./chunk-TYT4TEQV.js";
7
+ import "./chunk-PZ5AY32C.js";
8
+ export {
9
+ EMBEDDING_SHARD_FILE_PATTERN,
10
+ isCanonicalRuntimeStatePath,
11
+ shouldDeleteAbsentIncomingOfflineRuntimeFile,
12
+ shouldPreferIncomingOfflineRuntimeFile
13
+ };
14
+ //# sourceMappingURL=offline-sync-runtime-state.js.map