@remnic/core 9.69.61 → 9.69.64

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 (263) hide show
  1. package/dist/access-admin-ops-surface.js +27 -27
  2. package/dist/access-authorization-probe.js +28 -28
  3. package/dist/access-boundary.js +27 -27
  4. package/dist/access-cli.js +68 -68
  5. package/dist/access-extraction-force-flush.js +27 -27
  6. package/dist/access-http-briefing.js +28 -28
  7. package/dist/access-http-query.js +29 -29
  8. package/dist/access-http.js +44 -44
  9. package/dist/access-identity-continuity-surface.js +27 -27
  10. package/dist/access-lcm-surface.js +27 -27
  11. package/dist/access-mcp-output-schemas.d.ts.map +1 -1
  12. package/dist/access-mcp-output-schemas.js +1 -1
  13. package/dist/access-mcp.js +37 -37
  14. package/dist/access-namespace-preflight.js +27 -27
  15. package/dist/access-observe-write-surface.js +27 -27
  16. package/dist/access-operations-batch.js +28 -28
  17. package/dist/access-operations.js +35 -35
  18. package/dist/access-recall-concurrency.js +27 -27
  19. package/dist/access-recall-response.d.ts.map +1 -1
  20. package/dist/access-recall-response.js +27 -27
  21. package/dist/access-recall-surface.js +27 -27
  22. package/dist/access-service.d.ts +4 -0
  23. package/dist/access-service.d.ts.map +1 -1
  24. package/dist/access-service.js +27 -27
  25. package/dist/access-surface-catalog.js +29 -29
  26. package/dist/active-recall.js +9 -9
  27. package/dist/briefing.js +10 -10
  28. package/dist/buffer.js +5 -5
  29. package/dist/causal-consolidation.js +11 -11
  30. package/dist/{chunk-52VL6LCY.js → chunk-2VH2JWYN.js} +2 -2
  31. package/dist/{chunk-WD32KTVI.js → chunk-2ZVSQPAA.js} +32 -16
  32. package/dist/chunk-2ZVSQPAA.js.map +1 -0
  33. package/dist/{chunk-G4WZDQ32.js → chunk-3NG5OOCX.js} +2 -2
  34. package/dist/{chunk-KG2OOAFF.js → chunk-3NTVCMDD.js} +2 -2
  35. package/dist/{chunk-7OC3Q5X4.js → chunk-3S4R2HA5.js} +2 -2
  36. package/dist/{chunk-NORFVW2H.js → chunk-4RWPQZYD.js} +2 -2
  37. package/dist/{chunk-B5GMOOY2.js → chunk-5AABWM72.js} +3 -3
  38. package/dist/{chunk-KRPMISWO.js → chunk-5C765XYU.js} +2 -2
  39. package/dist/{chunk-WLZYGLJ4.js → chunk-5MA7ZLPD.js} +5 -7
  40. package/dist/chunk-5MA7ZLPD.js.map +1 -0
  41. package/dist/{chunk-XOLVM3AT.js → chunk-5WXJE5TV.js} +2 -2
  42. package/dist/{chunk-2C5Z7CWB.js → chunk-6YTL3JYX.js} +2 -2
  43. package/dist/{chunk-F4PEETM4.js → chunk-755VRFBS.js} +2 -2
  44. package/dist/{chunk-HNOKNHFO.js → chunk-7L747CFR.js} +2 -2
  45. package/dist/{chunk-WPGR3RW4.js → chunk-7VO6E5UD.js} +2 -2
  46. package/dist/{chunk-LMLPLIT4.js → chunk-AQ6IBVFQ.js} +2 -2
  47. package/dist/{chunk-XN4CPSCN.js → chunk-B2JE56NB.js} +2 -2
  48. package/dist/{chunk-L4WBADKG.js → chunk-B5EZWPSM.js} +2 -2
  49. package/dist/{chunk-EIU642TN.js → chunk-BE4GMH45.js} +2 -2
  50. package/dist/{chunk-NLE6TSLG.js → chunk-BLVHDY2U.js} +5 -7
  51. package/dist/chunk-BLVHDY2U.js.map +1 -0
  52. package/dist/{chunk-JTTLH646.js → chunk-C2W6JKQQ.js} +2 -2
  53. package/dist/{chunk-FG5QU7A2.js → chunk-CFCAFAJC.js} +2 -2
  54. package/dist/{chunk-ZJ6MEVTX.js → chunk-CZM4MHZF.js} +37 -32
  55. package/dist/chunk-CZM4MHZF.js.map +1 -0
  56. package/dist/{chunk-M4PHCEPU.js → chunk-DDY7LJMP.js} +2 -2
  57. package/dist/{chunk-2L5DIVDU.js → chunk-DT33WNG2.js} +4 -4
  58. package/dist/{chunk-SZAWZPY6.js → chunk-E7SKAUEW.js} +7 -7
  59. package/dist/{chunk-NRVGODSE.js → chunk-EK4MOTHM.js} +6 -6
  60. package/dist/{chunk-QEGKMZNQ.js → chunk-FO5NDQZH.js} +3 -3
  61. package/dist/chunk-G26YNEOC.js +37 -0
  62. package/dist/chunk-G26YNEOC.js.map +1 -0
  63. package/dist/{chunk-GMHWCPLP.js → chunk-GZLSIPYU.js} +2 -2
  64. package/dist/{chunk-ZFUPRODV.js → chunk-HPWJ5B7D.js} +39 -3
  65. package/dist/chunk-HPWJ5B7D.js.map +1 -0
  66. package/dist/{chunk-SEHKTE4F.js → chunk-I4IKTNZP.js} +3 -3
  67. package/dist/{chunk-W65KK3X6.js → chunk-II4TIQCU.js} +2 -2
  68. package/dist/{chunk-FWVDTLRK.js → chunk-IJQEVNEF.js} +1 -1
  69. package/dist/{chunk-KXJ7XYUT.js → chunk-IOUQUXHO.js} +2 -2
  70. package/dist/{chunk-V3JM4XEI.js → chunk-ITLFUILH.js} +2 -2
  71. package/dist/{chunk-ZNFHWNDM.js → chunk-IULYVB5X.js} +5 -5
  72. package/dist/{chunk-Z3YQOV45.js → chunk-JLU7WK22.js} +2 -2
  73. package/dist/{chunk-NRTVZSPO.js → chunk-L4HT5QZ5.js} +2 -2
  74. package/dist/{chunk-5QZHDS4X.js → chunk-LI4IWBLN.js} +2 -2
  75. package/dist/{chunk-LY3SDHMI.js → chunk-LQ4OSM5V.js} +3 -3
  76. package/dist/{chunk-2OUSWDY6.js → chunk-M3TMVHQ2.js} +2 -2
  77. package/dist/{chunk-IDRSTHVR.js → chunk-MB3HMRXM.js} +2 -2
  78. package/dist/{chunk-4P3ZBL5E.js → chunk-MUGLJAZ3.js} +2 -2
  79. package/dist/{chunk-ZOASYXBS.js → chunk-MY2PLXSM.js} +6 -2
  80. package/dist/chunk-MY2PLXSM.js.map +1 -0
  81. package/dist/{chunk-4IFSMCRS.js → chunk-NYN4ZMPL.js} +2 -2
  82. package/dist/{chunk-K7S2IMGJ.js → chunk-O7QF3TCV.js} +322 -25
  83. package/dist/{chunk-K7S2IMGJ.js.map → chunk-O7QF3TCV.js.map} +1 -1
  84. package/dist/{chunk-KV44HTMJ.js → chunk-OBD77TYC.js} +2 -2
  85. package/dist/{chunk-GYNCJSQ7.js → chunk-OCEIHKH5.js} +3 -3
  86. package/dist/{chunk-DC5CTLCZ.js → chunk-PSGRZFBH.js} +10 -10
  87. package/dist/{chunk-FQGY7XB2.js → chunk-S52VKUUW.js} +2 -2
  88. package/dist/{chunk-D7MAYFQP.js → chunk-S7LWX2PQ.js} +2 -2
  89. package/dist/{chunk-TYP7GYRI.js → chunk-SB4ZWVKI.js} +2 -2
  90. package/dist/{chunk-KVO2BTA4.js → chunk-T2YX56QI.js} +2 -2
  91. package/dist/{chunk-G6NQ3L4T.js → chunk-T3FMRLWQ.js} +2 -2
  92. package/dist/{chunk-CDQO5DCD.js → chunk-TO3G56GM.js} +2 -2
  93. package/dist/{chunk-WEQZ5OYK.js → chunk-U6GKPSZH.js} +2 -2
  94. package/dist/{chunk-FM5HN7LL.js → chunk-WQC54W25.js} +9 -17
  95. package/dist/chunk-WQC54W25.js.map +1 -0
  96. package/dist/{chunk-XDH5MO6L.js → chunk-WZ33AIOP.js} +2 -2
  97. package/dist/{chunk-TM7S5UHD.js → chunk-XDIFADVN.js} +2 -2
  98. package/dist/{chunk-SVWYZXIL.js → chunk-XDOXR3U6.js} +2 -2
  99. package/dist/{chunk-VKDWYDFQ.js → chunk-XGLBVYEA.js} +5 -5
  100. package/dist/{chunk-5Y7VCE3A.js → chunk-XJNSOI23.js} +2 -2
  101. package/dist/{chunk-LDP6LBDS.js → chunk-Y3AFTYK4.js} +2 -2
  102. package/dist/{chunk-YL2W6NUG.js → chunk-YGJMMMPN.js} +4 -4
  103. package/dist/{chunk-KIOXEHWF.js → chunk-YIDBKTZJ.js} +2 -2
  104. package/dist/{chunk-F5ZCNJ3V.js → chunk-ZPPWW576.js} +2 -2
  105. package/dist/{chunk-TQAXUYUE.js → chunk-ZSXSMVW6.js} +2 -2
  106. package/dist/{chunk-6RD7MSIO.js → chunk-ZUT4FK5W.js} +2 -2
  107. package/dist/cli.js +54 -54
  108. package/dist/coding/export-okf-codegraph.js +9 -9
  109. package/dist/compounding/engine.js +10 -10
  110. package/dist/config.js +9 -9
  111. package/dist/connectors/codex-materialize-runner.js +10 -10
  112. package/dist/connectors/index.js +10 -10
  113. package/dist/convergence-refresh.js +12 -12
  114. package/dist/corpus-watermark.js +12 -12
  115. package/dist/entity-retrieval.js +10 -10
  116. package/dist/external-wiki-access.js +28 -28
  117. package/dist/extraction.js +16 -16
  118. package/dist/harmonic-retrieval.js +1 -1
  119. package/dist/index.d.ts +1 -1
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +70 -68
  122. package/dist/location/index.js +12 -12
  123. package/dist/maintenance/memory-governance.js +10 -10
  124. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
  125. package/dist/maintenance/rebuild-memory-projection.js +11 -11
  126. package/dist/memory-browse-operations.js +28 -28
  127. package/dist/memory-browse.js +5 -5
  128. package/dist/model-registry.d.ts.map +1 -1
  129. package/dist/model-registry.js +1 -1
  130. package/dist/namespaces/migrate.js +11 -11
  131. package/dist/namespaces/search.js +8 -8
  132. package/dist/namespaces/storage.js +10 -10
  133. package/dist/operator-doctor-corpus.js +13 -13
  134. package/dist/operator-toolkit.js +18 -18
  135. package/dist/orchestration/maintenance.js +18 -18
  136. package/dist/orchestration/recall-internal.d.ts.map +1 -1
  137. package/dist/orchestrator.js +68 -68
  138. package/dist/profiling.d.ts.map +1 -1
  139. package/dist/profiling.js +1 -1
  140. package/dist/qmd.js +2 -2
  141. package/dist/recall-composition-decision.d.ts +9 -0
  142. package/dist/recall-composition-decision.d.ts.map +1 -1
  143. package/dist/recall-composition-decision.js +2 -1
  144. package/dist/recall-navigation-operations.js +28 -28
  145. package/dist/recall-navigation.js +27 -27
  146. package/dist/recall-state-view-admission.js +5 -5
  147. package/dist/recall-why-service.d.ts.map +1 -1
  148. package/dist/recall-why-service.js +5 -5
  149. package/dist/resume-bundles.js +9 -9
  150. package/dist/search/factory.js +7 -7
  151. package/dist/search/index.js +7 -7
  152. package/dist/search/lancedb-backend.js +2 -2
  153. package/dist/search/meilisearch-backend.js +2 -2
  154. package/dist/search/orama-backend.js +2 -2
  155. package/dist/search/port.d.ts +9 -0
  156. package/dist/search/port.d.ts.map +1 -1
  157. package/dist/search/port.js +7 -1
  158. package/dist/search/remote-backend.js +2 -2
  159. package/dist/security/audit-memory-cli.d.ts.map +1 -1
  160. package/dist/security/audit-memory.d.ts +10 -0
  161. package/dist/security/audit-memory.d.ts.map +1 -1
  162. package/dist/security/injection-screen.d.ts +1 -2
  163. package/dist/security/injection-screen.d.ts.map +1 -1
  164. package/dist/semantic-consolidation.js +11 -11
  165. package/dist/semantic-rule-promotion.js +10 -10
  166. package/dist/semantic-rule-verifier.js +10 -10
  167. package/dist/source-agent-qualifier.js +13 -13
  168. package/dist/standup/build.js +10 -10
  169. package/dist/storage.js +9 -9
  170. package/dist/summarizer.js +2 -2
  171. package/dist/support-passport/index.js +30 -30
  172. package/dist/transfer/export-okf.js +10 -10
  173. package/dist/verified-recall.js +10 -10
  174. package/dist/who-knows-cli.js +11 -11
  175. package/dist/who-knows.js +10 -10
  176. package/package.json +12 -2
  177. package/src/access-mcp-output-schemas.ts +4 -0
  178. package/src/access-recall-response.ts +26 -1
  179. package/src/access-service.ts +1 -0
  180. package/src/index.ts +1 -1
  181. package/src/model-registry.test.ts +22 -1
  182. package/src/model-registry.ts +7 -6
  183. package/src/orchestration/recall-internal.ts +8 -5
  184. package/src/profiling.test.ts +20 -1
  185. package/src/profiling.ts +7 -7
  186. package/src/recall-composition-decision.test.ts +75 -0
  187. package/src/recall-composition-decision.ts +52 -3
  188. package/src/recall-retrieval-failure.test.ts +245 -0
  189. package/src/recall-why-service.ts +8 -24
  190. package/src/search/port.ts +32 -0
  191. package/src/security/audit-memory-cli.test.ts +90 -0
  192. package/src/security/audit-memory-cli.ts +7 -0
  193. package/src/security/audit-memory.ts +14 -0
  194. package/src/security/injection-screen.test.ts +245 -0
  195. package/src/security/injection-screen.ts +341 -11
  196. package/dist/chunk-FM5HN7LL.js.map +0 -1
  197. package/dist/chunk-NLE6TSLG.js.map +0 -1
  198. package/dist/chunk-U2VDCFXW.js +0 -19
  199. package/dist/chunk-U2VDCFXW.js.map +0 -1
  200. package/dist/chunk-WD32KTVI.js.map +0 -1
  201. package/dist/chunk-WLZYGLJ4.js.map +0 -1
  202. package/dist/chunk-ZFUPRODV.js.map +0 -1
  203. package/dist/chunk-ZJ6MEVTX.js.map +0 -1
  204. package/dist/chunk-ZOASYXBS.js.map +0 -1
  205. /package/dist/{chunk-52VL6LCY.js.map → chunk-2VH2JWYN.js.map} +0 -0
  206. /package/dist/{chunk-G4WZDQ32.js.map → chunk-3NG5OOCX.js.map} +0 -0
  207. /package/dist/{chunk-KG2OOAFF.js.map → chunk-3NTVCMDD.js.map} +0 -0
  208. /package/dist/{chunk-7OC3Q5X4.js.map → chunk-3S4R2HA5.js.map} +0 -0
  209. /package/dist/{chunk-NORFVW2H.js.map → chunk-4RWPQZYD.js.map} +0 -0
  210. /package/dist/{chunk-B5GMOOY2.js.map → chunk-5AABWM72.js.map} +0 -0
  211. /package/dist/{chunk-KRPMISWO.js.map → chunk-5C765XYU.js.map} +0 -0
  212. /package/dist/{chunk-XOLVM3AT.js.map → chunk-5WXJE5TV.js.map} +0 -0
  213. /package/dist/{chunk-2C5Z7CWB.js.map → chunk-6YTL3JYX.js.map} +0 -0
  214. /package/dist/{chunk-F4PEETM4.js.map → chunk-755VRFBS.js.map} +0 -0
  215. /package/dist/{chunk-HNOKNHFO.js.map → chunk-7L747CFR.js.map} +0 -0
  216. /package/dist/{chunk-WPGR3RW4.js.map → chunk-7VO6E5UD.js.map} +0 -0
  217. /package/dist/{chunk-LMLPLIT4.js.map → chunk-AQ6IBVFQ.js.map} +0 -0
  218. /package/dist/{chunk-XN4CPSCN.js.map → chunk-B2JE56NB.js.map} +0 -0
  219. /package/dist/{chunk-L4WBADKG.js.map → chunk-B5EZWPSM.js.map} +0 -0
  220. /package/dist/{chunk-EIU642TN.js.map → chunk-BE4GMH45.js.map} +0 -0
  221. /package/dist/{chunk-JTTLH646.js.map → chunk-C2W6JKQQ.js.map} +0 -0
  222. /package/dist/{chunk-FG5QU7A2.js.map → chunk-CFCAFAJC.js.map} +0 -0
  223. /package/dist/{chunk-M4PHCEPU.js.map → chunk-DDY7LJMP.js.map} +0 -0
  224. /package/dist/{chunk-2L5DIVDU.js.map → chunk-DT33WNG2.js.map} +0 -0
  225. /package/dist/{chunk-SZAWZPY6.js.map → chunk-E7SKAUEW.js.map} +0 -0
  226. /package/dist/{chunk-NRVGODSE.js.map → chunk-EK4MOTHM.js.map} +0 -0
  227. /package/dist/{chunk-QEGKMZNQ.js.map → chunk-FO5NDQZH.js.map} +0 -0
  228. /package/dist/{chunk-GMHWCPLP.js.map → chunk-GZLSIPYU.js.map} +0 -0
  229. /package/dist/{chunk-SEHKTE4F.js.map → chunk-I4IKTNZP.js.map} +0 -0
  230. /package/dist/{chunk-W65KK3X6.js.map → chunk-II4TIQCU.js.map} +0 -0
  231. /package/dist/{chunk-FWVDTLRK.js.map → chunk-IJQEVNEF.js.map} +0 -0
  232. /package/dist/{chunk-KXJ7XYUT.js.map → chunk-IOUQUXHO.js.map} +0 -0
  233. /package/dist/{chunk-V3JM4XEI.js.map → chunk-ITLFUILH.js.map} +0 -0
  234. /package/dist/{chunk-ZNFHWNDM.js.map → chunk-IULYVB5X.js.map} +0 -0
  235. /package/dist/{chunk-Z3YQOV45.js.map → chunk-JLU7WK22.js.map} +0 -0
  236. /package/dist/{chunk-NRTVZSPO.js.map → chunk-L4HT5QZ5.js.map} +0 -0
  237. /package/dist/{chunk-5QZHDS4X.js.map → chunk-LI4IWBLN.js.map} +0 -0
  238. /package/dist/{chunk-LY3SDHMI.js.map → chunk-LQ4OSM5V.js.map} +0 -0
  239. /package/dist/{chunk-2OUSWDY6.js.map → chunk-M3TMVHQ2.js.map} +0 -0
  240. /package/dist/{chunk-IDRSTHVR.js.map → chunk-MB3HMRXM.js.map} +0 -0
  241. /package/dist/{chunk-4P3ZBL5E.js.map → chunk-MUGLJAZ3.js.map} +0 -0
  242. /package/dist/{chunk-4IFSMCRS.js.map → chunk-NYN4ZMPL.js.map} +0 -0
  243. /package/dist/{chunk-KV44HTMJ.js.map → chunk-OBD77TYC.js.map} +0 -0
  244. /package/dist/{chunk-GYNCJSQ7.js.map → chunk-OCEIHKH5.js.map} +0 -0
  245. /package/dist/{chunk-DC5CTLCZ.js.map → chunk-PSGRZFBH.js.map} +0 -0
  246. /package/dist/{chunk-FQGY7XB2.js.map → chunk-S52VKUUW.js.map} +0 -0
  247. /package/dist/{chunk-D7MAYFQP.js.map → chunk-S7LWX2PQ.js.map} +0 -0
  248. /package/dist/{chunk-TYP7GYRI.js.map → chunk-SB4ZWVKI.js.map} +0 -0
  249. /package/dist/{chunk-KVO2BTA4.js.map → chunk-T2YX56QI.js.map} +0 -0
  250. /package/dist/{chunk-G6NQ3L4T.js.map → chunk-T3FMRLWQ.js.map} +0 -0
  251. /package/dist/{chunk-CDQO5DCD.js.map → chunk-TO3G56GM.js.map} +0 -0
  252. /package/dist/{chunk-WEQZ5OYK.js.map → chunk-U6GKPSZH.js.map} +0 -0
  253. /package/dist/{chunk-XDH5MO6L.js.map → chunk-WZ33AIOP.js.map} +0 -0
  254. /package/dist/{chunk-TM7S5UHD.js.map → chunk-XDIFADVN.js.map} +0 -0
  255. /package/dist/{chunk-SVWYZXIL.js.map → chunk-XDOXR3U6.js.map} +0 -0
  256. /package/dist/{chunk-VKDWYDFQ.js.map → chunk-XGLBVYEA.js.map} +0 -0
  257. /package/dist/{chunk-5Y7VCE3A.js.map → chunk-XJNSOI23.js.map} +0 -0
  258. /package/dist/{chunk-LDP6LBDS.js.map → chunk-Y3AFTYK4.js.map} +0 -0
  259. /package/dist/{chunk-YL2W6NUG.js.map → chunk-YGJMMMPN.js.map} +0 -0
  260. /package/dist/{chunk-KIOXEHWF.js.map → chunk-YIDBKTZJ.js.map} +0 -0
  261. /package/dist/{chunk-F5ZCNJ3V.js.map → chunk-ZPPWW576.js.map} +0 -0
  262. /package/dist/{chunk-TQAXUYUE.js.map → chunk-ZSXSMVW6.js.map} +0 -0
  263. /package/dist/{chunk-6RD7MSIO.js.map → chunk-ZUT4FK5W.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-5QZHDS4X.js";
3
+ } from "./chunk-LI4IWBLN.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-G4WZDQ32.js.map
415
+ //# sourceMappingURL=chunk-3NG5OOCX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveEnsureCollectionArgs
3
- } from "./chunk-U2VDCFXW.js";
3
+ } from "./chunk-G26YNEOC.js";
4
4
  import {
5
5
  QMD_PROBE_RETRY_BACKOFF_MS,
6
6
  QMD_PROBE_TIMEOUT_MS,
@@ -2253,4 +2253,4 @@ export {
2253
2253
  sharedDaemonSessionCountForTest,
2254
2254
  QmdClient
2255
2255
  };
2256
- //# sourceMappingURL=chunk-KG2OOAFF.js.map
2256
+ //# sourceMappingURL=chunk-3NTVCMDD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-GYNCJSQ7.js";
3
+ } from "./chunk-OCEIHKH5.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-7OC3Q5X4.js.map
61
+ //# sourceMappingURL=chunk-3S4R2HA5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-WD32KTVI.js";
3
+ } from "./chunk-2ZVSQPAA.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-NORFVW2H.js.map
74
+ //# sourceMappingURL=chunk-4RWPQZYD.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hasMemoryData
3
- } from "./chunk-F4PEETM4.js";
3
+ } from "./chunk-755VRFBS.js";
4
4
  import {
5
5
  resolveNamespaceStorageRoot
6
- } from "./chunk-G4WZDQ32.js";
6
+ } from "./chunk-3NG5OOCX.js";
7
7
  import {
8
8
  getConfiguredNamespaces
9
9
  } from "./chunk-OWYHHW67.js";
