@remnic/core 9.69.85 → 9.69.87

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 (336) hide show
  1. package/dist/access-admin-ops-surface.js +45 -44
  2. package/dist/access-authorization-probe.js +46 -45
  3. package/dist/access-boundary.js +45 -44
  4. package/dist/access-cli.js +111 -110
  5. package/dist/access-cli.js.map +1 -1
  6. package/dist/access-extraction-force-flush.d.ts.map +1 -1
  7. package/dist/access-extraction-force-flush.js +45 -44
  8. package/dist/access-http-briefing.js +46 -45
  9. package/dist/access-http-query.js +47 -46
  10. package/dist/access-http.js +67 -66
  11. package/dist/access-identity-continuity-surface.js +45 -44
  12. package/dist/access-lcm-surface.js +45 -44
  13. package/dist/access-mcp.d.ts.map +1 -1
  14. package/dist/access-mcp.js +59 -58
  15. package/dist/access-namespace-preflight.js +45 -44
  16. package/dist/access-observe-write-category.js +4 -4
  17. package/dist/access-observe-write-surface.js +45 -44
  18. package/dist/access-operations-batch.js +49 -48
  19. package/dist/access-operations.js +56 -55
  20. package/dist/access-recall-concurrency.js +45 -44
  21. package/dist/access-recall-diagnostics.js +4 -4
  22. package/dist/access-recall-response.js +45 -44
  23. package/dist/access-recall-surface.js +45 -44
  24. package/dist/access-schema.js +3 -3
  25. package/dist/access-service-helpers.d.ts +1 -0
  26. package/dist/access-service-helpers.d.ts.map +1 -1
  27. package/dist/access-service-helpers.js +1 -1
  28. package/dist/access-service.js +45 -44
  29. package/dist/access-surface-catalog.js +47 -46
  30. package/dist/access-surface-catalog.js.map +1 -1
  31. package/dist/active-recall.js +13 -12
  32. package/dist/active-recall.js.map +1 -1
  33. package/dist/{auto-sync-WEUDMXUW.js → auto-sync-6IPX2BAC.js} +5 -5
  34. package/dist/background-generation.js +2 -2
  35. package/dist/briefing.js +7 -7
  36. package/dist/buffer.js +4 -3
  37. package/dist/calibration.js +2 -2
  38. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  39. package/dist/causal-behavior.js +2 -2
  40. package/dist/causal-chain.js +2 -2
  41. package/dist/causal-consolidation.js +10 -10
  42. package/dist/causal-retrieval.js +2 -2
  43. package/dist/causal-trajectory-graph.js +3 -3
  44. package/dist/causal-trajectory.js +1 -1
  45. package/dist/{chunk-J3IWHCMF.js → chunk-2DT7PIDZ.js} +3 -3
  46. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  47. package/dist/{chunk-MFZACYZ6.js → chunk-37S3IMYB.js} +2 -2
  48. package/dist/{chunk-IBGEHKQ6.js → chunk-3C3J243X.js} +2 -2
  49. package/dist/{chunk-55FCXCXJ.js → chunk-3GQC3NMB.js} +4 -4
  50. package/dist/{chunk-QOPB6KE3.js → chunk-3TB2XQ3C.js} +2 -2
  51. package/dist/{chunk-3XQYM4RE.js → chunk-4BZP2B4U.js} +2 -2
  52. package/dist/{chunk-FYAU4S6E.js → chunk-4CDYONWO.js} +3 -3
  53. package/dist/{chunk-CRKWSSS4.js → chunk-4IEOGIPB.js} +2 -2
  54. package/dist/{chunk-W75BBBSY.js → chunk-4IIMMZZK.js} +11 -11
  55. package/dist/{chunk-Q3THVX75.js → chunk-4RL3JOB3.js} +2 -2
  56. package/dist/{chunk-7G6WUOLB.js → chunk-66DKTOBY.js} +2 -2
  57. package/dist/{chunk-IP5VLSLO.js → chunk-6L3PBSAR.js} +2 -2
  58. package/dist/{chunk-AZ2X5LNA.js → chunk-6LYAEM54.js} +2 -2
  59. package/dist/{chunk-RCQKAOOB.js → chunk-6NQ4LSMS.js} +40 -40
  60. package/dist/{chunk-WB2I2EQK.js → chunk-6TT6HRE4.js} +2 -2
  61. package/dist/{chunk-JX6USXZR.js → chunk-72JNNJJJ.js} +2 -2
  62. package/dist/{chunk-BUKK5SWA.js → chunk-7LCGFUMB.js} +4 -4
  63. package/dist/{chunk-OEBLZZKK.js → chunk-7XG7KMIW.js} +2 -2
  64. package/dist/{chunk-3GN2PEOT.js → chunk-AQK54Q7O.js} +2 -2
  65. package/dist/{chunk-3SG4FGDV.js → chunk-AWD36R4D.js} +5 -2
  66. package/dist/chunk-AWD36R4D.js.map +1 -0
  67. package/dist/{chunk-BOUFVFV2.js → chunk-AZSGSRIM.js} +2 -2
  68. package/dist/{chunk-N3MNDVJO.js → chunk-BFO3IR56.js} +2 -2
  69. package/dist/{chunk-2UPTRDGM.js → chunk-BJRAELDH.js} +3 -3
  70. package/dist/{chunk-IMAP236M.js → chunk-CS52MFDV.js} +2 -2
  71. package/dist/{chunk-UNJOB4DY.js → chunk-CUCWX3MO.js} +2 -2
  72. package/dist/{chunk-QB75LKQQ.js → chunk-CWHV574S.js} +32 -13
  73. package/dist/chunk-CWHV574S.js.map +1 -0
  74. package/dist/{chunk-DQISIT63.js → chunk-DZ42MDZE.js} +3 -3
  75. package/dist/{chunk-ML2MVAEZ.js → chunk-DZ525SNQ.js} +1 -1
  76. package/dist/{chunk-5ELENZTA.js → chunk-EDIH6X2P.js} +2 -2
  77. package/dist/{chunk-S42HZILI.js → chunk-EHS5MJEF.js} +2 -2
  78. package/dist/{chunk-IA3X2Y4K.js → chunk-EQ6YOIKO.js} +2 -2
  79. package/dist/{chunk-4V44AA7O.js → chunk-FAN73COB.js} +2 -2
  80. package/dist/{chunk-KERNN6BC.js → chunk-FB64XE3R.js} +2 -2
  81. package/dist/{chunk-SVZWVZ7E.js → chunk-FOH7AMMI.js} +72 -55
  82. package/dist/chunk-FOH7AMMI.js.map +1 -0
  83. package/dist/{chunk-S55WTPFJ.js → chunk-FRCESVV6.js} +7 -7
  84. package/dist/{chunk-GEX5NI36.js → chunk-HBBHL4YF.js} +2 -2
  85. package/dist/{chunk-2I6VHX6Q.js → chunk-HESDNYRB.js} +2 -2
  86. package/dist/{chunk-2U3R3DDH.js → chunk-ICZQG4XE.js} +9 -9
  87. package/dist/{chunk-DGAWEJVI.js → chunk-JGSQ6P4D.js} +2 -2
  88. package/dist/{chunk-TIQZNDZ5.js → chunk-JKMHZF3Q.js} +2 -2
  89. package/dist/{chunk-NAFPHFDM.js → chunk-JNLEJE4A.js} +2 -2
  90. package/dist/{chunk-IFCKHPY4.js → chunk-K4J4E7WV.js} +2 -2
  91. package/dist/{chunk-2QG4SLZI.js → chunk-KF7PQ7G2.js} +2 -2
  92. package/dist/{chunk-JXMECXMF.js → chunk-KFCMMDHH.js} +2 -2
  93. package/dist/{chunk-SQDKX4RW.js → chunk-KP7SANCF.js} +2 -2
  94. package/dist/{chunk-OM5BIPBR.js → chunk-L6UZEAID.js} +2 -2
  95. package/dist/{chunk-TEV2JGU5.js → chunk-LF5IGOOD.js} +15 -15
  96. package/dist/{chunk-QWUJWBZ5.js → chunk-LQG5O5EP.js} +2 -2
  97. package/dist/{chunk-NKFLHW7J.js → chunk-LS3XH3UE.js} +2 -2
  98. package/dist/{chunk-BJX3VQWZ.js → chunk-M536WNTQ.js} +2 -2
  99. package/dist/{chunk-EU3N5MK3.js → chunk-MQJL6CDZ.js} +3 -3
  100. package/dist/{chunk-VZBW6CDG.js → chunk-N4S4NUX5.js} +1 -1
  101. package/dist/{chunk-L2LBMKSI.js → chunk-NE6PHPLG.js} +10 -10
  102. package/dist/{chunk-VTPASHTO.js → chunk-NE7I2RCT.js} +2 -2
  103. package/dist/{chunk-OAOBL6OY.js → chunk-NR2ASHBL.js} +5 -5
  104. package/dist/{chunk-7UUKRS3J.js → chunk-P2WZHLUF.js} +3 -3
  105. package/dist/{chunk-IVH7INFM.js → chunk-P6WFK4ZJ.js} +6 -6
  106. package/dist/{chunk-CHDGJJV6.js → chunk-PUKTBULQ.js} +2 -2
  107. package/dist/{chunk-NAYBHNGN.js → chunk-QEV26L2F.js} +2 -2
  108. package/dist/{chunk-I4G4UWQA.js → chunk-QI2E6ISQ.js} +1 -1
  109. package/dist/{chunk-CK5U7JGH.js → chunk-QVS22WTO.js} +2 -2
  110. package/dist/{chunk-B47OHVFT.js → chunk-QWW2JDDX.js} +7 -7
  111. package/dist/{chunk-EJPF6XDQ.js → chunk-RDJ6C7NZ.js} +3 -3
  112. package/dist/{chunk-C2WWQ4OR.js → chunk-RMMA44HE.js} +1 -1
  113. package/dist/chunk-RMMA44HE.js.map +1 -0
  114. package/dist/{chunk-I53NAHZ4.js → chunk-S7GCT7NU.js} +3 -2
  115. package/dist/chunk-S7GCT7NU.js.map +1 -0
  116. package/dist/{chunk-RDEUG2M2.js → chunk-SOZUJCME.js} +6 -6
  117. package/dist/{chunk-T4QGUXCV.js → chunk-SPSRGEDQ.js} +2 -2
  118. package/dist/{chunk-TY446V34.js → chunk-SRZW7FNU.js} +2 -2
  119. package/dist/{chunk-SV72F4DS.js → chunk-SY5KDWGU.js} +2 -2
  120. package/dist/{chunk-H36X4NRH.js → chunk-TDYAIXHK.js} +5 -5
  121. package/dist/{chunk-ZTHGFTMW.js → chunk-TKC5LZ43.js} +2 -2
  122. package/dist/{chunk-6DTJBTHL.js → chunk-TM3RXL4G.js} +14 -2
  123. package/dist/chunk-TM3RXL4G.js.map +1 -0
  124. package/dist/{chunk-AXDOF4VI.js → chunk-UA5DX5C3.js} +2 -2
  125. package/dist/{chunk-JS3S2HVG.js → chunk-V2ES4WCZ.js} +2 -2
  126. package/dist/{chunk-5FNZ3G6X.js → chunk-VKQI47DJ.js} +4 -4
  127. package/dist/{chunk-JVY556FW.js → chunk-VLLD4TOB.js} +2 -2
  128. package/dist/{chunk-NMBX4D7P.js → chunk-VQNONC4E.js} +2 -2
  129. package/dist/{chunk-GZAGLCQH.js → chunk-VVDWZRZG.js} +2 -2
  130. package/dist/{chunk-T4BE5KJM.js → chunk-VX6GCKBS.js} +3 -3
  131. package/dist/{chunk-RIEX7NOZ.js → chunk-W4AOR52H.js} +2 -2
  132. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  133. package/dist/{chunk-BNPLDVM6.js → chunk-XTYX6V52.js} +2 -2
  134. package/dist/{chunk-FZVROZKC.js → chunk-XVZA6VXC.js} +4 -4
  135. package/dist/{chunk-RGMVMVMF.js → chunk-YBA52OKG.js} +2 -1
  136. package/dist/chunk-YBA52OKG.js.map +1 -0
  137. package/dist/{chunk-C7JAUNFC.js → chunk-YITN5WXI.js} +2 -2
  138. package/dist/{chunk-HS75MCQF.js → chunk-YRULQW5J.js} +2 -2
  139. package/dist/{chunk-DINRT75P.js → chunk-YSBL7VPO.js} +2 -2
  140. package/dist/{chunk-7QK5TUTW.js → chunk-YSJTCOHR.js} +2 -2
  141. package/dist/{chunk-QC56VZXC.js → chunk-YTQGGO3K.js} +67 -67
  142. package/dist/{chunk-HKFJ3PF3.js → chunk-ZI7QA4MK.js} +2 -2
  143. package/dist/chunk-ZJP66Q4I.js +48 -0
  144. package/dist/chunk-ZJP66Q4I.js.map +1 -0
  145. package/dist/cli.js +86 -85
  146. package/dist/coding/export-okf-codegraph.js +6 -6
  147. package/dist/coding/pre-action-gate.js +2 -2
  148. package/dist/compounding/engine.js +7 -7
  149. package/dist/config.js +13 -12
  150. package/dist/connectors/codex-materialize-runner.js +7 -7
  151. package/dist/connectors/index.js +7 -7
  152. package/dist/contradiction/index.js +3 -3
  153. package/dist/{contradiction-scan-5EJYRKD3.js → contradiction-scan-TAGMOUQ2.js} +3 -3
  154. package/dist/convergence-refresh.js +9 -9
  155. package/dist/corpus-watermark.js +9 -9
  156. package/dist/correction/correction-access-wiring.d.ts.map +1 -1
  157. package/dist/deep-recall-http-glue.js +4 -4
  158. package/dist/deep-recall-policy-llm.js +3 -3
  159. package/dist/deep-recall.js +2 -2
  160. package/dist/entity-retrieval.js +7 -7
  161. package/dist/external-wiki-access.js +46 -45
  162. package/dist/extraction-faithfulness.js +3 -3
  163. package/dist/extraction-judge.js +3 -3
  164. package/dist/extraction-liveness.d.ts +9 -0
  165. package/dist/extraction-liveness.d.ts.map +1 -1
  166. package/dist/extraction-liveness.js +2 -1
  167. package/dist/extraction-llm-health.d.ts +32 -0
  168. package/dist/extraction-llm-health.d.ts.map +1 -0
  169. package/dist/extraction-llm-health.js +17 -0
  170. package/dist/extraction-span-config.js +3 -2
  171. package/dist/extraction-span-materialize.js +2 -2
  172. package/dist/extraction.js +16 -15
  173. package/dist/fallback-llm.js +2 -2
  174. package/dist/{first-start-migration-GAT7G733.js → first-start-migration-7OATHJKB.js} +4 -4
  175. package/dist/{graph-edge-decay-PVKDKLQK.js → graph-edge-decay-KQGS3L3B.js} +6 -6
  176. package/dist/graph-jsonl.js +4 -4
  177. package/dist/graph-snapshot.js +4 -4
  178. package/dist/graph.js +5 -5
  179. package/dist/harmonic-retrieval.js +1 -1
  180. package/dist/index.js +136 -135
  181. package/dist/json-extract.d.ts.map +1 -1
  182. package/dist/json-extract.js +1 -1
  183. package/dist/lcm/engine.js +2 -2
  184. package/dist/lcm/index.js +5 -5
  185. package/dist/local-llm.d.ts.map +1 -1
  186. package/dist/local-llm.js +1 -1
  187. package/dist/location/index.js +9 -9
  188. package/dist/maintenance/memory-governance.js +7 -7
  189. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
  190. package/dist/maintenance/rebuild-memory-projection.js +8 -8
  191. package/dist/memory-browse-operations.js +46 -45
  192. package/dist/memory-browse.js +3 -3
  193. package/dist/namespaces/migrate.js +8 -8
  194. package/dist/namespaces/storage.js +7 -7
  195. package/dist/operator-doctor-corpus.js +10 -10
  196. package/dist/operator-toolkit.js +25 -24
  197. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  198. package/dist/orchestration/maintenance.js +17 -17
  199. package/dist/orchestrator.js +111 -110
  200. package/dist/recall-navigation-operations.js +46 -45
  201. package/dist/recall-navigation.js +45 -44
  202. package/dist/recall-planner-llm.js +2 -2
  203. package/dist/recall-state-view-admission.js +3 -3
  204. package/dist/recall-why-service.js +6 -6
  205. package/dist/recall-why.js +3 -3
  206. package/dist/{resolution-UYJU5JUA.js → resolution-DNX7FO7A.js} +4 -4
  207. package/dist/resolution-DNX7FO7A.js.map +1 -0
  208. package/dist/resume-bundles.js +14 -13
  209. package/dist/semantic-consolidation.js +8 -8
  210. package/dist/semantic-rule-promotion.js +7 -7
  211. package/dist/semantic-rule-verifier.js +7 -7
  212. package/dist/source-agent-qualifier.js +11 -10
  213. package/dist/standup/build.js +7 -7
  214. package/dist/storage.js +6 -6
  215. package/dist/summarizer.js +5 -5
  216. package/dist/support-passport/index.js +48 -47
  217. package/dist/transfer/backup.js +2 -2
  218. package/dist/transfer/capsule-export.js +2 -2
  219. package/dist/transfer/capsule-import.js +2 -2
  220. package/dist/transfer/export-okf.js +7 -7
  221. package/dist/verified-recall.js +7 -7
  222. package/dist/who-knows-cli.js +8 -8
  223. package/dist/who-knows.js +7 -7
  224. package/package.json +2 -2
  225. package/src/access-extraction-force-flush.ts +15 -7
  226. package/src/access-mcp.ts +90 -28
  227. package/src/access-service-health.test.ts +41 -5
  228. package/src/access-service-helpers.ts +1 -0
  229. package/src/access-service-observe-lcm-parity.test.ts +56 -24
  230. package/src/correction/correction-access-wiring.ts +36 -8
  231. package/src/correction/correction-classify-parse.test.ts +178 -0
  232. package/src/extraction-liveness.ts +13 -1
  233. package/src/extraction-llm-health.test.ts +103 -0
  234. package/src/extraction-llm-health.ts +71 -0
  235. package/src/json-extract.ts +6 -0
  236. package/src/local-llm-thinking.test.ts +12 -0
  237. package/src/local-llm.ts +1 -0
  238. package/src/orchestration/extraction-run.test.ts +55 -1
  239. package/src/orchestration/extraction-run.ts +13 -0
  240. package/dist/chunk-3SG4FGDV.js.map +0 -1
  241. package/dist/chunk-6DTJBTHL.js.map +0 -1
  242. package/dist/chunk-C2WWQ4OR.js.map +0 -1
  243. package/dist/chunk-I53NAHZ4.js.map +0 -1
  244. package/dist/chunk-QB75LKQQ.js.map +0 -1
  245. package/dist/chunk-RGMVMVMF.js.map +0 -1
  246. package/dist/chunk-SVZWVZ7E.js.map +0 -1
  247. /package/dist/{auto-sync-WEUDMXUW.js.map → auto-sync-6IPX2BAC.js.map} +0 -0
  248. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  249. /package/dist/{chunk-J3IWHCMF.js.map → chunk-2DT7PIDZ.js.map} +0 -0
  250. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  251. /package/dist/{chunk-MFZACYZ6.js.map → chunk-37S3IMYB.js.map} +0 -0
  252. /package/dist/{chunk-IBGEHKQ6.js.map → chunk-3C3J243X.js.map} +0 -0
  253. /package/dist/{chunk-55FCXCXJ.js.map → chunk-3GQC3NMB.js.map} +0 -0
  254. /package/dist/{chunk-QOPB6KE3.js.map → chunk-3TB2XQ3C.js.map} +0 -0
  255. /package/dist/{chunk-3XQYM4RE.js.map → chunk-4BZP2B4U.js.map} +0 -0
  256. /package/dist/{chunk-FYAU4S6E.js.map → chunk-4CDYONWO.js.map} +0 -0
  257. /package/dist/{chunk-CRKWSSS4.js.map → chunk-4IEOGIPB.js.map} +0 -0
  258. /package/dist/{chunk-W75BBBSY.js.map → chunk-4IIMMZZK.js.map} +0 -0
  259. /package/dist/{chunk-Q3THVX75.js.map → chunk-4RL3JOB3.js.map} +0 -0
  260. /package/dist/{chunk-7G6WUOLB.js.map → chunk-66DKTOBY.js.map} +0 -0
  261. /package/dist/{chunk-IP5VLSLO.js.map → chunk-6L3PBSAR.js.map} +0 -0
  262. /package/dist/{chunk-AZ2X5LNA.js.map → chunk-6LYAEM54.js.map} +0 -0
  263. /package/dist/{chunk-RCQKAOOB.js.map → chunk-6NQ4LSMS.js.map} +0 -0
  264. /package/dist/{chunk-WB2I2EQK.js.map → chunk-6TT6HRE4.js.map} +0 -0
  265. /package/dist/{chunk-JX6USXZR.js.map → chunk-72JNNJJJ.js.map} +0 -0
  266. /package/dist/{chunk-BUKK5SWA.js.map → chunk-7LCGFUMB.js.map} +0 -0
  267. /package/dist/{chunk-OEBLZZKK.js.map → chunk-7XG7KMIW.js.map} +0 -0
  268. /package/dist/{chunk-3GN2PEOT.js.map → chunk-AQK54Q7O.js.map} +0 -0
  269. /package/dist/{chunk-BOUFVFV2.js.map → chunk-AZSGSRIM.js.map} +0 -0
  270. /package/dist/{chunk-N3MNDVJO.js.map → chunk-BFO3IR56.js.map} +0 -0
  271. /package/dist/{chunk-2UPTRDGM.js.map → chunk-BJRAELDH.js.map} +0 -0
  272. /package/dist/{chunk-IMAP236M.js.map → chunk-CS52MFDV.js.map} +0 -0
  273. /package/dist/{chunk-UNJOB4DY.js.map → chunk-CUCWX3MO.js.map} +0 -0
  274. /package/dist/{chunk-DQISIT63.js.map → chunk-DZ42MDZE.js.map} +0 -0
  275. /package/dist/{chunk-ML2MVAEZ.js.map → chunk-DZ525SNQ.js.map} +0 -0
  276. /package/dist/{chunk-5ELENZTA.js.map → chunk-EDIH6X2P.js.map} +0 -0
  277. /package/dist/{chunk-S42HZILI.js.map → chunk-EHS5MJEF.js.map} +0 -0
  278. /package/dist/{chunk-IA3X2Y4K.js.map → chunk-EQ6YOIKO.js.map} +0 -0
  279. /package/dist/{chunk-4V44AA7O.js.map → chunk-FAN73COB.js.map} +0 -0
  280. /package/dist/{chunk-KERNN6BC.js.map → chunk-FB64XE3R.js.map} +0 -0
  281. /package/dist/{chunk-S55WTPFJ.js.map → chunk-FRCESVV6.js.map} +0 -0
  282. /package/dist/{chunk-GEX5NI36.js.map → chunk-HBBHL4YF.js.map} +0 -0
  283. /package/dist/{chunk-2I6VHX6Q.js.map → chunk-HESDNYRB.js.map} +0 -0
  284. /package/dist/{chunk-2U3R3DDH.js.map → chunk-ICZQG4XE.js.map} +0 -0
  285. /package/dist/{chunk-DGAWEJVI.js.map → chunk-JGSQ6P4D.js.map} +0 -0
  286. /package/dist/{chunk-TIQZNDZ5.js.map → chunk-JKMHZF3Q.js.map} +0 -0
  287. /package/dist/{chunk-NAFPHFDM.js.map → chunk-JNLEJE4A.js.map} +0 -0
  288. /package/dist/{chunk-IFCKHPY4.js.map → chunk-K4J4E7WV.js.map} +0 -0
  289. /package/dist/{chunk-2QG4SLZI.js.map → chunk-KF7PQ7G2.js.map} +0 -0
  290. /package/dist/{chunk-JXMECXMF.js.map → chunk-KFCMMDHH.js.map} +0 -0
  291. /package/dist/{chunk-SQDKX4RW.js.map → chunk-KP7SANCF.js.map} +0 -0
  292. /package/dist/{chunk-OM5BIPBR.js.map → chunk-L6UZEAID.js.map} +0 -0
  293. /package/dist/{chunk-TEV2JGU5.js.map → chunk-LF5IGOOD.js.map} +0 -0
  294. /package/dist/{chunk-QWUJWBZ5.js.map → chunk-LQG5O5EP.js.map} +0 -0
  295. /package/dist/{chunk-NKFLHW7J.js.map → chunk-LS3XH3UE.js.map} +0 -0
  296. /package/dist/{chunk-BJX3VQWZ.js.map → chunk-M536WNTQ.js.map} +0 -0
  297. /package/dist/{chunk-EU3N5MK3.js.map → chunk-MQJL6CDZ.js.map} +0 -0
  298. /package/dist/{chunk-VZBW6CDG.js.map → chunk-N4S4NUX5.js.map} +0 -0
  299. /package/dist/{chunk-L2LBMKSI.js.map → chunk-NE6PHPLG.js.map} +0 -0
  300. /package/dist/{chunk-VTPASHTO.js.map → chunk-NE7I2RCT.js.map} +0 -0
  301. /package/dist/{chunk-OAOBL6OY.js.map → chunk-NR2ASHBL.js.map} +0 -0
  302. /package/dist/{chunk-7UUKRS3J.js.map → chunk-P2WZHLUF.js.map} +0 -0
  303. /package/dist/{chunk-IVH7INFM.js.map → chunk-P6WFK4ZJ.js.map} +0 -0
  304. /package/dist/{chunk-CHDGJJV6.js.map → chunk-PUKTBULQ.js.map} +0 -0
  305. /package/dist/{chunk-NAYBHNGN.js.map → chunk-QEV26L2F.js.map} +0 -0
  306. /package/dist/{chunk-I4G4UWQA.js.map → chunk-QI2E6ISQ.js.map} +0 -0
  307. /package/dist/{chunk-CK5U7JGH.js.map → chunk-QVS22WTO.js.map} +0 -0
  308. /package/dist/{chunk-B47OHVFT.js.map → chunk-QWW2JDDX.js.map} +0 -0
  309. /package/dist/{chunk-EJPF6XDQ.js.map → chunk-RDJ6C7NZ.js.map} +0 -0
  310. /package/dist/{chunk-RDEUG2M2.js.map → chunk-SOZUJCME.js.map} +0 -0
  311. /package/dist/{chunk-T4QGUXCV.js.map → chunk-SPSRGEDQ.js.map} +0 -0
  312. /package/dist/{chunk-TY446V34.js.map → chunk-SRZW7FNU.js.map} +0 -0
  313. /package/dist/{chunk-SV72F4DS.js.map → chunk-SY5KDWGU.js.map} +0 -0
  314. /package/dist/{chunk-H36X4NRH.js.map → chunk-TDYAIXHK.js.map} +0 -0
  315. /package/dist/{chunk-ZTHGFTMW.js.map → chunk-TKC5LZ43.js.map} +0 -0
  316. /package/dist/{chunk-AXDOF4VI.js.map → chunk-UA5DX5C3.js.map} +0 -0
  317. /package/dist/{chunk-JS3S2HVG.js.map → chunk-V2ES4WCZ.js.map} +0 -0
  318. /package/dist/{chunk-5FNZ3G6X.js.map → chunk-VKQI47DJ.js.map} +0 -0
  319. /package/dist/{chunk-JVY556FW.js.map → chunk-VLLD4TOB.js.map} +0 -0
  320. /package/dist/{chunk-NMBX4D7P.js.map → chunk-VQNONC4E.js.map} +0 -0
  321. /package/dist/{chunk-GZAGLCQH.js.map → chunk-VVDWZRZG.js.map} +0 -0
  322. /package/dist/{chunk-T4BE5KJM.js.map → chunk-VX6GCKBS.js.map} +0 -0
  323. /package/dist/{chunk-RIEX7NOZ.js.map → chunk-W4AOR52H.js.map} +0 -0
  324. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  325. /package/dist/{chunk-BNPLDVM6.js.map → chunk-XTYX6V52.js.map} +0 -0
  326. /package/dist/{chunk-FZVROZKC.js.map → chunk-XVZA6VXC.js.map} +0 -0
  327. /package/dist/{chunk-C7JAUNFC.js.map → chunk-YITN5WXI.js.map} +0 -0
  328. /package/dist/{chunk-HS75MCQF.js.map → chunk-YRULQW5J.js.map} +0 -0
  329. /package/dist/{chunk-DINRT75P.js.map → chunk-YSBL7VPO.js.map} +0 -0
  330. /package/dist/{chunk-7QK5TUTW.js.map → chunk-YSJTCOHR.js.map} +0 -0
  331. /package/dist/{chunk-QC56VZXC.js.map → chunk-YTQGGO3K.js.map} +0 -0
  332. /package/dist/{chunk-HKFJ3PF3.js.map → chunk-ZI7QA4MK.js.map} +0 -0
  333. /package/dist/{contradiction-scan-5EJYRKD3.js.map → contradiction-scan-TAGMOUQ2.js.map} +0 -0
  334. /package/dist/{graph-edge-decay-PVKDKLQK.js.map → extraction-llm-health.js.map} +0 -0
  335. /package/dist/{first-start-migration-GAT7G733.js.map → first-start-migration-7OATHJKB.js.map} +0 -0
  336. /package/dist/{resolution-UYJU5JUA.js.map → graph-edge-decay-KQGS3L3B.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-FYAU4S6E.js";
6
+ } from "./chunk-4CDYONWO.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-NAYBHNGN.js";
17
+ } from "./chunk-QEV26L2F.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -38,26 +38,26 @@ import {
38
38
  } from "./chunk-YBPYIAA5.js";
