@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
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  judgeContradictionPairs,
6
6
  resolveScanStorage
7
- } from "./chunk-RMXS4I66.js";
7
+ } from "./chunk-TVDJEUV5.js";
8
8
  import {
9
9
  CONTRADICTION_VERBS,
10
10
  PREFERENCE_DRIFT_VERBS,
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-CTVWELNK.js";
16
16
  import {
17
17
  composeMemoryEnvelope
18
- } from "./chunk-QEYTRFR3.js";
18
+ } from "./chunk-X26YOFGS.js";
19
19
  import {
20
20
  readJsonFile,
21
21
  writeJsonFileAtomic
@@ -878,4 +878,4 @@ export {
878
878
  isValidResolutionVerb,
879
879
  executeResolution
880
880
  };
881
- //# sourceMappingURL=chunk-IQWUACVG.js.map
881
+ //# sourceMappingURL=chunk-UHMHJX5G.js.map
@@ -1,15 +1,24 @@
1
+ import {
2
+ applyWorkExtractionBoundary
3
+ } from "./chunk-EI6V5UXY.js";
1
4
  import {
2
5
  applyGroundingWithConnector,
3
6
  headerConnector,
4
7
  renderExtractionConversation,
5
8
  resolveSourceConnector
6
- } from "./chunk-7HTUYFR3.js";
9
+ } from "./chunk-LLPMMMWG.js";
7
10
  import {
8
11
  normalizeReasoningTrace
9
12
  } from "./chunk-54V4BZWP.js";
10
13
  import {
11
14
  shouldRunProactivePass
12
15
  } from "./chunk-2CGLBUW3.js";
16
+ import {
17
+ ProfilingCollector
18
+ } from "./chunk-DOWACHYO.js";
19
+ import {
20
+ ModelRegistry
21
+ } from "./chunk-QNUNAXBE.js";
13
22
  import {
14
23
  extractionProviderJsonSchema,
15
24
  extractionProviderResponseFormat
@@ -39,7 +48,7 @@ import {
39
48
  } from "./chunk-BVRZSI7Q.js";
40
49
  import {
41
50
  attachExtractionProvenance
42
- } from "./chunk-O55EKIEC.js";
51
+ } from "./chunk-D3ZKHLN2.js";
43
52
  import {
44
53
  LocalLlmRejectedError,
45
54
  classifyExtractionThrownError,
@@ -55,6 +64,9 @@ import {
55
64
  formatDaySummaryMemories,
56
65
  loadDaySummaryPrompt
57
66
  } from "./chunk-7G5NTS7F.js";
67
+ import {
68
+ LocalLlmClient
69
+ } from "./chunk-RQFXZYTF.js";
58
70
  import {
59
71
  CONSOLIDATION_RESPONSE_SCHEMA,
60
72
  CUE_ANCHOR_PROMPT_INSTRUCTION,
@@ -70,36 +82,24 @@ import {
70
82
  import {
71
83
  looksLikeMechanicalTelemetryTranscript
72
84
  } from "./chunk-4RA3C3EV.js";
73
- import {
74
- AMBIENT_CAPTURE_PROMPT_SECTION_COMPACT,
75
- clampAmbientCaptureConfidence
76
- } from "./chunk-QW27DOHG.js";
77
- import {
78
- applyWorkExtractionBoundary
79
- } from "./chunk-EI6V5UXY.js";
80
- import {
81
- ProfilingCollector
82
- } from "./chunk-DOWACHYO.js";
83
- import {
84
- ModelRegistry
85
- } from "./chunk-QNUNAXBE.js";
86
- import {
87
- LocalLlmClient
88
- } from "./chunk-IPT2OY4B.js";
89
85
  import {
90
86
  normalizeProcedureSteps
91
87
  } from "./chunk-QDW3E4RD.js";
92
88
  import {
93
89
  FallbackLlmClient,
94
90
  gatewayTaskChainOptions
95
- } from "./chunk-ZU5JDLOH.js";
91
+ } from "./chunk-MMRTPH3J.js";
96
92
  import {
97
93
  buildChatCompletionTokenLimit,
98
94
  shouldAssumeOpenAiChatCompletions
99
95
  } from "./chunk-L2EXJQJP.js";
100
96
  import {
101
97
  fallbackLlmRuntimeContextFromConfig
102
- } from "./chunk-ZU3NJNO7.js";
98
+ } from "./chunk-QSF5SJAM.js";
99
+ import {
100
+ AMBIENT_CAPTURE_PROMPT_SECTION_COMPACT,
101
+ clampAmbientCaptureConfidence
102
+ } from "./chunk-QW27DOHG.js";
103
103
  import {
104
104
  extractJsonCandidates
105
105
  } from "./chunk-YBA52OKG.js";
@@ -111,7 +111,7 @@ import {
111
111
  } from "./chunk-C5LWPYS3.js";
112
112
  import {
113
113
  isMemoryCategory
114
- } from "./chunk-QEYTRFR3.js";
114
+ } from "./chunk-X26YOFGS.js";
115
115
  import {
116
116
  sanitizeMemoryContent
117
117
  } from "./chunk-5GKPFL3S.js";