@@ -724,4 +724,4 @@ export {
724
724
  runNamespaceMaintenancePlan,
725
725
  runNamespaceMaintenanceBatchPlan
726
726
  };
727
- //# sourceMappingURL=chunk-B5GMOOY2.js.map
727
+ //# sourceMappingURL=chunk-5AABWM72.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveCorpusNamespaceRoots
3
- } from "./chunk-CDQO5DCD.js";
3
+ } from "./chunk-TO3G56GM.js";
4
4
  import {
5
5
  capabilityAllowsNamespace
6
6
  } from "./chunk-IG747LRN.js";
@@ -200,4 +200,4 @@ async function readAggregateExtractionWatermark(options) {
200
200
  export {
201
201
  readAggregateExtractionWatermark
202
202
  };
203
- //# sourceMappingURL=chunk-KRPMISWO.js.map
203
+ //# sourceMappingURL=chunk-5C765XYU.js.map
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // src/model-registry.ts
6
6
  import fs from "fs";
7
- import { join } from "path";
7
+ import { dirname, join } from "path";
8
8
  var DEFAULT_CAPABILITIES = {
9
9
  modelId: "default",
10
10
  maxPositionEmbeddings: 32768,
@@ -87,11 +87,7 @@ var ModelRegistry = class {
87
87
  data;
88
88
  CACHE_TTL_DAYS = 7;
89
89
  constructor(memoryDir) {
90
- const registryDir = join(memoryDir, ".registry");
91
- if (!fs.existsSync(registryDir)) {
92
- fs.mkdirSync(registryDir, { recursive: true });
93
- }
94
- this.registryPath = join(registryDir, "model-capabilities.json");
90
+ this.registryPath = join(memoryDir, ".registry", "model-capabilities.json");
95
91
  this.data = this.loadRegistry();
96
92
  }
97
93
  loadRegistry() {
@@ -109,6 +105,8 @@ var ModelRegistry = class {
109
105
  }
110
106
  saveRegistry() {
111
107
  try {
108
+ const registryDir = dirname(this.registryPath);
109
+ if (!fs.existsSync(registryDir)) fs.mkdirSync(registryDir, { recursive: true });
112
110
  fs.writeFileSync(this.registryPath, JSON.stringify(this.data, null, 2));
113
111
  } catch (err) {
114
112
  log.warn(`ModelRegistry: failed to save registry: ${err}`);
@@ -236,4 +234,4 @@ var ModelRegistry = class {
236
234
  export {
237
235
  ModelRegistry
238
236
  };
239
- //# sourceMappingURL=chunk-WLZYGLJ4.js.map
237
+ //# sourceMappingURL=chunk-5MA7ZLPD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-registry.ts"],"sourcesContent":["/**\n * Model Registry - Stores and retrieves model capabilities\n * Avoids repeated external lookups by caching model info locally\n */\n\nimport { log } from \"./logger.js\";\nimport fs from \"node:fs\";\nimport { dirname, join } from \"node:path\";\n\nexport interface ModelCapabilities {\n modelId: string;\n maxPositionEmbeddings: number;\n contextWindow: number;\n supportsExtendedContext: boolean;\n ropeScaling?: {\n type: string;\n factor: number;\n originalMaxPositionEmbeddings: number;\n };\n typicalOutputTokens: number;\n source: \"huggingface\" | \"lmstudio\" | \"manual\" | \"default\";\n fetchedAt: string;\n}\n\ninterface ModelRegistryData {\n models: Record<string, ModelCapabilities>;\n version: number;\n}\n\nconst DEFAULT_CAPABILITIES: ModelCapabilities = {\n modelId: \"default\",\n maxPositionEmbeddings: 32768,\n contextWindow: 32768,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n source: \"default\",\n fetchedAt: new Date().toISOString(),\n};\n\n// Known model capabilities (fallback when offline)\n// NOTE: Context windows here are the MODEL's theoretical maximum. Local LLM servers\n// (LM Studio, Ollama, etc.) often load models with smaller default context windows.\n// If you get \"context length exceeded\" errors, either:\n// 1. Increase the context window in your LLM server UI (recommended)\n// 2. Set localLlmMaxContext in openclaw.json to limit prompts (fallback)\nconst KNOWN_MODELS: Record<string, Partial<ModelCapabilities>> = {\n \"qwen3-30b-a3b-instruct\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072, // 128K with YaRN - but LM Studio defaults to ~32K\n supportsExtendedContext: true,\n ropeScaling: {\n type: \"yarn\",\n factor: 4.0,\n originalMaxPositionEmbeddings: 32768,\n },\n typicalOutputTokens: 8192,\n },\n \"qwen3-coder-30b-a3b-instruct\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072, // 128K with YaRN - but LM Studio defaults to ~32K\n supportsExtendedContext: true,\n ropeScaling: {\n type: \"yarn\",\n factor: 4.0,\n originalMaxPositionEmbeddings: 32768,\n },\n typicalOutputTokens: 8192,\n },\n \"qwen3-8b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"qwen3-14b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"qwen3-32b\": {\n maxPositionEmbeddings: 40960,\n contextWindow: 131072,\n supportsExtendedContext: true,\n typicalOutputTokens: 4096,\n },\n \"llama-3.1\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"llama-3.2\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"mistral-nemo\": {\n maxPositionEmbeddings: 131072,\n contextWindow: 131072,\n supportsExtendedContext: false,\n typicalOutputTokens: 8192,\n },\n \"gemma-2\": {\n maxPositionEmbeddings: 8192,\n contextWindow: 8192,\n supportsExtendedContext: false,\n typicalOutputTokens: 4096,\n },\n};\n\nexport class ModelRegistry {\n private registryPath: string;\n private data: ModelRegistryData;\n private readonly CACHE_TTL_DAYS = 7;\n\n constructor(memoryDir: string) {\n this.registryPath = join(memoryDir, \".registry\", \"model-capabilities.json\");\n this.data = this.loadRegistry();\n }\n\n private loadRegistry(): ModelRegistryData {\n try {\n if (fs.existsSync(this.registryPath)) {\n const content = fs.readFileSync(this.registryPath, \"utf-8\");\n const data = JSON.parse(content) as ModelRegistryData;\n log.info(`ModelRegistry: loaded ${Object.keys(data.models).length} cached models`);\n return data;\n }\n } catch (err) {\n log.warn(`ModelRegistry: failed to load registry: ${err}`);\n }\n return { models: {}, version: 1 };\n }\n\n private saveRegistry(): void {\n try {\n // Created on first save, never at construction: building a registry\n // happens on every plugin registration, including read-only discovery\n // passes, and must not touch the operator's memory dir.\n const registryDir = dirname(this.registryPath);\n if (!fs.existsSync(registryDir)) fs.mkdirSync(registryDir, { recursive: true });\n fs.writeFileSync(this.registryPath, JSON.stringify(this.data, null, 2));\n } catch (err) {\n log.warn(`ModelRegistry: failed to save registry: ${err}`);\n }\n }\n\n private isCacheExpired(model: ModelCapabilities): boolean {\n const fetched = new Date(model.fetchedAt);\n const now = new Date();\n const daysDiff = (now.getTime() - fetched.getTime()) / (1000 * 60 * 60 * 24);\n return daysDiff > this.CACHE_TTL_DAYS;\n }\n\n private normalizeModelId(modelId: string): string {\n // Remove common suffixes and prefixes for matching\n return modelId\n .toLowerCase()\n .replace(/@\\d+bit$/, \"\") // Remove @4bit, @8bit\n .replace(/-mlx$/, \"\")\n .replace(/-awq$/, \"\")\n .replace(/-gptq$/, \"\")\n .replace(/-gguf$/, \"\")\n .replace(/^mlx-community\\//, \"\")\n .replace(/^models\\//, \"\")\n .trim();\n }\n\n /**\n * Get capabilities for a model, using cache if available\n */\n getCapabilities(modelId: string): ModelCapabilities {\n const normalizedId = this.normalizeModelId(modelId);\n\n // Check cache first\n if (this.data.models[normalizedId]) {\n const cached = this.data.models[normalizedId];\n if (!this.isCacheExpired(cached)) {\n log.info(`ModelRegistry: using cached capabilities for ${modelId}`);\n return cached;\n }\n log.info(`ModelRegistry: cache expired for ${modelId}, will refresh`);\n }\n\n // Check known models\n for (const [knownId, capabilities] of Object.entries(KNOWN_MODELS)) {\n if (normalizedId.includes(knownId)) {\n log.info(`ModelRegistry: using known capabilities for ${modelId}`);\n const caps: ModelCapabilities = {\n ...DEFAULT_CAPABILITIES,\n ...capabilities,\n modelId: normalizedId,\n source: \"default\",\n fetchedAt: new Date().toISOString(),\n };\n this.data.models[normalizedId] = caps;\n this.saveRegistry();\n return caps;\n }\n }\n\n // Return defaults\n log.info(`ModelRegistry: using default capabilities for ${modelId}`);\n return {\n ...DEFAULT_CAPABILITIES,\n modelId: normalizedId,\n };\n }\n\n /**\n * Store capabilities for a model\n */\n setCapabilities(modelId: string, capabilities: Omit<ModelCapabilities, \"modelId\" | \"fetchedAt\">): void {\n const normalizedId = this.normalizeModelId(modelId);\n const caps: ModelCapabilities = {\n ...capabilities,\n modelId: normalizedId,\n fetchedAt: new Date().toISOString(),\n };\n this.data.models[normalizedId] = caps;\n this.saveRegistry();\n log.info(`ModelRegistry: stored capabilities for ${modelId}`);\n }\n\n /**\n * Calculate optimal input/output sizes for a model\n * @param maxContextOverride - Optional override for max context (e.g., if LLM server defaults to smaller window)\n */\n calculateContextSizes(modelId: string, maxContextOverride?: number): {\n maxInputChars: number;\n maxOutputTokens: number;\n description: string;\n } {\n const caps = this.getCapabilities(modelId);\n\n // Use override if provided (e.g., user knows their LLM server limits), otherwise use detected caps\n const sanitizedOverride =\n typeof maxContextOverride === \"number\" &&\n Number.isFinite(maxContextOverride) &&\n Number.isInteger(maxContextOverride) &&\n maxContextOverride >= 1024\n ? maxContextOverride\n : undefined;\n const effectiveContextWindow = sanitizedOverride ?? Math.max(1024, Math.floor(caps.contextWindow));\n\n // Guardrails: never allow output budget to exceed the model/server context window.\n // If we do, input budget goes negative and we end up generating huge, invalid prompts.\n const overheadTokens = Math.min(1000, Math.floor(effectiveContextWindow / 10)); // <=10% overhead, max 1k\n const minInputTokens = Math.min(512, Math.floor(effectiveContextWindow / 4)); // keep some room even on small contexts\n const minOutputTokens = Math.min(256, Math.max(1, effectiveContextWindow - overheadTokens - minInputTokens));\n\n // Base output budget: typical output, but scaled down for small contexts.\n let outputTokens = caps.typicalOutputTokens;\n\n // For very large contexts, default to ~12.5% output (capped), which tends to be plenty for JSON extraction.\n if (effectiveContextWindow > 65536) {\n outputTokens = Math.min(Math.floor(effectiveContextWindow / 8), 16384);\n }\n\n // Never let output exceed 25% of context.\n outputTokens = Math.min(outputTokens, Math.floor(effectiveContextWindow / 4));\n\n // Clamp output so we always have positive input headroom.\n const maxOutputTokens = Math.max(1, effectiveContextWindow - overheadTokens - minInputTokens);\n outputTokens = Math.min(maxOutputTokens, Math.max(minOutputTokens, outputTokens));\n\n const availableForInput = Math.max(\n 0,\n effectiveContextWindow - outputTokens - overheadTokens,\n );\n\n // Convert to characters (rough estimate: 1 token ≈ 4 chars)\n const maxInputChars = Math.max(0, Math.floor(availableForInput * 3.5)); // Conservative: 3.5 chars/token\n\n const source = sanitizedOverride ? \"user override\" : caps.source;\n return {\n maxInputChars,\n maxOutputTokens: outputTokens,\n description: `${caps.modelId}: ${effectiveContextWindow.toLocaleString()} context (${source}), using ${maxInputChars.toLocaleString()} chars input / ${outputTokens} tokens output`,\n };\n }\n\n /**\n * Fetch capabilities from Hugging Face (if available)\n * Returns true if successful\n */\n async fetchFromHuggingFace(modelId: string): Promise<boolean> {\n // This would be implemented to fetch from HF Hub API\n // For now, we rely on the known models and manual updates\n log.info(`ModelRegistry: fetchFromHuggingFace not yet implemented for ${modelId}`);\n return false;\n }\n\n /**\n * List all cached models\n */\n listCached(): string[] {\n return Object.keys(this.data.models);\n }\n\n /**\n * Clear expired cache entries\n */\n cleanExpired(): number {\n const before = Object.keys(this.data.models).length;\n this.data.models = Object.fromEntries(\n Object.entries(this.data.models).filter(([_, caps]) => !this.isCacheExpired(caps))\n );\n const after = Object.keys(this.data.models).length;\n const removed = before - after;\n if (removed > 0) {\n this.saveRegistry();\n log.info(`ModelRegistry: cleaned ${removed} expired entries`);\n }\n return removed;\n }\n}\n"],"mappings":";;;;;AAMA,OAAO,QAAQ;AACf,SAAS,SAAS,YAAY;AAsB9B,IAAM,uBAA0C;AAAA,EAC9C,SAAS;AAAA,EACT,uBAAuB;AAAA,EACvB,eAAe;AAAA,EACf,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,QAAQ;AAAA,EACR,YAAW,oBAAI,KAAK,GAAE,YAAY;AACpC;AAQA,IAAM,eAA2D;AAAA,EAC/D,0BAA0B;AAAA,IACxB,uBAAuB;AAAA,IACvB,eAAe;AAAA;AAAA,IACf,yBAAyB;AAAA,IACzB,aAAa;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,+BAA+B;AAAA,IACjC;AAAA,IACA,qBAAqB;AAAA,EACvB;AAAA,EACA,gCAAgC;AAAA,IAC9B,uBAAuB;AAAA,IACvB,eAAe;AAAA;AAAA,IACf,yBAAyB;AAAA,IACzB,aAAa;AAAA,MACX,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,+BAA+B;AAAA,IACjC;AAAA,IACA,qBAAqB;AAAA,EACvB;AAAA,EACA,YAAY;AAAA,IACV,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,aAAa;AAAA,IACX,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,aAAa;AAAA,IACX,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,aAAa;AAAA,IACX,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,aAAa;AAAA,IACX,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,gBAAgB;AAAA,IACd,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AAAA,EACA,WAAW;AAAA,IACT,uBAAuB;AAAA,IACvB,eAAe;AAAA,IACf,yBAAyB;AAAA,IACzB,qBAAqB;AAAA,EACvB;AACF;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACjB;AAAA,EACA;AAAA,EACS,iBAAiB;AAAA,EAElC,YAAY,WAAmB;AAC7B,SAAK,eAAe,KAAK,WAAW,aAAa,yBAAyB;AAC1E,SAAK,OAAO,KAAK,aAAa;AAAA,EAChC;AAAA,EAEQ,eAAkC;AACxC,QAAI;AACF,UAAI,GAAG,WAAW,KAAK,YAAY,GAAG;AACpC,cAAM,UAAU,GAAG,aAAa,KAAK,cAAc,OAAO;AAC1D,cAAM,OAAO,KAAK,MAAM,OAAO;AAC/B,YAAI,KAAK,yBAAyB,OAAO,KAAK,KAAK,MAAM,EAAE,MAAM,gBAAgB;AACjF,eAAO;AAAA,MACT;AAAA,IACF,SAAS,KAAK;AACZ,UAAI,KAAK,2CAA2C,GAAG,EAAE;AAAA,IAC3D;AACA,WAAO,EAAE,QAAQ,CAAC,GAAG,SAAS,EAAE;AAAA,EAClC;AAAA,EAEQ,eAAqB;AAC3B,QAAI;AAIF,YAAM,cAAc,QAAQ,KAAK,YAAY;AAC7C,UAAI,CAAC,GAAG,WAAW,WAAW,EAAG,IAAG,UAAU,aAAa,EAAE,WAAW,KAAK,CAAC;AAC9E,SAAG,cAAc,KAAK,cAAc,KAAK,UAAU,KAAK,MAAM,MAAM,CAAC,CAAC;AAAA,IACxE,SAAS,KAAK;AACZ,UAAI,KAAK,2CAA2C,GAAG,EAAE;AAAA,IAC3D;AAAA,EACF;AAAA,EAEQ,eAAe,OAAmC;AACxD,UAAM,UAAU,IAAI,KAAK,MAAM,SAAS;AACxC,UAAM,MAAM,oBAAI,KAAK;AACrB,UAAM,YAAY,IAAI,QAAQ,IAAI,QAAQ,QAAQ,MAAM,MAAO,KAAK,KAAK;AACzE,WAAO,WAAW,KAAK;AAAA,EACzB;AAAA,EAEQ,iBAAiB,SAAyB;AAEhD,WAAO,QACJ,YAAY,EACZ,QAAQ,YAAY,EAAE,EACtB,QAAQ,SAAS,EAAE,EACnB,QAAQ,SAAS,EAAE,EACnB,QAAQ,UAAU,EAAE,EACpB,QAAQ,UAAU,EAAE,EACpB,QAAQ,oBAAoB,EAAE,EAC9B,QAAQ,aAAa,EAAE,EACvB,KAAK;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,SAAoC;AAClD,UAAM,eAAe,KAAK,iBAAiB,OAAO;AAGlD,QAAI,KAAK,KAAK,OAAO,YAAY,GAAG;AAClC,YAAM,SAAS,KAAK,KAAK,OAAO,YAAY;AAC5C,UAAI,CAAC,KAAK,eAAe,MAAM,GAAG;AAChC,YAAI,KAAK,gDAAgD,OAAO,EAAE;AAClE,eAAO;AAAA,MACT;AACA,UAAI,KAAK,oCAAoC,OAAO,gBAAgB;AAAA,IACtE;AAGA,eAAW,CAAC,SAAS,YAAY,KAAK,OAAO,QAAQ,YAAY,GAAG;AAClE,UAAI,aAAa,SAAS,OAAO,GAAG;AAClC,YAAI,KAAK,+CAA+C,OAAO,EAAE;AACjE,cAAM,OAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,GAAG;AAAA,UACH,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,QACpC;AACA,aAAK,KAAK,OAAO,YAAY,IAAI;AACjC,aAAK,aAAa;AAClB,eAAO;AAAA,MACT;AAAA,IACF;AAGA,QAAI,KAAK,iDAAiD,OAAO,EAAE;AACnE,WAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS;AAAA,IACX;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,SAAiB,cAAsE;AACrG,UAAM,eAAe,KAAK,iBAAiB,OAAO;AAClD,UAAM,OAA0B;AAAA,MAC9B,GAAG;AAAA,MACH,SAAS;AAAA,MACT,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,IACpC;AACA,SAAK,KAAK,OAAO,YAAY,IAAI;AACjC,SAAK,aAAa;AAClB,QAAI,KAAK,0CAA0C,OAAO,EAAE;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,sBAAsB,SAAiB,oBAIrC;AACA,UAAM,OAAO,KAAK,gBAAgB,OAAO;AAGzC,UAAM,oBACJ,OAAO,uBAAuB,YAC9B,OAAO,SAAS,kBAAkB,KAClC,OAAO,UAAU,kBAAkB,KACnC,sBAAsB,OAClB,qBACA;AACN,UAAM,yBAAyB,qBAAqB,KAAK,IAAI,MAAM,KAAK,MAAM,KAAK,aAAa,CAAC;AAIjG,UAAM,iBAAiB,KAAK,IAAI,KAAM,KAAK,MAAM,yBAAyB,EAAE,CAAC;AAC7E,UAAM,iBAAiB,KAAK,IAAI,KAAK,KAAK,MAAM,yBAAyB,CAAC,CAAC;AAC3E,UAAM,kBAAkB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,yBAAyB,iBAAiB,cAAc,CAAC;AAG3G,QAAI,eAAe,KAAK;AAGxB,QAAI,yBAAyB,OAAO;AAClC,qBAAe,KAAK,IAAI,KAAK,MAAM,yBAAyB,CAAC,GAAG,KAAK;AAAA,IACvE;AAGA,mBAAe,KAAK,IAAI,cAAc,KAAK,MAAM,yBAAyB,CAAC,CAAC;AAG5E,UAAM,kBAAkB,KAAK,IAAI,GAAG,yBAAyB,iBAAiB,cAAc;AAC5F,mBAAe,KAAK,IAAI,iBAAiB,KAAK,IAAI,iBAAiB,YAAY,CAAC;AAEhF,UAAM,oBAAoB,KAAK;AAAA,MAC7B;AAAA,MACA,yBAAyB,eAAe;AAAA,IAC1C;AAGA,UAAM,gBAAgB,KAAK,IAAI,GAAG,KAAK,MAAM,oBAAoB,GAAG,CAAC;AAErE,UAAM,SAAS,oBAAoB,kBAAkB,KAAK;AAC1D,WAAO;AAAA,MACL;AAAA,MACA,iBAAiB;AAAA,MACjB,aAAa,GAAG,KAAK,OAAO,KAAK,uBAAuB,eAAe,CAAC,aAAa,MAAM,YAAY,cAAc,eAAe,CAAC,kBAAkB,YAAY;AAAA,IACrK;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBAAqB,SAAmC;AAG5D,QAAI,KAAK,+DAA+D,OAAO,EAAE;AACjF,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAuB;AACrB,WAAO,OAAO,KAAK,KAAK,KAAK,MAAM;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,eAAuB;AACrB,UAAM,SAAS,OAAO,KAAK,KAAK,KAAK,MAAM,EAAE;AAC7C,SAAK,KAAK,SAAS,OAAO;AAAA,MACxB,OAAO,QAAQ,KAAK,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,eAAe,IAAI,CAAC;AAAA,IACnF;AACA,UAAM,QAAQ,OAAO,KAAK,KAAK,KAAK,MAAM,EAAE;AAC5C,UAAM,UAAU,SAAS;AACzB,QAAI,UAAU,GAAG;AACf,WAAK,aAAa;AAClB,UAAI,KAAK,0BAA0B,OAAO,kBAAkB;AAAA,IAC9D;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-S4DDLTPX.js";
9
9
  import {
10
10
  ModelRegistry
11
- } from "./chunk-WLZYGLJ4.js";
11
+ } from "./chunk-5MA7ZLPD.js";
12
12
  import {
13
13
  LocalLlmClient
14
14
  } from "./chunk-62JTOLEX.js";
@@ -798,4 +798,4 @@ export {
798
798
  summarizeHourlyStatus,
799
799
  HourlySummarizer
800
800
  };
801
- //# sourceMappingURL=chunk-XOLVM3AT.js.map
801
+ //# sourceMappingURL=chunk-5WXJE5TV.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportCreateGrantRequestSchema,
3
3
  defineOperation
4
- } from "./chunk-WD32KTVI.js";
4
+ } from "./chunk-2ZVSQPAA.js";
5
5
  import {
6
6
  SupportPassportCardCategorySchema,
7
7
  SupportPassportMemoryIdSchema,
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
220
220
  result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
221
221
  })
222
222
  });
223
- //# sourceMappingURL=chunk-2C5Z7CWB.js.map
223
+ //# sourceMappingURL=chunk-6YTL3JYX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-G4WZDQ32.js";
4
+ } from "./chunk-3NG5OOCX.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-F4PEETM4.js.map
1476
+ //# sourceMappingURL=chunk-755VRFBS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-5QZHDS4X.js";
3
+ } from "./chunk-LI4IWBLN.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-HNOKNHFO.js.map
256
+ //# sourceMappingURL=chunk-7L747CFR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  reportSearchDegradation
3
- } from "./chunk-U2VDCFXW.js";
3
+ } from "./chunk-G26YNEOC.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -121,4 +121,4 @@ var RemoteSearchBackend = class {
121
121
  export {
122
122
  RemoteSearchBackend
123
123
  };