39
39
  import {
40
40
  parseConfig
41
- } from "./chunk-55FCXCXJ.js";
41
+ } from "./chunk-3GQC3NMB.js";
42
42
  import {
43
43
  readAggregateExtractionWatermark
44
- } from "./chunk-AXDOF4VI.js";
44
+ } from "./chunk-UA5DX5C3.js";
45
45
  import {
46
46
  listMemoryGovernanceRuns,
47
47
  readMemoryGovernanceRunArtifact
48
- } from "./chunk-JVY556FW.js";
48
+ } from "./chunk-VLLD4TOB.js";
49
49
  import {
50
50
  listNamespaces
51
- } from "./chunk-DGAWEJVI.js";
51
+ } from "./chunk-JGSQ6P4D.js";
52
52
  import {
53
53
  analyzeGraphHealth
54
- } from "./chunk-2U3R3DDH.js";
54
+ } from "./chunk-ICZQG4XE.js";
55
55
  import {
56
56
  summarizeExtractionLiveness
57
- } from "./chunk-3SG4FGDV.js";
57
+ } from "./chunk-AWD36R4D.js";
58
58
  import {
59
59
  StorageManager
60
- } from "./chunk-S55WTPFJ.js";
60
+ } from "./chunk-FRCESVV6.js";
61
61
  import {
62
62
  lintWorkspaceFiles
63
63
  } from "./chunk-DM2T26WE.js";
