@remnic/core 10.0.92 → 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 (486) hide show
  1. package/dist/access-admin-ops-surface.js +331 -58
  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 +286 -302
  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 +331 -58
  10. package/dist/access-http-briefing.js +331 -59
  11. package/dist/access-http-query.js +331 -60
  12. package/dist/access-http.js +329 -111
  13. package/dist/access-identity-continuity-surface.js +331 -58
  14. package/dist/access-lcm-surface.js +331 -58
  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 +329 -86
  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 +331 -58
  25. package/dist/access-offline-manifest.js +12 -11
  26. package/dist/access-operations-batch.js +329 -63
  27. package/dist/access-operations.js +329 -72
  28. package/dist/access-recall-concurrency.js +331 -58
  29. package/dist/access-recall-diagnostics.js +5 -4
  30. package/dist/access-recall-response.js +331 -58
  31. package/dist/access-recall-surface.js +331 -58
  32. package/dist/access-schema.js +2 -2
  33. package/dist/access-service.js +334 -61
  34. package/dist/access-surface-catalog.js +6 -283
  35. package/dist/access-surface-catalog.js.map +1 -1
  36. package/dist/active-context-transform.js +1 -1
  37. package/dist/active-memory-bridge.js +3 -2
  38. package/dist/active-recall.js +35 -36
  39. package/dist/active-recall.js.map +1 -1
  40. package/dist/activity/journal-extract.d.ts +13 -1
  41. package/dist/activity/journal-extract.d.ts.map +1 -1
  42. package/dist/{auto-sync-3AZW7MXI.js → auto-sync-BO5YZKM6.js} +13 -15
  43. package/dist/{auto-sync-3AZW7MXI.js.map → auto-sync-BO5YZKM6.js.map} +1 -1
  44. package/dist/briefing.js +19 -19
  45. package/dist/buffer.js +16 -16
  46. package/dist/calibration.js +10 -10
  47. package/dist/{capsule-merge-2IIXFXN5.js → capsule-merge-6IDAYTKG.js} +6 -6
  48. package/dist/causal-consolidation.js +22 -22
  49. package/dist/{chunk-ATPWZ4F7.js → chunk-2LMA22UU.js} +5 -5
  50. package/dist/{chunk-RGUUBAT5.js → chunk-2WCLTWV2.js} +3 -3
  51. package/dist/{chunk-BQZEGOZ4.js → chunk-2YODOG2O.js} +2 -2
  52. package/dist/{chunk-WYG5UNDY.js → chunk-3AUDELZL.js} +2 -2
  53. package/dist/{chunk-N4KAE2NB.js → chunk-3CYOCE6U.js} +3 -3
  54. package/dist/{chunk-MB6ZJDN6.js → chunk-3FBAEPCU.js} +2 -2
  55. package/dist/{chunk-PIITB2YZ.js → chunk-3ZS3NUEI.js} +4 -4
  56. package/dist/{chunk-ANZZLRUX.js → chunk-4IVRQMZW.js} +2 -2
  57. package/dist/{chunk-63E37JCN.js → chunk-4RAJT5L2.js} +4 -4
  58. package/dist/{chunk-45VUHDV2.js → chunk-5CO5G4MN.js} +2 -2
  59. package/dist/{chunk-BRLXOZLM.js → chunk-5YT2IIFX.js} +729 -17
  60. package/dist/chunk-5YT2IIFX.js.map +1 -0
  61. package/dist/{chunk-E4IRW2FG.js → chunk-622V2AZA.js} +233 -40
  62. package/dist/chunk-622V2AZA.js.map +1 -0
  63. package/dist/{chunk-LUJCQQ3L.js → chunk-65HWAQ4F.js} +2 -2
  64. package/dist/{chunk-T67LUYCR.js → chunk-77NTFICT.js} +5 -5
  65. package/dist/chunk-A2WFUMUN.js +86 -0
  66. package/dist/chunk-A2WFUMUN.js.map +1 -0
  67. package/dist/{chunk-UE6RRXMF.js → chunk-A4F7OIC5.js} +2 -2
  68. package/dist/chunk-AHA5VQGP.js +117 -0
  69. package/dist/chunk-AHA5VQGP.js.map +1 -0
  70. package/dist/{chunk-SUSW74WU.js → chunk-ATG2PQ4V.js} +56 -5
  71. package/dist/chunk-ATG2PQ4V.js.map +1 -0
  72. package/dist/{chunk-U6UNF5ZS.js → chunk-B33YWUJV.js} +3 -3
  73. package/dist/{chunk-RRJBDXAQ.js → chunk-B377OKUP.js} +2 -2
  74. package/dist/{chunk-IUKYFTGW.js → chunk-B3DR2JBZ.js} +140 -125
  75. package/dist/chunk-B3DR2JBZ.js.map +1 -0
  76. package/dist/{chunk-ETZLQOUR.js → chunk-BGHCSLE5.js} +2 -2
  77. package/dist/{chunk-YYOMGOHB.js → chunk-BOK6BN5M.js} +2 -2
  78. package/dist/{chunk-OH7QLI6W.js → chunk-BPPUH5JM.js} +5 -5
  79. package/dist/{chunk-4J363OAA.js → chunk-BTI4C4MA.js} +2 -2
  80. package/dist/{chunk-O6ZSWHVR.js → chunk-C2KE5DMD.js} +4 -4
  81. package/dist/{chunk-47F6WWLQ.js → chunk-C73N66PR.js} +2 -2
  82. package/dist/{chunk-E3A7ELSG.js → chunk-CGJYL633.js} +2 -2
  83. package/dist/{chunk-WRT7GJ2D.js → chunk-CIWMTNHW.js} +4 -4
  84. package/dist/{chunk-O55EKIEC.js → chunk-D3ZKHLN2.js} +2 -2
  85. package/dist/{chunk-CD4BCCNP.js → chunk-DJ7WVEWX.js} +2 -2
  86. package/dist/{chunk-PWXPRVLK.js → chunk-EFL24KOI.js} +2 -2
  87. package/dist/{chunk-4CJTQHEG.js → chunk-ESLOLCD4.js} +3 -3
  88. package/dist/{chunk-6F42QONS.js → chunk-ETBVCRVL.js} +4 -4
  89. package/dist/{chunk-VILPVT4S.js → chunk-EZ47HOJ6.js} +4 -4
  90. package/dist/{chunk-EFYN5I7Z.js → chunk-F4QFU5IZ.js} +2 -2
  91. package/dist/{chunk-T6OZW2WR.js → chunk-FA7SLQ5X.js} +7 -1
  92. package/dist/chunk-FA7SLQ5X.js.map +1 -0
  93. package/dist/{chunk-7W3RXOIG.js → chunk-FMKILENU.js} +14 -14
  94. package/dist/{chunk-YLXETSAH.js → chunk-GCZJ7XRI.js} +2 -2
  95. package/dist/{chunk-5HFXGXE5.js → chunk-GQXOBKPL.js} +7 -9
  96. package/dist/{chunk-5HFXGXE5.js.map → chunk-GQXOBKPL.js.map} +1 -1
  97. package/dist/{chunk-UDKWFDV2.js → chunk-HLUHEMN4.js} +27 -3
  98. package/dist/chunk-HLUHEMN4.js.map +1 -0
  99. package/dist/{chunk-QFEDITXM.js → chunk-JNDMIAJ4.js} +2 -2
  100. package/dist/chunk-JTSSSR4L.js +359 -0
  101. package/dist/chunk-JTSSSR4L.js.map +1 -0
  102. package/dist/{chunk-5KBIOI4G.js → chunk-JVBAPAWZ.js} +217 -13
  103. package/dist/chunk-JVBAPAWZ.js.map +1 -0
  104. package/dist/{chunk-E5PPE4VA.js → chunk-K2VRKCPA.js} +2 -2
  105. package/dist/{chunk-MKRYQROF.js → chunk-LGEHAQHK.js} +4 -4
  106. package/dist/{chunk-7HTUYFR3.js → chunk-LLPMMMWG.js} +27 -10
  107. package/dist/chunk-LLPMMMWG.js.map +1 -0
  108. package/dist/{chunk-XYTQJD7F.js → chunk-LMJVP5CM.js} +2 -2
  109. package/dist/{chunk-FQKBJJYB.js → chunk-LPV72KRQ.js} +2 -2
  110. package/dist/{chunk-2LCRG2YV.js → chunk-M2XR6B6V.js} +2 -2
  111. package/dist/{chunk-P4WNBSTW.js → chunk-MH632KPO.js} +2 -2
  112. package/dist/{chunk-EQ4U73UH.js → chunk-MLAMXQAW.js} +14 -2
  113. package/dist/chunk-MLAMXQAW.js.map +1 -0
  114. package/dist/{chunk-ZU5JDLOH.js → chunk-MMRTPH3J.js} +2 -2
  115. package/dist/{chunk-PMJFRDJI.js → chunk-MUX7IL77.js} +2 -2
  116. package/dist/{chunk-HF3BKUVV.js → chunk-NAQ4A5IX.js} +7 -7
  117. package/dist/{chunk-TVIVY7KU.js → chunk-NED7IR7B.js} +4 -4
  118. package/dist/{chunk-6F5MJFXY.js → chunk-NHVAX7MH.js} +2 -2
  119. package/dist/{chunk-TG3R2SID.js → chunk-NMGHGTVR.js} +5 -5
  120. package/dist/{chunk-YCNIGRRF.js → chunk-NS7U4ZYU.js} +13 -117
  121. package/dist/chunk-NS7U4ZYU.js.map +1 -0
  122. package/dist/{chunk-NGHDW6UU.js → chunk-NUQEREIP.js} +2 -2
  123. package/dist/{chunk-5IIQU4JZ.js → chunk-OB72KNMF.js} +4 -4
  124. package/dist/{chunk-JV4S6VDH.js → chunk-OJXJWNFY.js} +2 -2
  125. package/dist/{chunk-QJPJXCS4.js → chunk-P3WRNWWM.js} +157 -4
  126. package/dist/chunk-P3WRNWWM.js.map +1 -0
  127. package/dist/{chunk-E6M225BJ.js → chunk-PC5DRBGD.js} +18 -8
  128. package/dist/chunk-PC5DRBGD.js.map +1 -0
  129. package/dist/{chunk-Z7JIZ42P.js → chunk-PRAUN6PN.js} +3 -3
  130. package/dist/{chunk-RWGRSKN5.js → chunk-PT4DZDJA.js} +2 -2
  131. package/dist/{chunk-7EPY3IQL.js → chunk-PZJQ46DH.js} +2 -2
  132. package/dist/{chunk-MXHMNKWG.js → chunk-QDESY76F.js} +3 -3
  133. package/dist/{chunk-I6QGI65T.js → chunk-QRMG4HK4.js} +3 -3
  134. package/dist/{chunk-ZU3NJNO7.js → chunk-QSF5SJAM.js} +4 -4
  135. package/dist/{chunk-5IYOKDM4.js → chunk-R23JWJD3.js} +5 -5
  136. package/dist/{chunk-RHQLIHMB.js → chunk-R4BBGPI2.js} +218 -218
  137. package/dist/chunk-R4BBGPI2.js.map +1 -0
  138. package/dist/{chunk-7GLJMDEQ.js → chunk-RM2YUFH6.js} +6 -6
  139. package/dist/{chunk-IPT2OY4B.js → chunk-RQFXZYTF.js} +35 -33
  140. package/dist/chunk-RQFXZYTF.js.map +1 -0
  141. package/dist/{chunk-AP6NCP3V.js → chunk-S3S72HRM.js} +8 -6
  142. package/dist/chunk-S3S72HRM.js.map +1 -0
  143. package/dist/{chunk-RIMK327Y.js → chunk-SGQPR5SX.js} +7 -7
  144. package/dist/{chunk-ZGFLIK5H.js → chunk-SPAKBUJY.js} +2 -2
  145. package/dist/{chunk-ER7XANP3.js → chunk-SQ3GEIEL.js} +4 -4
  146. package/dist/{chunk-BLJT6JP2.js → chunk-SVT5IA2H.js} +2 -2
  147. package/dist/{chunk-HVX4LPNY.js → chunk-T4KY6UYF.js} +5 -3
  148. package/dist/{chunk-HVX4LPNY.js.map → chunk-T4KY6UYF.js.map} +1 -1
  149. package/dist/{chunk-GVGAO3WV.js → chunk-TJ4F6H4H.js} +3 -3
  150. package/dist/{chunk-R6HMAIKM.js → chunk-TOSPNM4T.js} +2 -2
  151. package/dist/{chunk-HH5LY6RR.js → chunk-TRQE3RYR.js} +5 -5
  152. package/dist/{chunk-RMXS4I66.js → chunk-TVDJEUV5.js} +2 -2
  153. package/dist/{chunk-PLCYKAWH.js → chunk-TYRWSE4B.js} +2 -2
  154. package/dist/{chunk-B4QYQFGY.js → chunk-UBEKET2V.js} +383 -36
  155. package/dist/chunk-UBEKET2V.js.map +1 -0
  156. package/dist/{chunk-IQWUACVG.js → chunk-UHMHJX5G.js} +3 -3
  157. package/dist/{chunk-YODUDA6R.js → chunk-UN4RVUG2.js} +22 -22
  158. package/dist/{chunk-E6Z4FBX6.js → chunk-V2QSNFCT.js} +2 -2
  159. package/dist/{chunk-NBH6K6G5.js → chunk-V65H7MI6.js} +345 -16
  160. package/dist/chunk-V65H7MI6.js.map +1 -0
  161. package/dist/chunk-W54Z2MOP.js +4500 -0
  162. package/dist/chunk-W54Z2MOP.js.map +1 -0
  163. package/dist/{chunk-E7YZXWIS.js → chunk-WKSQTMU7.js} +2 -2
  164. package/dist/{chunk-RIZ5NUNN.js → chunk-WQ4XKIOX.js} +4 -4
  165. package/dist/{chunk-FSO3G4JJ.js → chunk-WQURALGV.js} +4995 -2747
  166. package/dist/chunk-WQURALGV.js.map +1 -0
  167. package/dist/{chunk-QEYTRFR3.js → chunk-X26YOFGS.js} +2 -2
  168. package/dist/{chunk-ITHZFHST.js → chunk-X2BVB74H.js} +2 -2
  169. package/dist/{chunk-XYKBWTWI.js → chunk-XIYLWEXC.js} +2 -2
  170. package/dist/{chunk-IBJ6U753.js → chunk-XKZBZOKV.js} +4 -4
  171. package/dist/{chunk-65AUYLU3.js → chunk-XPXHQI6N.js} +2 -2
  172. package/dist/{chunk-EXHXJETE.js → chunk-XRDYRWZI.js} +2 -2
  173. package/dist/chunk-XRWWCW4H.js +102 -0
  174. package/dist/chunk-XRWWCW4H.js.map +1 -0
  175. package/dist/chunk-YKJBSMMP.js +67137 -0
  176. package/dist/chunk-YKJBSMMP.js.map +1 -0
  177. package/dist/{chunk-2JSDPUKD.js → chunk-YMFPFXEX.js} +2 -2
  178. package/dist/{chunk-645WOU5I.js → chunk-ZDZJNXL6.js} +4 -4
  179. package/dist/{chunk-6TCXIRP5.js → chunk-ZKE4CO6B.js} +4 -4
  180. package/dist/{chunk-FNXQZGUS.js → chunk-ZSE774RV.js} +2 -2
  181. package/dist/cli.js +302 -184
  182. package/dist/coding/export-okf-codegraph.js +28 -28
  183. package/dist/compounding/engine.js +22 -23
  184. package/dist/config.js +35 -36
  185. package/dist/connectors/codex-materialize-runner.js +19 -19
  186. package/dist/connectors/index.js +20 -20
  187. package/dist/connectors/live/google-drive.d.ts +2 -0
  188. package/dist/connectors/live/google-drive.d.ts.map +1 -1
  189. package/dist/consolidation-provenance-check.js +4 -4
  190. package/dist/consolidation-undo.js +5 -5
  191. package/dist/contradiction/index.js +7 -6
  192. package/dist/{contradiction-scan-P2MHYFVG.js → contradiction-scan-IBPYGQZF.js} +4 -3
  193. package/dist/convergence-refresh.js +21 -21
  194. package/dist/corpus-watermark.js +22 -22
  195. package/dist/deep-recall-http-glue.js +2 -2
  196. package/dist/deep-recall-policy-llm.js +4 -4
  197. package/dist/direct-answer-wiring.js +2 -2
  198. package/dist/embedding-fallback.js +1 -1
  199. package/dist/entity-retrieval.js +20 -20
  200. package/dist/eval-trajectory-store.js +2 -2
  201. package/dist/eval-trajectory.js +2 -2
  202. package/dist/event-order-recall.js +2 -2
  203. package/dist/explicit-capture.d.ts +3 -2
  204. package/dist/explicit-capture.d.ts.map +1 -1
  205. package/dist/explicit-capture.js +530 -6
  206. package/dist/explicit-cue-recall.js +2 -2
  207. package/dist/external-wiki-access.js +2 -283
  208. package/dist/extraction-faithfulness.js +4 -4
  209. package/dist/extraction-judge.js +5 -5
  210. package/dist/extraction-normalization.js +1 -1
  211. package/dist/extraction-quote-grounding.d.ts.map +1 -1
  212. package/dist/extraction-quote-grounding.js +1 -1
  213. package/dist/extraction-source-grounding-rules.js +2 -2
  214. package/dist/extraction-source-grounding.js +3 -3
  215. package/dist/extraction.js +42 -43
  216. package/dist/fallback-llm-codex-subscription.js +2 -2
  217. package/dist/fallback-llm.js +3 -3
  218. package/dist/{first-start-migration-QFI7B5SH.js → first-start-migration-FILJH3RO.js} +6 -5
  219. package/dist/{first-start-migration-QFI7B5SH.js.map → first-start-migration-FILJH3RO.js.map} +1 -1
  220. package/dist/focused-list-recall.js +2 -2
  221. package/dist/harmonic-retrieval.js +19 -19
  222. package/dist/index.js +772 -793
  223. package/dist/lcm/index.js +2 -2
  224. package/dist/live-connectors-runner.js +2 -3
  225. package/dist/local-llm-config.js +2 -2
  226. package/dist/local-llm-helpers.d.ts +4 -0
  227. package/dist/local-llm-helpers.d.ts.map +1 -1
  228. package/dist/local-llm-helpers.js +3 -1
  229. package/dist/local-llm.d.ts +4 -1
  230. package/dist/local-llm.d.ts.map +1 -1
  231. package/dist/local-llm.js +4 -4
  232. package/dist/location/index.js +26 -28
  233. package/dist/maintenance/memory-governance.js +19 -19
  234. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +19 -19
  235. package/dist/maintenance/rebuild-memory-projection-runner.js +21 -21
  236. package/dist/maintenance/rebuild-memory-projection.js +20 -20
  237. package/dist/memory-browse-operations.js +2 -283
  238. package/dist/memory-browse.js +8 -7
  239. package/dist/memory-controller.js +2 -2
  240. package/dist/memory-subject.js +2 -2
  241. package/dist/namespaces/migrate.js +20 -20
  242. package/dist/namespaces/search.js +5 -5
  243. package/dist/namespaces/storage.js +19 -19
  244. package/dist/offline-sync-changeset-generations.js +1 -1
  245. package/dist/offline-sync-embedding-generation.js +1 -1
  246. package/dist/offline-sync-impression-drain.js +6 -6
  247. package/dist/offline-sync-snapshot-stream.js +1 -1
  248. package/dist/offline-sync.js +1 -1
  249. package/dist/operator-doctor-corpus.js +23 -23
  250. package/dist/operator-toolkit.js +57 -60
  251. package/dist/orchestration/backlog-scheduler.js +277 -293
  252. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  253. package/dist/orchestration/buffer-drain-runner.js +277 -293
  254. package/dist/orchestration/extraction-run.d.ts +4 -0
  255. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  256. package/dist/orchestration/fact-dedup-window.d.ts +1 -1
  257. package/dist/orchestration/fact-dedup-window.d.ts.map +1 -1
  258. package/dist/orchestration/maintenance.js +38 -41
  259. package/dist/orchestrator.d.ts +9 -11
  260. package/dist/orchestrator.d.ts.map +1 -1
  261. package/dist/orchestrator.js +289 -306
  262. package/dist/page-versioning.js +3 -3
  263. package/dist/qmd-daemon-session.js +2 -2
  264. package/dist/qmd.js +3 -3
  265. package/dist/recall-explain-renderer.js +1 -1
  266. package/dist/recall-navigation-operations.js +2 -283
  267. package/dist/recall-navigation.js +331 -58
  268. package/dist/recall-planner-llm.js +3 -3
  269. package/dist/recall-state-view-admission.js +6 -6
  270. package/dist/recall-why-service.js +10 -9
  271. package/dist/recall-why.js +4 -3
  272. package/dist/recall-xray-cli.js +2 -2
  273. package/dist/recall-xray-renderer.js +1 -1
  274. package/dist/reconcile/manifest.js +3 -3
  275. package/dist/{resolution-N7H3F2E4.js → resolution-OVVIF7ZY.js} +8 -7
  276. package/dist/response-guidance-recall.js +2 -2
  277. package/dist/resume-bundles.js +39 -40
  278. package/dist/salvage-envelope.js +4 -4
  279. package/dist/search/factory.js +4 -4
  280. package/dist/search/index.js +4 -4
  281. package/dist/semantic-consolidation.js +22 -22
  282. package/dist/semantic-rule-promotion.js +19 -19
  283. package/dist/semantic-rule-verifier.js +19 -19
  284. package/dist/shared-context/manager.js +2 -3
  285. package/dist/source-agent-qualifier.js +31 -32
  286. package/dist/standup/build.js +19 -19
  287. package/dist/storage/content-hash-index.d.ts +10 -0
  288. package/dist/storage/content-hash-index.d.ts.map +1 -1
  289. package/dist/storage.js +18 -18
  290. package/dist/subject-config.js +3 -3
  291. package/dist/summarizer.d.ts +4 -1
  292. package/dist/summarizer.d.ts.map +1 -1
  293. package/dist/summarizer.js +6 -6
  294. package/dist/support-passport/index.js +53 -297
  295. package/dist/targeted-fact-recall.js +2 -2
  296. package/dist/tier-routing.js +3 -2
  297. package/dist/{tier-stats-FQGQSFET.js → tier-stats-FXEUJN73.js} +6 -5
  298. package/dist/{tier-stats-FQGQSFET.js.map → tier-stats-FXEUJN73.js.map} +1 -1
  299. package/dist/transcript.js +2 -2
  300. package/dist/transfer/capsule-import.js +4 -4
  301. package/dist/transfer/export-okf.js +19 -19
  302. package/dist/verified-recall.js +19 -19
  303. package/dist/wearables/memory-gen.d.ts +5 -1
  304. package/dist/wearables/memory-gen.d.ts.map +1 -1
  305. package/dist/wearables/service.d.ts.map +1 -1
  306. package/dist/who-knows-cli.js +20 -20
  307. package/dist/who-knows.js +19 -19
  308. package/dist/write-envelope.js +3 -3
  309. package/package.json +2 -2
  310. package/src/access-boundary.ts +5 -1
  311. package/src/access-category-alias.test.ts +5 -0
  312. package/src/access-mcp-frames.test.ts +60 -5
  313. package/src/access-mcp-frames.ts +72 -18
  314. package/src/access-mcp.test.ts +66 -2
  315. package/src/access-mcp.ts +19 -13
  316. package/src/access-service-coding-write.test.ts +7 -0
  317. package/src/activity/journal-extract-storage.test.ts +31 -0
  318. package/src/activity/journal-extract.test.ts +1 -0
  319. package/src/activity/journal-extract.ts +24 -3
  320. package/src/connectors/live/google-drive.test.ts +39 -0
  321. package/src/connectors/live/google-drive.ts +41 -12
  322. package/src/explicit-capture.test.ts +109 -17
  323. package/src/explicit-capture.ts +90 -37
  324. package/src/extraction-quote-grounding.test.ts +20 -0
  325. package/src/extraction-quote-grounding.ts +21 -11
  326. package/src/fact-dedup-window.test.ts +37 -0
  327. package/src/local-llm-helpers.ts +12 -0
  328. package/src/local-llm-shutdown.test.ts +194 -0
  329. package/src/local-llm.ts +32 -30
  330. package/src/orchestration/extraction-run.ts +12 -3
  331. package/src/orchestration/fact-dedup-window.ts +5 -1
  332. package/src/orchestrator-connector-dedup.test.ts +9 -5
  333. package/src/orchestrator.ts +47 -50
  334. package/src/storage/content-hash-index.ts +27 -2
  335. package/src/storage-fact-hash-publish-failure.test.ts +87 -0
  336. package/src/summarizer-shutdown.test.ts +195 -0
  337. package/src/summarizer.ts +15 -2
  338. package/src/wearables/memory-gen.test.ts +20 -0
  339. package/src/wearables/memory-gen.ts +14 -7
  340. package/src/wearables/service.ts +14 -1
  341. package/src/wearables/storage-io.test.ts +25 -0
  342. package/dist/chunk-2FGLEF7C.js +0 -61
  343. package/dist/chunk-2FGLEF7C.js.map +0 -1
  344. package/dist/chunk-3RLK65ZK.js +0 -203
  345. package/dist/chunk-3RLK65ZK.js.map +0 -1
  346. package/dist/chunk-4WR2OD7K.js +0 -43
  347. package/dist/chunk-4WR2OD7K.js.map +0 -1
  348. package/dist/chunk-5KBIOI4G.js.map +0 -1
  349. package/dist/chunk-5M5M22GW.js +0 -346
  350. package/dist/chunk-5M5M22GW.js.map +0 -1
  351. package/dist/chunk-7HTUYFR3.js.map +0 -1
  352. package/dist/chunk-AP6NCP3V.js.map +0 -1
  353. package/dist/chunk-B4QYQFGY.js.map +0 -1
  354. package/dist/chunk-BJRTMNCB.js +0 -1919
  355. package/dist/chunk-BJRTMNCB.js.map +0 -1
  356. package/dist/chunk-BRLXOZLM.js.map +0 -1
  357. package/dist/chunk-BSACVS6R.js +0 -621
  358. package/dist/chunk-BSACVS6R.js.map +0 -1
  359. package/dist/chunk-DKAA2IHQ.js +0 -3644
  360. package/dist/chunk-DKAA2IHQ.js.map +0 -1
  361. package/dist/chunk-E4IRW2FG.js.map +0 -1
  362. package/dist/chunk-E6M225BJ.js.map +0 -1
  363. package/dist/chunk-EQ4U73UH.js.map +0 -1
  364. package/dist/chunk-ETSJD5IV.js +0 -361
  365. package/dist/chunk-ETSJD5IV.js.map +0 -1
  366. package/dist/chunk-F55YQP7N.js +0 -336
  367. package/dist/chunk-F55YQP7N.js.map +0 -1
  368. package/dist/chunk-FHGWKODN.js +0 -2300
  369. package/dist/chunk-FHGWKODN.js.map +0 -1
  370. package/dist/chunk-FLRP63GU.js +0 -32219
  371. package/dist/chunk-FLRP63GU.js.map +0 -1
  372. package/dist/chunk-FSO3G4JJ.js.map +0 -1
  373. package/dist/chunk-ID6JGIMD.js +0 -25
  374. package/dist/chunk-ID6JGIMD.js.map +0 -1
  375. package/dist/chunk-IGLJNHOX.js +0 -62
  376. package/dist/chunk-IGLJNHOX.js.map +0 -1
  377. package/dist/chunk-IPT2OY4B.js.map +0 -1
  378. package/dist/chunk-IUKYFTGW.js.map +0 -1
  379. package/dist/chunk-NBH6K6G5.js.map +0 -1
  380. package/dist/chunk-NTRUKAAE.js +0 -223
  381. package/dist/chunk-NTRUKAAE.js.map +0 -1
  382. package/dist/chunk-OGXXGHW6.js +0 -223
  383. package/dist/chunk-OGXXGHW6.js.map +0 -1
  384. package/dist/chunk-PPCLZ4JU.js +0 -28
  385. package/dist/chunk-PPCLZ4JU.js.map +0 -1
  386. package/dist/chunk-QJPJXCS4.js.map +0 -1
  387. package/dist/chunk-R2LBF4HH.js +0 -729
  388. package/dist/chunk-R2LBF4HH.js.map +0 -1
  389. package/dist/chunk-RHQLIHMB.js.map +0 -1
  390. package/dist/chunk-RRTVGD3J.js +0 -792
  391. package/dist/chunk-RRTVGD3J.js.map +0 -1
  392. package/dist/chunk-SUSW74WU.js.map +0 -1
  393. package/dist/chunk-T6OZW2WR.js.map +0 -1
  394. package/dist/chunk-UDKWFDV2.js.map +0 -1
  395. package/dist/chunk-V7IZKJI3.js +0 -22
  396. package/dist/chunk-V7IZKJI3.js.map +0 -1
  397. package/dist/chunk-X562NQFA.js +0 -10144
  398. package/dist/chunk-X562NQFA.js.map +0 -1
  399. package/dist/chunk-XDSCJOH7.js +0 -3991
  400. package/dist/chunk-XDSCJOH7.js.map +0 -1
  401. package/dist/chunk-YCNIGRRF.js.map +0 -1
  402. package/dist/chunk-ZTTCDQ4I.js +0 -18796
  403. package/dist/chunk-ZTTCDQ4I.js.map +0 -1
  404. /package/dist/{capsule-merge-2IIXFXN5.js.map → capsule-merge-6IDAYTKG.js.map} +0 -0
  405. /package/dist/{chunk-ATPWZ4F7.js.map → chunk-2LMA22UU.js.map} +0 -0
  406. /package/dist/{chunk-RGUUBAT5.js.map → chunk-2WCLTWV2.js.map} +0 -0
  407. /package/dist/{chunk-BQZEGOZ4.js.map → chunk-2YODOG2O.js.map} +0 -0
  408. /package/dist/{chunk-WYG5UNDY.js.map → chunk-3AUDELZL.js.map} +0 -0
  409. /package/dist/{chunk-N4KAE2NB.js.map → chunk-3CYOCE6U.js.map} +0 -0
  410. /package/dist/{chunk-MB6ZJDN6.js.map → chunk-3FBAEPCU.js.map} +0 -0
  411. /package/dist/{chunk-PIITB2YZ.js.map → chunk-3ZS3NUEI.js.map} +0 -0
  412. /package/dist/{chunk-ANZZLRUX.js.map → chunk-4IVRQMZW.js.map} +0 -0
  413. /package/dist/{chunk-63E37JCN.js.map → chunk-4RAJT5L2.js.map} +0 -0
  414. /package/dist/{chunk-45VUHDV2.js.map → chunk-5CO5G4MN.js.map} +0 -0
  415. /package/dist/{chunk-LUJCQQ3L.js.map → chunk-65HWAQ4F.js.map} +0 -0
  416. /package/dist/{chunk-T67LUYCR.js.map → chunk-77NTFICT.js.map} +0 -0
  417. /package/dist/{chunk-UE6RRXMF.js.map → chunk-A4F7OIC5.js.map} +0 -0
  418. /package/dist/{chunk-U6UNF5ZS.js.map → chunk-B33YWUJV.js.map} +0 -0
  419. /package/dist/{chunk-RRJBDXAQ.js.map → chunk-B377OKUP.js.map} +0 -0
  420. /package/dist/{chunk-ETZLQOUR.js.map → chunk-BGHCSLE5.js.map} +0 -0
  421. /package/dist/{chunk-YYOMGOHB.js.map → chunk-BOK6BN5M.js.map} +0 -0
  422. /package/dist/{chunk-OH7QLI6W.js.map → chunk-BPPUH5JM.js.map} +0 -0
  423. /package/dist/{chunk-4J363OAA.js.map → chunk-BTI4C4MA.js.map} +0 -0
  424. /package/dist/{chunk-O6ZSWHVR.js.map → chunk-C2KE5DMD.js.map} +0 -0
  425. /package/dist/{chunk-47F6WWLQ.js.map → chunk-C73N66PR.js.map} +0 -0
  426. /package/dist/{chunk-E3A7ELSG.js.map → chunk-CGJYL633.js.map} +0 -0
  427. /package/dist/{chunk-WRT7GJ2D.js.map → chunk-CIWMTNHW.js.map} +0 -0
  428. /package/dist/{chunk-O55EKIEC.js.map → chunk-D3ZKHLN2.js.map} +0 -0
  429. /package/dist/{chunk-CD4BCCNP.js.map → chunk-DJ7WVEWX.js.map} +0 -0
  430. /package/dist/{chunk-PWXPRVLK.js.map → chunk-EFL24KOI.js.map} +0 -0
  431. /package/dist/{chunk-4CJTQHEG.js.map → chunk-ESLOLCD4.js.map} +0 -0
  432. /package/dist/{chunk-6F42QONS.js.map → chunk-ETBVCRVL.js.map} +0 -0
  433. /package/dist/{chunk-VILPVT4S.js.map → chunk-EZ47HOJ6.js.map} +0 -0
  434. /package/dist/{chunk-EFYN5I7Z.js.map → chunk-F4QFU5IZ.js.map} +0 -0
  435. /package/dist/{chunk-7W3RXOIG.js.map → chunk-FMKILENU.js.map} +0 -0
  436. /package/dist/{chunk-YLXETSAH.js.map → chunk-GCZJ7XRI.js.map} +0 -0
  437. /package/dist/{chunk-QFEDITXM.js.map → chunk-JNDMIAJ4.js.map} +0 -0
  438. /package/dist/{chunk-E5PPE4VA.js.map → chunk-K2VRKCPA.js.map} +0 -0
  439. /package/dist/{chunk-MKRYQROF.js.map → chunk-LGEHAQHK.js.map} +0 -0
  440. /package/dist/{chunk-XYTQJD7F.js.map → chunk-LMJVP5CM.js.map} +0 -0
  441. /package/dist/{chunk-FQKBJJYB.js.map → chunk-LPV72KRQ.js.map} +0 -0
  442. /package/dist/{chunk-2LCRG2YV.js.map → chunk-M2XR6B6V.js.map} +0 -0
  443. /package/dist/{chunk-P4WNBSTW.js.map → chunk-MH632KPO.js.map} +0 -0
  444. /package/dist/{chunk-ZU5JDLOH.js.map → chunk-MMRTPH3J.js.map} +0 -0
  445. /package/dist/{chunk-PMJFRDJI.js.map → chunk-MUX7IL77.js.map} +0 -0
  446. /package/dist/{chunk-HF3BKUVV.js.map → chunk-NAQ4A5IX.js.map} +0 -0
  447. /package/dist/{chunk-TVIVY7KU.js.map → chunk-NED7IR7B.js.map} +0 -0
  448. /package/dist/{chunk-6F5MJFXY.js.map → chunk-NHVAX7MH.js.map} +0 -0
  449. /package/dist/{chunk-TG3R2SID.js.map → chunk-NMGHGTVR.js.map} +0 -0
  450. /package/dist/{chunk-NGHDW6UU.js.map → chunk-NUQEREIP.js.map} +0 -0
  451. /package/dist/{chunk-5IIQU4JZ.js.map → chunk-OB72KNMF.js.map} +0 -0
  452. /package/dist/{chunk-JV4S6VDH.js.map → chunk-OJXJWNFY.js.map} +0 -0
  453. /package/dist/{chunk-Z7JIZ42P.js.map → chunk-PRAUN6PN.js.map} +0 -0
  454. /package/dist/{chunk-RWGRSKN5.js.map → chunk-PT4DZDJA.js.map} +0 -0
  455. /package/dist/{chunk-7EPY3IQL.js.map → chunk-PZJQ46DH.js.map} +0 -0
  456. /package/dist/{chunk-MXHMNKWG.js.map → chunk-QDESY76F.js.map} +0 -0
  457. /package/dist/{chunk-I6QGI65T.js.map → chunk-QRMG4HK4.js.map} +0 -0
  458. /package/dist/{chunk-ZU3NJNO7.js.map → chunk-QSF5SJAM.js.map} +0 -0
  459. /package/dist/{chunk-5IYOKDM4.js.map → chunk-R23JWJD3.js.map} +0 -0
  460. /package/dist/{chunk-7GLJMDEQ.js.map → chunk-RM2YUFH6.js.map} +0 -0
  461. /package/dist/{chunk-RIMK327Y.js.map → chunk-SGQPR5SX.js.map} +0 -0
  462. /package/dist/{chunk-ZGFLIK5H.js.map → chunk-SPAKBUJY.js.map} +0 -0
  463. /package/dist/{chunk-ER7XANP3.js.map → chunk-SQ3GEIEL.js.map} +0 -0
  464. /package/dist/{chunk-BLJT6JP2.js.map → chunk-SVT5IA2H.js.map} +0 -0
  465. /package/dist/{chunk-GVGAO3WV.js.map → chunk-TJ4F6H4H.js.map} +0 -0
  466. /package/dist/{chunk-R6HMAIKM.js.map → chunk-TOSPNM4T.js.map} +0 -0
  467. /package/dist/{chunk-HH5LY6RR.js.map → chunk-TRQE3RYR.js.map} +0 -0
  468. /package/dist/{chunk-RMXS4I66.js.map → chunk-TVDJEUV5.js.map} +0 -0
  469. /package/dist/{chunk-PLCYKAWH.js.map → chunk-TYRWSE4B.js.map} +0 -0
  470. /package/dist/{chunk-IQWUACVG.js.map → chunk-UHMHJX5G.js.map} +0 -0
  471. /package/dist/{chunk-YODUDA6R.js.map → chunk-UN4RVUG2.js.map} +0 -0
  472. /package/dist/{chunk-E6Z4FBX6.js.map → chunk-V2QSNFCT.js.map} +0 -0
  473. /package/dist/{chunk-E7YZXWIS.js.map → chunk-WKSQTMU7.js.map} +0 -0
  474. /package/dist/{chunk-RIZ5NUNN.js.map → chunk-WQ4XKIOX.js.map} +0 -0
  475. /package/dist/{chunk-QEYTRFR3.js.map → chunk-X26YOFGS.js.map} +0 -0
  476. /package/dist/{chunk-ITHZFHST.js.map → chunk-X2BVB74H.js.map} +0 -0
  477. /package/dist/{chunk-XYKBWTWI.js.map → chunk-XIYLWEXC.js.map} +0 -0
  478. /package/dist/{chunk-IBJ6U753.js.map → chunk-XKZBZOKV.js.map} +0 -0
  479. /package/dist/{chunk-65AUYLU3.js.map → chunk-XPXHQI6N.js.map} +0 -0
  480. /package/dist/{chunk-EXHXJETE.js.map → chunk-XRDYRWZI.js.map} +0 -0
  481. /package/dist/{chunk-2JSDPUKD.js.map → chunk-YMFPFXEX.js.map} +0 -0
  482. /package/dist/{chunk-645WOU5I.js.map → chunk-ZDZJNXL6.js.map} +0 -0
  483. /package/dist/{chunk-6TCXIRP5.js.map → chunk-ZKE4CO6B.js.map} +0 -0
  484. /package/dist/{chunk-FNXQZGUS.js.map → chunk-ZSE774RV.js.map} +0 -0
  485. /package/dist/{contradiction-scan-P2MHYFVG.js.map → contradiction-scan-IBPYGQZF.js.map} +0 -0
  486. /package/dist/{resolution-N7H3F2E4.js.map → resolution-OVVIF7ZY.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-R2LBF4HH.js";
6
+ } from "./chunk-5YT2IIFX.js";
7
7
  import {
8
8
  analyzeSessionIntegrity,
9
9
  applySessionRepair,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-CMTINOFS.js";
15
15
  import {
16
16
  summarizeCorpusAndReplica
17
- } from "./chunk-FNXQZGUS.js";
17
+ } from "./chunk-ZSE774RV.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -25,6 +25,16 @@ import {
25
25
  runEvalBenchmarkCiGate,