124
- //# sourceMappingURL=chunk-WPGR3RW4.js.map
124
+ //# sourceMappingURL=chunk-7VO6E5UD.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-5QZHDS4X.js";
6
+ } from "./chunk-LI4IWBLN.js";
7
7
  import {
8
8
  bumpMemoryCorpusVersionForDir
9
9
  } from "./chunk-XCB6QDL6.js";
@@ -765,4 +765,4 @@ export {
765
765
  listMemoryGovernanceRuns,
766
766
  readMemoryGovernanceRunArtifact
767
767
  };
768
- //# sourceMappingURL=chunk-LMLPLIT4.js.map
768
+ //# sourceMappingURL=chunk-AQ6IBVFQ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportError,
3
3
  getOperation
4
- } from "./chunk-WD32KTVI.js";
4
+ } from "./chunk-2ZVSQPAA.js";
5
5
  import {
6
6
  abortError,
7
7
  isAbortError
@@ -499,4 +499,4 @@ export {
499
499
  buildSupportPassportPublicRequestHandler,
500
500
  composeSupportPassportExternalRequestHandlers
501
501
  };
502
- //# sourceMappingURL=chunk-XN4CPSCN.js.map
502
+ //# sourceMappingURL=chunk-B2JE56NB.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DBB5JPSL.js";
4
4
  import {
5
5
  isGenericRecallExcludedPath
6
- } from "./chunk-TYP7GYRI.js";
6
+ } from "./chunk-SB4ZWVKI.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-L4WBADKG.js.map
72
+ //# sourceMappingURL=chunk-B5EZWPSM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-5QZHDS4X.js";
3
+ } from "./chunk-LI4IWBLN.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-EIU642TN.js.map
202
+ //# sourceMappingURL=chunk-BE4GMH45.js.map
@@ -42,12 +42,6 @@ var ProfilingCollector = class {
42
42
  this.enabled = config.enabled;
43
43
  this.storageDir = config.storageDir;
44
44
  this.maxTraces = Math.max(0, config.maxTraces);
45
- if (this.enabled) {
46
- if (!existsSync(this.storageDir)) {
47
- mkdirSync(this.storageDir, { recursive: true });
48
- log.debug(`profiling: created storage dir ${this.storageDir}`);
49
- }
50
- }
51
45
  }