@@ -1069,7 +1069,7 @@ async function summarizeBufferSurpriseDistribution(storage, config) {
1069
1069
  }
1070
1070
  }
1071
1071
  async function summarizeGraphEdgeDecayStatus(config) {
1072
- const { readGraphEdgeDecayStatus } = await import("./graph-edge-decay-PVKDKLQK.js");
1072
+ const { readGraphEdgeDecayStatus } = await import("./graph-edge-decay-KQGS3L3B.js");
1073
1073
  const { graphEdgeDecayEnabled } = config;
1074
1074
  const enabled = graphEdgeDecayEnabled === true;
1075
1075
  if (!enabled) {
@@ -1683,4 +1683,4 @@ export {
1683
1683
  runBenchmarkRecall,
1684
1684
  runOperatorRepair
1685
1685
  };
1686
- //# sourceMappingURL=chunk-W75BBBSY.js.map
1686
+ //# sourceMappingURL=chunk-4IIMMZZK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ACTIVE_STATUSES
3
- } from "./chunk-DINRT75P.js";
3
+ } from "./chunk-YSBL7VPO.js";
4
4
 
5
5
  // src/recall-why.ts
6
6
  var RECALL_WHY_STAGES = Object.freeze(["retrieval", "policy-filter", "rerank", "cap", "format"]);
