@remnic/core 10.0.91 → 10.0.93

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 (522) hide show
  1. package/dist/access-admin-ops-surface.js +334 -61
  2. package/dist/access-authorization-probe.js +2 -283
  3. package/dist/access-boundary.d.ts +1 -1
  4. package/dist/access-boundary.d.ts.map +1 -1
  5. package/dist/access-boundary.js +1 -282
  6. package/dist/access-cli.js +288 -304
  7. package/dist/access-cli.js.map +1 -1
  8. package/dist/access-coding-context-resolution.js +3 -3
  9. package/dist/access-extraction-force-flush.js +334 -61
  10. package/dist/access-http-briefing.js +334 -62
  11. package/dist/access-http-query.js +334 -63
  12. package/dist/access-http.js +332 -114
  13. package/dist/access-identity-continuity-surface.js +334 -61
  14. package/dist/access-lcm-surface.js +334 -61
  15. package/dist/access-mcp-frames.d.ts +20 -6
  16. package/dist/access-mcp-frames.d.ts.map +1 -1
  17. package/dist/access-mcp-frames.js +1 -1
  18. package/dist/access-mcp.d.ts +5 -0
  19. package/dist/access-mcp.d.ts.map +1 -1
  20. package/dist/access-mcp.js +332 -89
  21. package/dist/access-namespace-preflight.js +2 -282
  22. package/dist/access-observe-transcript.js +3 -3
  23. package/dist/access-observe-write-category.js +6 -6
  24. package/dist/access-observe-write-surface.js +334 -61
  25. package/dist/access-offline-manifest.js +12 -11
  26. package/dist/access-operations-batch.js +332 -66
  27. package/dist/access-operations.js +332 -75
  28. package/dist/access-recall-concurrency.js +334 -61
  29. package/dist/access-recall-diagnostics.js +6 -5
  30. package/dist/access-recall-response.js +334 -61
  31. package/dist/access-recall-surface.js +334 -61
  32. package/dist/access-schema.js +2 -2
  33. package/dist/access-service.d.ts +1 -0
  34. package/dist/access-service.d.ts.map +1 -1
  35. package/dist/access-service.js +337 -64
  36. package/dist/access-surface-catalog.js +6 -283
  37. package/dist/access-surface-catalog.js.map +1 -1
  38. package/dist/active-context-transform.js +1 -1
  39. package/dist/active-memory-bridge.js +3 -2
  40. package/dist/active-recall.js +36 -37
  41. package/dist/active-recall.js.map +1 -1
  42. package/dist/activity/journal-extract.d.ts +13 -1
  43. package/dist/activity/journal-extract.d.ts.map +1 -1
  44. package/dist/{auto-sync-3AZW7MXI.js → auto-sync-BO5YZKM6.js} +13 -15
  45. package/dist/{auto-sync-3AZW7MXI.js.map → auto-sync-BO5YZKM6.js.map} +1 -1
  46. package/dist/briefing.js +20 -20
  47. package/dist/buffer.js +16 -16
  48. package/dist/calibration.js +10 -10
  49. package/dist/{capsule-merge-2IIXFXN5.js → capsule-merge-6IDAYTKG.js} +6 -6
  50. package/dist/causal-consolidation.js +23 -23
  51. package/dist/{chunk-QL7RHYK6.js → chunk-2LMA22UU.js} +5 -5
  52. package/dist/{chunk-RGUUBAT5.js → chunk-2WCLTWV2.js} +3 -3
  53. package/dist/{chunk-RSK2WIEM.js → chunk-2YODOG2O.js} +2 -2
  54. package/dist/{chunk-WYG5UNDY.js → chunk-3AUDELZL.js} +2 -2
  55. package/dist/{chunk-OFVCFKDH.js → chunk-3CYOCE6U.js} +3 -3
  56. package/dist/{chunk-6HM6HARE.js → chunk-3FBAEPCU.js} +2 -2
  57. package/dist/{chunk-PIITB2YZ.js → chunk-3ZS3NUEI.js} +4 -4
  58. package/dist/{chunk-V4XE263I.js → chunk-43AA5FVD.js} +1 -1
  59. package/dist/chunk-43AA5FVD.js.map +1 -0
  60. package/dist/{chunk-ANZZLRUX.js → chunk-4IVRQMZW.js} +2 -2
  61. package/dist/{chunk-63E37JCN.js → chunk-4RAJT5L2.js} +4 -4
  62. package/dist/{chunk-45VUHDV2.js → chunk-5CO5G4MN.js} +2 -2
  63. package/dist/{chunk-PUEO37QG.js → chunk-5YT2IIFX.js} +729 -17
  64. package/dist/chunk-5YT2IIFX.js.map +1 -0
  65. package/dist/{chunk-P5VZSSYL.js → chunk-622V2AZA.js} +233 -40
  66. package/dist/chunk-622V2AZA.js.map +1 -0
  67. package/dist/{chunk-3UMDRGFS.js → chunk-65HWAQ4F.js} +3 -3
  68. package/dist/{chunk-T67LUYCR.js → chunk-77NTFICT.js} +5 -5
  69. package/dist/chunk-A2WFUMUN.js +86 -0
  70. package/dist/chunk-A2WFUMUN.js.map +1 -0
  71. package/dist/{chunk-UE6RRXMF.js → chunk-A4F7OIC5.js} +2 -2
  72. package/dist/chunk-AHA5VQGP.js +117 -0
  73. package/dist/chunk-AHA5VQGP.js.map +1 -0
  74. package/dist/{chunk-AOFEMUHG.js → chunk-ATG2PQ4V.js} +56 -5
  75. package/dist/chunk-ATG2PQ4V.js.map +1 -0
  76. package/dist/{chunk-63O7LVMN.js → chunk-B33YWUJV.js} +3 -3
  77. package/dist/{chunk-QVMOCJRV.js → chunk-B377OKUP.js} +2 -2
  78. package/dist/{chunk-IUKYFTGW.js → chunk-B3DR2JBZ.js} +140 -125
  79. package/dist/chunk-B3DR2JBZ.js.map +1 -0
  80. package/dist/{chunk-ZT6WPSII.js → chunk-BGHCSLE5.js} +2 -2
  81. package/dist/{chunk-YYOMGOHB.js → chunk-BOK6BN5M.js} +2 -2
  82. package/dist/{chunk-OH7QLI6W.js → chunk-BPPUH5JM.js} +5 -5
  83. package/dist/{chunk-EV76IZ37.js → chunk-BTI4C4MA.js} +2 -2
  84. package/dist/{chunk-O6ZSWHVR.js → chunk-C2KE5DMD.js} +4 -4
  85. package/dist/{chunk-47F6WWLQ.js → chunk-C73N66PR.js} +2 -2
  86. package/dist/{chunk-3XIWW4TB.js → chunk-CGJYL633.js} +2 -2
  87. package/dist/{chunk-WRT7GJ2D.js → chunk-CIWMTNHW.js} +4 -4
  88. package/dist/{chunk-O55EKIEC.js → chunk-D3ZKHLN2.js} +2 -2
  89. package/dist/{chunk-CD4BCCNP.js → chunk-DJ7WVEWX.js} +2 -2
  90. package/dist/{chunk-RO7RUBLD.js → chunk-EFL24KOI.js} +2 -2
  91. package/dist/{chunk-4CJTQHEG.js → chunk-ESLOLCD4.js} +3 -3
  92. package/dist/{chunk-Z4Q6USKJ.js → chunk-ETBVCRVL.js} +4 -4
  93. package/dist/{chunk-VILPVT4S.js → chunk-EZ47HOJ6.js} +4 -4
  94. package/dist/{chunk-EFYN5I7Z.js → chunk-F4QFU5IZ.js} +2 -2
  95. package/dist/{chunk-T6OZW2WR.js → chunk-FA7SLQ5X.js} +7 -1
  96. package/dist/chunk-FA7SLQ5X.js.map +1 -0
  97. package/dist/{chunk-SHUBTAY2.js → chunk-FMKILENU.js} +14 -14
  98. package/dist/{chunk-YLXETSAH.js → chunk-GCZJ7XRI.js} +2 -2
  99. package/dist/{chunk-J4MMPQ7Q.js → chunk-GQXOBKPL.js} +7 -9
  100. package/dist/{chunk-J4MMPQ7Q.js.map → chunk-GQXOBKPL.js.map} +1 -1
  101. package/dist/{chunk-UDKWFDV2.js → chunk-HLUHEMN4.js} +27 -3
  102. package/dist/chunk-HLUHEMN4.js.map +1 -0
  103. package/dist/{chunk-QFEDITXM.js → chunk-JNDMIAJ4.js} +2 -2
  104. package/dist/chunk-JTSSSR4L.js +359 -0
  105. package/dist/chunk-JTSSSR4L.js.map +1 -0
  106. package/dist/{chunk-5KBIOI4G.js → chunk-JVBAPAWZ.js} +217 -13
  107. package/dist/chunk-JVBAPAWZ.js.map +1 -0
  108. package/dist/{chunk-E5PPE4VA.js → chunk-K2VRKCPA.js} +2 -2
  109. package/dist/{chunk-MKRYQROF.js → chunk-LGEHAQHK.js} +4 -4
  110. package/dist/{chunk-7HTUYFR3.js → chunk-LLPMMMWG.js} +27 -10
  111. package/dist/chunk-LLPMMMWG.js.map +1 -0
  112. package/dist/{chunk-XYTQJD7F.js → chunk-LMJVP5CM.js} +2 -2
  113. package/dist/{chunk-JC36FPQ5.js → chunk-LPV72KRQ.js} +2 -2
  114. package/dist/{chunk-2LCRG2YV.js → chunk-M2XR6B6V.js} +2 -2
  115. package/dist/{chunk-GGRRF4PZ.js → chunk-MDPT6QFK.js} +1 -1
  116. package/dist/{chunk-GGRRF4PZ.js.map → chunk-MDPT6QFK.js.map} +1 -1
  117. package/dist/{chunk-VPQFK63H.js → chunk-MH632KPO.js} +2 -2
  118. package/dist/{chunk-EQ4U73UH.js → chunk-MLAMXQAW.js} +14 -2
  119. package/dist/chunk-MLAMXQAW.js.map +1 -0
  120. package/dist/{chunk-ZU5JDLOH.js → chunk-MMRTPH3J.js} +2 -2
  121. package/dist/{chunk-ZZ67UTQX.js → chunk-MUX7IL77.js} +2 -2
  122. package/dist/{chunk-RYWROSL5.js → chunk-NAQ4A5IX.js} +7 -7
  123. package/dist/{chunk-TVIVY7KU.js → chunk-NED7IR7B.js} +4 -4
  124. package/dist/{chunk-ADYP7HXE.js → chunk-NHVAX7MH.js} +3 -3
  125. package/dist/{chunk-TG3R2SID.js → chunk-NMGHGTVR.js} +5 -5
  126. package/dist/{chunk-YCNIGRRF.js → chunk-NS7U4ZYU.js} +13 -117
  127. package/dist/chunk-NS7U4ZYU.js.map +1 -0
  128. package/dist/{chunk-NGHDW6UU.js → chunk-NUQEREIP.js} +2 -2
  129. package/dist/{chunk-5IIQU4JZ.js → chunk-OB72KNMF.js} +4 -4
  130. package/dist/{chunk-7L3TODI7.js → chunk-OJXJWNFY.js} +2 -2
  131. package/dist/{chunk-66L5ZRJC.js → chunk-P3WRNWWM.js} +157 -4
  132. package/dist/chunk-P3WRNWWM.js.map +1 -0
  133. package/dist/{chunk-E6M225BJ.js → chunk-PC5DRBGD.js} +18 -8
  134. package/dist/chunk-PC5DRBGD.js.map +1 -0
  135. package/dist/{chunk-EURPSF4Y.js → chunk-PH5ZQM35.js} +2 -2
  136. package/dist/{chunk-BMWMTAQF.js → chunk-PRAUN6PN.js} +3 -3
  137. package/dist/{chunk-RWGRSKN5.js → chunk-PT4DZDJA.js} +2 -2
  138. package/dist/{chunk-7EPY3IQL.js → chunk-PZJQ46DH.js} +2 -2
  139. package/dist/{chunk-AH637HZ5.js → chunk-QDESY76F.js} +3 -3
  140. package/dist/{chunk-I6QGI65T.js → chunk-QRMG4HK4.js} +3 -3
  141. package/dist/{chunk-ZU3NJNO7.js → chunk-QSF5SJAM.js} +4 -4
  142. package/dist/{chunk-5IYOKDM4.js → chunk-R23JWJD3.js} +5 -5
  143. package/dist/{chunk-EWJZZDRG.js → chunk-R4BBGPI2.js} +219 -219
  144. package/dist/chunk-R4BBGPI2.js.map +1 -0
  145. package/dist/{chunk-LJQFJF4J.js → chunk-RM2YUFH6.js} +6 -6
  146. package/dist/{chunk-IPT2OY4B.js → chunk-RQFXZYTF.js} +35 -33
  147. package/dist/chunk-RQFXZYTF.js.map +1 -0
  148. package/dist/{chunk-AP6NCP3V.js → chunk-S3S72HRM.js} +8 -6
  149. package/dist/chunk-S3S72HRM.js.map +1 -0
  150. package/dist/{chunk-6QMWECO5.js → chunk-SGQPR5SX.js} +7 -7
  151. package/dist/{chunk-ZGFLIK5H.js → chunk-SPAKBUJY.js} +2 -2
  152. package/dist/{chunk-ER7XANP3.js → chunk-SQ3GEIEL.js} +4 -4
  153. package/dist/{chunk-5UCMYPVF.js → chunk-SVT5IA2H.js} +2 -2
  154. package/dist/{chunk-HVKUCT3W.js → chunk-T4KY6UYF.js} +5 -3
  155. package/dist/{chunk-HVKUCT3W.js.map → chunk-T4KY6UYF.js.map} +1 -1
  156. package/dist/{chunk-FRSHF6FU.js → chunk-TJ4F6H4H.js} +3 -3
  157. package/dist/{chunk-R6HMAIKM.js → chunk-TOSPNM4T.js} +2 -2
  158. package/dist/{chunk-NJJMVS5Y.js → chunk-TRQE3RYR.js} +5 -5
  159. package/dist/{chunk-RMXS4I66.js → chunk-TVDJEUV5.js} +2 -2
  160. package/dist/{chunk-PLCYKAWH.js → chunk-TYRWSE4B.js} +2 -2
  161. package/dist/{chunk-YS2GHSWN.js → chunk-UBEKET2V.js} +389 -39
  162. package/dist/chunk-UBEKET2V.js.map +1 -0
  163. package/dist/{chunk-IQWUACVG.js → chunk-UHMHJX5G.js} +3 -3
  164. package/dist/{chunk-YODUDA6R.js → chunk-UN4RVUG2.js} +22 -22
  165. package/dist/{chunk-KZSGBWOJ.js → chunk-V2KGDESV.js} +2 -2
  166. package/dist/{chunk-E6Z4FBX6.js → chunk-V2QSNFCT.js} +2 -2
  167. package/dist/{chunk-BCCG7VWM.js → chunk-V65H7MI6.js} +396 -13
  168. package/dist/chunk-V65H7MI6.js.map +1 -0
  169. package/dist/chunk-W54Z2MOP.js +4500 -0
  170. package/dist/chunk-W54Z2MOP.js.map +1 -0
  171. package/dist/{chunk-N74SGESS.js → chunk-WKSQTMU7.js} +2 -2
  172. package/dist/{chunk-RIZ5NUNN.js → chunk-WQ4XKIOX.js} +4 -4
  173. package/dist/{chunk-WWK6J6SE.js → chunk-WQURALGV.js} +4996 -2748
  174. package/dist/chunk-WQURALGV.js.map +1 -0
  175. package/dist/{chunk-QEYTRFR3.js → chunk-X26YOFGS.js} +2 -2
  176. package/dist/{chunk-ITHZFHST.js → chunk-X2BVB74H.js} +2 -2
  177. package/dist/{chunk-GNXGJBCA.js → chunk-XIYLWEXC.js} +2 -2
  178. package/dist/{chunk-IBJ6U753.js → chunk-XKZBZOKV.js} +4 -4
  179. package/dist/{chunk-7O2MC42R.js → chunk-XNRLRNQF.js} +2 -2
  180. package/dist/{chunk-65AUYLU3.js → chunk-XPXHQI6N.js} +2 -2
  181. package/dist/{chunk-JBCCWVU2.js → chunk-XRDYRWZI.js} +2 -2
  182. package/dist/chunk-XRWWCW4H.js +102 -0
  183. package/dist/chunk-XRWWCW4H.js.map +1 -0
  184. package/dist/chunk-YKJBSMMP.js +67137 -0
  185. package/dist/chunk-YKJBSMMP.js.map +1 -0
  186. package/dist/{chunk-2JSDPUKD.js → chunk-YMFPFXEX.js} +2 -2
  187. package/dist/{chunk-645WOU5I.js → chunk-ZDZJNXL6.js} +4 -4
  188. package/dist/{chunk-6TCXIRP5.js → chunk-ZKE4CO6B.js} +4 -4
  189. package/dist/{chunk-KEPXC4KN.js → chunk-ZSE774RV.js} +2 -2
  190. package/dist/cli.d.ts.map +1 -1
  191. package/dist/cli.js +305 -187
  192. package/dist/coding/export-okf-codegraph.js +29 -29
  193. package/dist/compounding/engine.js +23 -24
  194. package/dist/config.d.ts.map +1 -1
  195. package/dist/config.js +36 -37
  196. package/dist/connectors/codex-materialize-runner.js +20 -20
  197. package/dist/connectors/index.js +21 -21
  198. package/dist/connectors/live/framework.d.ts +7 -0
  199. package/dist/connectors/live/framework.d.ts.map +1 -1
  200. package/dist/connectors/live/google-drive.d.ts +17 -3
  201. package/dist/connectors/live/google-drive.d.ts.map +1 -1
  202. package/dist/consolidation-provenance-check.js +4 -4
  203. package/dist/consolidation-undo.js +5 -5
  204. package/dist/contradiction/index.js +7 -6
  205. package/dist/{contradiction-scan-P2MHYFVG.js → contradiction-scan-IBPYGQZF.js} +4 -3
  206. package/dist/convergence-refresh.js +22 -22
  207. package/dist/corpus-watermark.js +23 -23
  208. package/dist/deep-recall-http-glue.js +2 -2
  209. package/dist/deep-recall-policy-llm.js +4 -4
  210. package/dist/direct-answer-wiring.js +2 -2
  211. package/dist/embedding-fallback.js +1 -1
  212. package/dist/entity-retrieval.js +21 -21
  213. package/dist/eval-trajectory-store.js +2 -2
  214. package/dist/eval-trajectory.js +2 -2
  215. package/dist/event-order-recall.js +2 -2
  216. package/dist/explicit-capture.d.ts +3 -2
  217. package/dist/explicit-capture.d.ts.map +1 -1
  218. package/dist/explicit-capture.js +530 -6
  219. package/dist/explicit-cue-recall.js +2 -2
  220. package/dist/external-wiki-access.js +2 -283
  221. package/dist/extraction-faithfulness.js +4 -4
  222. package/dist/extraction-judge.js +5 -5
  223. package/dist/extraction-normalization.js +1 -1
  224. package/dist/extraction-quote-grounding.d.ts.map +1 -1
  225. package/dist/extraction-quote-grounding.js +1 -1
  226. package/dist/extraction-source-grounding-rules.js +2 -2
  227. package/dist/extraction-source-grounding.js +3 -3
  228. package/dist/extraction.js +43 -44
  229. package/dist/fallback-llm-codex-subscription.js +2 -2
  230. package/dist/fallback-llm.js +3 -3
  231. package/dist/{first-start-migration-QFI7B5SH.js → first-start-migration-FILJH3RO.js} +6 -5
  232. package/dist/{first-start-migration-QFI7B5SH.js.map → first-start-migration-FILJH3RO.js.map} +1 -1
  233. package/dist/focused-list-recall.js +2 -2
  234. package/dist/harmonic-retrieval.js +20 -20
  235. package/dist/index.js +776 -797
  236. package/dist/lcm/index.js +2 -2
  237. package/dist/live-connectors-runner.d.ts +2 -0
  238. package/dist/live-connectors-runner.d.ts.map +1 -1
  239. package/dist/live-connectors-runner.js +3 -4
  240. package/dist/local-llm-config.js +2 -2
  241. package/dist/local-llm-helpers.d.ts +4 -0
  242. package/dist/local-llm-helpers.d.ts.map +1 -1
  243. package/dist/local-llm-helpers.js +3 -1
  244. package/dist/local-llm.d.ts +4 -1
  245. package/dist/local-llm.d.ts.map +1 -1
  246. package/dist/local-llm.js +4 -4
  247. package/dist/location/index.js +27 -29
  248. package/dist/maintenance/memory-governance.js +20 -20
  249. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +20 -20
  250. package/dist/maintenance/rebuild-memory-projection-runner.js +22 -22
  251. package/dist/maintenance/rebuild-memory-projection.js +21 -21
  252. package/dist/memory-browse-operations.js +2 -283
  253. package/dist/memory-browse.js +8 -7
  254. package/dist/memory-controller.js +2 -2
  255. package/dist/memory-subject.js +2 -2
  256. package/dist/namespaces/migrate.js +21 -21
  257. package/dist/namespaces/search.js +5 -5
  258. package/dist/namespaces/storage.js +20 -20
  259. package/dist/offline-sync-changeset-generations.js +1 -1
  260. package/dist/offline-sync-embedding-generation.js +1 -1
  261. package/dist/offline-sync-impression-drain.js +6 -6
  262. package/dist/offline-sync-snapshot-stream.js +1 -1
  263. package/dist/offline-sync.js +1 -1
  264. package/dist/operator-doctor-corpus.js +24 -24
  265. package/dist/operator-toolkit.js +58 -61
  266. package/dist/orchestration/backlog-scheduler.js +279 -295
  267. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  268. package/dist/orchestration/buffer-drain-runner.js +279 -295
  269. package/dist/orchestration/extraction-run.d.ts +4 -0
  270. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  271. package/dist/orchestration/fact-dedup-window.d.ts +1 -1
  272. package/dist/orchestration/fact-dedup-window.d.ts.map +1 -1
  273. package/dist/orchestration/maintenance.js +39 -42
  274. package/dist/orchestrator.d.ts +11 -11
  275. package/dist/orchestrator.d.ts.map +1 -1
  276. package/dist/orchestrator.js +291 -308
  277. package/dist/page-versioning.js +3 -3
  278. package/dist/qmd-daemon-session.js +2 -2
  279. package/dist/qmd.js +3 -3
  280. package/dist/recall-explain-renderer.js +3 -3
  281. package/dist/recall-navigate-access.js +2 -2
  282. package/dist/recall-navigate-disclosure.js +2 -2
  283. package/dist/recall-navigate.js +2 -2
  284. package/dist/recall-navigation-operations.js +2 -283
  285. package/dist/recall-navigation.js +334 -61
  286. package/dist/recall-planner-llm.js +3 -3
  287. package/dist/recall-state-view-admission.js +6 -6
  288. package/dist/recall-why-service.js +10 -9
  289. package/dist/recall-why.js +4 -3
  290. package/dist/recall-xray-cli.js +4 -4
  291. package/dist/recall-xray-renderer.js +3 -3
  292. package/dist/recall-xray.js +2 -2
  293. package/dist/reconcile/manifest.js +3 -3
  294. package/dist/{resolution-N7H3F2E4.js → resolution-OVVIF7ZY.js} +8 -7
  295. package/dist/response-guidance-recall.js +2 -2
  296. package/dist/resume-bundles.js +40 -41
  297. package/dist/salvage-envelope.js +4 -4
  298. package/dist/search/factory.js +4 -4
  299. package/dist/search/index.js +4 -4
  300. package/dist/semantic-consolidation.js +23 -23
  301. package/dist/semantic-rule-promotion.js +20 -20
  302. package/dist/semantic-rule-verifier.js +20 -20
  303. package/dist/shared-context/manager.js +2 -3
  304. package/dist/source-agent-qualifier.js +32 -33
  305. package/dist/standup/build.js +20 -20
  306. package/dist/{state-store-I5HLZTZT.js → state-store-EEAX2MBS.js} +2 -2
  307. package/dist/storage/content-hash-index.d.ts +10 -0
  308. package/dist/storage/content-hash-index.d.ts.map +1 -1
  309. package/dist/storage.js +19 -19
  310. package/dist/subject-config.js +3 -3
  311. package/dist/summarizer.d.ts +4 -1
  312. package/dist/summarizer.d.ts.map +1 -1
  313. package/dist/summarizer.js +6 -6
  314. package/dist/support-passport/index.js +53 -297
  315. package/dist/targeted-fact-recall.js +2 -2
  316. package/dist/tier-routing.js +3 -2
  317. package/dist/{tier-stats-FQGQSFET.js → tier-stats-FXEUJN73.js} +6 -5
  318. package/dist/{tier-stats-FQGQSFET.js.map → tier-stats-FXEUJN73.js.map} +1 -1
  319. package/dist/transcript.js +2 -2
  320. package/dist/transfer/capsule-import.js +4 -4
  321. package/dist/transfer/export-okf.js +20 -20
  322. package/dist/types.d.ts +10 -10
  323. package/dist/types.d.ts.map +1 -1
  324. package/dist/types.js +1 -1
  325. package/dist/verified-recall.js +20 -20
  326. package/dist/wearables/memory-gen.d.ts +5 -1
  327. package/dist/wearables/memory-gen.d.ts.map +1 -1
  328. package/dist/wearables/service.d.ts.map +1 -1
  329. package/dist/who-knows-cli.js +21 -21
  330. package/dist/who-knows.js +20 -20
  331. package/dist/write-envelope.js +3 -3
  332. package/package.json +2 -2
  333. package/src/access-boundary.ts +5 -1
  334. package/src/access-category-alias.test.ts +5 -0
  335. package/src/access-mcp-frames.test.ts +60 -5
  336. package/src/access-mcp-frames.ts +72 -18
  337. package/src/access-mcp.test.ts +66 -2
  338. package/src/access-mcp.ts +19 -13
  339. package/src/access-service-coding-write.test.ts +7 -0
  340. package/src/access-service.ts +3 -0
  341. package/src/activity/journal-extract-storage.test.ts +31 -0
  342. package/src/activity/journal-extract.test.ts +1 -0
  343. package/src/activity/journal-extract.ts +24 -3
  344. package/src/cli.ts +1 -2
  345. package/src/config.test.ts +17 -0
  346. package/src/config.ts +25 -7
  347. package/src/connectors/live/framework.ts +8 -0
  348. package/src/connectors/live/google-drive.test.ts +74 -0
  349. package/src/connectors/live/google-drive.ts +138 -11
  350. package/src/explicit-capture.test.ts +109 -17
  351. package/src/explicit-capture.ts +90 -37
  352. package/src/extraction-quote-grounding.test.ts +20 -0
  353. package/src/extraction-quote-grounding.ts +21 -11
  354. package/src/fact-dedup-window.test.ts +37 -0
  355. package/src/live-connectors-runner.ts +3 -0
  356. package/src/live-connectors-secretref.test.ts +126 -0
  357. package/src/local-llm-helpers.ts +12 -0
  358. package/src/local-llm-shutdown.test.ts +194 -0
  359. package/src/local-llm.ts +32 -30
  360. package/src/orchestration/extraction-run.ts +12 -3
  361. package/src/orchestration/fact-dedup-window.ts +5 -1
  362. package/src/orchestrator-connector-dedup.test.ts +9 -5
  363. package/src/orchestrator.ts +52 -55
  364. package/src/storage/content-hash-index.ts +27 -2
  365. package/src/storage-fact-hash-publish-failure.test.ts +87 -0
  366. package/src/summarizer-shutdown.test.ts +195 -0
  367. package/src/summarizer.ts +15 -2
  368. package/src/types.ts +10 -10
  369. package/src/wearables/memory-gen.test.ts +20 -0
  370. package/src/wearables/memory-gen.ts +14 -7
  371. package/src/wearables/service.ts +14 -1
  372. package/src/wearables/storage-io.test.ts +25 -0
  373. package/dist/chunk-27XYV2XL.js +0 -43
  374. package/dist/chunk-27XYV2XL.js.map +0 -1
  375. package/dist/chunk-5KBIOI4G.js.map +0 -1
  376. package/dist/chunk-66L5ZRJC.js.map +0 -1
  377. package/dist/chunk-7HTUYFR3.js.map +0 -1
  378. package/dist/chunk-AOFEMUHG.js.map +0 -1
  379. package/dist/chunk-AP6NCP3V.js.map +0 -1
  380. package/dist/chunk-APYY5CX3.js +0 -335
  381. package/dist/chunk-APYY5CX3.js.map +0 -1
  382. package/dist/chunk-ATPWMT2E.js +0 -223
  383. package/dist/chunk-ATPWMT2E.js.map +0 -1
  384. package/dist/chunk-BCCG7VWM.js.map +0 -1
  385. package/dist/chunk-E6M225BJ.js.map +0 -1
  386. package/dist/chunk-EQ4U73UH.js.map +0 -1
  387. package/dist/chunk-ETSJD5IV.js +0 -361
  388. package/dist/chunk-ETSJD5IV.js.map +0 -1
  389. package/dist/chunk-EWJZZDRG.js.map +0 -1
  390. package/dist/chunk-FHGWKODN.js +0 -2300
  391. package/dist/chunk-FHGWKODN.js.map +0 -1
  392. package/dist/chunk-GRTKLWYX.js +0 -621
  393. package/dist/chunk-GRTKLWYX.js.map +0 -1
  394. package/dist/chunk-IGLJNHOX.js +0 -62
  395. package/dist/chunk-IGLJNHOX.js.map +0 -1
  396. package/dist/chunk-IPT2OY4B.js.map +0 -1
  397. package/dist/chunk-IUKYFTGW.js.map +0 -1
  398. package/dist/chunk-KUIRDD74.js +0 -3991
  399. package/dist/chunk-KUIRDD74.js.map +0 -1
  400. package/dist/chunk-MVMRUGBH.js +0 -1919
  401. package/dist/chunk-MVMRUGBH.js.map +0 -1
  402. package/dist/chunk-ODL4ZTNI.js +0 -3644
  403. package/dist/chunk-ODL4ZTNI.js.map +0 -1
  404. package/dist/chunk-OGXXGHW6.js +0 -223
  405. package/dist/chunk-OGXXGHW6.js.map +0 -1
  406. package/dist/chunk-P5VZSSYL.js.map +0 -1
  407. package/dist/chunk-PPCLZ4JU.js +0 -28
  408. package/dist/chunk-PPCLZ4JU.js.map +0 -1
  409. package/dist/chunk-PUEO37QG.js.map +0 -1
  410. package/dist/chunk-RRTVGD3J.js +0 -792
  411. package/dist/chunk-RRTVGD3J.js.map +0 -1
  412. package/dist/chunk-STSLB4HT.js +0 -18793
  413. package/dist/chunk-STSLB4HT.js.map +0 -1
  414. package/dist/chunk-T6OZW2WR.js.map +0 -1
  415. package/dist/chunk-TRBGGJKZ.js +0 -32218
  416. package/dist/chunk-TRBGGJKZ.js.map +0 -1
  417. package/dist/chunk-UDKWFDV2.js.map +0 -1
  418. package/dist/chunk-V4XE263I.js.map +0 -1
  419. package/dist/chunk-V7IZKJI3.js +0 -22
  420. package/dist/chunk-V7IZKJI3.js.map +0 -1
  421. package/dist/chunk-VMVVSZTD.js +0 -61
  422. package/dist/chunk-VMVVSZTD.js.map +0 -1
  423. package/dist/chunk-VNUOAXWP.js +0 -203
  424. package/dist/chunk-VNUOAXWP.js.map +0 -1
  425. package/dist/chunk-WLBEZZK5.js +0 -729
  426. package/dist/chunk-WLBEZZK5.js.map +0 -1
  427. package/dist/chunk-WUUES6CU.js +0 -25
  428. package/dist/chunk-WUUES6CU.js.map +0 -1
  429. package/dist/chunk-WWK6J6SE.js.map +0 -1
  430. package/dist/chunk-XICOH5HT.js +0 -346
  431. package/dist/chunk-XICOH5HT.js.map +0 -1
  432. package/dist/chunk-YCNIGRRF.js.map +0 -1
  433. package/dist/chunk-YS2GHSWN.js.map +0 -1
  434. package/dist/chunk-ZCLEYJPB.js +0 -10143
  435. package/dist/chunk-ZCLEYJPB.js.map +0 -1
  436. /package/dist/{capsule-merge-2IIXFXN5.js.map → capsule-merge-6IDAYTKG.js.map} +0 -0
  437. /package/dist/{chunk-QL7RHYK6.js.map → chunk-2LMA22UU.js.map} +0 -0
  438. /package/dist/{chunk-RGUUBAT5.js.map → chunk-2WCLTWV2.js.map} +0 -0
  439. /package/dist/{chunk-RSK2WIEM.js.map → chunk-2YODOG2O.js.map} +0 -0
  440. /package/dist/{chunk-WYG5UNDY.js.map → chunk-3AUDELZL.js.map} +0 -0
  441. /package/dist/{chunk-OFVCFKDH.js.map → chunk-3CYOCE6U.js.map} +0 -0
  442. /package/dist/{chunk-6HM6HARE.js.map → chunk-3FBAEPCU.js.map} +0 -0
  443. /package/dist/{chunk-PIITB2YZ.js.map → chunk-3ZS3NUEI.js.map} +0 -0
  444. /package/dist/{chunk-ANZZLRUX.js.map → chunk-4IVRQMZW.js.map} +0 -0
  445. /package/dist/{chunk-63E37JCN.js.map → chunk-4RAJT5L2.js.map} +0 -0
  446. /package/dist/{chunk-45VUHDV2.js.map → chunk-5CO5G4MN.js.map} +0 -0
  447. /package/dist/{chunk-3UMDRGFS.js.map → chunk-65HWAQ4F.js.map} +0 -0
  448. /package/dist/{chunk-T67LUYCR.js.map → chunk-77NTFICT.js.map} +0 -0
  449. /package/dist/{chunk-UE6RRXMF.js.map → chunk-A4F7OIC5.js.map} +0 -0
  450. /package/dist/{chunk-63O7LVMN.js.map → chunk-B33YWUJV.js.map} +0 -0
  451. /package/dist/{chunk-QVMOCJRV.js.map → chunk-B377OKUP.js.map} +0 -0
  452. /package/dist/{chunk-ZT6WPSII.js.map → chunk-BGHCSLE5.js.map} +0 -0
  453. /package/dist/{chunk-YYOMGOHB.js.map → chunk-BOK6BN5M.js.map} +0 -0
  454. /package/dist/{chunk-OH7QLI6W.js.map → chunk-BPPUH5JM.js.map} +0 -0
  455. /package/dist/{chunk-EV76IZ37.js.map → chunk-BTI4C4MA.js.map} +0 -0
  456. /package/dist/{chunk-O6ZSWHVR.js.map → chunk-C2KE5DMD.js.map} +0 -0
  457. /package/dist/{chunk-47F6WWLQ.js.map → chunk-C73N66PR.js.map} +0 -0
  458. /package/dist/{chunk-3XIWW4TB.js.map → chunk-CGJYL633.js.map} +0 -0
  459. /package/dist/{chunk-WRT7GJ2D.js.map → chunk-CIWMTNHW.js.map} +0 -0
  460. /package/dist/{chunk-O55EKIEC.js.map → chunk-D3ZKHLN2.js.map} +0 -0
  461. /package/dist/{chunk-CD4BCCNP.js.map → chunk-DJ7WVEWX.js.map} +0 -0
  462. /package/dist/{chunk-RO7RUBLD.js.map → chunk-EFL24KOI.js.map} +0 -0
  463. /package/dist/{chunk-4CJTQHEG.js.map → chunk-ESLOLCD4.js.map} +0 -0
  464. /package/dist/{chunk-Z4Q6USKJ.js.map → chunk-ETBVCRVL.js.map} +0 -0
  465. /package/dist/{chunk-VILPVT4S.js.map → chunk-EZ47HOJ6.js.map} +0 -0
  466. /package/dist/{chunk-EFYN5I7Z.js.map → chunk-F4QFU5IZ.js.map} +0 -0
  467. /package/dist/{chunk-SHUBTAY2.js.map → chunk-FMKILENU.js.map} +0 -0
  468. /package/dist/{chunk-YLXETSAH.js.map → chunk-GCZJ7XRI.js.map} +0 -0
  469. /package/dist/{chunk-QFEDITXM.js.map → chunk-JNDMIAJ4.js.map} +0 -0
  470. /package/dist/{chunk-E5PPE4VA.js.map → chunk-K2VRKCPA.js.map} +0 -0
  471. /package/dist/{chunk-MKRYQROF.js.map → chunk-LGEHAQHK.js.map} +0 -0
  472. /package/dist/{chunk-XYTQJD7F.js.map → chunk-LMJVP5CM.js.map} +0 -0
  473. /package/dist/{chunk-JC36FPQ5.js.map → chunk-LPV72KRQ.js.map} +0 -0
  474. /package/dist/{chunk-2LCRG2YV.js.map → chunk-M2XR6B6V.js.map} +0 -0
  475. /package/dist/{chunk-VPQFK63H.js.map → chunk-MH632KPO.js.map} +0 -0
  476. /package/dist/{chunk-ZU5JDLOH.js.map → chunk-MMRTPH3J.js.map} +0 -0
  477. /package/dist/{chunk-ZZ67UTQX.js.map → chunk-MUX7IL77.js.map} +0 -0
  478. /package/dist/{chunk-RYWROSL5.js.map → chunk-NAQ4A5IX.js.map} +0 -0
  479. /package/dist/{chunk-TVIVY7KU.js.map → chunk-NED7IR7B.js.map} +0 -0
  480. /package/dist/{chunk-ADYP7HXE.js.map → chunk-NHVAX7MH.js.map} +0 -0
  481. /package/dist/{chunk-TG3R2SID.js.map → chunk-NMGHGTVR.js.map} +0 -0
  482. /package/dist/{chunk-NGHDW6UU.js.map → chunk-NUQEREIP.js.map} +0 -0
  483. /package/dist/{chunk-5IIQU4JZ.js.map → chunk-OB72KNMF.js.map} +0 -0
  484. /package/dist/{chunk-7L3TODI7.js.map → chunk-OJXJWNFY.js.map} +0 -0
  485. /package/dist/{chunk-EURPSF4Y.js.map → chunk-PH5ZQM35.js.map} +0 -0
  486. /package/dist/{chunk-BMWMTAQF.js.map → chunk-PRAUN6PN.js.map} +0 -0
  487. /package/dist/{chunk-RWGRSKN5.js.map → chunk-PT4DZDJA.js.map} +0 -0
  488. /package/dist/{chunk-7EPY3IQL.js.map → chunk-PZJQ46DH.js.map} +0 -0
  489. /package/dist/{chunk-AH637HZ5.js.map → chunk-QDESY76F.js.map} +0 -0
  490. /package/dist/{chunk-I6QGI65T.js.map → chunk-QRMG4HK4.js.map} +0 -0
  491. /package/dist/{chunk-ZU3NJNO7.js.map → chunk-QSF5SJAM.js.map} +0 -0
  492. /package/dist/{chunk-5IYOKDM4.js.map → chunk-R23JWJD3.js.map} +0 -0
  493. /package/dist/{chunk-LJQFJF4J.js.map → chunk-RM2YUFH6.js.map} +0 -0
  494. /package/dist/{chunk-6QMWECO5.js.map → chunk-SGQPR5SX.js.map} +0 -0
  495. /package/dist/{chunk-ZGFLIK5H.js.map → chunk-SPAKBUJY.js.map} +0 -0
  496. /package/dist/{chunk-ER7XANP3.js.map → chunk-SQ3GEIEL.js.map} +0 -0
  497. /package/dist/{chunk-5UCMYPVF.js.map → chunk-SVT5IA2H.js.map} +0 -0
  498. /package/dist/{chunk-FRSHF6FU.js.map → chunk-TJ4F6H4H.js.map} +0 -0
  499. /package/dist/{chunk-R6HMAIKM.js.map → chunk-TOSPNM4T.js.map} +0 -0
  500. /package/dist/{chunk-NJJMVS5Y.js.map → chunk-TRQE3RYR.js.map} +0 -0
  501. /package/dist/{chunk-RMXS4I66.js.map → chunk-TVDJEUV5.js.map} +0 -0
  502. /package/dist/{chunk-PLCYKAWH.js.map → chunk-TYRWSE4B.js.map} +0 -0
  503. /package/dist/{chunk-IQWUACVG.js.map → chunk-UHMHJX5G.js.map} +0 -0
  504. /package/dist/{chunk-YODUDA6R.js.map → chunk-UN4RVUG2.js.map} +0 -0
  505. /package/dist/{chunk-KZSGBWOJ.js.map → chunk-V2KGDESV.js.map} +0 -0
  506. /package/dist/{chunk-E6Z4FBX6.js.map → chunk-V2QSNFCT.js.map} +0 -0
  507. /package/dist/{chunk-N74SGESS.js.map → chunk-WKSQTMU7.js.map} +0 -0
  508. /package/dist/{chunk-RIZ5NUNN.js.map → chunk-WQ4XKIOX.js.map} +0 -0
  509. /package/dist/{chunk-QEYTRFR3.js.map → chunk-X26YOFGS.js.map} +0 -0
  510. /package/dist/{chunk-ITHZFHST.js.map → chunk-X2BVB74H.js.map} +0 -0
  511. /package/dist/{chunk-GNXGJBCA.js.map → chunk-XIYLWEXC.js.map} +0 -0
  512. /package/dist/{chunk-IBJ6U753.js.map → chunk-XKZBZOKV.js.map} +0 -0
  513. /package/dist/{chunk-7O2MC42R.js.map → chunk-XNRLRNQF.js.map} +0 -0
  514. /package/dist/{chunk-65AUYLU3.js.map → chunk-XPXHQI6N.js.map} +0 -0
  515. /package/dist/{chunk-JBCCWVU2.js.map → chunk-XRDYRWZI.js.map} +0 -0
  516. /package/dist/{chunk-2JSDPUKD.js.map → chunk-YMFPFXEX.js.map} +0 -0
  517. /package/dist/{chunk-645WOU5I.js.map → chunk-ZDZJNXL6.js.map} +0 -0
  518. /package/dist/{chunk-6TCXIRP5.js.map → chunk-ZKE4CO6B.js.map} +0 -0
  519. /package/dist/{chunk-KEPXC4KN.js.map → chunk-ZSE774RV.js.map} +0 -0
  520. /package/dist/{contradiction-scan-P2MHYFVG.js.map → contradiction-scan-IBPYGQZF.js.map} +0 -0
  521. /package/dist/{resolution-N7H3F2E4.js.map → resolution-OVVIF7ZY.js.map} +0 -0
  522. /package/dist/{state-store-I5HLZTZT.js.map → state-store-EEAX2MBS.js.map} +0 -0