26
26
  validateEvalBenchmarkPack
27
27
  } from "./chunk-JKMIGCK6.js";
28
+ import {
29
+ resolveCorpusNamespaceRoots
30
+ } from "./chunk-BGHCSLE5.js";
31
+ import {
32
+ listNamespaces
33
+ } from "./chunk-TJ4F6H4H.js";
34
+ import {
35
+ listMemoryGovernanceRuns,
36
+ readMemoryGovernanceRunArtifact
37
+ } from "./chunk-RM2YUFH6.js";
28
38
  import {
29
39
  resolveCuratedIncludeFilesStatePath,
30
40
  resolveNativeKnowledgeStatePath,
@@ -32,38 +42,31 @@ import {
32
42
  } from "./chunk-2DQ2XREU.js";
33
43
  import {
34
44
  runConsolidationProvenanceCheck
35
- } from "./chunk-PLCYKAWH.js";
45
+ } from "./chunk-TYRWSE4B.js";
46
+ import {
47
+ analyzeGraphHealth
48
+ } from "./chunk-M4IEZGCK.js";
36
49
  import {
37
50
  reportBufferSurpriseDistribution
38
51
  } from "./chunk-YBPYIAA5.js";
39
52
  import {
40
53
  parseConfig
41
- } from "./chunk-B4QYQFGY.js";
42
- import {
43
- readAggregateExtractionWatermark
44
- } from "./chunk-3RLK65ZK.js";
45
- import {
46
- listNamespaces
47
- } from "./chunk-GVGAO3WV.js";
48
- import {
49
- listMemoryGovernanceRuns,
50
- readMemoryGovernanceRunArtifact
51
- } from "./chunk-7GLJMDEQ.js";
52
- import {
53
- analyzeGraphHealth
54
- } from "./chunk-M4IEZGCK.js";
54
+ } from "./chunk-UBEKET2V.js";
55
55
  import {
56
56
  summarizeExtractionLiveness
57
57
  } from "./chunk-AWD36R4D.js";