@@ -316,4 +316,4 @@ export {
316
316
  RecallWhyInputError,
317
317
  explainRecallMiss
318
318
  };
319
- //# sourceMappingURL=chunk-Q3THVX75.js.map
319
+ //# sourceMappingURL=chunk-4RL3JOB3.js.map
@@ -3,7 +3,7 @@ import {
3
3
  isArtifactMemoryPath,
4
4
  isLocationDayPath,
5
5
  isMeetingRecordPath
6
- } from "./chunk-I4G4UWQA.js";
6
+ } from "./chunk-QI2E6ISQ.js";
7
7
  import {
8
8
  isExternalWikiCollectionName
9
9
  } from "./chunk-JV3C2MNQ.js";
@@ -211,4 +211,4 @@ export {
211
211
  isGenericRecallExcludedPath,
212
212
  filterRecallCandidates
213
213
  };
214
- //# sourceMappingURL=chunk-7G6WUOLB.js.map
214
+ //# sourceMappingURL=chunk-66DKTOBY.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-A7AISUJI.js";
4
4
  import {
5
5
  deepRecallRequestSchema
6
- } from "./chunk-IBGEHKQ6.js";
6
+ } from "./chunk-3C3J243X.js";
7
7
  import {
8
8
  EngramAccessInputError
9
9
  } from "./chunk-3MUKQQ7A.js";
@@ -40,4 +40,4 @@ async function respondDeepRecall(req, res, respondJson, readJsonBody, service, s
40
40
  export {
41
41
  respondDeepRecall
42
42
  };
43
- //# sourceMappingURL=chunk-IP5VLSLO.js.map
43
+ //# sourceMappingURL=chunk-6L3PBSAR.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DBB5JPSL.js";
4
4
  import {
5
5
  isGenericRecallExcludedPath
6
- } from "./chunk-7G6WUOLB.js";
6
+ } from "./chunk-66DKTOBY.js";
7
7
  import {
8
8
  isChangeOrientedQuery
9
9
  } from "./chunk-EH3HNCAM.js";
@@ -69,4 +69,4 @@ export {
69
69
  filterRecentScanMemoriesForStateView,
70
70
  indexStateViewAnnotatedResults
71
71
  };
72
- //# sourceMappingURL=chunk-AZ2X5LNA.js.map
72
+ //# sourceMappingURL=chunk-6LYAEM54.js.map
@@ -13,13 +13,16 @@ import {
13
13
  import {
14
14
  importSqlite
15
15
  } from "./chunk-PYHOAXTI.js";
16
+ import {
17
+ backupMemoryDir
18
+ } from "./chunk-2NLLXCJG.js";
16
19
  import {
17
20
  exportJsonBundle
18
21
  } from "./chunk-UP6MOYCB.js";
19
22
  import {
20
23
  exportOkfBundle,
21
24
  parseIncludeStatus
22
- } from "./chunk-S42HZILI.js";
25
+ } from "./chunk-EHS5MJEF.js";
23
26
  import {
24
27
  exportSqlite
25
28
  } from "./chunk-BV2TIZ4F.js";