@@ -1,61 +0,0 @@
1
- import {
2
- runLocationSync
3
- } from "./chunk-AOFEMUHG.js";
4
- import {
5
- log
6
- } from "./chunk-3WCASNQZ.js";
7
-
8
- // src/location/scheduler.ts
9
- var LOCATION_SYNC_DEFAULT_INTERVAL_MS = 24 * 60 * 60 * 1e3;
10
- function startLocationAutoSync(settings, deps = {}) {
11
- const logger = deps.log ?? log;
12
- const intervalMs = settings.intervalMs ?? LOCATION_SYNC_DEFAULT_INTERVAL_MS;
13
- const setIntervalImpl = settings.setInterval ?? ((fn, ms) => setInterval(fn, ms));
14
- const clearIntervalImpl = settings.clearInterval ?? ((handle) => clearInterval(handle));
15
- const sync = deps.sync ?? ((deps2) => runLocationSync({ config: deps2.config, memoryDir: deps2.memoryDir }));
16
- let inFlight = null;
17
- let stopped = false;
18
- const timer = setIntervalImpl(() => {
19
- if (inFlight !== null || stopped) return;
20
- inFlight = (async () => {
21
- try {
22
- const runs = await sync({ config: settings.config, memoryDir: settings.memoryDir });
23
- const failed = runs.some((run) => run.results.some((result) => result.status === "failed"));
24
- if (failed) {
25
- logger.warn("location auto-sync: one or more sources failed \u2014 retrying on the next tick");
26
- } else {
27
- logger.info(
28
- `location auto-sync: refreshed ${settings.config.syncDays}-day window across ${settings.config.sources.length} source(s)`
29
- );
30
- }
31
- } catch (err) {
32
- if (err instanceof Error && err.name === "AbortError") return;
33
- logger.warn(
34
- `location auto-sync failed: ${err instanceof Error ? err.name : "unknown error"} \u2014 retrying on the next tick`
35
- );
36
- } finally {
37
- inFlight = null;
38
- }
39
- })();
40
- }, intervalMs);
41
- timer.unref?.();
42
- return {
43
- async tick() {
44
- const runs = await sync({ config: settings.config, memoryDir: settings.memoryDir });
45
- logger.info(
46
- `location auto-sync tick: ${runs.length} day(s) across ${settings.config.sources.length} source(s)`
47
- );
48
- },
49
- async stop() {
50
- stopped = true;
51
- clearIntervalImpl(timer);
52
- await inFlight;
53
- }
54
- };
55
- }
56
-
57
- export {
58
- LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
- startLocationAutoSync
60
- };
61
- //# sourceMappingURL=chunk-VMVVSZTD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/location/scheduler.ts"],"sourcesContent":["/**\n * Location auto-sync — in-process periodic day sync (issue #2047).\n *\n * Arms one repeating timer that runs the SAME shared surface runner\n * (`runLocationSync`) as the CLI/MCP/HTTP surfaces over the configured\n * `location.syncDays` window ending yesterday, so late provider uploads are\n * picked up on the next tick. Master default-off: the caller (maintenance\n * scheduler registration) arms this only when `location.enabled` is true and\n * at least one source is enabled; a forced manual sync never bypasses those\n * gates — they live inside the pipeline itself.\n *\n * The timer is unref'd so one-shot CLI processes exit naturally; ticks are\n * serialized (an overlapping tick is skipped, not queued). ponytail: fixed\n * default cadence (daily) with no per-install override — add a\n * location.syncIntervalHours config field if installs need it.\n */\n\nimport { log } from \"../logger.js\";\nimport { runLocationSync, type LocationSyncRuns } from \"./surfaces.js\";\nimport type { LocationConfig } from \"./types.js\";\n\nexport const LOCATION_SYNC_DEFAULT_INTERVAL_MS = 24 * 60 * 60 * 1000;\n\nexport interface LocationAutoSyncSettings {\n config: LocationConfig;\n memoryDir: string;\n /** Tick cadence in ms; defaults to LOCATION_SYNC_DEFAULT_INTERVAL_MS. */\n intervalMs?: number;\n /** Clock/timer seam for tests. */\n setInterval?: (fn: () => void, ms: number) => { unref?: () => void };\n clearInterval?: (handle: unknown) => void;\n}\n\nexport interface LocationAutoSyncDeps {\n /** Run a sync (defaults to the shared surface runner). */\n sync?: (deps: { config: LocationConfig; memoryDir: string }) => Promise<LocationSyncRuns>;\n log?: { info(message: string): void; warn(message: string): void };\n}\n\nexport interface LocationAutoSyncHandle {\n /** Run one tick now (first-run hook and test seam). */\n tick(): Promise<void>;\n stop(): Promise<void>;\n}\n\nexport function startLocationAutoSync(\n settings: LocationAutoSyncSettings,\n deps: LocationAutoSyncDeps = {},\n): LocationAutoSyncHandle {\n const logger = deps.log ?? log;\n const intervalMs = settings.intervalMs ?? LOCATION_SYNC_DEFAULT_INTERVAL_MS;\n const setIntervalImpl = settings.setInterval ?? ((fn: () => void, ms: number) => setInterval(fn, ms));\n const clearIntervalImpl = settings.clearInterval ?? ((handle: unknown) => clearInterval(handle as NodeJS.Timeout));\n const sync =\n deps.sync ??\n ((deps: { config: LocationConfig; memoryDir: string }) =>\n runLocationSync({ config: deps.config, memoryDir: deps.memoryDir }));\n let inFlight: Promise<void> | null = null;\n let stopped = false;\n const timer = setIntervalImpl(() => {\n if (inFlight !== null || stopped) return;\n inFlight = (async () => {\n try {\n const runs = await sync({ config: settings.config, memoryDir: settings.memoryDir });\n const failed = runs.some((run) => run.results.some((result) => result.status === \"failed\"));\n if (failed) {\n logger.warn(\"location auto-sync: one or more sources failed — retrying on the next tick\");\n } else {\n logger.info(\n `location auto-sync: refreshed ${settings.config.syncDays}-day window across ${settings.config.sources.length} source(s)`,\n );\n }\n } catch (err) {\n // An abort raised by stop() is intentional shutdown, not a failure.\n if (err instanceof Error && err.name === \"AbortError\") return;\n logger.warn(\n `location auto-sync failed: ${err instanceof Error ? err.name : \"unknown error\"} — retrying on the next tick`,\n );\n } finally {\n inFlight = null;\n }\n })();\n }, intervalMs);\n timer.unref?.();\n return {\n async tick() {\n const runs = await sync({ config: settings.config, memoryDir: settings.memoryDir });\n logger.info(\n `location auto-sync tick: ${runs.length} day(s) across ${settings.config.sources.length} source(s)`,\n );\n },\n async stop() {\n stopped = true;\n clearIntervalImpl(timer);\n await inFlight;\n },\n };\n}\n"],"mappings":";;;;;;;;AAqBO,IAAM,oCAAoC,KAAK,KAAK,KAAK;AAwBzD,SAAS,sBACd,UACA,OAA6B,CAAC,GACN;AACxB,QAAM,SAAS,KAAK,OAAO;AAC3B,QAAM,aAAa,SAAS,cAAc;AAC1C,QAAM,kBAAkB,SAAS,gBAAgB,CAAC,IAAgB,OAAe,YAAY,IAAI,EAAE;AACnG,QAAM,oBAAoB,SAAS,kBAAkB,CAAC,WAAoB,cAAc,MAAwB;AAChH,QAAM,OACJ,KAAK,SACJ,CAACA,UACA,gBAAgB,EAAE,QAAQA,MAAK,QAAQ,WAAWA,MAAK,UAAU,CAAC;AACtE,MAAI,WAAiC;AACrC,MAAI,UAAU;AACd,QAAM,QAAQ,gBAAgB,MAAM;AAClC,QAAI,aAAa,QAAQ,QAAS;AAClC,gBAAY,YAAY;AACtB,UAAI;AACF,cAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,QAAQ,WAAW,SAAS,UAAU,CAAC;AAClF,cAAM,SAAS,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,WAAW,QAAQ,CAAC;AAC1F,YAAI,QAAQ;AACV,iBAAO,KAAK,iFAA4E;AAAA,QAC1F,OAAO;AACL,iBAAO;AAAA,YACL,iCAAiC,SAAS,OAAO,QAAQ,sBAAsB,SAAS,OAAO,QAAQ,MAAM;AAAA,UAC/G;AAAA,QACF;AAAA,MACF,SAAS,KAAK;AAEZ,YAAI,eAAe,SAAS,IAAI,SAAS,aAAc;AACvD,eAAO;AAAA,UACL,8BAA8B,eAAe,QAAQ,IAAI,OAAO,eAAe;AAAA,QACjF;AAAA,MACF,UAAE;AACA,mBAAW;AAAA,MACb;AAAA,IACF,GAAG;AAAA,EACL,GAAG,UAAU;AACb,QAAM,QAAQ;AACd,SAAO;AAAA,IACL,MAAM,OAAO;AACX,YAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,QAAQ,WAAW,SAAS,UAAU,CAAC;AAClF,aAAO;AAAA,QACL,4BAA4B,KAAK,MAAM,kBAAkB,SAAS,OAAO,QAAQ,MAAM;AAAA,MACzF;AAAA,IACF;AAAA,IACA,MAAM,OAAO;AACX,gBAAU;AACV,wBAAkB,KAAK;AACvB,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":["deps"]}
@@ -1,203 +0,0 @@
1
- import {
2
- resolveCorpusNamespaceRoots
3
- } from "./chunk-ZT6WPSII.js";
4
- import {
5
- capabilityAllowsNamespace
6
- } from "./chunk-OGBQMY46.js";
7
- import {
8
- normalizeNamespaceIdentity
9
- } from "./chunk-VUFL7X3H.js";
10
- import {
11
- resolveNamespaceCapabilities
12
- } from "./chunk-C5LWPYS3.js";
13
-
14
- // src/orchestration/extraction-watermark.ts
15
- import path from "path";
16
- function readFailure(reason) {
17
- return {
18
- lastExtractionAt: null,
19
- readFailed: true,
20
- readError: reason
21
- };
22
- }
23
- function errorMessage(error) {
24
- return error instanceof Error ? error.message : String(error);
25
- }
26
- var ISO_TIMESTAMP_PATTERN = /^([+-]?\d{4,6})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?(?:\.(\d+))?(Z|[+-]\d{2}:?\d{2})$/i;
27
- function validatedTimestampMs(value) {
28
- const match = ISO_TIMESTAMP_PATTERN.exec(value);
29
- const parsed = Date.parse(value);
30
- if (!match || !Number.isFinite(parsed)) return null;
31
- const [, yearText, monthText, dayText, hourText, minuteText, secondText, fraction, zone] = match;
32
- const normalizedZone = zone.toUpperCase();
33
- const offsetMinuteText = normalizedZone.includes(":") ? normalizedZone.slice(4, 6) : normalizedZone.slice(3, 5);
34
- const year = Number(yearText);
35
- const month = Number(monthText);
36
- const day = Number(dayText);
37
- const hour = Number(hourText);
38
- const minute = Number(minuteText);
39
- const second = secondText !== void 0 ? Number(secondText) : 0;
40
- const leapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
41
- const daysInMonth = [31, leapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
42
- if (month < 1 || month > 12 || day < 1 || day > daysInMonth[month - 1]) return null;
43
- if (hour === 24) {
44
- const isEndOfDay = minute === 0 && second === 0 && /^0*$/.test(fraction ?? "");
45
- return isEndOfDay ? parsed : null;
46
- }
47
- const zoneSign = normalizedZone === "Z" || normalizedZone[0] === "+" ? 1 : -1;
48
- const offsetMinutes = normalizedZone === "Z" ? 0 : zoneSign * (Number(normalizedZone.slice(1, 3)) * 60 + Number(offsetMinuteText));
49
- const representedCalendar = new Date(parsed + offsetMinutes * 6e4);
50
- const millisecond = Number((fraction ?? "").padEnd(3, "0").slice(0, 3));
51
- const expected = [
52
- year,
53
- month,
54
- day,
55
- hour,
56
- minute,
57
- second,
58
- millisecond
59
- ];
60
- const actual = [
61
- representedCalendar.getUTCFullYear(),
62
- representedCalendar.getUTCMonth() + 1,
63
- representedCalendar.getUTCDate(),
64
- representedCalendar.getUTCHours(),
65
- representedCalendar.getUTCMinutes(),
66
- representedCalendar.getUTCSeconds(),
67
- representedCalendar.getUTCMilliseconds()
68
- ];
69
- return actual.every((part, index) => part === expected[index]) ? parsed : null;
70
- }
71
- function mergeRootStats(current, candidate) {
72
- if (!current && !candidate) return void 0;
73
- const currentCount = current?.extractionCount;
74
- const candidateCount = candidate?.extractionCount;
75
- const extractionCount = currentCount === void 0 && candidateCount === void 0 ? void 0 : (currentCount ?? 0) + (candidateCount ?? 0);
76
- const currentConsolidation = current?.lastConsolidationAt;
77
- const candidateConsolidation = candidate?.lastConsolidationAt;
78
- const hasConsolidation = currentConsolidation !== void 0 || candidateConsolidation !== void 0;
79
- return {
80
- ...extractionCount === void 0 ? {} : { extractionCount },
81
- ...hasConsolidation ? {
82
- lastConsolidationAt: newerWatermark(
83
- currentConsolidation ?? null,
84
- candidateConsolidation ?? null
85
- )
86
- } : {}
87
- };
88
- }
89
- function watermarkFromMeta(meta, name) {
90
- if (meta.lastExtractionAt !== null && meta.lastExtractionAt !== void 0 && validatedTimestampMs(meta.lastExtractionAt) === null) {
91
- return readFailure(`${name} watermark timestamp invalid`);
92
- }
93
- if (meta.lastConsolidationAt !== null && meta.lastConsolidationAt !== void 0 && validatedTimestampMs(meta.lastConsolidationAt) === null) {
94
- return readFailure(`${name} consolidation timestamp invalid`);
95
- }
96
- const hasRootStats = meta.extractionCount !== void 0 || meta.lastConsolidationAt !== void 0;
97
- return {
98
- lastExtractionAt: meta.lastExtractionAt ?? null,
99
- readFailed: false,
100
- ...hasRootStats ? {
101
- rootStats: {
102
- extractionCount: meta.extractionCount,
103
- lastConsolidationAt: meta.lastConsolidationAt
104
- }
105
- } : {}
106
- };
107
- }
108
- async function readWatermark(storage, name) {
109
- try {
110
- return watermarkFromMeta(await storage.loadMeta(), name);
111
- } catch (error) {
112
- return readFailure(`${name} watermark unreadable: ${errorMessage(error)}`);
113
- }
114
- }
115
- async function resolveRoots(options) {
116
- const compute = () => resolveCorpusNamespaceRoots({
117
- config: options.config,
118
- propagateDiscoveryErrors: true
119
- });
120
- if (options.rootsCache) {
121
- const { roots, refreshError } = options.rootsCache.getResolvedRootsStatus(compute);
122
- if (refreshError !== void 0) {
123
- return readFailure(`namespace watermark enumeration failed: ${errorMessage(refreshError)}`);
124
- }
125
- return roots ?? { lastExtractionAt: null, readFailed: false, pending: true };
126
- }
127
- try {
128
- return await compute();
129
- } catch (error) {
130
- return readFailure(`namespace watermark enumeration failed: ${errorMessage(error)}`);
131
- }
132
- }
133
- function isReadFailure(value) {
134
- return !Array.isArray(value);
135
- }
136
- function newerWatermark(current, candidate) {
137
- if (candidate === null) return current;
138
- const candidateMs = validatedTimestampMs(candidate);
139
- if (candidateMs === null) return current;
140
- if (current === null) return candidate;
141
- const currentMs = validatedTimestampMs(current);
142
- return currentMs === null || candidateMs > currentMs ? candidate : current;
143
- }
144
- async function readAggregateExtractionWatermark(options) {
145
- if (!resolveNamespaceCapabilities(options.config).namespaces) {
146
- return options.rootMeta ? watermarkFromMeta(options.rootMeta, "root store") : readWatermark(options.rootStorage, "root store");
147
- }
148
- const resolved = await resolveRoots(options);
149
- if (isReadFailure(resolved)) return resolved;
150
- const rootDir = path.resolve(options.rootStorage.dir);
151
- const seenDirs = /* @__PURE__ */ new Set([rootDir]);
152
- const targets = [];
153
- for (const root of resolved) {
154
- if (options.caps && !root.namespaces.some(
155
- (ns) => capabilityAllowsNamespace(options.caps, normalizeNamespaceIdentity(ns))
156
- )) {
157
- continue;
158
- }
159
- const resolvedDir = path.resolve(root.rootDir);
160
- if (seenDirs.has(resolvedDir)) continue;
161
- seenDirs.add(resolvedDir);
162
- targets.push(root);
163
- }
164
- const defaultNamespace = normalizeNamespaceIdentity(options.config.defaultNamespace);
165
- const hasMigratedDefault = resolved.some(
166
- (root) => path.resolve(root.rootDir) !== rootDir && root.namespaces.some((namespace) => normalizeNamespaceIdentity(namespace) === defaultNamespace)
167
- );
168
- const canAccessRoot = !hasMigratedDefault && (!options.caps || capabilityAllowsNamespace(options.caps, defaultNamespace));
169
- let rootRead = { lastExtractionAt: null, readFailed: false };
170
- if (canAccessRoot) {
171
- rootRead = options.rootMeta ? watermarkFromMeta(options.rootMeta, "root store") : await readWatermark(options.rootStorage, "root store");
172
- if (rootRead.readFailed) return rootRead;
173
- }
174
- let lastExtractionAt = rootRead.lastExtractionAt;
175
- let rootStats = rootRead.rootStats;
176
- const reads = await Promise.all(
177
- targets.map(async (target) => {
178
- try {
179
- const storage = await options.storageForNamespace(target.namespace, target.rootDir);
180
- return await readWatermark(storage, "namespace");
181
- } catch (error) {
182
- return readFailure(`namespace watermark storage unavailable: ${errorMessage(error)}`);
183
- }
184
- })
185
- );
186
- for (const read of reads) {
187
- if (read.readFailed) {
188
- return readFailure(read.readError ?? "namespace watermark unreadable");
189
- }
190
- lastExtractionAt = newerWatermark(lastExtractionAt, read.lastExtractionAt);
191
- rootStats = mergeRootStats(rootStats, read.rootStats);
192
- }
193
- return {
194
- lastExtractionAt,
195
- readFailed: false,
196
- ...rootStats ? { rootStats } : {}
197
- };
198
- }
199
-
200
- export {
201
- readAggregateExtractionWatermark
202
- };
203
- //# sourceMappingURL=chunk-VNUOAXWP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/orchestration/extraction-watermark.ts"],"sourcesContent":["import path from \"node:path\";\n\nimport { capabilityAllowsNamespace, type TokenCapabilities } from \"../access-token-capabilities.js\";\nimport { resolveNamespaceCapabilities } from \"../capabilities.js\";\nimport { resolveCorpusNamespaceRoots, type CorpusNamespaceRoot } from \"../corpus-watermark.js\";\nimport { normalizeNamespaceIdentity } from \"../namespaces/identity.js\";\nimport type { ExtractionRootStats, ExtractionWatermarkRead } from \"../extraction-liveness.js\";\nimport type { MetaState, PluginConfig } from \"../types.js\";\n\nexport interface ExtractionWatermarkMeta extends Pick<MetaState, \"lastExtractionAt\"> {\n extractionCount?: number;\n lastConsolidationAt?: string | null;\n}\n\nexport interface ExtractionWatermarkStorage {\n readonly dir: string;\n loadMeta(): Promise<ExtractionWatermarkMeta>;\n}\n\nexport interface ExtractionNamespaceRootCache {\n getResolvedRootsStatus(compute: () => Promise<CorpusNamespaceRoot[]>): {\n roots: CorpusNamespaceRoot[] | undefined;\n refreshError: unknown;\n };\n}\n\nexport interface AggregateExtractionWatermarkOptions {\n config: PluginConfig;\n rootStorage: ExtractionWatermarkStorage;\n rootMeta?: ExtractionWatermarkMeta;\n storageForNamespace(\n namespace: string,\n rootDir: string\n ): ExtractionWatermarkStorage | Promise<ExtractionWatermarkStorage>;\n rootsCache?: ExtractionNamespaceRootCache;\n caps?: TokenCapabilities;\n}\n\nfunction readFailure(reason: string): ExtractionWatermarkRead {\n return {\n lastExtractionAt: null,\n readFailed: true,\n readError: reason,\n };\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nconst ISO_TIMESTAMP_PATTERN =\n /^([+-]?\\d{4,6})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2}))?(?:\\.(\\d+))?(Z|[+-]\\d{2}:?\\d{2})$/i;\n\nfunction validatedTimestampMs(value: string): number | null {\n const match = ISO_TIMESTAMP_PATTERN.exec(value);\n const parsed = Date.parse(value);\n if (!match || !Number.isFinite(parsed)) return null;\n const [, yearText, monthText, dayText, hourText, minuteText, secondText, fraction, zone] = match;\n const normalizedZone = zone.toUpperCase();\n const offsetMinuteText = normalizedZone.includes(\":\")\n ? normalizedZone.slice(4, 6)\n : normalizedZone.slice(3, 5);\n const year = Number(yearText);\n const month = Number(monthText);\n const day = Number(dayText);\n const hour = Number(hourText);\n const minute = Number(minuteText);\n const second = secondText !== undefined ? Number(secondText) : 0;\n const leapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n const daysInMonth = [31, leapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (month < 1 || month > 12 || day < 1 || day > daysInMonth[month - 1]!) return null;\n if (hour === 24) {\n const isEndOfDay = minute === 0 && second === 0 && /^0*$/.test(fraction ?? \"\");\n return isEndOfDay ? parsed : null;\n }\n const zoneSign = normalizedZone === \"Z\" || normalizedZone[0] === \"+\" ? 1 : -1;\n const offsetMinutes =\n normalizedZone === \"Z\"\n ? 0\n : zoneSign * (Number(normalizedZone.slice(1, 3)) * 60 + Number(offsetMinuteText));\n const representedCalendar = new Date(parsed + offsetMinutes * 60_000);\n const millisecond = Number((fraction ?? \"\").padEnd(3, \"0\").slice(0, 3));\n const expected = [\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond,\n ];\n const actual = [\n representedCalendar.getUTCFullYear(),\n representedCalendar.getUTCMonth() + 1,\n representedCalendar.getUTCDate(),\n representedCalendar.getUTCHours(),\n representedCalendar.getUTCMinutes(),\n representedCalendar.getUTCSeconds(),\n representedCalendar.getUTCMilliseconds(),\n ];\n return actual.every((part, index) => part === expected[index]) ? parsed : null;\n}\n\nfunction mergeRootStats(\n current: ExtractionRootStats | undefined,\n candidate: ExtractionRootStats | undefined,\n): ExtractionRootStats | undefined {\n if (!current && !candidate) return undefined;\n const currentCount = current?.extractionCount;\n const candidateCount = candidate?.extractionCount;\n const extractionCount =\n currentCount === undefined && candidateCount === undefined\n ? undefined\n : (currentCount ?? 0) + (candidateCount ?? 0);\n const currentConsolidation = current?.lastConsolidationAt;\n const candidateConsolidation = candidate?.lastConsolidationAt;\n const hasConsolidation =\n currentConsolidation !== undefined || candidateConsolidation !== undefined;\n return {\n ...(extractionCount === undefined ? {} : { extractionCount }),\n ...(hasConsolidation\n ? {\n lastConsolidationAt: newerWatermark(\n currentConsolidation ?? null,\n candidateConsolidation ?? null,\n ),\n }\n : {}),\n };\n}\n\nfunction watermarkFromMeta(meta: ExtractionWatermarkMeta, name: string): ExtractionWatermarkRead {\n if (\n meta.lastExtractionAt !== null &&\n meta.lastExtractionAt !== undefined &&\n validatedTimestampMs(meta.lastExtractionAt) === null\n ) {\n return readFailure(`${name} watermark timestamp invalid`);\n }\n if (\n meta.lastConsolidationAt !== null &&\n meta.lastConsolidationAt !== undefined &&\n validatedTimestampMs(meta.lastConsolidationAt) === null\n ) {\n return readFailure(`${name} consolidation timestamp invalid`);\n }\n const hasRootStats = meta.extractionCount !== undefined || meta.lastConsolidationAt !== undefined;\n return {\n lastExtractionAt: meta.lastExtractionAt ?? null,\n readFailed: false,\n ...(hasRootStats\n ? {\n rootStats: {\n extractionCount: meta.extractionCount,\n lastConsolidationAt: meta.lastConsolidationAt,\n },\n }\n : {}),\n };\n}\n\nasync function readWatermark(storage: ExtractionWatermarkStorage, name: string): Promise<ExtractionWatermarkRead> {\n try {\n return watermarkFromMeta(await storage.loadMeta(), name);\n } catch (error) {\n return readFailure(`${name} watermark unreadable: ${errorMessage(error)}`);\n }\n}\n\nasync function resolveRoots(\n options: AggregateExtractionWatermarkOptions\n): Promise<CorpusNamespaceRoot[] | ExtractionWatermarkRead> {\n const compute = () =>\n resolveCorpusNamespaceRoots({\n config: options.config,\n propagateDiscoveryErrors: true,\n });\n if (options.rootsCache) {\n const { roots, refreshError } = options.rootsCache.getResolvedRootsStatus(compute);\n if (refreshError !== undefined) {\n return readFailure(`namespace watermark enumeration failed: ${errorMessage(refreshError)}`);\n }\n return roots ?? { lastExtractionAt: null, readFailed: false, pending: true };\n }\n try {\n return await compute();\n } catch (error) {\n return readFailure(`namespace watermark enumeration failed: ${errorMessage(error)}`);\n }\n}\n\nfunction isReadFailure(value: CorpusNamespaceRoot[] | ExtractionWatermarkRead): value is ExtractionWatermarkRead {\n return !Array.isArray(value);\n}\n\nfunction newerWatermark(current: string | null, candidate: string | null): string | null {\n if (candidate === null) return current;\n const candidateMs = validatedTimestampMs(candidate);\n if (candidateMs === null) return current;\n if (current === null) return candidate;\n const currentMs = validatedTimestampMs(current);\n return currentMs === null || candidateMs > currentMs ? candidate : current;\n}\n\nexport async function readAggregateExtractionWatermark(\n options: AggregateExtractionWatermarkOptions\n): Promise<ExtractionWatermarkRead> {\n if (!resolveNamespaceCapabilities(options.config).namespaces) {\n return options.rootMeta\n ? watermarkFromMeta(options.rootMeta, \"root store\")\n : readWatermark(options.rootStorage, \"root store\");\n }\n\n const resolved = await resolveRoots(options);\n if (isReadFailure(resolved)) return resolved;\n\n const rootDir = path.resolve(options.rootStorage.dir);\n const seenDirs = new Set<string>([rootDir]);\n const targets: CorpusNamespaceRoot[] = [];\n for (const root of resolved) {\n if (\n options.caps &&\n !root.namespaces.some((ns) =>\n capabilityAllowsNamespace(options.caps, normalizeNamespaceIdentity(ns)),\n )\n ) {\n continue;\n }\n const resolvedDir = path.resolve(root.rootDir);\n if (seenDirs.has(resolvedDir)) continue;\n seenDirs.add(resolvedDir);\n targets.push(root);\n }\n\n const defaultNamespace = normalizeNamespaceIdentity(options.config.defaultNamespace);\n const hasMigratedDefault = resolved.some(\n (root) =>\n path.resolve(root.rootDir) !== rootDir &&\n root.namespaces.some((namespace) => normalizeNamespaceIdentity(namespace) === defaultNamespace),\n );\n const canAccessRoot =\n !hasMigratedDefault &&\n (!options.caps || capabilityAllowsNamespace(options.caps, defaultNamespace));\n let rootRead: ExtractionWatermarkRead = { lastExtractionAt: null, readFailed: false };\n if (canAccessRoot) {\n rootRead = options.rootMeta\n ? watermarkFromMeta(options.rootMeta, \"root store\")\n : await readWatermark(options.rootStorage, \"root store\");\n if (rootRead.readFailed) return rootRead;\n }\n let lastExtractionAt = rootRead.lastExtractionAt;\n let rootStats = rootRead.rootStats;\n\n const reads = await Promise.all(\n targets.map(async (target) => {\n try {\n const storage = await options.storageForNamespace(target.namespace, target.rootDir);\n return await readWatermark(storage, \"namespace\");\n } catch (error) {\n return readFailure(`namespace watermark storage unavailable: ${errorMessage(error)}`);\n }\n })\n );\n\n for (const read of reads) {\n if (read.readFailed) {\n return readFailure(read.readError ?? \"namespace watermark unreadable\");\n }\n lastExtractionAt = newerWatermark(lastExtractionAt, read.lastExtractionAt);\n rootStats = mergeRootStats(rootStats, read.rootStats);\n }\n return {\n lastExtractionAt,\n readFailed: false,\n ...(rootStats ? { rootStats } : {}),\n };\n}\n"],"mappings":"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","names":[]}