@@ -2443,4 +2443,4 @@ export {
2443
2443
  shouldEnableLocalExtractionThinking,
2444
2444
  ExtractionEngine
2445
2445
  };
2446
- //# sourceMappingURL=chunk-YODUDA6R.js.map
2446
+ //# sourceMappingURL=chunk-UN4RVUG2.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  RECALL_DISCLOSURE_LEVELS,
3
3
  isRecallDisclosure
4
- } from "./chunk-V4XE263I.js";
4
+ } from "./chunk-43AA5FVD.js";
5
5
 
6
6
  // src/recall-navigate-disclosure.ts
7
7
  function disclosureRank(level) {
@@ -27,4 +27,4 @@ export {
27
27
  disclosureRank,
28
28
  planDisclosureStep
29
29
  };
30
- //# sourceMappingURL=chunk-KZSGBWOJ.js.map
30
+ //# sourceMappingURL=chunk-V2KGDESV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getConfiguredNamespaces
3
- } from "./chunk-I6QGI65T.js";
3
+ } from "./chunk-QRMG4HK4.js";
4
4
  import {
5
5
  drainPendingLifecycleForSyncOrThrow,
6
6
  drainPendingLifecycleLedgerForSync
@@ -181,4 +181,4 @@ export {
181
181
  offlineSyncStorageForSnapshot,
182
182
  drainPendingLifecycleForOfflineSync
183
183
  };
184
- //# sourceMappingURL=chunk-E6Z4FBX6.js.map
184
+ //# sourceMappingURL=chunk-V2QSNFCT.js.map
@@ -1,10 +1,19 @@
1
1
  import {
2
- isValidConnectorId
3
- } from "./chunk-GGRRF4PZ.js";
2
+ ConnectorStateLockLostError,
3
+ isValidConnectorId,
4
+ readConnectorState,
5
+ withConnectorStateLock,
6
+ writeConnectorState
7
+ } from "./chunk-MDPT6QFK.js";
4
8
  import {
5
9
  isTransientHttpError
6
10
  } from "./chunk-C7SRUWBW.js";
7
11
  import {
12
+ runConnectorPollOnce
13
+ } from "./chunk-OKTXM5H4.js";
14
+ import {
15
+ abortError,
16
+ raceAbort,
8
17
  throwIfAborted
9
18
  } from "./chunk-R2MBW2S4.js";
10
19
 
@@ -118,9 +127,28 @@ function validateGoogleDriveConfig(raw) {
118
127
  );
119
128
  }
120
129
  const r = raw;