@@ -29,12 +32,12 @@ import {
29
32
  import {
30
33
  importJsonBundle
31
34
  } from "./chunk-2DL3OFLD.js";
32
- import {
33
- backupMemoryDir
34
- } from "./chunk-OWHERGF2.js";
35
35
  import {
36
36
  exportMarkdownBundle
37
37
  } from "./chunk-765K3SAT.js";
38
+ import {
39
+ RoutingRulesStore
40
+ } from "./chunk-TBUEE7XF.js";
38
41
  import {
39
42
  buildReplayNormalizerRegistry,
40
43
  clampBatchSize,
@@ -44,9 +47,6 @@ import {
44
47
  isReplaySource,
45
48
  normalizeReplaySessionKey
46
49
  } from "./chunk-AJVLDJU6.js";
47
- import {
48
- RoutingRulesStore
49
- } from "./chunk-TBUEE7XF.js";
50
50
  import {
51
51
  TailscaleHelper
52
52
  } from "./chunk-SZDLX763.js";
@@ -58,13 +58,16 @@ import {
58
58
  } from "./chunk-IIFFC3RL.js";
59
59
  import {
60
60
  rebuildMemoryLifecycleLedger
61
- } from "./chunk-OM5BIPBR.js";
61
+ } from "./chunk-L6UZEAID.js";
62
62
  import {
63
63
  rebuildObservations
64
64
  } from "./chunk-DQTCGVFK.js";
65
65
  import {
66
66
  archiveObservations
67
67
  } from "./chunk-YLBE6PLR.js";
68
+ import {
69
+ runCompatChecks
70
+ } from "./chunk-2524MOWK.js";
68
71
  import {
69
72
  getBulkImportSource,
70
73
  listBulkImportSources,
@@ -74,12 +77,9 @@ import {
74
77
  import {
75
78
  lintOkfDir
76
79
  } from "./chunk-CLSYE5OZ.js";
77
- import {
78
- runCompatChecks
79
- } from "./chunk-2524MOWK.js";
80
80
  import {
81
81
  searchVerifiedEpisodes
82
- } from "./chunk-TIQZNDZ5.js";
82
+ } from "./chunk-JKMHZF3Q.js";
83
83
  import {
84
84
  getUtilityLearningStatus,
85
85
  learnUtilityPromotionWeights
@@ -93,15 +93,15 @@ import {
93
93
  } from "./chunk-OJP3N7UK.js";
94
94
  import {
95
95
  promoteSemanticRuleFromMemory
96
- } from "./chunk-IA3X2Y4K.js";
96
+ } from "./chunk-EQ6YOIKO.js";
97
97
  import {
98
98
  searchVerifiedSemanticRules
99
- } from "./chunk-NKFLHW7J.js";
99
+ } from "./chunk-LS3XH3UE.js";
100
100
  import {
101
101
  buildResumeBundleFromState,
102
102
  getResumeBundleStatus,
103
103
  recordResumeBundle
104
- } from "./chunk-SV72F4DS.js";
104
+ } from "./chunk-SY5KDWGU.js";
105
105
  import {
106
106
  getWorkProductLedgerStatus,
107
107
  recordWorkProductLedgerEntry,
@@ -113,6 +113,10 @@ import {
113
113
  import {
114
114
  parseXrayCliOptions
115
115
  } from "./chunk-DBYAY6UW.js";
116
+ import {
117
+ readRuntimePolicySnapshot,
118
+ sanitizeRuntimePolicyValues
119
+ } from "./chunk-2LA3H54D.js";
116
120
  import {
117
121
  formatNamespaceMaintenanceHealthText,
118
122
  runBenchmarkRecall,
@@ -121,7 +125,7 @@ import {
121
125
  runOperatorInventory,
122
126
  runOperatorRepair,
123
127
  runOperatorSetup
124
- } from "./chunk-W75BBBSY.js";
128
+ } from "./chunk-4IIMMZZK.js";
125
129
  import {
126
130
  analyzeSessionIntegrity,
127
131
  applySessionRepair,
@@ -136,10 +140,6 @@ import {
136
140
  renderPatternExplain,
137
141
  renderPatternsList
138
142
  } from "./chunk-3T74IZB3.js";
139
- import {
140
- readRuntimePolicySnapshot,
141
- sanitizeRuntimePolicyValues
142
- } from "./chunk-2LA3H54D.js";
143
143
  import {
144
144
  GITHUB_CONNECTOR_ID,
145
145
  GMAIL_CONNECTOR_ID,
@@ -176,7 +176,7 @@ import {
176
176
  rebuildMemoryProjection,
177
177
  repairMemoryProjection,
178
178
  verifyMemoryProjection
179
- } from "./chunk-T4BE5KJM.js";
179
+ } from "./chunk-VX6GCKBS.js";
180
180
  import {
181
181
  buildConnectorRowsFromDefinitions,
182
182
  parseConnectorsListOptions,
@@ -197,7 +197,7 @@ import {
197
197
  } from "./chunk-6TBIWIAG.js";
198
198
  import {
199
199
  parseConfig
200
- } from "./chunk-55FCXCXJ.js";
200
+ } from "./chunk-3GQC3NMB.js";
201
201
  import {
202
202
  applyManagedRegion,
203
203
  expandVaultTemplateTokens,
@@ -206,11 +206,11 @@ import {
206
206
  parseAtxHeading,
207
207
  resolveVaultNotePath,
208
208
  validateRegionName
209
- } from "./chunk-QOPB6KE3.js";
209
+ } from "./chunk-3TB2XQ3C.js";
210
210
  import {
211
211
  EngramAccessHttpServer,
212
212
  MeetingsInputError
213
- } from "./chunk-TEV2JGU5.js";
213
+ } from "./chunk-LF5IGOOD.js";
214
214
  import {
215
215
  WearablesInputError
216
216
  } from "./chunk-V7IZKJI3.js";
@@ -220,10 +220,10 @@ import {
220
220
  loadChatSession,
221
221
  processChatMessage,
222
222
  sessionBelongsToPrincipal
223
- } from "./chunk-QB75LKQQ.js";
223
+ } from "./chunk-CWHV574S.js";
224
224
  import {
225
225
  EngramAccessService
226
- } from "./chunk-SVZWVZ7E.js";
226
+ } from "./chunk-FOH7AMMI.js";
227
227
  import {
228
228
  WorkStorage
229
229
  } from "./chunk-MPC7TYTZ.js";
@@ -243,16 +243,16 @@ import {
243
243
  } from "./chunk-KN6CIN7I.js";
244
244
  import {
245
245
  readAggregateExtractionWatermark
246
- } from "./chunk-AXDOF4VI.js";
246
+ } from "./chunk-UA5DX5C3.js";
247
247
  import {
248
248
  getObjectiveStateStoreStatus
249
249
  } from "./chunk-HM7RHKS4.js";
250
250
  import {
251
251
  journalPath
252
- } from "./chunk-7G6WUOLB.js";
252
+ } from "./chunk-66DKTOBY.js";
253
253
  import {
254
254
  searchHarmonicRetrieval
255
- } from "./chunk-ML2MVAEZ.js";
255
+ } from "./chunk-DZ525SNQ.js";
256
256
  import {
257
257
  getCueAnchorStoreStatus
258
258
  } from "./chunk-BMWN7B3Y.js";
@@ -261,18 +261,18 @@ import {
261
261
  readMemoryGovernanceRunArtifact,
262
262
  restoreMemoryGovernanceRun,
263
263
  runMemoryGovernance
264
- } from "./chunk-JVY556FW.js";
264
+ } from "./chunk-VLLD4TOB.js";
265
265
  import {
266
266
  listNamespaces,
267
267
  runNamespaceMigration,
268
268
  verifyNamespaces
269
- } from "./chunk-DGAWEJVI.js";
269
+ } from "./chunk-JGSQ6P4D.js";
270
270
  import {
271
271
  resolveNamespaceChildRoot
272
272
  } from "./chunk-3UXOZBHV.js";
273
273
  import {
274
274
  analyzeGraphHealth
275
- } from "./chunk-2U3R3DDH.js";
275
+ } from "./chunk-ICZQG4XE.js";
276
276
  import {
277
277
  hostSecretRefResolver,
278
278
  loadHostSecretRefResolver,
@@ -280,7 +280,7 @@ import {
280
280
  } from "./chunk-IJ6WHMFB.js";
281
281
  import {
282
282
  renderExtractionLivenessStats
283
- } from "./chunk-3SG4FGDV.js";
283
+ } from "./chunk-AWD36R4D.js";
284
284
  import {
285
285
  parseDeepRecallMaxSteps
286
286
  } from "./chunk-A7AISUJI.js";
@@ -300,10 +300,10 @@ import {
300
300
  } from "./chunk-QDW3E4RD.js";
301
301
  import {
302
302
  getCausalTrajectoryStoreStatus
303
- } from "./chunk-VZBW6CDG.js";
303
+ } from "./chunk-N4S4NUX5.js";
304
304
  import {
305
305
  meetingIdDate
306
- } from "./chunk-S55WTPFJ.js";
306
+ } from "./chunk-FRCESVV6.js";
307
307
  import {
308
308
  isValidTranscriptDate
309
309
  } from "./chunk-UHVXE24Y.js";
@@ -6698,7 +6698,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
6698
6698
  }
6699
6699
  }