52
46
  get isEnabled() {
53
47
  return this.enabled;
@@ -224,6 +218,10 @@ var ProfilingCollector = class {
224
218
  const filename = `${trace.kind}-${trace.traceId}.jsonl`;
225
219
  const filepath = join(this.storageDir, filename);
226
220
  try {
221
+ if (!existsSync(this.storageDir)) {
222
+ mkdirSync(this.storageDir, { recursive: true });
223
+ log.debug(`profiling: created storage dir ${this.storageDir}`);
224
+ }
227
225
  writeFileSync(filepath, JSON.stringify(trace) + "\n", "utf-8");
228
226
  log.debug(`profiling: persisted ${filename}`);
229
227
  } catch (err) {
@@ -308,4 +306,4 @@ export {
308
306
  ProfilingCollector,
309
307
  formatProfileTraceAscii
310
308
  };
311
- //# sourceMappingURL=chunk-NLE6TSLG.js.map
309
+ //# sourceMappingURL=chunk-BLVHDY2U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/profiling.ts"],"sourcesContent":["// Performance profiling collector for recall and extraction traces.\n// Zero external dependencies — uses only node:fs and node:path.\n\nimport {\n existsSync,\n mkdirSync,\n writeFileSync,\n promises as fsp,\n} from \"node:fs\";\nimport { join } from \"node:path\";\n\nimport { log } from \"./logger.js\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface ProfileSpan {\n name: string;\n startOffsetMs: number;\n durationMs: number;\n}\n\nexport interface ProfileParallelGroupMember {\n name: string;\n durationMs: number;\n resolvedIndex: number;\n}\n\nexport interface ProfileParallelGroup {\n name: string;\n startOffsetMs: number;\n wallMs: number;\n members: ProfileParallelGroupMember[];\n}\n\nexport interface ProfileTrace {\n ts: string;\n kind: \"recall\" | \"extraction\";\n traceId: string;\n sessionKey?: string;\n totalMs: number;\n spans: ProfileSpan[];\n parallelGroups?: ProfileParallelGroup[];\n configSnapshot?: Record<string, unknown>;\n}\n\nexport interface ProfilingConfig {\n enabled: boolean;\n storageDir: string;\n maxTraces: number;\n}\n\nexport interface ParallelGroupHandle {\n name: string;\n startOffsetMs: number;\n traceId?: string;\n}\n\nexport interface ProfilingStats {\n byKind: Record<string, { count: number; avgMs: number; p50Ms: number; p95Ms: number; maxMs: number }>;\n bySpan: Record<string, { count: number; avgMs: number; p50Ms: number; p95Ms: number; maxMs: number }>;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction percentile(sorted: number[], p: number): number {\n if (sorted.length === 0) return 0;\n const idx = Math.ceil((p / 100) * sorted.length) - 1;\n return sorted[Math.max(0, Math.min(idx, sorted.length - 1))];\n}\n\nfunction aggregateStats(values: number[]): { count: number; avgMs: number; p50Ms: number; p95Ms: number; maxMs: number } {\n const count = values.length;\n if (count === 0) return { count: 0, avgMs: 0, p50Ms: 0, p95Ms: 0, maxMs: 0 };\n const sorted = [...values].sort((a, b) => a - b);\n const sum = sorted.reduce((s, v) => s + v, 0);\n return {\n count,\n avgMs: Math.round(sum / count),\n p50Ms: Math.round(percentile(sorted, 50)),\n p95Ms: Math.round(percentile(sorted, 95)),\n maxMs: sorted[sorted.length - 1],\n };\n}\n\nlet traceCounter = 0;\n\n// ---------------------------------------------------------------------------\n// ProfilingCollector\n// ---------------------------------------------------------------------------\n\nexport class ProfilingCollector {\n private enabled: boolean;\n private storageDir: string;\n private maxTraces: number;\n private traces: ProfileTrace[] = [];\n private prunePromise: Promise<void> | null = null;\n\n // Active trace state — keyed by traceId so concurrent pipelines are isolated.\n private activeTraces = new Map<\n string,\n {\n kind: \"recall\" | \"extraction\";\n start: number;\n sessionKey?: string;\n configSnapshot?: Record<string, unknown>;\n spans: ProfileSpan[];\n spanStarts: Map<string, number>;\n parallelGroups: ProfileParallelGroup[];\n }\n >();\n private latestTraceId = \"\";\n\n constructor(config: ProfilingConfig) {\n this.enabled = config.enabled;\n this.storageDir = config.storageDir;\n this.maxTraces = Math.max(0, config.maxTraces);\n }\n\n get isEnabled(): boolean {\n return this.enabled;\n }\n\n // ---- Trace lifecycle ---------------------------------------------------\n\n startTrace(kind: \"recall\" | \"extraction\", sessionKey?: string, configSnapshot?: Record<string, unknown>): string {\n if (!this.enabled) return \"\";\n traceCounter++;\n const traceId = `t${traceCounter}-${Date.now().toString(36)}`;\n this.activeTraces.set(traceId, {\n kind,\n start: Date.now(),\n sessionKey,\n configSnapshot,\n spans: [],\n spanStarts: new Map(),\n parallelGroups: [],\n });\n this.latestTraceId = traceId;\n log.debug(`profiling: started trace ${traceId} kind=${kind}`);\n return traceId;\n }\n\n startSpan(name: string, traceId?: string): void {\n const tid = traceId ?? this.latestTraceId;\n const t = tid ? this.activeTraces.get(tid) : undefined;\n if (!t) return;\n const offset = Date.now() - t.start;\n t.spanStarts.set(name, Date.now());\n log.debug(`profiling: span ${name} started at +${offset}ms (trace=${tid})`);\n }\n\n endSpan(name: string, traceId?: string): void {\n const tid = traceId ?? this.latestTraceId;\n const t = tid ? this.activeTraces.get(tid) : undefined;\n if (!t) return;\n const start = t.spanStarts.get(name);\n if (start === undefined) return;\n const duration = Date.now() - start;\n const startOffset = start - t.start;\n t.spans.push({ name, startOffsetMs: startOffset, durationMs: duration });\n t.spanStarts.delete(name);\n log.debug(`profiling: span ${name} ended ${duration}ms (trace=${tid})`);\n }\n\n endTrace(traceId?: string): ProfileTrace | null {\n const tid = traceId ?? this.latestTraceId;\n const t = tid ? this.activeTraces.get(tid) : undefined;\n if (!t) return null;\n\n // Auto-close any spans still open when the trace finalizes.\n const now = Date.now();\n for (const [name, start] of t.spanStarts) {\n const duration = now - start;\n const startOffset = start - t.start;\n t.spans.push({ name, startOffsetMs: startOffset, durationMs: duration });\n log.debug(`profiling: auto-closed span ${name} at trace end (${duration}ms, trace=${tid})`);\n }\n t.spanStarts.clear();\n\n const trace: ProfileTrace = {\n ts: new Date().toISOString(),\n kind: t.kind,\n traceId: tid,\n totalMs: Date.now() - t.start,\n spans: t.spans,\n configSnapshot: t.configSnapshot,\n };\n\n if (t.sessionKey) {\n trace.sessionKey = t.sessionKey;\n }\n if (t.parallelGroups.length > 0) {\n trace.parallelGroups = t.parallelGroups;\n }\n\n // Remove from active map.\n this.activeTraces.delete(tid);\n\n if (!this.enabled) {\n log.debug(\"profiling: trace discarded (disabled)\");\n return null;\n }\n\n // Persist.\n this.persistTrace(trace);\n\n // Buffer in memory (FIFO).\n this.traces.push(trace);\n if (this.traces.length > this.maxTraces) {\n this.traces.shift();\n }\n\n // Single-flight: if a prune is already running, piggyback on it;\n // otherwise start one. This prevents concurrent prunes from racing\n // on stale directory snapshots.\n if (!this.prunePromise) {\n this.prunePromise = this.pruneFiles().finally(() => {\n this.prunePromise = null;\n });\n }\n log.debug(`profiling: trace ${trace.traceId} finalized totalMs=${trace.totalMs}`);\n return trace;\n }\n\n // ---- Parallel group tracking -------------------------------------------\n\n startParallelGroup(name: string, traceId?: string): ParallelGroupHandle {\n const tid = traceId ?? this.latestTraceId;\n const t = tid ? this.activeTraces.get(tid) : undefined;\n const startOffsetMs = t ? Date.now() - t.start : 0;\n return { name, startOffsetMs, traceId: tid };\n }\n\n async endParallelGroup(\n handle: ParallelGroupHandle,\n members: Array<{ name: string; promise: Promise<unknown> }>,\n ): Promise<void> {\n const wallStart = Date.now();\n\n let nextResolvedIndex = 0;\n const resolutionOrder = new Map<string, number>();\n\n const timed = members.map(async (m) => {\n const t0 = Date.now();\n try {\n await m.promise;\n } catch {\n // settled — still record order\n }\n resolutionOrder.set(m.name, nextResolvedIndex++);\n return { name: m.name, durationMs: Date.now() - t0 };\n });\n const timedResults = await Promise.allSettled(timed);\n\n const tid = handle.traceId ?? this.latestTraceId;\n const t = tid ? this.activeTraces.get(tid) : undefined;\n if (!t) return;\n\n const wallMs = Date.now() - wallStart;\n\n const groupMembers: ProfileParallelGroupMember[] = members.map((m, i) => {\n const timedResult = timedResults[i].status === \"fulfilled\"\n ? timedResults[i].value\n : { name: m.name, durationMs: wallMs };\n return {\n name: timedResult.name,\n durationMs: timedResult.durationMs,\n resolvedIndex: resolutionOrder.get(m.name) ?? i,\n };\n });\n\n t.parallelGroups.push({\n name: handle.name,\n startOffsetMs: handle.startOffsetMs,\n wallMs,\n members: groupMembers,\n });\n\n log.debug(`profiling: parallel group ${handle.name} wallMs=${wallMs} (trace=${tid})`);\n }\n\n // ---- Query methods -----------------------------------------------------\n\n getRecentTraces(limit?: number): ProfileTrace[] {\n if (limit === undefined || limit === Infinity) {\n return [...this.traces];\n }\n if (!Number.isFinite(limit)) {\n return [];\n }\n const n = Math.floor(limit);\n if (n <= 0) {\n return [];\n }\n return this.traces.slice(-n);\n }\n\n getStats(): ProfilingStats {\n const byKind: Record<string, number[]> = {};\n const bySpan: Record<string, number[]> = {};\n\n for (const trace of this.traces) {\n if (!byKind[trace.kind]) byKind[trace.kind] = [];\n byKind[trace.kind].push(trace.totalMs);\n\n for (const span of trace.spans) {\n if (!bySpan[span.name]) bySpan[span.name] = [];\n bySpan[span.name].push(span.durationMs);\n }\n }\n\n const result: ProfilingStats = { byKind: {}, bySpan: {} };\n for (const [k, v] of Object.entries(byKind)) {\n result.byKind[k] = aggregateStats(v);\n }\n for (const [k, v] of Object.entries(bySpan)) {\n result.bySpan[k] = aggregateStats(v);\n }\n return result;\n }\n\n identifyBottleneck(): string | null {\n if (this.traces.length === 0) return null;\n const latest = this.traces[this.traces.length - 1];\n if (latest.spans.length === 0) return null;\n let slowest = latest.spans[0];\n for (const span of latest.spans) {\n if (span.durationMs > slowest.durationMs) slowest = span;\n }\n return slowest.name;\n }\n\n // ---- Persistence -------------------------------------------------------\n\n private persistTrace(trace: ProfileTrace): void {\n const filename = `${trace.kind}-${trace.traceId}.jsonl`;\n const filepath = join(this.storageDir, filename);\n try {\n // Created on first persist, never at construction: constructing a\n // collector (plugin registration, a discovery pass, CLI metadata) must\n // not touch the operator's memory dir when no trace is ever written.\n if (!existsSync(this.storageDir)) {\n mkdirSync(this.storageDir, { recursive: true });\n log.debug(`profiling: created storage dir ${this.storageDir}`);\n }\n writeFileSync(filepath, JSON.stringify(trace) + \"\\n\", \"utf-8\");\n log.debug(`profiling: persisted ${filename}`);\n } catch (err) {\n log.warn(`profiling: failed to persist ${filename}`, err);\n }\n }\n\n async pruneFiles(): Promise<void> {\n try {\n const dir = this.storageDir;\n const entries = await fsp.readdir(dir);\n const jsonlFiles = entries.filter((f) => f.endsWith(\".jsonl\"));\n const withMtime = await Promise.all(\n jsonlFiles.map(async (f) => ({\n name: f,\n mtime: (await fsp.stat(join(dir, f))).mtimeMs,\n })),\n );\n const files = withMtime.sort((a, b) => a.mtime - b.mtime).map((f) => f.name);\n\n while (files.length > this.maxTraces) {\n const oldest = files.shift()!;\n await fsp.unlink(join(dir, oldest));\n log.debug(`profiling: pruned ${oldest}`);\n }\n } catch (err) {\n log.warn(\"profiling: prune failed\", err);\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// ASCII formatter\n// ---------------------------------------------------------------------------\n\nexport function formatProfileTraceAscii(trace: ProfileTrace): string {\n const lines: string[] = [];\n const BAR_WIDTH = 40;\n\n lines.push(`=== Profile: ${trace.kind} ===`);\n lines.push(`Trace ID : ${trace.traceId}`);\n lines.push(`Total : ${trace.totalMs}ms`);\n if (trace.sessionKey) lines.push(`Session : ${trace.sessionKey}`);\n lines.push(\"\");\n\n // Identify bottleneck.\n let bottleneckName: string | null = null;\n if (trace.spans.length > 0) {\n let slowest = trace.spans[0];\n for (const s of trace.spans) {\n if (s.durationMs > slowest.durationMs) slowest = s;\n }\n bottleneckName = slowest.name;\n }\n\n // Spans.\n if (trace.spans.length > 0) {\n const maxDuration = Math.max(...trace.spans.map((s) => s.durationMs), 1);\n lines.push(\"Spans:\");\n for (const span of trace.spans) {\n const barLen = Math.max(1, Math.round((span.durationMs / maxDuration) * BAR_WIDTH));\n const bar = \"\\u2588\".repeat(barLen);\n const suffix = span.name === bottleneckName ? \" \\u2190 bottleneck\" : \"\";\n lines.push(` ${span.name.padEnd(30)} ${String(span.durationMs).padStart(6)}ms ${bar}${suffix}`);\n }\n lines.push(\"\");\n }\n\n // Parallel groups.\n if (trace.parallelGroups && trace.parallelGroups.length > 0) {\n lines.push(\"Parallel Groups:\");\n for (const group of trace.parallelGroups) {\n lines.push(` ${group.name}:`);\n lines.push(` Wall time : ${group.wallMs}ms`);\n const efficiency = parallelEfficiency(group);\n if (efficiency !== null) {\n lines.push(` Efficiency : ${efficiency}%`);\n }\n for (const member of group.members) {\n lines.push(` [${String(member.resolvedIndex).padStart(2)}] ${member.name.padEnd(28)} ${String(member.durationMs).padStart(6)}ms`);\n }\n }\n lines.push(\"\");\n }\n\n lines.push(\"---\");\n return lines.join(\"\\n\");\n}\n\nfunction parallelEfficiency(group: ProfileParallelGroup): number | null {\n if (group.members.length <= 1) return null;\n const idealMs = Math.max(...group.members.map((m) => m.durationMs));\n if (group.wallMs === 0) return null;\n return Math.round((idealMs / group.wallMs) * 100);\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-NRVGODSE.js";
3
+ } from "./chunk-EK4MOTHM.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -508,4 +508,4 @@ export {
508
508
  NamespaceSearchRouter,
509
509
  normalizeQmdResultPath
510
510
  };
511
- //# sourceMappingURL=chunk-JTTLH646.js.map
511
+ //# sourceMappingURL=chunk-C2W6JKQQ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-6ET2VII7.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-5QZHDS4X.js";
10
+ } from "./chunk-LI4IWBLN.js";
11
11
  import {
12
12
  parseContinuityImprovementLoops
13
13
  } from "./chunk-LDXUBPMO.js";
@@ -1283,4 +1283,4 @@ export {
1283
1283
  defaultTierMigrationCycleBudget,
1284
1284
  CompoundingEngine
1285
1285
  };
1286
- //# sourceMappingURL=chunk-FG5QU7A2.js.map
1286
+ //# sourceMappingURL=chunk-CFCAFAJC.js.map