58
58
  import {
59
59
  StorageManager
60
- } from "./chunk-FSO3G4JJ.js";
60
+ } from "./chunk-WQURALGV.js";
61
61
  import {
62
62
  lintWorkspaceFiles
63
63
  } from "./chunk-DM2T26WE.js";
64
64
  import {
65
65
  probeProjectionHealth
66
66
  } from "./chunk-AL3UYZ5N.js";
67
+ import {
68
+ normalizeNamespaceIdentity
69
+ } from "./chunk-VUFL7X3H.js";
67
70
  import {
68
71
  resolveAccessSetupCapabilities,
69
72
  resolveCapabilities,
@@ -75,16 +78,205 @@ import {
75
78
  resolvePresentationCapabilities,
76
79
  resolveQmdCapabilities
77
80
  } from "./chunk-C5LWPYS3.js";
81
+ import {
82
+ capabilityAllowsNamespace
83
+ } from "./chunk-OGBQMY46.js";
78
84
  import {
79
85
  readEnvVar,
80
86
  resolveHomeDir
81
87
  } from "./chunk-P2QRMMVQ.js";
82
88
 
83
89
  // src/operator-toolkit.ts
84
- import path from "path";
90
+ import path2 from "path";
85
91
  import { constants as fsConstants } from "fs";
86
92
  import { access, mkdir, readFile, readdir, stat, unlink, writeFile } from "fs/promises";
87
93
 
94
+ // src/orchestration/extraction-watermark.ts
95
+ import path from "path";
96
+ function readFailure(reason) {
97
+ return {
98
+ lastExtractionAt: null,
99
+ readFailed: true,
100
+ readError: reason
101
+ };
102
+ }
103
+ function errorMessage(error) {
104
+ return error instanceof Error ? error.message : String(error);
105
+ }
106
+ 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;
107
+ function validatedTimestampMs(value) {
108
+ const match = ISO_TIMESTAMP_PATTERN.exec(value);
109
+ const parsed = Date.parse(value);
110
+ if (!match || !Number.isFinite(parsed)) return null;
111
+ const [, yearText, monthText, dayText, hourText, minuteText, secondText, fraction, zone] = match;
112
+ const normalizedZone = zone.toUpperCase();
113
+ const offsetMinuteText = normalizedZone.includes(":") ? normalizedZone.slice(4, 6) : normalizedZone.slice(3, 5);
114
+ const year = Number(yearText);
115
+ const month = Number(monthText);
116
+ const day = Number(dayText);
117
+ const hour = Number(hourText);
118
+ const minute = Number(minuteText);
119
+ const second = secondText !== void 0 ? Number(secondText) : 0;
120
+ const leapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
121
+ const daysInMonth = [31, leapYear ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
122
+ if (month < 1 || month > 12 || day < 1 || day > daysInMonth[month - 1]) return null;
123
+ if (hour === 24) {
124
+ const isEndOfDay = minute === 0 && second === 0 && /^0*$/.test(fraction ?? "");
125
+ return isEndOfDay ? parsed : null;
126
+ }
127
+ const zoneSign = normalizedZone === "Z" || normalizedZone[0] === "+" ? 1 : -1;
128
+ const offsetMinutes = normalizedZone === "Z" ? 0 : zoneSign * (Number(normalizedZone.slice(1, 3)) * 60 + Number(offsetMinuteText));
129
+ const representedCalendar = new Date(parsed + offsetMinutes * 6e4);
130
+ const millisecond = Number((fraction ?? "").padEnd(3, "0").slice(0, 3));
131
+ const expected = [
132
+ year,
133
+ month,
134
+ day,
135
+ hour,
136
+ minute,
137
+ second,
138
+ millisecond
139
+ ];
140
+ const actual = [
141
+ representedCalendar.getUTCFullYear(),
142
+ representedCalendar.getUTCMonth() + 1,
143
+ representedCalendar.getUTCDate(),
144
+ representedCalendar.getUTCHours(),
145
+ representedCalendar.getUTCMinutes(),
146
+ representedCalendar.getUTCSeconds(),
147
+ representedCalendar.getUTCMilliseconds()
148
+ ];
149
+ return actual.every((part, index) => part === expected[index]) ? parsed : null;
150
+ }
151
+ function mergeRootStats(current, candidate) {
152
+ if (!current && !candidate) return void 0;
153
+ const currentCount = current?.extractionCount;
154
+ const candidateCount = candidate?.extractionCount;
155
+ const extractionCount = currentCount === void 0 && candidateCount === void 0 ? void 0 : (currentCount ?? 0) + (candidateCount ?? 0);
156
+ const currentConsolidation = current?.lastConsolidationAt;
157
+ const candidateConsolidation = candidate?.lastConsolidationAt;
158
+ const hasConsolidation = currentConsolidation !== void 0 || candidateConsolidation !== void 0;
159
+ return {
160
+ ...extractionCount === void 0 ? {} : { extractionCount },
161
+ ...hasConsolidation ? {
162
+ lastConsolidationAt: newerWatermark(
163
+ currentConsolidation ?? null,
164
+ candidateConsolidation ?? null
165
+ )
166
+ } : {}
167
+ };
168
+ }
169
+ function watermarkFromMeta(meta, name) {
170
+ if (meta.lastExtractionAt !== null && meta.lastExtractionAt !== void 0 && validatedTimestampMs(meta.lastExtractionAt) === null) {
171
+ return readFailure(`${name} watermark timestamp invalid`);
172
+ }
173
+ if (meta.lastConsolidationAt !== null && meta.lastConsolidationAt !== void 0 && validatedTimestampMs(meta.lastConsolidationAt) === null) {
174
+ return readFailure(`${name} consolidation timestamp invalid`);
175
+ }
176
+ const hasRootStats = meta.extractionCount !== void 0 || meta.lastConsolidationAt !== void 0;
177
+ return {
178
+ lastExtractionAt: meta.lastExtractionAt ?? null,
179
+ readFailed: false,
180
+ ...hasRootStats ? {
181
+ rootStats: {
182
+ extractionCount: meta.extractionCount,
183
+ lastConsolidationAt: meta.lastConsolidationAt
184
+ }
185
+ } : {}
186
+ };
187
+ }
188
+ async function readWatermark(storage, name) {
189
+ try {
190
+ return watermarkFromMeta(await storage.loadMeta(), name);
191
+ } catch (error) {
192
+ return readFailure(`${name} watermark unreadable: ${errorMessage(error)}`);
193
+ }
194
+ }
195
+ async function resolveRoots(options) {
196
+ const compute = () => resolveCorpusNamespaceRoots({
197
+ config: options.config,
198
+ propagateDiscoveryErrors: true
199
+ });
200
+ if (options.rootsCache) {
201
+ const { roots, refreshError } = options.rootsCache.getResolvedRootsStatus(compute);
202
+ if (refreshError !== void 0) {
203
+ return readFailure(`namespace watermark enumeration failed: ${errorMessage(refreshError)}`);
204
+ }
205
+ return roots ?? { lastExtractionAt: null, readFailed: false, pending: true };
206
+ }
207
+ try {
208
+ return await compute();
209
+ } catch (error) {
210
+ return readFailure(`namespace watermark enumeration failed: ${errorMessage(error)}`);
211
+ }
212
+ }
213
+ function isReadFailure(value) {
214
+ return !Array.isArray(value);
215
+ }
216
+ function newerWatermark(current, candidate) {
217
+ if (candidate === null) return current;
218
+ const candidateMs = validatedTimestampMs(candidate);
219
+ if (candidateMs === null) return current;
220
+ if (current === null) return candidate;
221
+ const currentMs = validatedTimestampMs(current);
222
+ return currentMs === null || candidateMs > currentMs ? candidate : current;
223
+ }
224
+ async function readAggregateExtractionWatermark(options) {
225
+ if (!resolveNamespaceCapabilities(options.config).namespaces) {
226
+ return options.rootMeta ? watermarkFromMeta(options.rootMeta, "root store") : readWatermark(options.rootStorage, "root store");
227
+ }
228
+ const resolved = await resolveRoots(options);
229
+ if (isReadFailure(resolved)) return resolved;
230
+ const rootDir = path.resolve(options.rootStorage.dir);
231
+ const seenDirs = /* @__PURE__ */ new Set([rootDir]);
232
+ const targets = [];
233
+ for (const root of resolved) {
234
+ if (options.caps && !root.namespaces.some(
235
+ (ns) => capabilityAllowsNamespace(options.caps, normalizeNamespaceIdentity(ns))
236
+ )) {
237
+ continue;
238
+ }
239
+ const resolvedDir = path.resolve(root.rootDir);
240
+ if (seenDirs.has(resolvedDir)) continue;
241
+ seenDirs.add(resolvedDir);
242
+ targets.push(root);
243
+ }
244
+ const defaultNamespace = normalizeNamespaceIdentity(options.config.defaultNamespace);
245
+ const hasMigratedDefault = resolved.some(
246
+ (root) => path.resolve(root.rootDir) !== rootDir && root.namespaces.some((namespace) => normalizeNamespaceIdentity(namespace) === defaultNamespace)
247
+ );
248
+ const canAccessRoot = !hasMigratedDefault && (!options.caps || capabilityAllowsNamespace(options.caps, defaultNamespace));
249
+ let rootRead = { lastExtractionAt: null, readFailed: false };
250
+ if (canAccessRoot) {
251
+ rootRead = options.rootMeta ? watermarkFromMeta(options.rootMeta, "root store") : await readWatermark(options.rootStorage, "root store");
252
+ if (rootRead.readFailed) return rootRead;
253
+ }
254
+ let lastExtractionAt = rootRead.lastExtractionAt;
255
+ let rootStats = rootRead.rootStats;
256
+ const reads = await Promise.all(
257
+ targets.map(async (target) => {
258
+ try {
259
+ const storage = await options.storageForNamespace(target.namespace, target.rootDir);
260
+ return await readWatermark(storage, "namespace");
261
+ } catch (error) {
262
+ return readFailure(`namespace watermark storage unavailable: ${errorMessage(error)}`);
263
+ }
264
+ })
265
+ );
266
+ for (const read of reads) {
267
+ if (read.readFailed) {
268
+ return readFailure(read.readError ?? "namespace watermark unreadable");
269
+ }
270
+ lastExtractionAt = newerWatermark(lastExtractionAt, read.lastExtractionAt);
271
+ rootStats = mergeRootStats(rootStats, read.rootStats);
272
+ }
273
+ return {
274
+ lastExtractionAt,
275
+ readFailed: false,
276
+ ...rootStats ? { rootStats } : {}
277
+ };
278
+ }
279
+
88
280
  // src/maintenance/namespace-maintenance-fanout.ts
89
281
  var NAMESPACE_MAINTENANCE_JOBS = [
90
282
  "qmd",
@@ -251,7 +443,7 @@ function resolveConfigPath(explicitPath) {
251
443
  if (explicitPath && explicitPath.trim().length > 0) return explicitPath.trim();
252
444
  const configured = readEnvVar("OPENCLAW_CONFIG_PATH") || readEnvVar("OPENCLAW_ENGRAM_CONFIG_PATH");
253
445
  if (configured && configured.trim().length > 0) return configured.trim();
254
- return path.join(resolveHomeDir(), ".openclaw", "openclaw.json");
446
+ return path2.join(resolveHomeDir(), ".openclaw", "openclaw.json");
255
447
  }
256
448
  async function loadCliPluginConfig(configPath) {
257
449
  const resolvedPath = resolveConfigPath(configPath);
@@ -322,12 +514,12 @@ function getSetupPaths(config) {
322
514
  return [
323
515
  config.memoryDir,
324
516
  config.workspaceDir,
325
- path.join(config.memoryDir, "facts"),
326
- path.join(config.memoryDir, "entities"),
327
- path.join(config.memoryDir, "state"),
328
- path.join(config.memoryDir, "questions"),
329
- path.join(config.memoryDir, "artifacts"),
330
- path.join(config.memoryDir, "config")
517
+ path2.join(config.memoryDir, "facts"),
518
+ path2.join(config.memoryDir, "entities"),
519
+ path2.join(config.memoryDir, "state"),
520
+ path2.join(config.memoryDir, "questions"),
521
+ path2.join(config.memoryDir, "artifacts"),
522
+ path2.join(config.memoryDir, "config")
331
523
  ];
332
524
  }
333
525
  async function readJsonIfExists(filePath) {
@@ -340,9 +532,9 @@ async function readJsonIfExists(filePath) {
340
532
  async function summarizeNativeKnowledgeStatus(config) {
341
533
  const nativeKnowledge = config.nativeKnowledge;
342
534
  const nativeKnowledgeStateDir = nativeKnowledge?.stateDir ?? "state/native-knowledge";
343
- const curatedStatePath = nativeKnowledge ? resolveCuratedIncludeFilesStatePath(config.memoryDir, nativeKnowledge) : path.join(config.memoryDir, nativeKnowledgeStateDir, "curated-include-sync.json");
344
- const obsidianStatePath = nativeKnowledge ? resolveNativeKnowledgeStatePath(config.memoryDir, nativeKnowledge) : path.join(config.memoryDir, nativeKnowledgeStateDir, "obsidian-sync.json");
345
- const openclawStatePath = nativeKnowledge ? resolveOpenClawWorkspaceStatePath(config.memoryDir, nativeKnowledge) : path.join(config.memoryDir, nativeKnowledgeStateDir, "openclaw-workspace-sync.json");
535
+ const curatedStatePath = nativeKnowledge ? resolveCuratedIncludeFilesStatePath(config.memoryDir, nativeKnowledge) : path2.join(config.memoryDir, nativeKnowledgeStateDir, "curated-include-sync.json");
536
+ const obsidianStatePath = nativeKnowledge ? resolveNativeKnowledgeStatePath(config.memoryDir, nativeKnowledge) : path2.join(config.memoryDir, nativeKnowledgeStateDir, "obsidian-sync.json");
537
+ const openclawStatePath = nativeKnowledge ? resolveOpenClawWorkspaceStatePath(config.memoryDir, nativeKnowledge) : path2.join(config.memoryDir, nativeKnowledgeStateDir, "openclaw-workspace-sync.json");
346
538
  const [curatedRaw, obsidianRaw, openclawRaw] = await Promise.all([
347
539
  readJsonIfExists(curatedStatePath),
348
540
  readJsonIfExists(obsidianStatePath),
@@ -480,7 +672,7 @@ async function runOperatorSetup(options) {
480
672
  options.orchestrator.config.qmdCollection
481
673
  ) : "skipped";
482
674
  const nativeKnowledgeStatus = await summarizeNativeKnowledgeStatus(options.orchestrator.config);
483
- const memoryDocPath = path.join(options.orchestrator.config.workspaceDir, "MEMORY.md");
675
+ const memoryDocPath = path2.join(options.orchestrator.config.workspaceDir, "MEMORY.md");
484
676
  const captureInstructionsMode = options.captureInstructionsMode ?? (options.installCaptureInstructions ? "install" : void 0);
485
677
  let memoryDocExists = false;
486
678
  try {
@@ -621,9 +813,9 @@ async function buildOperatorConfigReviewReport(input) {
621
813
  const findings = [];
622
814
  const searchBackend = config.searchBackend ?? "qmd";
623
815
  const workspaceBootstrapFiles = [
624
- path.join(config.workspaceDir, "IDENTITY.md"),
625
- path.join(config.workspaceDir, "MEMORY.md"),
626
- path.join(config.workspaceDir, "USER.md")
816
+ path2.join(config.workspaceDir, "IDENTITY.md"),
817
+ path2.join(config.workspaceDir, "MEMORY.md"),
818
+ path2.join(config.workspaceDir, "USER.md")
627
819
  ];
628
820
  const workspaceBootstrapExists = (await Promise.all(workspaceBootstrapFiles.map(pathExists))).some(Boolean);
629
821
  if (config.memoryOsPreset !== "conservative" && config.memoryOsPreset !== "balanced" && config.memoryOsPreset !== "research-max" && config.memoryOsPreset !== "local-llm-heavy" && resolveIndexingCapabilities(config).queryAwareIndexing === false && resolvePresentationCapabilities(config).verbatimArtifacts === false && !caps.rerank) {
@@ -1109,10 +1301,10 @@ async function summarizeGraphEdgeDecayStatus(config) {
1109
1301
  }
1110
1302
  async function summarizeTierDistribution(storage) {
1111
1303
  try {
1112
- const { summarizeTiers } = await import("./tier-stats-FQGQSFET.js");
1304
+ const { summarizeTiers } = await import("./tier-stats-FXEUJN73.js");
1113
1305
  const summary = await summarizeTiers(storage);
1114
1306
  const storageDir = storage.dir ?? "";
1115
- const journalPath = storageDir.length > 0 ? path.join(storageDir, "state", "tier-migration-journal.jsonl") : null;
1307
+ const journalPath = storageDir.length > 0 ? path2.join(storageDir, "state", "tier-migration-journal.jsonl") : null;
1116
1308
  let recentMigrations = 0;
1117
1309
  const demotionReasons = {};
1118
1310
  const sevenDaysAgoMs = Date.now() - 7 * 864e5;
@@ -1170,11 +1362,11 @@ async function summarizeDreamsPhases(config, storage = new StorageManager(config
1170
1362
  let deepSleepLastRun = null;
1171
1363
  let deepSleepLastRunWarning = null;
1172
1364
  try {
1173
- const runsDir = path.join(config.memoryDir, "state", "memory-governance", "runs");
1365
+ const runsDir = path2.join(config.memoryDir, "state", "memory-governance", "runs");
1174
1366
  const runIds = (await readdir(runsDir)).sort().reverse();
1175
1367
  if (runIds.length > 0) {
1176
1368
  const latestRunId = runIds[0];
1177
- const manifestPath = path.join(
1369
+ const manifestPath = path2.join(
1178
1370
  runsDir,
1179
1371
  latestRunId,
1180
1372
  "manifest.json"
@@ -1421,7 +1613,7 @@ async function dirSize(targetPath) {
1421
1613
  return 0;
1422
1614
  }
1423
1615
  for (const entry of entries) {
1424
- total += await dirSize(path.join(targetPath, entry.name));
1616
+ total += await dirSize(path2.join(targetPath, entry.name));
1425
1617
  }
1426
1618
  return total;
1427
1619
  }
@@ -1441,7 +1633,7 @@ async function summarizeStorageFootprint(memoryDir) {
1441
1633
  const byTopLevel = {};
1442
1634
  let bytes = 0;
1443
1635
  for (const name of topLevel) {
1444
- const size = await dirSize(path.join(memoryDir, name));
1636
+ const size = await dirSize(path2.join(memoryDir, name));
1445
1637
  if (size > 0) {
1446
1638
  byTopLevel[name] = size;
1447
1639
  bytes += size;
@@ -1664,6 +1856,7 @@ async function runOperatorRepair(options) {
1664
1856
  }
1665
1857
 
1666
1858
  export {
1859
+ readAggregateExtractionWatermark,
1667
1860
  runNamespaceMaintenanceFanout,
1668
1861
  summarizeNamespaceMaintenanceHealth,
1669
1862
  formatNamespaceMaintenanceHealthText,
@@ -1683,4 +1876,4 @@ export {
1683
1876
  runBenchmarkRecall,
1684
1877
  runOperatorRepair
1685
1878
  };
1686
- //# sourceMappingURL=chunk-E4IRW2FG.js.map
1879
+ //# sourceMappingURL=chunk-622V2AZA.js.map