6700
6700
  if (sourceArchive.endsWith(".enc")) {
6701
- const { isEncryptedCapsuleFile } = await import("./capsule-crypto-GWVG7LGC.js");
6701
+ const { isEncryptedCapsuleFile } = await import("./capsule-crypto-7FJQINUR.js");
6702
6702
  const encDetected = await isEncryptedCapsuleFile(sourceArchive).catch(() => true);
6703
6703
  if (encDetected) {
6704
6704
  throw new Error(
@@ -6861,7 +6861,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
6861
6861
  const { parseExportBundle } = await import("./transfer/types.js");
6862
6862
  let decryptedBuf;
6863
6863
  try {
6864
- const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-GWVG7LGC.js");
6864
+ const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-7FJQINUR.js");
6865
6865
  decryptedBuf = await decryptCapsuleFileInMemory(archivePath, memoryDir);
6866
6866
  } catch (decErr) {
6867
6867
  const msg = decErr instanceof Error ? decErr.message : String(decErr);
@@ -9351,7 +9351,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
9351
9351
  console.error("--verb is required. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context");
9352
9352
  process.exit(1);
9353
9353
  }
9354
- const { isValidResolutionVerb, executeResolution } = await import("./resolution-UYJU5JUA.js");
9354
+ const { isValidResolutionVerb, executeResolution } = await import("./resolution-DNX7FO7A.js");
9355
9355
  if (!isValidResolutionVerb(verb)) {
9356
9356
  console.error(`Invalid verb: ${verb}. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context`);
9357
9357
  process.exit(1);
@@ -9383,7 +9383,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
9383
9383
  });
9384
9384
  reviewCmd.command("scan").description("Run an on-demand contradiction scan").option("--namespace <ns>", "Namespace to scan").action(async (...args) => {
9385
9385
  const options = args[0] ?? {};
9386
- const { runContradictionScan } = await import("./contradiction-scan-5EJYRKD3.js");
9386
+ const { runContradictionScan } = await import("./contradiction-scan-TAGMOUQ2.js");
9387
9387
  console.log("Running contradiction scan...");
9388
9388
  const result = await runContradictionScan({
9389
9389
  storage: orchestrator.storage,
@@ -10136,4 +10136,4 @@ export {
10136
10136
  listMemoryMarkdownFilePaths,
10137
10137
  registerCli
10138
10138
  };
10139
- //# sourceMappingURL=chunk-RCQKAOOB.js.map
10139
+ //# sourceMappingURL=chunk-6NQ4LSMS.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-N3MNDVJO.js";
4
+ } from "./chunk-BFO3IR56.js";
5
5
  import {
6
6
  MutationSerializer,
7
7
  withHeldFileLock
@@ -1473,4 +1473,4 @@ export {
1473
1473
  isNamespaceKind,
1474
1474
  NamespaceCatalog
1475
1475
  };
1476
- //# sourceMappingURL=chunk-WB2I2EQK.js.map
1476
+ //# sourceMappingURL=chunk-6TT6HRE4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getVerdictKind
3
- } from "./chunk-DQISIT63.js";
3
+ } from "./chunk-DZ42MDZE.js";
4
4
  import {
5
5
  scoreImportance
6
6
  } from "./chunk-UOBPK2OS.js";
@@ -1329,4 +1329,4 @@ export {
1329
1329
  syncWearableSource,
1330
1330
  defaultTimezone
1331
1331
  };
1332
- //# sourceMappingURL=chunk-JX6USXZR.js.map
1332
+ //# sourceMappingURL=chunk-72JNNJJJ.js.map
@@ -1,12 +1,12 @@
1
+ import {
2
+ encryptCapsuleFile
3
+ } from "./chunk-X7Y7WX73.js";
1
4
  import {
2
5
  CAPSULE_ID_PATTERN,
3
6
  CapsuleBlockSchema,
4
7
  ExportBundleV2Schema,
5
8
  ExportManifestV2Schema
6
9
  } from "./chunk-WEHSQBFR.js";
7
- import {
8
- encryptCapsuleFile
9
- } from "./chunk-UVYI6VIX.js";
10
10
  import {
11
11
  CAPSULE_SCHEMA_VERSION,
12
12
  EXPORT_FORMAT
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-BUKK5SWA.js.map
264
+ //# sourceMappingURL=chunk-7LCGFUMB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseExtractionLivenessConfig
3
- } from "./chunk-3SG4FGDV.js";
3
+ } from "./chunk-AWD36R4D.js";
4
4
 
5
5
  // src/extraction-span-config.ts
6
6
  import { z } from "zod";
@@ -50,4 +50,4 @@ export {
50
50
  parseExtractionFields,
51
51
  parseExtractionSpanConfig
52
52
  };
53
- //# sourceMappingURL=chunk-OEBLZZKK.js.map
53
+ //# sourceMappingURL=chunk-7XG7KMIW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-SVZWVZ7E.js";
3
+ } from "./chunk-FOH7AMMI.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -71,4 +71,4 @@ defineOperation({
71
71
  })
72
72
  })
73
73
  });
74
- //# sourceMappingURL=chunk-3GN2PEOT.js.map
74
+ //# sourceMappingURL=chunk-AQK54Q7O.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ getExtractionLlmHealth
3
+ } from "./chunk-ZJP66Q4I.js";
1
4
  import {
2
5
  coerceBool,
3
6
  coerceNumber
@@ -166,7 +169,7 @@ async function computeExtractionLivenessStatus(orchestrator, watermark, throttle
166
169
  nowMs
167
170
  });
168
171
  throttle?.maybeWarn(status, config.staleWindowMs, nowMs);
169
- return status;
172
+ return { ...status, ...getExtractionLlmHealth() };
170
173
  }