121
- const clientId = requireNonEmptyString(r.clientId, "clientId");
122
- const clientSecret = requireNonEmptyString(r[CLIENT_SECRET_FIELD], CLIENT_SECRET_FIELD);
123
- const refreshToken = requireNonEmptyString(r[REFRESH_TOKEN_FIELD], REFRESH_TOKEN_FIELD);
130
+ const credentialKeys = ["clientId", CLIENT_SECRET_FIELD, REFRESH_TOKEN_FIELD];
131
+ const credentials = {
132
+ clientId: "",
133
+ clientSecret: "",
134
+ refreshToken: ""
135
+ };
136
+ for (const key of credentialKeys) {
137
+ const value = r[key];
138
+ if (Object.prototype.toString.call(value) === "[object Object]") {
139
+ const source = value.source;
140
+ if (Object.prototype.toString.call(source) === "[object String]") {
141
+ credentials[key] = value;
142
+ } else {
143
+ credentials[key] = requireNonEmptyString(value, key);
144
+ }
145
+ } else {
146
+ credentials[key] = requireNonEmptyString(value, key);
147
+ }
148
+ }
149
+ const clientId = credentials.clientId;
150
+ const clientSecret = credentials.clientSecret;
151
+ const refreshToken = credentials.refreshToken;
124
152
  let pollIntervalMs;
125
153
  if (r.pollIntervalMs === void 0) {
126
154
  pollIntervalMs = DEFAULT_POLL_INTERVAL_MS;
@@ -190,6 +218,54 @@ function requireNonEmptyString(value, key) {
190
218
  }
191
219
  return trimmed;
192
220
  }