171
174
  async function summarizeExtractionLiveness(config, watermark, buffer, nowMs = Date.now()) {
172
175
  const livenessConfig = resolveExtractionLivenessConfig(config.extractionLiveness);
@@ -222,4 +225,4 @@ export {
222
225
  summarizeExtractionLiveness,
223
226
  renderExtractionLivenessStats
224
227
  };
225
- //# sourceMappingURL=chunk-3SG4FGDV.js.map
228
+ //# sourceMappingURL=chunk-AWD36R4D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/extraction-liveness.ts"],"sourcesContent":["/**\n * Extraction-pipeline liveness (issue #2151).\n *\n * A daemon's implicit extraction can fail continuously for months while\n * `/health` stays green and recall keeps serving: every individual failure is\n * logged (timeouts, fallback-no-parsed-output), but nothing aggregates them\n * into a checkable status. This module surfaces a liveness *watermark* — the\n * last successful extraction plus the current buffer backlog — and decides when\n * that watermark is stale enough to call the pipeline degraded.\n *\n * The §22 error-vs-empty principle applies at the pipeline level: \"no\n * extraction succeeded for 90 days\" (a non-empty buffer with a stale/absent\n * watermark) must be distinguishable from \"nothing to extract\" (an empty\n * buffer). Degradation therefore requires a NON-EMPTY buffer — an idle daemon\n * with nothing buffered is healthy, not degraded.\n *\n * The core decision (`evaluateExtractionLiveness`) is a pure function shared by\n * every surface (authenticated `/health`, `remnic doctor`, `remnic stats`) so\n * the verdict never diverges across code paths.\n */\nimport { coerceBool, coerceNumber } from \"./connectors/coerce.js\";\nimport { getExtractionLlmHealth } from \"./extraction-llm-health.js\";\nimport { log } from \"./logger.js\";\nimport type { OperatorDoctorCheck } from \"./operator-doctor-types.js\";\nimport type { PluginConfig } from \"./types.js\";\n\n/** Default staleness window: 24h. A watermark older than this with a non-empty buffer is degraded. */\nconst DEFAULT_STALE_WINDOW_MS = 86_400_000;\n\nexport interface ExtractionLivenessConfig {\n /** Master gate. When false, liveness is never reported degraded. Default true. */\n enabled: boolean;\n /**\n * How stale the last-successful-extraction watermark may get (ms) before a\n * non-empty buffer flags the pipeline degraded. Default 24h.\n */\n staleWindowMs: number;\n}\n\n/**\n * A read-only snapshot of buffered, not-yet-extracted work. Structurally\n * satisfied by `SmartBuffer.getBufferSnapshot()` so callers can pass the live\n * buffer without this module depending on the buffer implementation.\n */\nexport interface ExtractionBufferSnapshot {\n bufferedSessionCount: number;\n pendingTurnCount: number;\n oldestTurnTimestamp: string | null;\n /**\n * Set by the liveness reader (never by `SmartBuffer`) when the buffer exists\n * but its snapshot read threw. An unreadable buffer is a pipeline fault, not\n * an empty queue (§22): it degrades the pipeline with a distinct reason\n * instead of masquerading as a zero-backlog (healthy) snapshot.\n */\n readFailed?: boolean;\n /** Read-failure detail, surfaced in the degraded reason when `readFailed`. */\n readError?: string;\n}\n\nexport interface ExtractionBufferSource {\n getBufferSnapshot(): Promise<ExtractionBufferSnapshot>;\n}\n\nexport interface ExtractionRootStats {\n extractionCount?: number;\n lastConsolidationAt?: string | null;\n}\n\nexport interface ExtractionWatermarkRead {\n lastExtractionAt: string | null;\n readFailed: boolean;\n readError?: string;\n pending?: boolean;\n rootStats?: ExtractionRootStats;\n}\n\nexport type ExtractionWatermarkOrStorage =\n | ExtractionWatermarkRead\n | { readMetadata(): Promise<{ lastExtractionAt?: string | null } | null> }\n | { loadMeta(): Promise<{ lastExtractionAt?: string | null }> };\n\nexport async function coerceExtractionWatermark(\n watermark: ExtractionWatermarkOrStorage,\n): Promise<ExtractionWatermarkRead> {\n if (watermark && \"readFailed\" in watermark && typeof watermark.readFailed === \"boolean\") {\n return watermark as ExtractionWatermarkRead;\n }\n try {\n let lastExtractionAt: string | null = null;\n if (\"loadMeta\" in watermark && typeof watermark.loadMeta === \"function\") {\n const meta = await watermark.loadMeta();\n lastExtractionAt = meta?.lastExtractionAt ?? null;\n } else if (\"readMetadata\" in watermark && typeof watermark.readMetadata === \"function\") {\n const meta = await watermark.readMetadata();\n lastExtractionAt = meta?.lastExtractionAt ?? null;\n }\n return {\n lastExtractionAt,\n readFailed: true,\n readError: \"aggregate watermark unavailable from legacy root-store-only storage argument\",\n };\n } catch (error) {\n return {\n lastExtractionAt: null,\n readFailed: true,\n readError: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\n/**\n * The daemon-scoped liveness payload surfaced on `/health.extraction` and in\n * doctor/stats details. Its watermark is the maximum successful extraction\n * across every distinct namespace store, matching the daemon-wide buffer scope.\n */\nexport interface ExtractionLivenessStatus {\n lastExtractionAt: string | null;\n bufferedSessionCount: number;\n pendingTurnCount: number;\n oldestBufferedTurnAgeMs: number | null;\n degraded: boolean;\n degradedReason: string | null;\n watermarkPending?: boolean;\n watermarkScope: \"aggregate\";\n /**\n * Extraction-LLM availability (issue #3140): outcome of the last extraction\n * attempt. `lastFailureReason` is non-null exactly while `llmReachable` is\n * false. Populated by the daemon-wide status readers (`/health`, doctor,\n * stats), not by the pure evaluators below.\n */\n llmReachable?: boolean;\n lastFailureReason?: string | null;\n lastFailureAt?: string | null;\n}\n\ninterface ExtractionLivenessOrchestratorLike {\n config: Pick<PluginConfig, \"extractionLiveness\">;\n buffer?: ExtractionBufferSource;\n}\n\n/**\n * Parse the `extractionLiveness` config block. Follows the nested-block shape\n * validation used elsewhere in `config.ts` and coerces string booleans (§24:\n * CLI/JSON deliver `\"false\"`/`\"0\"` as strings, which must read as falsy).\n */\nexport function parseExtractionLivenessConfig(\n cfg: Record<string, unknown>,\n): ExtractionLivenessConfig {\n const raw = cfg.extractionLiveness;\n if (raw !== undefined && (raw === null || typeof raw !== \"object\" || Array.isArray(raw))) {\n throw new Error(`extractionLiveness must be a plain object (got ${JSON.stringify(raw)})`);\n }\n const block = (raw ?? {}) as Record<string, unknown>;\n return {\n // `?? true` keeps the default on when the key is absent while honoring\n // explicit \"false\"/\"0\"/false opt-outs (coerceBool handles the string forms).\n enabled: coerceBool(block.enabled) ?? true,\n staleWindowMs: parseStaleWindowMs(block.staleWindowMs),\n };\n}\n\n/**\n * Parse `extractionLiveness.staleWindowMs`. Absent (`undefined`) → the 24h\n * default; any PRESENT value (including an explicit `null`) must coerce to a\n * positive INTEGER of milliseconds, else THROW. A fractional or non-positive\n * value (\"0.5\" would floor to 0, making every backlog instantly stale; 1.9 would\n * floor to 1) is rejected, never floored/reinterpreted (§1/§17/§39). Mirrors\n * config.ts's `parseIntegerInClosedRange` (round 9 finding 1): only an absent key\n * falls back; an explicit `null` is invalid input, not \"use the default\".\n * Inlined rather than imported because config.ts already imports this module\n * (importing back would be circular), the same reason `recall-concurrency-config.ts`\n * inlines its numeric validation.\n */\nfunction parseStaleWindowMs(value: unknown): number {\n // Only an absent key (undefined) falls back to the default; an explicit `null`\n // is invalid input and proceeds to validation → throw (mirrors\n // parseIntegerInClosedRange, round 9 finding 1).\n if (value === undefined) return DEFAULT_STALE_WINDOW_MS;\n const coerced = coerceNumber(value);\n if (coerced === undefined || !Number.isFinite(coerced) || !Number.isInteger(coerced) || coerced < 1) {\n throw new Error(\n `extractionLiveness.staleWindowMs must be an integer greater than or equal to 1; got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\n/** Milliseconds between `timestamp` and `nowMs`, clamped at 0; null when unparsable/absent. */\nfunction ageMsFrom(timestamp: string | null, nowMs: number): number | null {\n if (typeof timestamp !== \"string\") return null;\n const parsed = Date.parse(timestamp);\n if (!Number.isFinite(parsed)) return null;\n return Math.max(0, nowMs - parsed);\n}\n\n/** Compact human-readable duration (\"3d\", \"5h\", \"12m\", \"45s\") for logs and CLI output. */\nexport function formatAgeMs(ms: number): string {\n const s = Math.max(0, Math.floor(ms / 1000));\n if (s >= 86_400) return `${Math.floor(s / 86_400)}d`;\n if (s >= 3_600) return `${Math.floor(s / 3_600)}h`;\n if (s >= 60) return `${Math.floor(s / 60)}m`;\n return `${s}s`;\n}\n\n/**\n * Pure liveness verdict. Degraded when the feature is enabled AND any of: the\n * last-extraction watermark could not be READ (a storage fault, §22), the buffer\n * read failed (a pipeline fault, §22), or the buffer is non-empty and the\n * watermark is absent or stale. Each cause yields a DISTINCT reason so an\n * operator can tell a meta-read failure from a buffer-read failure from a\n * pipeline that has genuinely never extracted.\n *\n * Staleness uses a half-open freshness window (§23): an extraction is fresh\n * while its age is in `[0, staleWindowMs)`, so an age of EXACTLY `staleWindowMs`\n * is stale (the upper bound on \"fresh\" is exclusive). A null/unparsable watermark\n * means \"never succeeded\" and is treated as stale — as is a FUTURE watermark (a\n * clock-skewed or corrupt timestamp ahead of now must not read as a fresh\n * extraction and hide a real backlog stall).\n */\nexport function evaluateExtractionLiveness(input: {\n config: ExtractionLivenessConfig;\n lastExtractionAt: string | null;\n snapshot: ExtractionBufferSnapshot;\n nowMs: number;\n metaReadFailed?: boolean;\n metaReadError?: string;\n watermarkPending?: boolean;\n}): ExtractionLivenessStatus {\n const { config, lastExtractionAt, snapshot, nowMs } = input;\n const lastMs = lastExtractionAt !== null ? Date.parse(lastExtractionAt) : Number.NaN;\n const hasWatermark = Number.isFinite(lastMs);\n const ageMs = nowMs - lastMs;\n // A future watermark (negative age) is clock-skewed or corrupt data, not a\n // fresh extraction: treat it as stale so a real backlog stall is not hidden.\n const stale = !hasWatermark || ageMs < 0 || ageMs >= config.staleWindowMs;\n const hasBacklog = snapshot.bufferedSessionCount > 0;\n // A watermark or buffer that cannot be READ is a fault, not an empty queue\n // (§22): a storage/pipeline outage must not read as healthy, and must stay\n // distinct from a pipeline that has genuinely never extracted.\n const metaReadFailed = input.metaReadFailed === true;\n const watermarkPending = input.watermarkPending === true;\n const readFailed = snapshot.readFailed === true;\n const degraded =\n config.enabled && (metaReadFailed || readFailed || (!watermarkPending && hasBacklog && stale));\n\n let degradedReason: string | null = null;\n if (degraded) {\n if (metaReadFailed) {\n degradedReason = `extraction watermark unreadable: ${input.metaReadError ?? \"meta read failed\"}`;\n } else if (readFailed) {\n degradedReason = `extraction buffer unreadable: ${snapshot.readError ?? \"buffer snapshot read failed\"}`;\n } else {\n const watermark = hasWatermark\n ? `last succeeded ${formatAgeMs(nowMs - lastMs)} ago`\n : \"no successful extraction on record\";\n degradedReason =\n `${watermark}; ${snapshot.bufferedSessionCount} buffered session(s), ` +\n `${snapshot.pendingTurnCount} turn(s) pending extraction`;\n }\n }\n\n return {\n lastExtractionAt,\n bufferedSessionCount: snapshot.bufferedSessionCount,\n pendingTurnCount: snapshot.pendingTurnCount,\n oldestBufferedTurnAgeMs: ageMsFrom(snapshot.oldestTurnTimestamp, nowMs),\n degraded,\n degradedReason,\n ...(watermarkPending ? { watermarkPending: true } : {}),\n watermarkScope: \"aggregate\",\n };\n}\n\nconst EMPTY_SNAPSHOT: ExtractionBufferSnapshot = {\n bufferedSessionCount: 0,\n pendingTurnCount: 0,\n oldestTurnTimestamp: null,\n};\n\n/**\n * Read a buffer snapshot without throwing. An ABSENT buffer degrades to an empty\n * (healthy) snapshot — some service constructions have no orchestrator buffer. A\n * buffer that EXISTS but whose read throws yields a `readFailed` snapshot so the\n * verdict can distinguish a pipeline fault from an empty queue (§22).\n */\nasync function readBufferSnapshot(\n buffer: ExtractionBufferSource | undefined,\n): Promise<ExtractionBufferSnapshot> {\n if (!buffer || typeof buffer.getBufferSnapshot !== \"function\") return EMPTY_SNAPSHOT;\n try {\n return await buffer.getBufferSnapshot();\n } catch (err) {\n return {\n ...EMPTY_SNAPSHOT,\n readFailed: true,\n readError: err instanceof Error ? err.message : String(err),\n };\n }\n}\n\n/**\n * Gather the liveness status from an aggregate watermark read and an optional\n * buffer. A read failure on either side is surfaced as a degraded status with a\n * distinct reason rather than swallowed into a healthy-looking verdict.\n */\nexport async function gatherExtractionLivenessStatus(input: {\n config: ExtractionLivenessConfig;\n watermark: ExtractionWatermarkOrStorage;\n buffer: ExtractionBufferSource | undefined;\n nowMs: number;\n}): Promise<ExtractionLivenessStatus> {\n const { config, buffer, nowMs } = input;\n const watermarkRead = await coerceExtractionWatermark(input.watermark);\n const snapshot = await readBufferSnapshot(buffer);\n return evaluateExtractionLiveness({\n config,\n lastExtractionAt: watermarkRead.lastExtractionAt,\n snapshot,\n nowMs,\n metaReadFailed: watermarkRead.readFailed,\n metaReadError: watermarkRead.readError,\n watermarkPending: watermarkRead.pending,\n });\n}\n\n/**\n * Aggregated-WARN throttle (issue #2151): emit at most ONE warning per\n * staleness window while degraded — not one line per failed extraction attempt.\n * State is instance-scoped (held by the owning service), never a module global\n * (§5), so multiple service instances throttle independently.\n */\nexport class ExtractionLivenessWarnThrottle {\n private lastWarnAtMs: number | null = null;\n\n /** Warn if degraded and outside the throttle window; returns whether a WARN was emitted. */\n maybeWarn(status: ExtractionLivenessStatus, staleWindowMs: number, nowMs: number): boolean {\n if (!status.degraded) {\n // Recovered (or never degraded): reset so a fresh episode warns at once.\n this.lastWarnAtMs = null;\n return false;\n }\n if (this.lastWarnAtMs !== null && nowMs - this.lastWarnAtMs < staleWindowMs) return false;\n this.lastWarnAtMs = nowMs;\n log.warn(\n `extraction pipeline liveness degraded: ${status.degradedReason ?? \"buffered turns are not being extracted\"}`,\n );\n return true;\n }\n}\n\n/**\n * Normalize the `extractionLiveness` block at the read boundary. `parseConfig`\n * always populates it, but a host adapter, an older persisted config, or a\n * hand-built `PluginConfig` can hand us an absent, partial, or loosely-typed\n * block - and every liveness surface (/health, doctor, stats) must degrade to\n * the documented default (enabled, 24h window) rather than throw. Both fields\n * are coerced with the same rules as `parseExtractionLivenessConfig` (§24:\n * `\"false\"`/`\"0\"` read as falsy; a numeric string like `\"5000\"` parses), except a\n * present but non-integer or non-positive `staleWindowMs` falls back to the\n * default here rather than throwing.\n */\nexport function resolveExtractionLivenessConfig(\n block: { enabled?: unknown; staleWindowMs?: unknown } | undefined,\n): ExtractionLivenessConfig {\n const staleWindowMs = coerceNumber(block?.staleWindowMs);\n return {\n enabled: coerceBool(block?.enabled) ?? true,\n staleWindowMs:\n staleWindowMs !== undefined && Number.isInteger(staleWindowMs) && staleWindowMs >= 1\n ? staleWindowMs\n : DEFAULT_STALE_WINDOW_MS,\n };\n}\n\n/**\n * Compute the daemon-wide liveness status for the authenticated `/health`\n * payload and emit the throttled aggregate warning.\n */\nexport async function computeExtractionLivenessStatus(\n orchestrator: ExtractionLivenessOrchestratorLike,\n watermark: ExtractionWatermarkOrStorage,\n throttle?: ExtractionLivenessWarnThrottle,\n nowMs: number = Date.now(),\n): Promise<ExtractionLivenessStatus> {\n const config = resolveExtractionLivenessConfig(orchestrator.config.extractionLiveness);\n const status = await gatherExtractionLivenessStatus({\n config,\n watermark,\n buffer: orchestrator.buffer,\n nowMs,\n });\n throttle?.maybeWarn(status, config.staleWindowMs, nowMs);\n // Extraction-LLM availability (#3140): a silent no_models / LLM-unreachable\n // outage must be visible on /health (and doctor/stats) without debug logs.\n return { ...status, ...getExtractionLlmHealth() };\n}\n\n/**\n * `remnic doctor` check for extraction-pipeline liveness. Status `warn` when\n * degraded (with a remediation hint), `ok` otherwise.\n */\nexport async function summarizeExtractionLiveness(\n config: Pick<PluginConfig, \"extractionLiveness\">,\n watermark: ExtractionWatermarkOrStorage,\n buffer?: ExtractionBufferSource,\n nowMs: number = Date.now(),\n): Promise<OperatorDoctorCheck> {\n const livenessConfig = resolveExtractionLivenessConfig(config.extractionLiveness);\n const status = await gatherExtractionLivenessStatus({\n config: livenessConfig,\n watermark,\n buffer,\n nowMs,\n });\n const scopeNote = ` Watermark scope: ${status.watermarkScope}.`;\n const summary =\n (status.degraded\n ? `Extraction pipeline degraded: ${status.degradedReason}.`\n : `Extraction pipeline healthy: last extraction ${status.lastExtractionAt ?? \"never\"}, ` +\n `${status.bufferedSessionCount} buffered session(s), ${status.pendingTurnCount} turn(s) pending` +\n `${livenessConfig.enabled ? \"\" : \" (liveness check disabled)\"}.`) + scopeNote;\n return {\n key: \"extraction_liveness\",\n status: status.degraded ? \"warn\" : \"ok\",\n summary,\n remediation: status.degraded\n ? \"Extraction has stalled while turns are buffered. Inspect daemon logs for extraction \" +\n \"timeouts or fallback-no-parsed-output errors, verify the extraction model/provider is \" +\n \"reachable, then force a flush (e.g. `remnic flush`).\"\n : undefined,\n details: { ...status, staleWindowMs: livenessConfig.staleWindowMs, enabled: livenessConfig.enabled },\n };\n}\n\n/**\n * Lines for `remnic stats`: the aggregate extraction watermark, root metadata\n * counters, buffer backlog, and liveness verdict. Root counter failures render\n * those counters unavailable; the injected aggregate read alone determines\n * watermark liveness so stats cannot diverge from health and doctor.\n */\nexport async function renderExtractionLivenessStats(\n orchestrator: ExtractionLivenessOrchestratorLike,\n watermark: ExtractionWatermarkRead,\n nowMs: number = Date.now(),\n): Promise<string[]> {\n const status = evaluateExtractionLiveness({\n config: resolveExtractionLivenessConfig(orchestrator.config.extractionLiveness),\n lastExtractionAt: watermark.lastExtractionAt,\n snapshot: await readBufferSnapshot(orchestrator.buffer),\n nowMs,\n metaReadFailed: watermark.readFailed,\n metaReadError: watermark.readError,\n watermarkPending: watermark.pending,\n });\n const oldestAge =\n status.oldestBufferedTurnAgeMs !== null ? formatAgeMs(status.oldestBufferedTurnAgeMs) : \"n/a\";\n const rootStats = watermark.rootStats;\n const watermarkDisplay = watermark.readFailed\n ? \"unavailable\"\n : watermark.pending\n ? \"pending\"\n : status.lastExtractionAt ?? \"never\";\n return [\n `Extractions: ${rootStats?.extractionCount ?? \"unavailable\"}`,\n `Last extraction: ${watermarkDisplay}`,\n `Last consolidation: ${rootStats ? rootStats.lastConsolidationAt ?? \"never\" : \"unavailable\"}`,\n `Buffered sessions: ${status.bufferedSessionCount} (${status.pendingTurnCount} turns pending)`,\n `Oldest buffered turn age: ${oldestAge}`,\n `Extraction watermark scope: ${status.watermarkScope}`,\n `Extraction liveness: ${status.degraded ? `DEGRADED — ${status.degradedReason}` : \"ok\"}`,\n ];\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RecallWhyInputError
3
- } from "./chunk-Q3THVX75.js";
3
+ } from "./chunk-4RL3JOB3.js";
4
4
  import {
5
5
  isRecallDisclosure
6
6
  } from "./chunk-PWF4JXKD.js";