221
+ var SECRET_RESOLVE_DEADLINE_MS = 3e4;
222
+ async function resolveWithinDeadline(ref, key, resolver, abortSignal) {
223
+ throwIfAborted(abortSignal, "googleDrive: sync aborted");
224
+ const deadline = new AbortController();
225
+ const timer = setTimeout(() => deadline.abort(), SECRET_RESOLVE_DEADLINE_MS);
226
+ const signal = abortSignal ? AbortSignal.any([abortSignal, deadline.signal]) : deadline.signal;
227
+ try {
228
+ return await raceAbort(Promise.resolve(resolver(ref)), signal, "googleDrive: secret resolve aborted");
229
+ } catch {
230
+ throwIfAborted(abortSignal, "googleDrive: sync aborted");
231
+ if (deadline.signal.aborted) {
232
+ throw new Error(`googleDrive: ${key} secret reference was not resolved within ${SECRET_RESOLVE_DEADLINE_MS} ms`);
233
+ }
234
+ throw new Error(`googleDrive: ${key} secret reference could not be resolved`);
235
+ } finally {
236
+ clearTimeout(timer);
237
+ }
238
+ }
239
+ async function resolveCredential(value, key, resolver, abortSignal) {
240
+ if (Object.prototype.toString.call(value) !== "[object Object]") {
241
+ return value;
242
+ }
243
+ const ref = value;
244
+ if (resolver == null) {
245
+ throw new Error(`googleDrive: ${key} is a secret reference but no resolver is configured`);
246
+ }
247
+ const resolved = await resolveWithinDeadline(ref, key, resolver, abortSignal);
248
+ if (resolved === void 0) {
249
+ throw new Error(`googleDrive: ${key} secret reference resolved to no value (the host secret resolver may be unavailable)`);
250
+ }
251
+ if (Object.prototype.toString.call(resolved) !== "[object String]") {
252
+ throw new Error(`googleDrive: ${key} secret reference resolved to a non-string value`);
253
+ }
254
+ const text = resolved.trim();
255
+ if (text.length === 0) {
256
+ throw new Error(`googleDrive: ${key} secret reference resolved to an empty value`);
257
+ }
258
+ return text;
259
+ }
260
+ async function resolveGoogleDriveConfig(stored, resolver, abortSignal) {
261
+ return {
262
+ clientId: await resolveCredential(stored.clientId, "clientId", resolver, abortSignal),
263
+ [CLIENT_SECRET_FIELD]: await resolveCredential(stored[CLIENT_SECRET_FIELD], CLIENT_SECRET_FIELD, resolver, abortSignal),
264
+ [REFRESH_TOKEN_FIELD]: await resolveCredential(stored[REFRESH_TOKEN_FIELD], REFRESH_TOKEN_FIELD, resolver, abortSignal),
265
+ pollIntervalMs: stored.pollIntervalMs,
266
+ folderIds: stored.folderIds
267
+ };
268
+ }
193
269
  function decideChange(change, folderScope) {
194
270
  if (change.removed === true) return { kind: "skip-removed" };
195
271
  const file = change.file;
@@ -239,14 +315,21 @@ function createGoogleDriveConnector(options = {}) {
239
315
  },
240
316
  persistConfig(validated) {
241
317
  const config = validateGoogleDriveConfig(validated);
242
- return Object.freeze({
243
- clientId: config.clientId,
318
+ const persisted = {
244
319
  pollIntervalMs: config.pollIntervalMs,
245
320
  folderIds: config.folderIds
246
- });
321
+ };
322
+ if (Object.prototype.toString.call(config.clientId) === "[object String]") {
323
+ persisted.clientId = config.clientId;
324
+ }
325
+ return Object.freeze(persisted);
247
326
  },
248
327
  async syncIncremental(args) {
249
- const config = validateGoogleDriveConfig(args.config);
328
+ const config = await resolveGoogleDriveConfig(
329
+ validateGoogleDriveConfig(args.config),
330
+ args.resolveSecretRef,
331
+ args.abortSignal
332
+ );
250
333
  throwIfAborted(args.abortSignal, "googleDrive: sync aborted");
251
334
  const client = await clientFactory(config);
252
335
  throwIfAborted(args.abortSignal, "googleDrive: sync aborted");
@@ -2015,6 +2098,305 @@ function buildTitle(repo, kind, comment) {
2015
2098
  return `${kindLabel} in ${repo} (#${comment.id})`;
2016
2099
  }
2017
2100
 
2101
+ // src/live-connectors-runner.ts
2102
+ function builtInLiveConnectorDefinitions(config) {
2103
+ return [
2104
+ {
2105
+ id: GOOGLE_DRIVE_CONNECTOR_ID,
2106
+ displayName: "Google Drive",
2107
+ enabled: config.googleDrive.enabled,
2108
+ pollIntervalMs: config.googleDrive.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS,
2109
+ rawConfig: config.googleDrive,
2110
+ createConnector: createGoogleDriveConnector,
2111
+ validateConfig: (raw) => validateGoogleDriveConfig(raw)
2112
+ },
2113
+ {
2114
+ id: NOTION_CONNECTOR_ID,
2115
+ displayName: "Notion",
2116
+ enabled: config.notion.enabled,
2117
+ pollIntervalMs: config.notion.pollIntervalMs ?? NOTION_DEFAULT_POLL_INTERVAL_MS,
2118
+ rawConfig: config.notion,
2119
+ createConnector: createNotionConnector,
2120
+ validateConfig: (raw) => validateNotionConfig(raw)
2121
+ },
2122
+ {
2123
+ id: GMAIL_CONNECTOR_ID,
2124
+ displayName: "Gmail",
2125
+ enabled: config.gmail.enabled,
2126
+ pollIntervalMs: config.gmail.pollIntervalMs ?? GMAIL_DEFAULT_POLL_INTERVAL_MS,
2127
+ rawConfig: config.gmail,
2128
+ createConnector: createGmailConnector,
2129
+ validateConfig: (raw) => validateGmailConfig(raw)
2130
+ },
2131
+ {
2132
+ id: GITHUB_CONNECTOR_ID,
2133
+ displayName: "GitHub",
2134
+ enabled: config.github.enabled,
2135
+ pollIntervalMs: config.github.pollIntervalMs ?? GITHUB_DEFAULT_POLL_INTERVAL_MS,
2136
+ rawConfig: config.github,
2137
+ createConnector: createGitHubConnector,
2138
+ validateConfig: (raw) => validateGitHubConfig(raw)
2139
+ }
2140
+ ];
2141
+ }
2142
+ function hasEnabledLiveConnector(config) {
2143
+ return config.googleDrive.enabled || config.notion.enabled || config.gmail.enabled || config.github.enabled;
2144
+ }
2145
+ async function runLiveConnectorsOnce(options) {
2146
+ const ranAt = resolveNow(options.now);
2147
+ const force = options.force === true;
2148
+ const definitions = options.definitions ?? builtInLiveConnectorDefinitions(options.connectors);
2149
+ const results = [];
2150
+ for (const definition of definitions) {
2151
+ const checkAt = resolveNow(options.now);
2152
+ if (!definition.enabled) {
2153
+ results.push(skipResult(definition, null, "disabled"));
2154
+ continue;
2155
+ }
2156
+ let state;
2157
+ try {
2158
+ state = await readConnectorState(options.memoryDir, definition.id);
2159
+ } catch (err) {
2160
+ results.push({
2161
+ id: definition.id,
2162
+ displayName: definition.displayName,
2163
+ enabled: true,
2164
+ ran: false,
2165
+ skippedReason: "state_read_error",
2166
+ docsImported: 0,
2167
+ error: err instanceof Error ? err.message : String(err),
2168
+ lastSyncAt: null,
2169
+ nextDueAt: null
2170
+ });
2171
+ continue;
2172
+ }
2173
+ if (!force && !isConnectorDue(state, definition.pollIntervalMs, checkAt)) {
2174
+ results.push(skipResult(definition, state, "not_due"));
2175
+ continue;
2176
+ }
2177
+ let validatedConfig;
2178
+ try {
2179
+ validatedConfig = definition.validateConfig(definition.rawConfig);
2180
+ } catch (err) {
2181
+ const message = err instanceof Error ? err.message : String(err);
2182
+ let stateWriteError;
2183
+ let writtenErrorState;
2184
+ const errorAt = resolveNow(options.now);
2185
+ try {
2186
+ writtenErrorState = await writeConnectorErrorState({
2187
+ memoryDir: options.memoryDir,
2188
+ connectorId: definition.id,
2189
+ state,
2190
+ error: message,
2191
+ now: errorAt
2192
+ });
2193
+ } catch (writeErr) {
2194
+ stateWriteError = writeErr instanceof Error ? writeErr.message : String(writeErr);
2195
+ }
2196
+ const reportedState = writtenErrorState ?? state;
2197
+ results.push({
2198
+ id: definition.id,
2199
+ displayName: definition.displayName,
2200
+ enabled: true,
2201
+ ran: false,
2202
+ skippedReason: "invalid_config",
2203
+ docsImported: 0,
2204
+ error: message,
2205
+ ...stateWriteError !== void 0 ? { stateWriteError } : {},
2206
+ lastSyncAt: reportedState?.lastSyncAt ?? null,
2207
+ nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs)
2208
+ });
2209
+ continue;
2210
+ }
2211
+ let runResult;
2212
+ let lastStateWrittenAt;
2213
+ try {
2214
+ const connector = definition.createConnector();
2215
+ runResult = await withConnectorStateLock(options.memoryDir, definition.id, async (lockSignal) => {
2216
+ const pollAbortSignal = combineAbortSignals(options.abortSignal, lockSignal);
2217
+ const lockedState = await readConnectorState(options.memoryDir, definition.id);
2218
+ if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {
2219
+ return { docsImported: 0 };
2220
+ }
2221
+ state = lockedState;
2222
+ return runConnectorPollOnce({
2223
+ connectorId: definition.id,
2224
+ priorState: lockedState,
2225
+ syncFn: (cursor) => connector.syncIncremental({
2226
+ cursor,
2227
+ config: validatedConfig,
2228
+ abortSignal: pollAbortSignal,
2229
+ resolveSecretRef: options.resolveSecretRef
2230
+ }),
2231
+ ingestFn: async (docs) => {
2232
+ throwIfAborted2(pollAbortSignal);
2233
+ await options.ingestDocuments(docs);
2234
+ throwIfAborted2(pollAbortSignal);
2235
+ },
2236
+ writeCursorFn: (writeState) => {
2237
+ throwIfAborted2(pollAbortSignal);
2238
+ const writeAt = resolveNow(options.now);
2239
+ return writeConnectorState(options.memoryDir, definition.id, {
2240
+ id: definition.id,
2241
+ cursor: writeState.cursor,
2242
+ lastSyncAt: writeAt.toISOString(),
2243
+ lastSyncStatus: writeState.lastSyncStatus,
2244
+ ...writeState.lastSyncError !== void 0 ? { lastSyncError: writeState.lastSyncError } : {},
2245
+ totalDocsImported: writeState.totalDocsImported
2246
+ }).then(() => {
2247
+ lastStateWrittenAt = writeAt;
2248
+ });
2249
+ }
2250
+ });
2251
+ });
2252
+ if (runResult.docsImported === 0 && runResult.error === void 0 && runResult.stateWriteError === void 0 && lastStateWrittenAt === void 0) {
2253
+ const lockedState = await readConnectorState(options.memoryDir, definition.id);
2254
+ if (!force && !isConnectorDue(lockedState, definition.pollIntervalMs, checkAt)) {
2255
+ results.push(skipResult(definition, lockedState, "not_due"));
2256
+ continue;
2257
+ }
2258
+ }
2259
+ } catch (err) {
2260
+ const message = err instanceof Error ? err.message : String(err);
2261
+ let stateWriteError;
2262
+ let writtenErrorState;
2263
+ const errorAt = resolveNow(options.now);
2264
+ if (!(err instanceof ConnectorStateLockLostError)) {
2265
+ try {
2266
+ writtenErrorState = await writeConnectorErrorState({
2267
+ memoryDir: options.memoryDir,
2268
+ connectorId: definition.id,
2269
+ state,
2270
+ error: message,
2271
+ now: errorAt
2272
+ });
2273
+ } catch (writeErr) {
2274
+ stateWriteError = writeErr instanceof Error ? writeErr.message : String(writeErr);
2275
+ }
2276
+ }
2277
+ const reportedState = writtenErrorState ?? state;
2278
+ results.push({
2279
+ id: definition.id,
2280
+ displayName: definition.displayName,
2281
+ enabled: true,
2282
+ ran: false,
2283
+ skippedReason: "connector_error",
2284
+ docsImported: 0,
2285
+ error: message,
2286
+ ...stateWriteError !== void 0 ? { stateWriteError } : {},
2287
+ lastSyncAt: reportedState?.lastSyncAt ?? null,
2288
+ nextDueAt: nextDueAt(reportedState, definition.pollIntervalMs)
2289
+ });
2290
+ continue;
2291
+ }
2292
+ results.push(
2293
+ runItemFromResult(
2294
+ definition,
2295
+ runResult,
2296
+ state,
2297
+ lastStateWrittenAt ?? resolveNow(options.now)
2298
+ )
2299
+ );
2300
+ }
2301
+ return {
2302
+ ranAt: ranAt.toISOString(),
2303
+ force,
2304
+ totalDocsImported: results.reduce((sum, item) => sum + item.docsImported, 0),
2305
+ ranCount: results.filter((item) => item.ran).length,
2306
+ skippedCount: results.filter((item) => !item.ran).length,
2307
+ errorCount: results.filter(
2308
+ (item) => item.error !== void 0 || item.stateWriteError !== void 0
2309
+ ).length,
2310
+ results
2311
+ };
2312
+ }
2313
+ function resolveNow(now) {
2314
+ return typeof now === "function" ? now() : now ?? /* @__PURE__ */ new Date();
2315
+ }
2316
+ function isConnectorDue(state, pollIntervalMs, now) {
2317
+ if (state?.lastSyncAt === null || state?.lastSyncAt === void 0) return true;
2318
+ const lastMs = Date.parse(state.lastSyncAt);
2319
+ if (!Number.isFinite(lastMs)) return true;
2320
+ return now.getTime() - lastMs >= Math.max(1, Math.floor(pollIntervalMs));
2321
+ }
2322
+ function nextDueAt(state, pollIntervalMs) {
2323
+ if (state?.lastSyncAt === null || state?.lastSyncAt === void 0) return null;
2324
+ const lastMs = Date.parse(state.lastSyncAt);
2325
+ if (!Number.isFinite(lastMs)) return null;
2326
+ return new Date(lastMs + Math.max(1, Math.floor(pollIntervalMs))).toISOString();
2327
+ }
2328
+ function skipResult(definition, state, skippedReason) {
2329
+ return {
2330
+ id: definition.id,
2331
+ displayName: definition.displayName,
2332
+ enabled: definition.enabled,
2333
+ ran: false,
2334
+ skippedReason,
2335
+ docsImported: 0,
2336
+ lastSyncAt: state?.lastSyncAt ?? null,
2337
+ nextDueAt: skippedReason === "not_due" ? nextDueAt(state, definition.pollIntervalMs) : null
2338
+ };
2339
+ }
2340
+ function runItemFromResult(definition, result, priorState, now) {
2341
+ const stateWriteFailed = result.stateWriteError !== void 0;
2342
+ const reportedLastSyncAt = stateWriteFailed ? priorState?.lastSyncAt ?? null : now.toISOString();
2343
+ const reportedNextDueAt = stateWriteFailed ? nextDueAt(priorState, definition.pollIntervalMs) : new Date(
2344
+ now.getTime() + Math.max(1, Math.floor(definition.pollIntervalMs))
2345
+ ).toISOString();
2346
+ return {
2347
+ id: definition.id,
2348
+ displayName: definition.displayName,
2349
+ enabled: definition.enabled,
2350
+ ran: true,
2351
+ docsImported: result.docsImported,
2352
+ ...result.error !== void 0 ? { error: result.error } : {},
2353
+ ...result.stateWriteError !== void 0 ? { stateWriteError: result.stateWriteError } : {},
2354
+ lastSyncAt: reportedLastSyncAt,
2355
+ nextDueAt: reportedNextDueAt
2356
+ };
2357
+ }
2358
+ function combineAbortSignals(...signals) {
2359
+ const activeSignals = signals.filter((signal) => signal !== void 0);
2360
+ if (activeSignals.length === 0) return void 0;
2361
+ if (activeSignals.length === 1) return activeSignals[0];
2362
+ const abortSignalAny = AbortSignal.any;
2363
+ if (abortSignalAny !== void 0) {
2364
+ return abortSignalAny(activeSignals);
2365
+ }
2366
+ const controller = new AbortController();
2367
+ const abort = (signal) => {
2368
+ if (!controller.signal.aborted) {
2369
+ controller.abort(signal.reason);
2370
+ }
2371
+ };
2372
+ for (const signal of activeSignals) {
2373
+ if (signal.aborted) {
2374
+ abort(signal);
2375
+ break;
2376
+ }
2377
+ signal.addEventListener("abort", () => abort(signal), { once: true });
2378
+ }
2379
+ return controller.signal;
2380
+ }
2381
+ function throwIfAborted2(signal) {
2382
+ if (signal?.aborted !== true) return;
2383
+ const reason = signal.reason;
2384
+ if (reason instanceof Error) {
2385
+ throw reason;
2386
+ }
2387
+ throw abortError(reason === void 0 ? "operation aborted" : String(reason));
2388
+ }
2389
+ async function writeConnectorErrorState(options) {
2390
+ return writeConnectorState(options.memoryDir, options.connectorId, {
2391
+ id: options.connectorId,
2392
+ cursor: options.state?.cursor ?? null,
2393
+ lastSyncAt: options.now.toISOString(),
2394
+ lastSyncStatus: "error",
2395
+ lastSyncError: options.error,
2396
+ totalDocsImported: options.state?.totalDocsImported ?? 0
2397
+ });
2398
+ }
2399
+
2018
2400
  export {
2019
2401
  LiveConnectorRegistryError,
2020
2402
  LiveConnectorRegistry,
@@ -2030,12 +2412,13 @@ export {
2030
2412
  validateNotionConfig,
2031
2413
  createNotionConnector,
2032
2414
  GMAIL_CONNECTOR_ID,
2033
- GMAIL_DEFAULT_POLL_INTERVAL_MS,
2034
2415
  validateGmailConfig,
2035
2416
  createGmailConnector,
2036
2417
  GITHUB_CONNECTOR_ID,
2037
- GITHUB_DEFAULT_POLL_INTERVAL_MS,
2038
2418
  validateGitHubConfig,
2039
- createGitHubConnector
2419
+ createGitHubConnector,
2420
+ builtInLiveConnectorDefinitions,
2421
+ hasEnabledLiveConnector,
2422
+ runLiveConnectorsOnce
2040
2423
  };
2041
- //# sourceMappingURL=chunk-BCCG7VWM.js.map
2424
+ //# sourceMappingURL=chunk-V65H7MI6.js.map