@@ -165,4 +165,4 @@ export {
165
165
  handleRecallWhyHttpQuery,
166
166
  handleRecallXrayHttpQuery
167
167
  };
168
- //# sourceMappingURL=chunk-BOUFVFV2.js.map
168
+ //# sourceMappingURL=chunk-AZSGSRIM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-S55WTPFJ.js";
3
+ } from "./chunk-FRCESVV6.js";
4
4
  import {
5
5
  keyring_exports,
6
6
  secureStoreDir
@@ -412,4 +412,4 @@ export {
412
412
  resolveNamespaceStorageRoot,
413
413
  NamespaceStorageRouter
414
414
  };
415
- //# sourceMappingURL=chunk-N3MNDVJO.js.map
415
+ //# sourceMappingURL=chunk-BFO3IR56.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  writeGraphJsonlAtomic
3
- } from "./chunk-MFZACYZ6.js";
3
+ } from "./chunk-37S3IMYB.js";
4
4
  import {
5
5
  graphFilePath,
6
6
  graphsDir,
7
7
  readEdgesStrict
8
- } from "./chunk-2U3R3DDH.js";
8
+ } from "./chunk-ICZQG4XE.js";
9
9
  import {
10
10
  assertGraphLockHeld,
11
11
  withGraphWriteLock,
@@ -215,4 +215,4 @@ export {
215
215
  discoverGraphNamespaceRoots,
216
216
  runGraphEdgeDecayMaintenanceAcrossNamespaces
217
217
  };
218
- //# sourceMappingURL=chunk-2UPTRDGM.js.map
218
+ //# sourceMappingURL=chunk-BJRAELDH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-S55WTPFJ.js";
3
+ } from "./chunk-FRCESVV6.js";
4
4
  import {
5
5
  inferMemoryStatus
6
6
  } from "./chunk-7RJUVTVF.js";
@@ -253,4 +253,4 @@ export {
253
253
  WHO_KNOWS_MCP_TOOLS,
254
254
  handleWhoKnowsHttpQuery
255
255
  };
256
- //# sourceMappingURL=chunk-IMAP236M.js.map
256
+ //# sourceMappingURL=chunk-CS52MFDV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-S55WTPFJ.js";
3
+ } from "./chunk-FRCESVV6.js";
4
4
  import {
5
5
  activityDigestPath,
6
6
  isValidActivityDate
@@ -199,4 +199,4 @@ export {
199
199
  buildStandup,
200
200
  standupHelp
201
201
  };
202
- //# sourceMappingURL=chunk-UNJOB4DY.js.map
202
+ //# sourceMappingURL=chunk-CUCWX3MO.js.map