@makaio/framework 1.0.0-dev-1781117225170 → 1.0.0-dev-1781260968078

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 (315) hide show
  1. package/README.md +29 -0
  2. package/dist/.makaio-build.json +2 -2
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/config/index.mjs +1 -1
  5. package/dist/adapters/index.d.mts +3 -3
  6. package/dist/adapters/index.mjs +1 -1
  7. package/dist/adapters/node.d.mts +1 -1
  8. package/dist/adapters/node.mjs +1 -1
  9. package/dist/bus/index.mjs +1 -1
  10. package/dist/client-BJVDImPV.d.mts +175 -0
  11. package/dist/clients/index.d.mts +105 -2
  12. package/dist/clients/index.mjs +2 -2
  13. package/dist/contracts/adapter/index.d.mts +2 -2
  14. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  15. package/dist/contracts/artifact/index.d.mts +1 -1
  16. package/dist/contracts/client/index.d.mts +2 -2
  17. package/dist/contracts/common/index.d.mts +1 -1
  18. package/dist/contracts/config/index.d.mts +1 -1
  19. package/dist/contracts/extension/index.d.mts +4 -4
  20. package/dist/contracts/extension/index.mjs +1 -1
  21. package/dist/contracts/facet/index.d.mts +1 -1
  22. package/dist/contracts/harness/index.d.mts +1 -1
  23. package/dist/contracts/host/index.d.mts +1 -1
  24. package/dist/contracts/index.d.mts +575 -62
  25. package/dist/contracts/index.mjs +1 -1
  26. package/dist/contracts/materialization/index.d.mts +3 -3
  27. package/dist/contracts/model-registry/index.d.mts +1 -1
  28. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  29. package/dist/contracts/platform/index.d.mts +1 -1
  30. package/dist/contracts/provider/index.d.mts +2 -2
  31. package/dist/contracts/session/index.d.mts +2 -2
  32. package/dist/contracts/shared/index.d.mts +1 -1
  33. package/dist/contracts/skill/index.d.mts +1 -1
  34. package/dist/contracts/telemetry/index.d.mts +1 -1
  35. package/dist/contracts/timeout/index.d.mts +1 -1
  36. package/dist/contracts/variant/index.d.mts +1 -1
  37. package/dist/{definition-Cp-5xJp_.d.mts → definition-SiimP25_.d.mts} +1 -1
  38. package/dist/{detached-extension-handle-oXbjv1tA.mjs → detached-extension-handle-Diiwgm13.mjs} +1 -1
  39. package/dist/drizzle/0001_messages_content_tsv.na.md +18 -0
  40. package/dist/drizzle/0012_legal_kate_bishop.sql +3 -0
  41. package/dist/drizzle/0013_eager_rhodey.sql +56 -0
  42. package/dist/drizzle/0014_fancy_ultimo.sql +1 -0
  43. package/dist/drizzle/meta/0012_snapshot.json +2934 -0
  44. package/dist/drizzle/meta/0013_snapshot.json +2954 -0
  45. package/dist/drizzle/meta/0014_snapshot.json +2959 -0
  46. package/dist/drizzle/meta/_journal.json +21 -0
  47. package/dist/drizzle-wjquQK2m.mjs +1 -0
  48. package/dist/extension-DfNcE0zm.mjs +1 -0
  49. package/dist/extension-ZBN4BGre.mjs +1 -0
  50. package/dist/{filesystem-service-CBJT7A5w.mjs → filesystem-service-BjfrUmGS.mjs} +1 -1
  51. package/dist/{globby-C0lgTOUl.mjs → globby-BIH65cbN.mjs} +1 -1
  52. package/dist/handler-DSfSAlxx.mjs +1 -0
  53. package/dist/handlers-C8EtpSqK.mjs +41 -0
  54. package/dist/{index-DfUBcVtG.d.mts → index-B2xbnMZe.d.mts} +1 -1
  55. package/dist/{index-uQl_1wQO.d.mts → index-BAhJKQLX.d.mts} +8 -8
  56. package/dist/{index-i7o6FtS0.d.mts → index-BDRKAxIV.d.mts} +129 -2
  57. package/dist/{index-kLBWooVu.d.mts → index-BQiHs8EF.d.mts} +12 -12
  58. package/dist/{index-SFkbbDxs.d.mts → index-BYkOUd0x.d.mts} +1 -1
  59. package/dist/{index-C1uZLARQ.d.mts → index-BvSyOgTY.d.mts} +1314 -46
  60. package/dist/{index-Bw8SkcWG.d.mts → index-Bw_zL7Rs.d.mts} +1 -1
  61. package/dist/{index-CXfWW8cP.d.mts → index-CARxIllg.d.mts} +7 -7
  62. package/dist/{index-t9Vt4Jbb.d.mts → index-Cb64d5c5.d.mts} +6 -6
  63. package/dist/{index-hWzUQtDn.d.mts → index-CgjslA5-.d.mts} +92 -19
  64. package/dist/{index-ClgVA8Rz.d.mts → index-D5CI1V5d.d.mts} +22 -22
  65. package/dist/{index-BY-fz0Jy.d.mts → index-DDQkhhRo.d.mts} +149 -141
  66. package/dist/{index-v2kRZnfw2.d.mts → index-DTdqGAfH2.d.mts} +20 -10
  67. package/dist/{index-CT-zFurA.d.mts → index-Drz_a7kW.d.mts} +1 -1
  68. package/dist/{index-BELri1Hy.d.mts → index-IekAD8Gp.d.mts} +8 -8
  69. package/dist/{index-C_jIVT40.d.mts → index-fVgKVvta.d.mts} +1 -1
  70. package/dist/kernel/cli/index.d.mts +2 -2
  71. package/dist/kernel/cli/register.d.mts +1 -1
  72. package/dist/kernel/extension/index.d.mts +1 -1
  73. package/dist/kernel/extension/index.mjs +1 -1
  74. package/dist/kernel/index.d.mts +5 -5
  75. package/dist/kernel/index.mjs +1 -1
  76. package/dist/kernel/namespace/index.d.mts +1 -1
  77. package/dist/kernel/observability/index.d.mts +1 -1
  78. package/dist/kernel/providers/index.d.mts +1 -1
  79. package/dist/kernel/window/index.d.mts +1 -1
  80. package/dist/{lib-zuQKc8ym.mjs → lib-Cq5R6Tx9.mjs} +1 -1
  81. package/dist/{lib-IkUYa2Qs.mjs → lib-nlcl5kRW.mjs} +1 -1
  82. package/dist/{load-extensions-DE8qDIqi.d.mts → load-extensions-D9nbDIiW.d.mts} +1 -1
  83. package/dist/{load-extensions-CwxilDj1.mjs → load-extensions-wELQ4BBN.mjs} +1 -1
  84. package/dist/mcp-http-server/index.mjs +1 -1
  85. package/dist/{namespace-CZPu_jvy.d.mts → namespace-7tsuJhQ9.d.mts} +66 -66
  86. package/dist/{namespace-ffepZB8Y.d.mts → namespace-B73Sxj5L.d.mts} +6 -6
  87. package/dist/{namespace-Da_dHfdm.d.mts → namespace-Ba4bxtHQ.d.mts} +11 -11
  88. package/dist/{namespace-DvHoeMUV.d.mts → namespace-DDCjoQUj.d.mts} +3 -3
  89. package/dist/namespace-DwE2g8Wm.mjs +1 -0
  90. package/dist/node/bus-server/index.d.mts +1 -1
  91. package/dist/node/bus-server/index.mjs +1 -1
  92. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  93. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  94. package/dist/{orchestrator-shared-FnWrPS09.mjs → orchestrator-shared-Dt4WDse7.mjs} +1 -1
  95. package/dist/package-Be2Ez4vv.mjs +1 -0
  96. package/dist/package.json +1 -1
  97. package/dist/primitive-runtime-Xrc9xh6p.mjs +1 -0
  98. package/dist/registry-RG-bkw3c.mjs +146 -0
  99. package/dist/rules/index.d.mts +1 -1
  100. package/dist/rules/index.mjs +1 -1
  101. package/dist/rules/schemas.d.mts +1 -1
  102. package/dist/runtime-bun/index.mjs +1 -1
  103. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  104. package/dist/runtime-node/extension-validation.d.mts +1 -1
  105. package/dist/runtime-node/extension-validation.mjs +1 -1
  106. package/dist/runtime-node/index.d.mts +59 -38
  107. package/dist/runtime-node/index.mjs +26 -53
  108. package/dist/runtime-node/makaio-config.d.mts +1 -1
  109. package/dist/runtime-node/makaio-config.mjs +1 -1
  110. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  111. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  112. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  113. package/dist/{schema-CfuF2cXW.d.mts → schema-BNrM9LWb.d.mts} +218 -12
  114. package/dist/schema-BerZmr2q.mjs +1 -0
  115. package/dist/schema-BrnYlDwZ.mjs +1 -0
  116. package/dist/{schemas-SPI-Y87l2.d.mts → schemas-DAFYpgHk2.d.mts} +12 -12
  117. package/dist/services/adapter-runtime/index.d.mts +3 -3
  118. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  119. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  120. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  121. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  122. package/dist/services/agent-runtime/index.d.mts +2 -2
  123. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  124. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  125. package/dist/services/capability/index.d.mts +1 -1
  126. package/dist/services/codebase/index.d.mts +2 -2
  127. package/dist/services/codebase/namespace.d.mts +1 -1
  128. package/dist/services/codebase/schemas.d.mts +1 -1
  129. package/dist/services/compression/index.d.mts +2 -2
  130. package/dist/services/compression/namespace.d.mts +1 -1
  131. package/dist/services/compression/schemas.d.mts +1 -1
  132. package/dist/services/context-rules/index.d.mts +4 -4
  133. package/dist/services/execution-target/index.d.mts +3 -3
  134. package/dist/services/execution-target/namespace.d.mts +1 -1
  135. package/dist/services/execution-target/schemas.d.mts +1 -1
  136. package/dist/services/filesystem/index.d.mts +1 -1
  137. package/dist/services/filesystem/index.mjs +1 -1
  138. package/dist/services/filesystem/namespace.d.mts +12 -12
  139. package/dist/services/filesystem/schemas.d.mts +6 -6
  140. package/dist/services/git/namespace.d.mts +2 -2
  141. package/dist/services/git/schemas.d.mts +2 -2
  142. package/dist/services/harness/index.d.mts +32 -20
  143. package/dist/services/harness/index.mjs +1 -1
  144. package/dist/services/harness/storage/schema.d.mts +60 -16
  145. package/dist/services/harness/storage/schema.mjs +1 -1
  146. package/dist/services/index.d.mts +73 -73
  147. package/dist/services/index.mjs +1 -1
  148. package/dist/services/log-import/browser.d.mts +2 -2
  149. package/dist/services/log-import/index.d.mts +7 -12
  150. package/dist/services/log-import/index.mjs +2 -2
  151. package/dist/services/log-import/log-import.d.mts +1 -1
  152. package/dist/services/log-import/namespace.d.mts +2 -2
  153. package/dist/services/log-import/schemas.d.mts +1 -1
  154. package/dist/services/model-registry/index.d.mts +1 -1
  155. package/dist/services/preferences/index.d.mts +2 -2
  156. package/dist/services/preferences/schemas.d.mts +1 -1
  157. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  158. package/dist/services/provider-context/index.d.mts +1 -1
  159. package/dist/services/session/handlers/index.d.mts +1 -1
  160. package/dist/services/session/handlers/index.mjs +1 -1
  161. package/dist/services/session/index.d.mts +10 -10
  162. package/dist/services/session/index.mjs +1 -1
  163. package/dist/services/session/messages/namespace.d.mts +1 -1
  164. package/dist/services/session/messages/namespace.mjs +1 -1
  165. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  166. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  167. package/dist/services/session/session-events/namespace.d.mts +1 -1
  168. package/dist/services/session/session-events/namespace.mjs +1 -1
  169. package/dist/services/session/storage/namespace.d.mts +1 -1
  170. package/dist/services/session/storage/schema.d.mts +2 -2
  171. package/dist/services/session/storage/schema.mjs +1 -1
  172. package/dist/services/session/testing/index.d.mts +18 -2
  173. package/dist/services/session/testing/index.mjs +52 -3
  174. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  175. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  176. package/dist/services/session/turns/namespace.d.mts +1 -1
  177. package/dist/services/session/turns/namespace.mjs +1 -1
  178. package/dist/services/session-editor/index.d.mts +1 -1
  179. package/dist/services/settings/index.d.mts +3 -3
  180. package/dist/services/settings/namespace.d.mts +12 -12
  181. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  182. package/dist/services/settings/storage/index.d.mts +3 -3
  183. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  184. package/dist/services/subagent/index.d.mts +1 -1
  185. package/dist/services/subagent-template/index.d.mts +2 -2
  186. package/dist/services/subagent-template/namespace.d.mts +1 -1
  187. package/dist/services/subagent-template/schemas.d.mts +1 -1
  188. package/dist/services/tool-approval/index.d.mts +1 -1
  189. package/dist/services/tool-approval/index.mjs +1 -1
  190. package/dist/services/tools/index.d.mts +1 -1
  191. package/dist/services/tools/index.mjs +1 -1
  192. package/dist/services/tray-menu/index.d.mts +3 -3
  193. package/dist/services/tray-menu/namespace.d.mts +1 -1
  194. package/dist/services/tray-menu/schemas.d.mts +1 -1
  195. package/dist/services/turn/index.d.mts +1 -1
  196. package/dist/services/turn/namespace.d.mts +1 -1
  197. package/dist/session-KnewDVxt.mjs +39 -0
  198. package/dist/{session-lineage-CxHc3_bm.d.mts → session-lineage-CXzV_hAP.d.mts} +1 -1
  199. package/dist/{src-DI5TcYUW.mjs → src-CBG3IHUl.mjs} +1 -1
  200. package/dist/storage/drizzle/client.d.mts +2 -78
  201. package/dist/storage/drizzle/client.mjs +1 -1
  202. package/dist/storage/drizzle/columns/postgres.d.mts +88 -0
  203. package/dist/storage/drizzle/columns/postgres.mjs +1 -0
  204. package/dist/storage/drizzle/columns/sqlite.d.mts +81 -0
  205. package/dist/storage/drizzle/columns/sqlite.mjs +1 -0
  206. package/dist/storage/drizzle/index.d.mts +976 -23
  207. package/dist/storage/drizzle/index.mjs +1 -1
  208. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  209. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  210. package/dist/storage/handlers/index.d.mts +1 -1
  211. package/dist/storage/handlers/index.mjs +1 -1
  212. package/dist/testing/drizzle-harness.d.mts +52 -6
  213. package/dist/testing/drizzle-harness.mjs +1 -1
  214. package/dist/testing/index.d.mts +34 -2
  215. package/dist/testing/index.mjs +1 -1
  216. package/dist/{tool-approval-service-BgNcJvKx.mjs → tool-approval-service-Cb2F1yT6.mjs} +1 -1
  217. package/dist/tools-D5DVHC-R.mjs +1 -0
  218. package/dist/{types-C5Uy3WEy.d.mts → types-D5IMwOkJ.d.mts} +1 -1
  219. package/dist/{types-CZHV05Lu.d.mts → types-DLVitCZP.d.mts} +51 -51
  220. package/dist/ui-kernel/index.d.mts +1 -1
  221. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  222. package/dist/workflow-engine/index.d.mts +482 -86
  223. package/dist/workflow-engine/index.mjs +1 -1
  224. package/dist/workflow-engine/package.d.mts +1 -1
  225. package/dist/workflow-engine/package.mjs +1 -1
  226. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  227. package/dist/{workflow-worker-hDaQzTBl.mjs → workflow-worker-CK9Sqj7D.mjs} +1 -1
  228. package/package.json +40 -1
  229. package/dist/drizzle-DpjZFY_j.mjs +0 -1
  230. package/dist/extension--5Q190u_.mjs +0 -1
  231. package/dist/extension-DFIZ3FCJ.mjs +0 -1
  232. package/dist/handlers-Bev7-xjL.mjs +0 -41
  233. package/dist/namespace-CDiM5Bcr.mjs +0 -1
  234. package/dist/namespace-h0HIuqx0.mjs +0 -1
  235. package/dist/package-C9wOiMK9.mjs +0 -1
  236. package/dist/primitive-runtime-1Z3JbRUj.mjs +0 -1
  237. package/dist/schema-DCJyzRHe.mjs +0 -1
  238. package/dist/schema-DOnJmAPw.mjs +0 -1
  239. package/dist/session-BnfsJoZi.mjs +0 -134
  240. package/dist/tools-B8d8Iqqx.mjs +0 -1
  241. package/dist/types-yTKQTAok.d.mts +0 -31
  242. /package/dist/{ajv-0JG5NFEd.mjs → ajv-BA2z5ztb.mjs} +0 -0
  243. /package/dist/{await-trigger-CHuOd5co.mjs → await-trigger-DREnXCEJ.mjs} +0 -0
  244. /package/dist/{base-orchestrator-D-S9v5VY.d.mts → base-orchestrator-M5mAB5-w.d.mts} +0 -0
  245. /package/dist/{cleanEnvForAdapter-BlpmyXYk.mjs → cleanEnvForAdapter-vZfPGi0X.mjs} +0 -0
  246. /package/dist/{clients-namespace-E97p_GKF.d.mts → clients-namespace-SFk7OTop.d.mts} +0 -0
  247. /package/dist/{config-namespace-R_34Wfps.d.mts → config-namespace-BzAvE2nY.d.mts} +0 -0
  248. /package/dist/{create-static-mount-B9Szo_7y.mjs → create-static-mount-BB1MIQ9J.mjs} +0 -0
  249. /package/dist/{cross-spawn-CTptpCy4.mjs → cross-spawn-BL6EvJBv.mjs} +0 -0
  250. /package/dist/{cursor-storage-YikwAZR5.mjs → cursor-storage-CmKjSvKY.mjs} +0 -0
  251. /package/dist/{definition-CYzWS2eR.d.mts → definition-BSghHJpQ.d.mts} +0 -0
  252. /package/dist/{definition-CvOuzWNT.d.mts → definition-q6iLw11H.d.mts} +0 -0
  253. /package/dist/{descriptor-to-package-9nrAH_D5.mjs → descriptor-to-package-CY8oc2gl.mjs} +0 -0
  254. /package/dist/{esm-CglYG5aA.mjs → esm-CQVFKEW5.mjs} +0 -0
  255. /package/dist/{extension-discovery-BD1-oNU_.d.mts → extension-discovery-CkV_VRdJ.d.mts} +0 -0
  256. /package/dist/{filesystem-service-BcwRp4k1.d.mts → filesystem-service-Ddngll0j.d.mts} +0 -0
  257. /package/dist/{index-DJQew2k-.d.mts → index-9IDJUJ4X.d.mts} +0 -0
  258. /package/dist/{index-CNYPKkyH.d.mts → index-BBvcP-P0.d.mts} +0 -0
  259. /package/dist/{index-BFaeVdsn2.d.mts → index-BKKNWqkP2.d.mts} +0 -0
  260. /package/dist/{index-Dn9Uum3F.d.mts → index-BMpRB6iE.d.mts} +0 -0
  261. /package/dist/{index-CdNDnxXR.d.mts → index-BbCjtc3h.d.mts} +0 -0
  262. /package/dist/{index-B6RGNugn.d.mts → index-BnQSPC6c.d.mts} +0 -0
  263. /package/dist/{index-DUPZKsd3.d.mts → index-BpXX9WZJ.d.mts} +0 -0
  264. /package/dist/{index-DUhXk_q6.d.mts → index-BpniJgxu.d.mts} +0 -0
  265. /package/dist/{index-ChG8ZUNP.d.mts → index-Bsp0O_sI.d.mts} +0 -0
  266. /package/dist/{index-CmGvjpUG.d.mts → index-BtztOqaF.d.mts} +0 -0
  267. /package/dist/{index-CF7dnqQj.d.mts → index-Buo9H8RK.d.mts} +0 -0
  268. /package/dist/{index-9KnLzPYu.d.mts → index-BxFA1XcP.d.mts} +0 -0
  269. /package/dist/{index-AZ4iLe7O2.d.mts → index-C33Tq1ei2.d.mts} +0 -0
  270. /package/dist/{index--0CnhN0g.d.mts → index-C6BhKRnH.d.mts} +0 -0
  271. /package/dist/{index-BV8rSmDZ.d.mts → index-CDU_s69P.d.mts} +0 -0
  272. /package/dist/{index-BDlpFEsp2.d.mts → index-CGJjA-hR2.d.mts} +0 -0
  273. /package/dist/{index-Dsu1tPHm.d.mts → index-CZ_TcT6J.d.mts} +0 -0
  274. /package/dist/{index-DNGUXQGC.d.mts → index-Cz9JMjZK.d.mts} +0 -0
  275. /package/dist/{index-C-YBGCCG.d.mts → index-D0SUjZmU.d.mts} +0 -0
  276. /package/dist/{index-yNb7G73-.d.mts → index-D6Iyvz9T.d.mts} +0 -0
  277. /package/dist/{index-ziQTLYUO.d.mts → index-DOfq0qqv.d.mts} +0 -0
  278. /package/dist/{index-BYxgW2i0.d.mts → index-DSV1aFgK.d.mts} +0 -0
  279. /package/dist/{index-Dbwm5Y-Q.d.mts → index-Dsq2zKvu.d.mts} +0 -0
  280. /package/dist/{jsonl-transport-DBHQgcIm.mjs → jsonl-transport-C21tpVfe.mjs} +0 -0
  281. /package/dist/{lib-CaOdTS9F.mjs → lib-CNOQJtgs.mjs} +0 -0
  282. /package/dist/{namespace-DnZ4rS6T2.d.mts → namespace-B60mn8J-2.d.mts} +0 -0
  283. /package/dist/{namespace-DfYutvMT.d.mts → namespace-BBVtD1gu.d.mts} +0 -0
  284. /package/dist/{namespace-BaJJxBsI.d.mts → namespace-CHMszppN.d.mts} +0 -0
  285. /package/dist/{namespace-uGw5nK6d.d.mts → namespace-CqUGzG53.d.mts} +0 -0
  286. /package/dist/{namespace-Dik_dNeE.d.mts → namespace-D1Iw_d1P.d.mts} +0 -0
  287. /package/dist/{namespace-13uMtVGj.d.mts → namespace-DRFJN-_z.d.mts} +0 -0
  288. /package/dist/{namespace-TfZGCy7N.d.mts → namespace-DzVf1hVH.d.mts} +0 -0
  289. /package/dist/{namespace-QTFnJWHC.d.mts → namespace-XTGCaSXj.d.mts} +0 -0
  290. /package/dist/{namespace-CTrNKkxY.d.mts → namespace-nlsvvMtD.d.mts} +0 -0
  291. /package/dist/{namespace-DkDvQJhB.d.mts → namespace-uuR0Fg5r.d.mts} +0 -0
  292. /package/dist/{orchestrator-shared-BZVeoRfr.d.mts → orchestrator-shared-D91Wk7z-.d.mts} +0 -0
  293. /package/dist/{out-CiFds_ap.mjs → out-C1JFb2Bp.mjs} +0 -0
  294. /package/dist/{package-B2HkKyRz.d.mts → package-BSnp1zOR.d.mts} +0 -0
  295. /package/dist/{providers-namespace-Cc9FQ-Zt.d.mts → providers-namespace-BqWYkydw.d.mts} +0 -0
  296. /package/dist/{schemas-BD-1NGmS.d.mts → schemas-B5ToLwIs.d.mts} +0 -0
  297. /package/dist/{schemas-Hy-lsBpg.d.mts → schemas-B77Gi8Xr.d.mts} +0 -0
  298. /package/dist/{schemas-BzK1I1eX.d.mts → schemas-C792eVAZ.d.mts} +0 -0
  299. /package/dist/{schemas-CYS6bkht.d.mts → schemas-Chyj6HuZ.d.mts} +0 -0
  300. /package/dist/{schemas-BiMxSTUx.d.mts → schemas-CkOSG2eJ.d.mts} +0 -0
  301. /package/dist/{schemas-DL_bGYyZ.d.mts → schemas-DZUaRcYl.d.mts} +0 -0
  302. /package/dist/{schemas-DdZwjeF0.d.mts → schemas-Dv5FxHDT.d.mts} +0 -0
  303. /package/dist/{schemas-CsjB6gel.d.mts → schemas-Dyk7JuVl.d.mts} +0 -0
  304. /package/dist/{schemas-DFWGb4uj.d.mts → schemas-Kq33MTPY.d.mts} +0 -0
  305. /package/dist/{schemas-BFeP62V4.d.mts → schemas-lqvZ6UpK.d.mts} +0 -0
  306. /package/dist/{server-lifecycle-DVAbXQzg.d.mts → server-lifecycle-47mygK3E.d.mts} +0 -0
  307. /package/dist/{server-lifecycle-JTFuSJhg.mjs → server-lifecycle-Cg47L59Q.mjs} +0 -0
  308. /package/dist/{src-4_2jBceX.mjs → src-DedDL9iv.mjs} +0 -0
  309. /package/dist/{storage-namespace-I30TaZP7.d.mts → storage-namespace-BXmMUd7a.d.mts} +0 -0
  310. /package/dist/{storage-namespace-definition-ZNBL3v2h.d.mts → storage-namespace-definition-C3XbpiP8.d.mts} +0 -0
  311. /package/dist/{types-11QnNmpW.d.mts → types-5Gw3iVpK.d.mts} +0 -0
  312. /package/dist/{types-BKNpS4Xw.d.mts → types-B0BtvVAq.d.mts} +0 -0
  313. /package/dist/{types-0u6hpELc.d.mts → types-BMpIa4fx.d.mts} +0 -0
  314. /package/dist/{types-BtMNh2FS.d.mts → types-D-bP8RRE.d.mts} +0 -0
  315. /package/dist/{window-registry-QD1rTk_f.d.mts → window-registry-CfEi_Ji4.d.mts} +0 -0
@@ -1,44 +1,17 @@
1
- import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../semver-DhHJv6Dt.mjs";import{RuntimeNamespace as i,RuntimeSubjects as a}from"./bus/runtime/namespace.mjs";import{ExplicitDescriptorDiscovery as o,FilesystemDescriptorDiscovery as s}from"./extension-discovery.mjs";import{MAKAIO_CONFIG_FILE_ENV as c,MAKAIO_HOME_ENV as l,buildConfiguredRuntimeOptions as u,createMakaioConfigDiscovery as d,defineMakaioConfig as f,loadMakaioConfig as p,parseMakaioConfig as m,resolveMakaioConfigPath as h,resolveMakaioHome as g,shouldIncludeExtension as _}from"./makaio-config.mjs";import{t as v}from"../descriptor-to-package-9nrAH_D5.mjs";import{a as y,c as b,i as x,n as S,o as C,r as w,s as T,t as E}from"../load-extensions-CwxilDj1.mjs";import{i as ee,o as te,r as ne,s as re,t as ie}from"../workflow-worker-hDaQzTBl.mjs";import{z as D}from"zod";import{execFile as ae}from"node:child_process";import{promisify as oe}from"node:util";import{fileURLToPath as se,pathToFileURL as ce}from"node:url";import*as O from"node:fs/promises";import*as k from"node:path";import A from"node:path";import*as le from"node:crypto";import{createHash as j,randomUUID as ue}from"node:crypto";import*as M from"node:fs";import{existsSync as de,readFileSync as fe}from"node:fs";import{createBusNamespace as pe}from"@makaio/framework/core";import{ChannelClosedError as me,MakaioBus as he,openChannel as ge,projectSubjectTelemetryFacts as _e}from"@makaio/framework/bus";import{AIModelSchema as ve,AdapterSubjects as ye,BUILT_IN_THIN_WORKFLOW_PROVIDER_ID as be,CapabilitySubjects as N,ConfigSchema as P,ConfigSubjects as xe,CredentialSubjects as Se,FrameworkContractNamespaces as Ce,FrameworkStorageNamespaces as we,ProviderDefinitionSchema as Te,SubjectTelemetrySubjects as Ee,extensionToken as De,isDetachedDescriptor as Oe,isUniversalRange as ke,registerWorkerNodeProvider as Ae,safeParseExtensionDescriptor as je,unregisterWorkerNodeProvider as Me,versionSatisfies as Ne}from"@makaio/framework/contracts";import{BaseService as Pe}from"@makaio/framework/service-base";import{integer as Fe,sqliteTable as Ie,text as F,uniqueIndex as Le}from"drizzle-orm/sqlite-core";import{and as Re,eq as I,sql as L}from"drizzle-orm";import{registerDrizzleHandlers as ze}from"@makaio/framework/storage/drizzle";import{ADAPTER_FILE_SCHEMA_VERSION as Be,AdapterFileSchema as Ve,PROVIDER_CONFIG_SCHEMA_VERSION as He,ProviderConfigFileSchema as Ue,brandCredentialRecord as We,isAccountManagerRef as Ge,parseStoredCredentialRef as Ke,resolveCanonicalProviderConfigName as qe,slugifyProviderConfigName as Je}from"@makaio/framework/contracts/config";import{resolveModelVisibility as Ye}from"@makaio/framework/contracts/provider";import{AdapterRuntimeSubjects as Xe,buildDeterministicAdapterId as Ze,registerAdapterRuntimeIdentityHandlers as Qe}from"@makaio/framework/services/adapter-runtime";import{buildProviderContext as $e}from"@makaio/framework/services/provider-context";import{ClientSubjects as et}from"@makaio/framework/contracts/client";import*as tt from"node:os";import{ProviderStorageSubjects as nt}from"@makaio/framework/services/settings/storage";import{isRecord as rt}from"@makaio/framework/utils";import{AdapterSubsystemSubjects as it,AdapterSubsystemSubjects as R}from"@makaio/framework/services/adapter-subsystem";import{createClientsCorePackage as at}from"@makaio/framework/clients";import{Readable as ot,Transform as st}from"node:stream";import{pipeline as ct}from"node:stream/promises";import{DispatchingAuth as lt,E2EAuth as ut,HmacAuth as dt,WebSocketClientTransport as ft}from"@makaio/framework/node/transports";import{createDatabaseClient as pt}from"@makaio/framework/storage/drizzle/client";import{BootNamespace as mt,ExtensionCoordinator as ht,ExtensionNamespace as gt,ExtensionSubjects as _t,KernelNamespace as vt,coalesceExtensionOverrides as yt,createShutdownSequence as bt,filterEligibleExtensions as xt}from"@makaio/framework/kernel";import{CachedRegistryFetcher as St,FallbackRegistryFetcher as Ct,ModelRegistryProviderNotFoundError as wt,ModelRegistrySchema as Tt,ModelRegistrySubjects as Et,ProviderModelOverrideSchema as Dt,mergeModelMetadata as Ot}from"@makaio/framework/services/model-registry";import{loadOrCreateMachineIdentity as kt,loadOrCreateMachineIdentity as At,machineKeysExist as jt,validateMachineKeys as Mt}from"@makaio/framework/node/machine-identity";import{resolveWorkspaceRoot as Nt}from"@makaio/framework/utils/workspace-root";import{Hono as Pt}from"hono";import{CliNamespace as Ft}from"@makaio/framework/kernel/cli";import{startBusServer as It}from"@makaio/framework/node/bus-server";import{WebSocketServer as Lt}from"ws";import{ConfigProvider as Rt}from"@makaio/framework/providers";import{KernelSubjects as z}from"@makaio/framework/kernel/namespace";import{FrameworkServicesCoreNamespaces as zt,SessionOrchestratorToken as Bt,createArtifactKindContributionProcessor as Vt,createArtifactLifecycleHookContributionProcessor as Ht,createFacetNamespaceContributionProcessor as Ut,createModelRegistryPackage as Wt,createSurfaceBindingContributionProcessor as Gt,createToolContributionProcessor as Kt,createTransitionContributionProcessor as qt,createWorkflowBlockContributionProcessor as Jt,frameworkCorePackages as Yt}from"@makaio/framework/services";import{createLogImportContributionProcessor as Xt,logImportRegistryPackage as Zt}from"@makaio/framework/services/log-import";import{createWorkflowEnginePackage as Qt}from"@makaio/framework/workflow-engine/package";import{PreferenceValueSchema as $t,PreferencesSubjects as en}from"@makaio/framework/services/preferences";import{resolveConnectorCredentials as tn,resolveCredentialRef as nn}from"@makaio/framework/adapters/config";import{DefinitionSubjects as rn}from"@makaio/framework/services/definition";import{ProviderRuntimeSubjects as an}from"@makaio/framework/services/provider-runtime";import{SettingsSubjects as on}from"@makaio/framework/services/settings/namespace";import{parseWorkspaceGlobs as sn}from"@makaio/framework/utils/workspace-packages";import{serveStatic as cn}from"@hono/node-server/serve-static";function ln(e){return e.on(ye.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(Xe.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function un(e){return e?{...e}:void 0}function dn(e){return e?{...e}:void 0}function fn(e){return e?structuredClone(e):void 0}function pn(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function mn(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function hn(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function gn(e,t,n){let r=pn(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await mn(e,t)}catch(t){try{await _n(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function _n(e,t){let n=[];for(let r of[...t].reverse())try{await hn(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function vn(e,t){let n=t.credentials!==void 0&&Object.keys(t.credentials).length>0,r=bn(t.credentials);return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,isSentinel:t.isSentinel??!1,hasCredentials:n,...r?{sourceRef:r}:{}}}function B(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function yn(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function bn(e){if(e){for(let t of Object.values(e))if(Ge(t))return t}}function xn(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function Sn(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=vn(i,a);t.set(i,e),n.set(Je(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=B(n,r.bindings),c=yn(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function Cn(e,t){return e.get(t)?.enabled??!1}function wn(e,t){return e.some(e=>Cn(t,e.providerConfigId))}function Tn(e,t){let n=e.find(e=>Cn(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function En(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>Cn(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}async function Dn(e,t,n){let{provider:r}=await e.request(nt.get,{id:n.definitionId});if(!r)throw Error(`ProviderDefinition '${n.definitionId}' not found for config '${t}'`);let i=await On(e,r),a={...r.endpoints??{},...n.endpointOverrides??{}},o=kn(i);return{providerConfigId:t,definitionId:r.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},credentialRefs:We(n.credentials)??{},...r.credentialEnvVars?{credentialEnvVars:{...r.credentialEnvVars}}:{},...o.length>0?{ambientCredentialEnvVars:o}:{}}}async function On(e,t){try{let n=await e.requestOptional(nt.list,{});return n.handled?n.data.providers:[t]}catch(e){return console.debug(`[AdapterSubsystem] Provider list unavailable for ambient credential discovery`,e),[t]}}function kn(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}var An=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},jn=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new An;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(N.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(N.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await gn(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=Sn(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getRawProviderConfig(e){return this.snapshot.providerConfigs.get(e)}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=Je(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:Be,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:fn(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??xn(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(N.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async buildProviderContext(e){let t=this.snapshot.providerConfigs.get(e);return t?Dn(this.bus,e,t):null}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=B(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=Tn(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return En(e,t,n)}};function Mn(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function Nn(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function Pn(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);Fn(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(ke(t.binaryVersion))return;let n=await r.requestOptional(et.resolveBinary,{clientId:t.id});if(!n.handled)throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`);let i=n.data.version;if(i===null)throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`);Fn(i,t.binaryVersion,`Adapter "${e}" client "${t.id}" binary version ${i}`)}))}function Fn(e,t,n){if(!Ne(e,t))throw Error(`${n} does not satisfy ${t}`)}function In(e){let t=Nn(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id)}}async function Ln(e){for(let[t,n]of e){let e=n;if(typeof e.shutdown==`function`)try{await e.shutdown()}catch(e){console.error(`[adapter-runtime] Error shutting down adapter ${t}:`,e)}}e.clear()}async function Rn(e,t,n){try{let e=t;typeof e.shutdown==`function`&&await e.shutdown()}finally{n.delete(e)}}async function zn(e,t){let{config:n}=await e.request(R.getAdapterConfig,{name:t});return n?.enabled??!1}function Bn(e,t){return e.options.adapterId??Ze(t,e.name)}async function Vn(e,t,n,r,i){let a=[];for(let o of n)try{if(!await zn(e,o.name)){console.info(`Skipping disabled adapter: ${o.name}`);continue}let n=Bn(o,t),a=Nn(o.options,o.clients),s=await o.factory({...o.options,adapterId:n,platformDefaults:i,definitionProviders:o.providers,clientId:a});if(s.adapterId!==n)throw Error(`Adapter '${o.name}' initialized with mismatched adapterId (expected '${n}', got '${s.adapterId}')`);r.set(n,s);let c=s;try{await e.emit(ye.initialized,{adapterId:n,adapterName:o.name,capabilities:[...c.capabilities??[]],...c.nativeTools===void 0?{}:{nativeTools:[...c.nativeTools]}})}catch(e){try{await Rn(n,s,r)}catch(e){console.error(`[adapter-runtime] Error rolling back adapter ${o.name}:`,e)}throw e}console.info(`Initialized adapter: ${o.name} (${o.packageName})`)}catch(e){a.push({adapterName:o.name,error:e})}if(a.length>0){let e=a.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}var Hn=class{bus;machineId;loadedAdapters=new Map;adapterInstances=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return this.adapterInstances}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(In)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n)throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`);this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(t){let n=t.options.adapterId??Ze(this.machineId,e),r=this.adapterInstances.get(n);if(r){let e=r;typeof e.shutdown==`function`&&await e.shutdown(),this.adapterInstances.delete(n)}}this.loadedAdapters.delete(e)}removePackageTracking(e){this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(t?.length){for(let e of t)try{await this.deregisterAdapter(e)}catch(t){console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}this.packageAdapters.delete(e)}}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterInstances.has(a),c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(R.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await Vn(this.bus,this.machineId,[e],this.adapterInstances,t)}async shutdownAll(){await Ln(this.adapterInstances),this.loadedAdapters.clear(),this.packageAdapters.clear()}},Un=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.resolveProviderConfigName(e.definitionId,e.name),n=Je(t),r=this.cloneCreateCredentialRefs(e),i=un(e.endpointOverrides),a=dn(e.modelVisibility),o=await this.configStore.commitSnapshotMutation(o=>{if(this.configStore.assertProviderConfigNameUnique(t),o.providerConfigs.has(n))throw Error(`Provider config already exists: ${n}`);o.providerConfigs.set(n,{$schema:He,definitionId:e.definitionId,name:t,credentials:r,endpointOverrides:i,modelVisibility:a,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:![...o.providerConfigs.values()].some(t=>t.definitionId===e.definitionId),enabled:!0,isSentinel:e.isSentinel??!1})},()=>this.configStore.requireProviderConfig(n,`creation`));return await this.bus.emit(R.providerConfig.created,o),{config:o}}async updateProviderConfig(e,t){let n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=t.name??r.name??r.definitionId;t.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,e),n.providerConfigs.set(e,{...r,name:i,endpointOverrides:t.endpointOverrides===null?void 0:t.endpointOverrides===void 0?r.endpointOverrides:un(t.endpointOverrides),modelVisibility:t.modelVisibility===void 0?r.modelVisibility:dn(t.modelVisibility),enabled:t.enabled??r.enabled})},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(R.providerConfig.updated,n),{config:n}}async setProviderConfigCredentialRefs(e,t){let n=this.normalizeCredentialRefs(t),r=await this.configStore.commitSnapshotMutation(t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);t.providerConfigs.set(e,{...r,credentials:n})},()=>this.configStore.requireProviderConfig(e,`credential update`));return await this.bus.emit(R.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.isSentinel){c.enabled&&(s.providerConfigs.set(e,{...c,enabled:!1}),n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`sentinel disable`):null);if(!t)return n&&await this.bus.emit(R.providerConfig.updated,s),{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(R.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(R.binding.defaultChanged,e);return await this.bus.emit(R.providerConfig.deleted,{id:e}),i&&await this.bus.emit(R.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(R.providerConfig.updated,n),await this.bus.emit(R.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(R.providerConfig.updated,r),{config:r}}normalizeCredentialRefs(e){if(!(!e||Object.keys(e).length===0))return We(e)}cloneCreateCredentialRefs(e){return this.normalizeCredentialRefs(e.credentialRefs)}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(Se.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=qe({requestedName:t,providerName:(await this.getProviderDefinitionOrThrow(e)).name,definitionId:e});if(n)return n;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(nt.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(nt.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=Ye(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},Wn=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=B(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!wn(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(R.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=B(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=Tn(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(R.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(R.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=B(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!Cn(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(R.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function Gn(e){return e.map(e=>({...e}))}function Kn(e){if(e instanceof wt)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:Kn(t.cause)}function qn(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function Jn(e,t,n){let r=qn(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var Yn=class{configStore;registry;coordinator;machineId;platformDefaults;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults}register(e){e(this.coordinator.registerContributionProcessor({filter:e=>!!e.adapters?.length,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}}))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(_t.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e.definition);for(let e of t.providers??[])c.set(e.id,e);let l=s.clients;try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l);i.push(t.definition.name),a.push(r)}}catch(t){for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a)}async processAdapterContribution(e,t,n=he){let r=await this.activateAdapterContribution(e,t,n,new Map);await this.publishActivatedAdapters([r])}async activateAdapterContribution(e,t,n,r,i,a){let o=await this.buildLoadedAdapter(e,t,n,r,i,a),s=!1;try{await this.ensureAdapterConfig(o);let t=this.configStore.isAdapterEnabled(o.name);t&&await this.validateEnabledAdapterClientRefs(o,n,a),this.registry.registerAdapter(o,e),s=!0,t&&(await this.registry.initializeAdapter(o,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${o.name} (${o.packageName})`))}catch(e){if(s)try{await this.registry.deregisterAdapter(o.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${o.name}":`,e)}throw e}return o}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(_t.contributions.catalog,{})).clients;await Pn(e.name,e.clients,r,t)}async resolveProviderDefinitions(e,t,n,r,i,a){let o=a;if(!o){o=new Map;let t=await e.request(_t.contributions.catalog,{});for(let e of t.providers)o.set(e.definition.id,e.definition)}let s=[],c=[];for(let e of t){let t=o.get(e.definitionId);if(!t){c.push(e.definitionId);continue}s.push({definition:t,configSchema:e.configSchema??r,credentialSchema:e.credentialSchema??i})}if(c.length>0)throw Error(`Adapter "${n}" declares providers [${c.join(`, `)}] but no active extension registers them. Ensure provider extensions are listed in the adapter's dependencies.`);return s}async buildLoadedAdapter(e,t,n=he,r=new Map,i,a){let o=t.definition,s=t.manifest,c=o.name,l=a??(await n.request(_t.contributions.catalog,{})).clients;await Pn(c,s.clients,l,n,{checkBinaryVersions:!1});let u=await this.resolveProviderDefinitions(n,o.providers,c,o.providerConfigSchema,o.providerCredentialSchema,i),d=await Promise.all(u.map(async e=>{let t=e.definition.id;try{let i=r.get(t);if(i===void 0){let a=await n.requestOptional(Et.getProviderModels,{providerId:t});i=a.handled?a.data.models:e.definition.availableModels??[],r.set(t,i)}return{...e,definition:{...e.definition,availableModels:Gn(i)}}}catch(n){if(Kn(n))return{...e,definition:{...e.definition,availableModels:Gn(e.definition.availableModels??[])}};throw Error(`[AdapterContributionProcessor] Failed to populate available models for provider "${t}" on adapter "${c}"`,{cause:n})}}));return{name:c,displayName:o.displayName??s.displayName,description:o.description,packageName:e,factory:o.createAdapter,options:{adapterId:Ze(this.machineId,c)},adapterConfigSchema:o.adapterConfigSchema,providers:d,helpLinks:o.helpLinks,instructions:o.instructions,defaultPresetId:o.defaultPresetId,clients:Mn(s.clients),protocol:Jn(c,o.protocol,s.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:Nn(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=e.options.adapterId??Ze(this.machineId,e.name),r=e.providers.map(e=>e.definition.id);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:r})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}},Xn=class extends Pe{configStore;registry;providerConfigService;bindingService;contributionProcessor;constructor(e){super(e.bus),this.configStore=new jn({configRepository:e.configRepository,bus:e.bus}),this.registry=new Hn({bus:e.bus,machineId:e.machineId}),this.providerConfigService=new Un({configStore:this.configStore,bus:e.bus}),this.bindingService=new Wn({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new Yn({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults})}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addCleanup(e)),this.registerBusHandlers(),await this.bus.emit(R.ready,{})}registerBusHandlers(){this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerHandler(R.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(R.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(R.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(R.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(R.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(R.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(R.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(R.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(R.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})}),this.registerHandler(R.buildProviderContext,async e=>{e.setResult({context:await this.configStore.buildProviderContext(e.payload.providerConfigId)})}),this.registerHandler(R.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(R.getProviderDefinitionsByAdapter,e=>{let t=(this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName)?.providers??[]).map(e=>Te.parse(e.definition));e.setResult({definitions:t})}),this.registerHandler(R.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(R.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(R.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(R.setProviderConfigCredentialRefs,async e=>{e.setResult(await this.providerConfigService.setProviderConfigCredentialRefs(e.payload.id,e.payload.credentialRefs))}),this.registerHandler(R.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(R.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(R.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(R.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(R.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(R.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(R.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(R.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){await this.registry.shutdownAll(),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}};const V=`.json`;var Zn=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=Ve.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(!t)continue;let r=Ue.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`provider config`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async writeProviderConfig(e,t){let n=this.assertCanonicalFileStem(e,`provider config id`),r=Ue.parse(t);await this.writeJsonFile(k.join(this.providerConfigsDir,`${n}${V}`),r)}async deleteProviderConfig(e){let t=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(k.join(this.providerConfigsDir,`${t}${V}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,t){let n=this.assertCanonicalFileStem(e,`adapter name`),r=Ve.parse(t);await this.writeJsonFile(k.join(this.adaptersDir,`${n}${V}`),r)}async deleteAdapterFile(e){let t=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(k.join(this.adaptersDir,`${t}${V}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(e,t){try{let n=(await O.readdir(e,{withFileTypes:!0})).filter(e=>e.isFile()&&k.extname(e.name)===V).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(n.map(async n=>{let r=k.join(e,n.name);try{let e=await O.readFile(r,`utf-8`);return{filePath:r,stem:k.parse(n.name).name,jsonData:JSON.parse(e)}}catch(e){if(e instanceof SyntaxError||e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(t,r),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),null}}async writeJsonFile(e,t){let n=k.dirname(e),r=k.join(n,`.${k.basename(e)}.${ue()}.tmp`);await O.mkdir(n,{recursive:!0});try{await O.writeFile(r,`${JSON.stringify(t,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(r,e)}catch(e){throw await this.removeFileIfPresent(r),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let n=`${t}.${ue()}.bak`,r=!1;try{await this.renameFile(t,n),r=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw r&&await this.renameFile(n,t).catch(()=>void 0),e}r&&await this.removeFileIfPresent(n)}async renameFile(e,t){await O.rename(e,t)}async unlinkFile(e){await O.unlink(e)}async removeFileIfPresent(e){try{await O.unlink(e)}catch(t){t.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,e,t)}}assertCanonicalFileStem(e,t){let n=e.trim(),r=k.basename(n);if(!n||e!==n||n!==r||!/^[a-z0-9._-]+$/.test(n)||n.includes(`/`)||n.includes(`\\`)||n.toLowerCase().endsWith(`.json`)||n===`.`||n===`..`)throw Error(`Invalid canonical ${t}: ${e}`);return n}};function Qn(e){return{filter:e=>!!e.adapters?.length,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}const $n=De(`adapter-subsystem`);function er(e){return{name:$n.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],critical:!0,create:t=>new Xn({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,platformDefaults:e.platformDefaults})}}function tr(e){let{coordinator:t,configRepository:n,platformDefaults:r}=e,i=er({configRepository:n,coordinator:t,platformDefaults:r});return t.registerContributionProcessor(Qn({getAdapterSubsystemService:()=>t.getExtensionService($n)})),{adapterSubsystemPackage:i}}function nr(e){let{bus:t,currentMachineId:n}=e,r=Qe(t,{currentMachineId:n,listKnownAdapterNames:e.listKnownAdapterNames??(async()=>{let{configs:e}=await t.request(it.listAdapterConfigs,{});return e.map(e=>e.name)})}),i=ln(t);return{cleanup:()=>{r.cleanup(),i()}}}function rr(e=A.resolve(import.meta.dirname,`../drizzle`)){let t=typeof e==`string`?e:e.migrationsDir??A.resolve(import.meta.dirname,`../drizzle`),n=A.join(t,`meta`,`_journal.json`);if(!de(n))throw Error(`Cannot find migrations journal at ${n}`);return JSON.parse(fe(n,`utf-8`)).entries.map(e=>{let n=fe(A.join(t,`${e.tag}.sql`),`utf-8`);return{tag:e.tag,sql:n.split(`--> statement-breakpoint`),folderMillis:e.when,hash:j(`sha256`).update(n).digest(`hex`),bps:e.breakpoints}})}function ir(e){return e.replace(/--.*$/gm,``).trim()}function ar(e){let t=e;for(;t instanceof Error;){if(/already exists/i.test(t.message))return!0;t=t.cause}return!1}async function or(e,t,n=`__drizzle_migrations`){let r=L.identifier(n);await e.run(L`CREATE TABLE IF NOT EXISTS ${r} (
2
- id INTEGER PRIMARY KEY AUTOINCREMENT,
3
- hash text NOT NULL,
4
- created_at numeric
5
- )`);let i=await e.values(L`SELECT hash FROM ${r}`),a=new Set(i.map(e=>e[0]));for(let n of t)if(!a.has(n.hash)){await e.run(L.raw(`BEGIN`));try{for(let[t,r]of n.sql.entries())if(ir(r))try{await e.run(L.raw(r))}catch(e){if(t===0&&/^\s*CREATE\s/i.test(r)&&ar(e)){if(n.sql.length>1)throw Error(`Cannot adopt multi-statement migration '${n.tag}' because its first schema object already exists. Reset the database or provide an incremental migration.`,{cause:e});console.warn(`[storage-migrations] Schema object already exists, adopting into ledger`,{hash:n.hash,folderMillis:n.folderMillis,statementIndex:t});break}throw console.error(`[storage-migrations] Failed to apply migration statement`,{hash:n.hash,folderMillis:n.folderMillis,statementIndex:t,statement:r,error:e}),e}try{await e.run(L`INSERT INTO ${r} ("hash", "created_at") VALUES (${n.hash}, ${n.folderMillis})`),await e.run(L.raw(`COMMIT`)),a.add(n.hash)}catch(e){throw console.error(`[storage-migrations] Failed to finalize migration`,{hash:n.hash,folderMillis:n.folderMillis,error:e}),e}}catch(t){try{await e.run(L.raw(`ROLLBACK`))}catch(e){console.error(`[storage-migrations] Failed to roll back migration transaction`,{hash:n.hash,folderMillis:n.folderMillis,rollbackError:e})}throw t}}}async function sr(e,t={}){await or(e,rr(t.migrationsDir)),await lr(e)}async function cr(e){await e.run(L`
6
- CREATE VIRTUAL TABLE IF NOT EXISTS messages_fts USING fts5(
7
- session_id,
8
- content_text,
9
- content='messages',
10
- content_rowid='rowid',
11
- tokenize='porter unicode61'
12
- )
13
- `),await e.run(L`
14
- CREATE TRIGGER IF NOT EXISTS messages_ai AFTER INSERT ON messages BEGIN
15
- INSERT INTO messages_fts(rowid, session_id, content_text)
16
- VALUES (NEW.rowid, NEW.session_id, NEW.content_text);
17
- END
18
- `),await e.run(L`
19
- CREATE TRIGGER IF NOT EXISTS messages_ad AFTER DELETE ON messages BEGIN
20
- INSERT INTO messages_fts(messages_fts, rowid, session_id, content_text)
21
- VALUES('delete', OLD.rowid, OLD.session_id, OLD.content_text);
22
- END
23
- `),await e.run(L`
24
- CREATE TRIGGER IF NOT EXISTS messages_au AFTER UPDATE ON messages BEGIN
25
- INSERT INTO messages_fts(messages_fts, rowid, session_id, content_text)
26
- VALUES('delete', OLD.rowid, OLD.session_id, OLD.content_text);
27
- INSERT INTO messages_fts(rowid, session_id, content_text)
28
- VALUES (NEW.rowid, NEW.session_id, NEW.content_text);
29
- END
30
- `),await e.run(L`INSERT INTO messages_fts(messages_fts) VALUES ('rebuild')`)}async function lr(e){await cr(e)}var ur=class{configPath;constructor(e){this.configPath=k.join(e,`config.json`)}async getConfig(){try{let e=await O.readFile(this.configPath,`utf-8`);return P.parse(JSON.parse(e))}catch(e){if(e.code===`ENOENT`)return P.parse({});if(e instanceof SyntaxError||e instanceof Error&&e.name===`ZodError`)return console.warn(`[FileConfigStorage] Failed to parse config, falling back to defaults:`,e),P.parse({});throw e}}async saveConfig(e){let t=k.dirname(this.configPath);await O.mkdir(t,{recursive:!0}),await O.writeFile(this.configPath,JSON.stringify(e,null,2),{encoding:`utf-8`,mode:384}),await O.chmod(this.configPath,384)}};function dr(e){try{let t=k.resolve(Nt(e),`static/model-registry.yaml`);return de(t)?t:void 0}catch{return}}async function fr(e,t){await new Promise((n,r)=>{if(e.address()){n();return}let i=e=>{if(o(),e.code===`EADDRINUSE`){r(Error(`Port ${t} is already in use`));return}r(e)},a=()=>{o(),n()},o=()=>{e.off(`error`,i),e.off(`listening`,a)};e.once(`error`,i),e.once(`listening`,a)}),e.on(`error`,e=>{console.error(`[HttpServer] Post-bind error:`,e)})}function pr(e){let t=e.address();if(typeof t==`object`&&t&&`port`in t)return t.port;throw Error(`HTTP server is not bound to a TCP address`)}function mr(e,t){let n=e,r=!1;return{fetch:(e,i,a)=>{if(!r)return new Response(`Makaio runtime is booting`,{status:503,headers:{"Retry-After":`1`}});let{pathname:o}=new URL(e.url);return t?.health&&e.method===`GET`&&o===`/health`?Response.json(t.health()):e.method===`GET`&&o===`/bus`?new Response(`WebSocket endpoint`,{status:426,headers:{Upgrade:`websocket`}}):n.fetch(e,i,a)},markReady(){r=!0},replaceApp(e){n=e}}}const hr=[`extension`,`static-fallback`];function gr(e){let t=[];function n(e){let t=new Pt,n=[...e].sort((e,t)=>hr.indexOf(e.phase)-hr.indexOf(t.phase));for(let e of n)e.mount(t);return t}function r(){return n(t)}function i(r){e&&e.replaceApp(n(r)),t=r}return{add(e){i([...t,e])},remove(e){let n=t.filter(t=>t.owner!==e);n.length!==t.length&&i(n)},build:r,get contributions(){return[...t]}}}function _r(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=yr(t),i=(r===void 0?[t]:[t,n]).flatMap(e=>[`Cannot find package '${e}'`,`Cannot find module '${e}'`,`Cannot find package "${e}"`,`Cannot find module "${e}"`]),a=e;return(a.code===`ERR_MODULE_NOT_FOUND`||a.code===`MODULE_NOT_FOUND`)&&i.some(t=>e.message.includes(t))||a.code===`ERR_PACKAGE_PATH_NOT_EXPORTED`&&r!==void 0&&e.message.includes(`Package subpath '${r}' is not defined by "exports"`)&&br(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function vr(e){try{return await import(e)}catch(t){if(_r(t,e))return null;throw t}}function yr(e){let t=e.split(`/`);return e.startsWith(`@`)?{rootPackageName:t.slice(0,2).join(`/`),subpath:t.length>2?`./${t.slice(2).join(`/`)}`:void 0}:{rootPackageName:t[0]??e,subpath:t.length>1?`./${t.slice(1).join(`/`)}`:void 0}}function br(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}function xr(e){let t=e.url?.split(`?`)[0]??``;return t===`/bus`?!0:(t===`/`||t===``)&&e.headers.origin===void 0}function Sr(e,t){return(n,r,i)=>{if(!xr(n))return;let a=e();if(!a||!t()){r.destroy();return}a.handleUpgrade(n,r,i,e=>{a.emit(`connection`,e,n)})}}var Cr=class{options;busServer=null;websocketServer=null;upgradeHandlerServer=null;upgradeHandler=null;busReady=!1;connecting=!1;constructor(e){this.options=e}get dispatchingAuth(){return this.options.auth instanceof lt?this.options.auth:void 0}async connect(e,t){if(this.connecting||this.busServer||this.websocketServer)throw Error(`[BusServerTransport] connect() called while transport is already connected or connecting`);if(this.options.httpServer.address()===null)throw Error(`[BusServerTransport] httpServer must already be listening before connect() is called`);this.connecting=!0;try{let t=new Lt({noServer:!0});this.websocketServer=t;let n=Sr(()=>this.websocketServer,()=>this.busReady);this.options.httpServer.on(`upgrade`,n),this.upgradeHandlerServer=this.options.httpServer,this.upgradeHandler=n,this.busServer=await It({websocket:t,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`node`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`shutdown`)}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}detachUpgradeHandler(){this.upgradeHandlerServer&&this.upgradeHandler&&this.upgradeHandlerServer.off(`upgrade`,this.upgradeHandler),this.upgradeHandlerServer=null,this.upgradeHandler=null}async stopWebSocketServer(e){this.websocketServer&&=(await new Promise((e,t)=>{this.websocketServer.close(n=>n?t(n):e())}).catch(t=>{t instanceof Error&&t.message===`The server is not running`||console.error(`[BusServerTransport] Failed to close WebSocket server during ${e}:`,t)}),null)}},wr=class extends Rt{keysDir;constructor(e,t){super(e),this.keysDir=k.join(t,`keys`)}async getConfig(e){let t=await super.getConfig(e);return t.bus?.remote&&!t.bus.remote.secret&&(t.bus.remote.secret=this.generateSecret(),(await this.getStoredConfig()).bus?.remote?.url===t.bus.remote.url&&await this.saveConfig(await this.prepareConfigForPersistence(t))),t}generateSecret(){return le.randomBytes(32).toString(`base64`)}async getMachineId(){return(await At(this.keysDir)).machineId}getEnv(e){return process.env[e]}};function Tr(e,t){return{extensions:e.discovery??new s(void 0,{extensionsDir:A.join(t,`extensions`),nodeModulesDir:A.join(t,`node_modules`)})}}function Er(e){if(process.platform===`win32`)return!0;let t=e?.code;return t===`ENOSYS`||t===`EINVAL`}async function Dr(e){let t=e.dbPath??process.env.MAKAIO_DATABASE_PATH??k.join(e.makaioHome,`makaio.db`),n=k.dirname(t);await M.promises.mkdir(n,{recursive:!0});let r=await pt({url:ce(t).href});try{await sr(r.db,{migrationsDir:e.migrationsDir});try{await M.promises.chmod(t,384)}catch(e){if(!Er(e))throw e;console.warn(`[initializeNodeDatabase] Failed to set SQLite file permissions (continuing; this may be unsupported on Windows):`,e)}return{databaseClient:r,dbPath:t}}catch(e){throw r.close(),e}}const Or=D.object({npmName:D.string(),version:D.string(),source:D.enum([`new`,`upgraded`,`already-present`])}),kr=D.object({npmName:D.string(),reason:D.string()}),Ar=D.object({success:D.boolean(),packageName:D.string(),version:D.string().optional(),restartRequired:D.boolean(),error:D.string().optional(),installed:D.array(Or).optional(),skipped:D.array(kr).optional(),warnings:D.array(D.string()).optional()}),jr=D.object({success:D.boolean(),packageName:D.string(),error:D.string().optional(),restartRequired:D.boolean()}),Mr=D.object({name:D.string(),version:D.string(),description:D.string().optional(),hasDescriptor:D.boolean().default(!1),serverImportPath:D.string().min(1).optional()}),Nr=D.object({packageName:D.string(),latestVersion:D.string(),success:D.boolean(),error:D.string().optional()}),Pr=D.object({name:D.string(),displayName:D.string(),description:D.string(),icon:D.string().optional(),tags:D.array(D.string()).optional(),descriptorName:D.string().min(1).optional()}),Fr=D.object({$schema:D.string(),updatedAt:D.string(),adapters:D.array(Pr),extensions:D.array(Pr)}),Ir=D.object({name:D.string(),currentVersion:D.string(),latestVersion:D.string(),description:D.string().optional()}),Lr=pe(`packages`,{list:{request:D.object({}),response:D.object({packages:D.array(Mr)})},install:{request:D.object({packageName:D.string().optional(),packageNames:D.array(D.string()).min(1).optional(),source:D.enum([`npm`,`local`]).optional(),force:D.boolean().optional()}).refine(e=>e.packageName!==void 0||e.packageNames!==void 0,{message:`Expected packageName or packageNames`}),response:Ar},uninstall:{request:D.object({packageName:D.string()}),response:jr},getLatestVersion:{request:D.object({packageName:D.string()}),response:Nr},getRegistry:{request:D.object({}),response:Fr},checkUpdates:{request:D.object({}),response:D.object({updates:D.array(Ir)})},installed:D.object({packageName:D.string(),version:D.string()}),uninstalled:D.object({packageName:D.string()})}),H=Lr.subjects;async function Rr(e,t,n){if(!k.isAbsolute(e))return;let r;try{r=await O.realpath(e)}catch{return}let i=zr(t,n),a=[k.resolve(r,`src`,`${i}.ts`),k.resolve(r,`dist`,`${i}.mjs`)];for(let e of a){let t=await Br(e);if(t!==void 0&&Vr(t,r))return t}}function zr(e,t){return t===!0?e:t}async function Br(e){try{return await O.realpath(e)}catch{return}}function Vr(e,t){let n=k.relative(t,e);return n.length>0&&!n.startsWith(`..`)&&!k.isAbsolute(n)}var Hr=class{extensionsDir;constructor(e){this.extensionsDir=k.resolve(e)}async install(e){try{let t=k.resolve(e.endsWith(`descriptor.json`)?k.dirname(e):e),n=await O.realpath(t),r=await this.readDescriptor(n);Oe(r)||await this.validateEntrypoints(n,r.entrypoints);let i=this.linkPathFor(r.name);await O.mkdir(k.dirname(i),{recursive:!0});try{if((await O.lstat(i)).isSymbolicLink())await O.unlink(i);else throw Error(`${i} already exists and is not a symlink`)}catch(e){if(e.code!==`ENOENT`)throw e}let a=process.platform===`win32`?`junction`:`dir`;return await O.symlink(n,i,a),{success:!0,packageName:r.name,version:r.version,restartRequired:!0}}catch(e){return{success:!1,packageName:``,error:e instanceof Error?e.message:String(e),restartRequired:!1}}}async uninstall(e){try{let t=this.linkPathFor(e);if(await O.unlink(t),e.startsWith(`@`)){let e=k.dirname(t);(await O.readdir(e).catch(()=>null))?.length===0&&await O.rmdir(e).catch(()=>{})}return{success:!0,packageName:e,restartRequired:!0}}catch(t){return{success:!1,packageName:e,error:t instanceof Error?t.message:String(t),restartRequired:!1}}}async list(){try{await O.access(this.extensionsDir)}catch{return[]}let e=await O.readdir(this.extensionsDir),t=[];for(let n of e){let e=k.join(this.extensionsDir,n);if(n.startsWith(`@`)){let n=await O.readdir(e).catch(()=>[]);for(let r of n){let n=k.join(e,r),i=await this.readLocalEntry(n);i!==null&&t.push(i)}}else{let n=await this.readLocalEntry(e);n!==null&&t.push(n)}}return t}async readLocalEntry(e){try{if(!(await O.lstat(e)).isSymbolicLink())return null;let t=await O.readlink(e),n=await O.realpath(k.resolve(k.dirname(e),t)),r=k.join(n,`descriptor.json`),i=await O.readFile(r,`utf-8`),a=je(JSON.parse(i));if(!a.success)return null;let o=a.data.entrypoints?.server,s=o===void 0?void 0:await Rr(n,`server`,o);return{name:a.data.name,version:a.data.version,sourcePath:n,source:`local`,...s!==void 0&&{serverImportPath:s}}}catch{return null}}async readDescriptor(e){let t=k.join(e,`descriptor.json`),n=await O.readFile(t,`utf-8`).catch(()=>{throw Error(`descriptor.json not found at ${t}`)}),r=je(JSON.parse(n));if(!r.success)throw Error(`Invalid descriptor.json: ${r.error.message}`);return r.data}async validateEntrypoints(e,t){await Promise.all(Object.entries(t).map(async([t,n])=>{if(n!==void 0&&await Rr(e,t,n)===void 0){let e=zr(t,n);throw Error(`${t} entrypoint "${e}" has no resolvable candidate: neither src/${e}.ts nor dist/${e}.mjs exists within the extension root`)}}))}linkPathFor(e){let t=k.resolve(this.extensionsDir,...e.split(`/`)),n=k.relative(this.extensionsDir,t);if(n===``||n.startsWith(`..`)||k.isAbsolute(n))throw Error(`Invalid extension name: ${e}`);return t}};const Ur=`nodeLinker: node-modules`,Wr=/^[A-Za-z]:[\\/]/;let Gr=null;function U(){return Gr||(Gr=Promise.all([import(`../lib-zuQKc8ym.mjs`).then(e=>t(e.t(),1)),import(`../lib-CaOdTS9F.mjs`).then(e=>t(e.t(),1)),import(`../lib-IkUYa2Qs.mjs`).then(e=>t(e.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),Gr)}var Kr=class{makaioHome;constructor(e){this.makaioHome=e}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await U(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=Zr(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await U(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await U();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await U(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await U(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await U(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await U(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState(),s=[];for(let[,e]of o.topLevelWorkspace.manifest.dependencies){let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);a.hasDescriptor&&s.push({name:t,version:i,hasDescriptor:!0,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath}})}return s}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=Yr(e);try{let{structUtils:e}=await U(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=await this.resolveInstalledServerEntrypoint(e,t);return{hasDescriptor:!0,...n!==void 0&&{serverImportPath:n}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return Rr(k.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=k.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{let e=await O.readFile(t,`utf-8`);n=JSON.parse(e)}catch(e){if(e instanceof SyntaxError||Qr(e))return null;throw e}let r=je(n);return r.success?r.data:null}async listInstalledExtensionDescriptors(){let e=k.join(this.makaioHome,`package.json`),t;try{let n=await O.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(Qr(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=k.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await O.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=k.join(this.makaioHome,`package.json`),t=await O.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=k.join(this.makaioHome,`package.json`);await O.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:i}=await this.loadYarnState();await this.runProjectInstall(n,r,i)}async resolvePackageVersion(e){try{let{StreamReport:t}=await U(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function qr(e,t){return!t||t===`latest`?e:`${e}@${t}`}function Jr(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function Yr(e){return e.localPackagePath?`portal:${Xr(e.localPackagePath)}`:e.versionRange}function Xr(e){let t=(Wr.test(e)?e:k.resolve(e)).replace(/\\/g,`/`);return Wr.test(t)?`/${t}`:t}function Zr(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,Ur):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
31
- `:``}${Ur}\n`}return`${r.join(`
32
- `).trimEnd()}\n`}function Qr(e){if(typeof e!=`object`||!e||!(`code`in e))return!1;let t=e.code;return t===`ENOENT`||t===`ENOTDIR`}function $r(e){if(e.startsWith(`git+`))return{kind:`git`,raw:e,resolved:e};let t=e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`);if(e.startsWith(`~`)&&!t)throw Error(`Unsupported home-relative path syntax: ${e}`);return e.startsWith(`.`)||k.isAbsolute(e)||k.win32.isAbsolute(e)||t?{kind:`local`,raw:e,resolved:t?k.resolve(tt.homedir(),e===`~`?`.`:e.slice(2)):k.resolve(e)}:{kind:`npm`,raw:e,resolved:e}}var ei=class{packages;names;constructor(e,t){this.packages=e,this.names=t}async resolve(e,t={}){let n=t.snapshot!==null,r=n?t.snapshot===void 0?await this.packages.readManifestSnapshot():t.snapshot:null;try{return await this.runBfs(e,t.force===!0)}catch(e){if(n)try{await this.packages.writeManifestAndReinstall(r)}catch(t){throw AggregateError([e,t],`Dependency resolution failed and rollback failed: ${ri(e)}`)}throw e}}async runBfs(e,t){let n=await this.readInstalledIndex(),r=e.map(e=>{let t=ni(e),n=ti(t.npmName);return{npmName:t.npmName,...n?{expectedDescriptorName:n}:{},...t.requiredRange?{requiredRange:t.requiredRange}:{},optional:!1,path:[t.npmName],root:!0}}),i=new Set,a=[],o=[],s=[];for(;r.length>0;){let e=r.shift(),s=i.has(e.npmName),c=n.byNpmName.get(e.npmName);if(s){if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.descriptorRangeSatisfied(c.descriptor,e.requiredRange))continue;if(!c)throw Error(`Package ${e.npmName} was resolved but is missing from the installed index`)}if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.shouldUseCurrentDescriptor(c.descriptor,e)){a.push({npmName:e.npmName,version:c.version,source:`already-present`}),await this.enqueueDependencies(r,e,c.descriptor),i.add(e.npmName);continue}let l=qr(e.npmName,e.requiredRange),u,d;try{u=await this.packages.installPackage(l);let r=await this.packages.readInstalledExtensionDescriptor(e.npmName);if(!r)throw Error(`Installed package ${e.npmName} does not contain a valid descriptor.json`);this.assertDescriptorMatches(e,r),this.assertDescriptorVersionSatisfies(e,r),await this.assertDependentsCompatible(e.npmName,r.version,n,t),d=r}catch(t){if(e.optional){o.push({npmName:e.npmName,reason:t instanceof Error?t.message:String(t)});continue}throw t}a.push({npmName:e.npmName,version:u,source:c?`upgraded`:`new`}),c={npmName:e.npmName,version:u,descriptor:d},n.byNpmName.set(e.npmName,c),await this.enqueueDependencies(r,e,d),i.add(e.npmName)}return{installed:a,skipped:o,warnings:s}}async readInstalledIndex(){let e=await this.packages.listInstalledExtensionDescriptors();return{byNpmName:new Map(e.map(e=>[e.npmName,e]))}}descriptorRangeSatisfied(e,t){return t===void 0||Ne(e.version,t)}shouldUseCurrentDescriptor(e,t){return t.root&&t.requiredRange===void 0?!1:this.descriptorRangeSatisfied(e,t.requiredRange)}assertDescriptorMatches(e,t){if(!(e.expectedDescriptorName===void 0||t.name===e.expectedDescriptorName))throw Error(`Installed package ${e.npmName} declares descriptor name "${t.name}", expected "${e.expectedDescriptorName}"`)}assertDescriptorVersionSatisfies(e,t){if(!this.descriptorRangeSatisfied(t,e.requiredRange))throw Error(`Installed package ${e.npmName} descriptor version ${t.version} does not satisfy ${t.name} ${e.requiredRange}`)}async assertDependentsCompatible(e,t,n,r){if(r)return;let i=[];for(let r of n.byNpmName.values())for(let n of r.descriptor.dependencies??[])await this.names.resolveNpmPackageName(n.name)===e&&!Ne(t,n.version)&&i.push(`${r.npmName} requires ${n.name} ${n.version}`);if(i.length>0)throw Error(`Cannot install ${e}; existing dependencies would be violated:\n${i.join(`
33
- `)}`)}async enqueueDependencies(e,t,n){for(let r of n.dependencies??[]){let n=await this.names.resolveNpmPackageName(r.name);if(t.path.includes(n))throw Error(`Circular dependency detected: ${[...t.path,n].join(` -> `)}`);e.push({npmName:n,expectedDescriptorName:r.name,requiredRange:r.version,optional:r.optional===!0,path:[...t.path,n],root:!1})}}};function ti(e){return e.startsWith(`@`)?void 0:e}function ni(e){let t=Jr(e);if(t.length===e.length)return{npmName:t};let n=e.slice(t.length+1);return n===`latest`?{npmName:t}:{npmName:t,requiredRange:n}}function ri(e){return e instanceof Error?e.message:String(e)}var ii=class{registryClient;lookupMapPromise=null;constructor(e){this.registryClient=e}async resolveNpmPackageName(e){if(e.startsWith(`@`))return e;let t;try{t=await this.getLookupMap()}catch(t){throw Error(`Cannot resolve descriptor name "${e}": package registry is unavailable`,{cause:t})}return t.get(e)||`@makaio/${e}`}getLookupMap(){if(this.lookupMapPromise)return this.lookupMapPromise;let e=this.registryClient.getRegistry().then(e=>{let t=new Map;for(let n of[...e.adapters,...e.extensions])n.descriptorName&&t.set(n.descriptorName,n.name);return t}).catch(t=>{throw this.lookupMapPromise===e&&(this.lookupMapPromise=null),t});return this.lookupMapPromise=e,this.lookupMapPromise}},ai=class{inner;portalMap;constructor(e,t){this.inner=e,this.portalMap=t}async installPackage(e){let t=Jr(e),n=this.portalMap.get(t);if(n!==void 0){let e=`${t}@portal:${Xr(n)}`;return this.inner.installPackage(e)}return this.inner.installPackage(e)}readInstalledExtensionDescriptor(e){return this.inner.readInstalledExtensionDescriptor(e)}listInstalledExtensionDescriptors(){return this.inner.listInstalledExtensionDescriptors()}readManifestSnapshot(){return this.inner.readManifestSnapshot()}writeManifestAndReinstall(e){return this.inner.writeManifestAndReinstall(e)}},oi=class{cache=null;inFlightFetch=null;registryUrl;cacheTtlMs;fetchTimeoutMs;fetchImpl;constructor(e={}){this.registryUrl=e.registryUrl??`https://raw.githubusercontent.com/makaio-ai/makaio/develop/registry/packages.json`,this.cacheTtlMs=e.cacheTtlMs??36e5,this.fetchTimeoutMs=e.fetchTimeoutMs??1e4,this.fetchImpl=e.fetchImpl??fetch}async getRegistry(){if(this.cache&&Date.now()-this.cache.timestamp<this.cacheTtlMs)return this.cache.data;this.inFlightFetch??=this.fetchAndCacheRegistry();try{return await this.inFlightFetch}finally{this.inFlightFetch=null}}async fetchAndCacheRegistry(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.fetchTimeoutMs);try{let t=await this.fetchImpl(this.registryUrl,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json(),r=Fr.parse(n);return this.cache={data:r,timestamp:Date.now()},r}catch(e){let t=e instanceof Error?e:Error(String(e));throw Error(`Failed to fetch package registry`,{cause:t})}finally{clearTimeout(t)}}clearCache(){this.cache=null}},si=t(r(),1),ci=`1.0.0`;function li(){let e=ci;if(typeof e!=`string`||e.length===0)throw Error(`Package manager package metadata must include a string version.`);return`^${e}`}const ui=li();var di=class extends Pe{yarnManager;registryService;localInstaller;dependencyResolver;frameworkPeerRange;frameworkPackagePath;constructor(e,t,n={}){super(e),this.yarnManager=n.yarnManager??new Kr(t),this.registryService=n.registryService??new oi,this.localInstaller=n.localInstaller??new Hr(k.join(t,`extensions`)),this.frameworkPeerRange=n.frameworkPeerRange??ui,this.frameworkPackagePath=n.frameworkPackagePath;let r=n.devPortalPackages?.size?new ai(this.yarnManager,n.devPortalPackages):this.yarnManager;this.dependencyResolver=n.dependencyResolver??new ei(r,new ii(this.registryService))}async onInit(){await this.yarnManager.initialize(),console.info(`[PackageManagerService] Initialized`),this.registerPackageHandlers(),this.registerRegistryHandlers()}normalizePackageName(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}validatePackageNamePayload(e,t){return this.normalizePackageName(e)||(t(),null)}createInvalidPackageNameResult(e){return e?{success:!1,packageName:``,latestVersion:e.latestVersion,error:`Invalid packageName`}:{success:!1,packageName:``,error:`Invalid packageName`,restartRequired:!1}}async emitInstalled(e,t){try{await this.bus.emit(H.installed,{packageName:e,version:t})}catch(e){console.error(`[PackageManagerService] installed emit failed:`,e)}}async emitUninstalled(e){try{await this.bus.emit(H.uninstalled,{packageName:e})}catch(e){console.error(`[PackageManagerService] uninstalled emit failed:`,e)}}registerPackageHandlers(){this.registerListHandler(),this.registerInstallHandler(),this.registerUninstallHandler()}registerListHandler(){this.registerHandler(H.list,async e=>{try{let[t,n]=await Promise.all([this.yarnManager.listPackages(),this.localInstaller.list()]),r=[...t,...n.map(e=>({name:e.name,version:e.version,hasDescriptor:!0,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath}}))];e.setResult({packages:r})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] List failed:`,n),e.setResult({packages:[]})}})}async ensureFrameworkPeer(){try{await this.yarnManager.ensureFrameworkDependency({versionRange:this.frameworkPeerRange,...this.frameworkPackagePath?{localPackagePath:this.frameworkPackagePath}:{}})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to ensure @makaio/framework dependency ${this.frameworkPeerRange}: ${t}`,{cause:e})}}async installNpmPackages(e,t){let n=await this.yarnManager.readManifestSnapshot(),r;try{await this.ensureFrameworkPeer(),r=await this.dependencyResolver.resolve(e,{force:t,snapshot:null})}catch(e){try{await this.yarnManager.writeManifestAndReinstall(n)}catch(t){let n=e instanceof Error?e.message:String(e);throw AggregateError([e,t],`Package install failed and rollback failed: ${n}`)}throw e}for(let e of r.installed)e.source!==`already-present`&&await this.emitInstalled(e.npmName,e.version);let i=r.installed[0];return{success:!0,packageName:i?.npmName??e[0]??``,version:i?.version,restartRequired:!0,installed:[...r.installed],skipped:[...r.skipped],warnings:[...r.warnings]}}registerInstallHandler(){this.registerHandler(H.install,async e=>{let t=e.payload.packageNames??(e.payload.packageName===void 0?[]:[e.payload.packageName]),n=t.map(e=>this.normalizePackageName(e)).filter(e=>e!==null);if(n.length!==t.length||n.length===0){e.setResult(this.createInvalidPackageNameResult());return}let r;if(e.payload.source!==void 0)r={kind:e.payload.source};else{let t=n.map(e=>$r(e));r=t[0];let i=t.find(e=>e.kind!==r.kind);if(i){e.setResult({success:!1,packageName:``,error:`Cannot mix install sources: ${r.kind} and ${i.kind}`,restartRequired:!1});return}}if(r.kind===`git`){e.setResult({success:!1,packageName:n[0],error:`Git URL installs are not yet supported`,restartRequired:!1});return}if(r.kind===`local`){if(n.length>1){e.setResult({success:!1,packageName:``,error:`Local installs only support a single path`,restartRequired:!1});return}let t=await this.localInstaller.install(n[0]);t.success&&await this.emitInstalled(t.packageName,t.version??`unknown`),e.setResult(t);return}try{e.setResult(await this.installNpmPackages(n,e.payload.force))}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Install failed:`,r),e.setResult({success:!1,packageName:n[0]??``,error:r,restartRequired:!1})}})}registerUninstallHandler(){this.registerHandler(H.uninstall,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult())});if(t){if((await this.localInstaller.list()).find(e=>e.name===t)){let n=await this.localInstaller.uninstall(t);n.success&&await this.emitUninstalled(t),e.setResult(n);return}try{await this.yarnManager.uninstallPackage(t),await this.emitUninstalled(t),e.setResult({success:!0,packageName:t,restartRequired:!0})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Uninstall failed:`,r),e.setResult({success:!1,packageName:t,error:r,restartRequired:!1})}}})}registerRegistryHandlers(){this.registerHandler(H.getLatestVersion,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult({latestVersion:`unknown`}))});if(t)try{let n=await this.yarnManager.getLatestVersion(t);e.setResult({success:!0,packageName:t,latestVersion:n})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Version check failed:`,r),e.setResult({success:!1,packageName:t,latestVersion:`unknown`,error:r})}}),this.registerHandler(H.getRegistry,async e=>{try{let t=await this.registryService.getRegistry();e.setResult(t)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Registry fetch failed:`,n),e.setResult({$schema:`makaio/package-registry/v1`,updatedAt:new Date().toISOString(),adapters:[],extensions:[]})}}),this.registerHandler(H.checkUpdates,async e=>{try{let t=await this.checkForUpdates();e.setResult({updates:t})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Update check failed:`,n),e.setResult({updates:[]})}})}async checkForUpdates(){try{let e=await this.yarnManager.listPackages(),t=[];return await Promise.all(e.map(async e=>{try{let n=await this.yarnManager.getLatestVersion(e.name);si.valid(e.version)&&si.valid(n)&&si.gt(n,e.version)&&t.push({name:e.name,currentVersion:e.version,latestVersion:n,description:e.description})}catch(t){console.warn(`[PackageManagerService] Failed to check updates for %s:`,e.name,t)}})),console.info(`[PackageManagerService] Found %d package updates`,t.length),t}catch(e){throw Error(`Failed to check for updates`,{cause:e})}}};function fi(e={}){return{name:`makaio.package-manager`,displayName:`Package Manager`,version:`0.1.0`,critical:!0,namespaces:[Lr],create:t=>new di(t.bus,t.makaioHome,{registryService:e.registryService,dependencyResolver:e.dependencyResolver,frameworkPeerRange:e.frameworkPeerRange,frameworkPackagePath:e.frameworkPackagePath,devPortalPackages:e.devPortalPackages})}}function pi(e){return{filter:e=>!!e.http,async processActivated(t,n){e.add({owner:t,phase:`extension`,mount:e=>n.http.mount(e)})},async processStopped(t){e.remove(t)}}}const mi={resolve(e,t){return!e&&!t?null:e?t?e.updatedAt>t.updatedAt?e:t:e:t}};function hi(e){return{scope:e.scope,surface:e.surface??`any`,context:e.context??`any`,viewport:e.viewport??`any`}}function gi(e){return{scope:e.scope,surface:e.surface===`any`?void 0:e.surface,context:e.context===`any`?void 0:e.context,viewport:e.viewport===`any`?void 0:e.viewport}}function _i(e,t){return[`makaio:prefs`,e.scope,e.surface||`any`,e.context||`any`,e.viewport||`any`,t].join(`:`)}function vi(e){return typeof e==`object`&&!!e&&`value`in e&&`updatedAt`in e&&typeof e.value==`string`&&typeof e.updatedAt==`number`}function yi(e){try{let t=JSON.parse(e);return vi(t)?t:{value:JSON.stringify(t),updatedAt:0}}catch{return null}}const W=Ie(`preferences`,{scope:F(`scope`).notNull(),surface:F(`surface`).notNull().default(`any`),context:F(`context`).notNull().default(`any`),viewport:F(`viewport`).notNull().default(`any`),category:F(`category`).notNull(),value:F(`value`).notNull(),updatedAt:Fe(`updated_at`).notNull()},e=>[Le(`preferences_pk`).on(e.scope,e.surface,e.context,e.viewport,e.category)]);function bi(e,t){let n=[];return t!==void 0&&n.push(I(W.category,t)),e&&(e.scope!==void 0&&n.push(I(W.scope,e.scope)),e.surface!==void 0&&n.push(I(W.surface,e.surface)),e.context!==void 0&&n.push(I(W.context,e.context)),e.viewport!==void 0&&n.push(I(W.viewport,e.viewport))),n}async function xi(e,t,n){let r=bi(t,n);return(r.length>0?await e.select().from(W).where(Re(...r)).all():await e.select().from(W).all()).map(e=>{let t;try{t=JSON.parse(e.value)}catch{t=null}let n=$t.safeParse(t);return{key:gi(e),category:e.category,value:n.success?n.data:null,updatedAt:e.updatedAt}})}async function Si(e,t,n){let r=hi(t);return e.select().from(W).where(Re(I(W.scope,r.scope),I(W.surface,r.surface),I(W.context,r.context),I(W.viewport,r.viewport),I(W.category,n))).get()}var Ci=class{db;conflictResolver;constructor(e){this.db=e.db,this.conflictResolver=e.conflictResolver??mi}async get(e,t){let n=await this.readFromDb(e,t),r=this.readFromLocalStorage(e,t),i=r?.updatedAt===0?r:null;!n&&r&&!i&&this.removeFromLocalStorage(e,t);let a=this.conflictResolver.resolve(i,n);if(!a)return null;let o;try{o=JSON.parse(a.value)}catch{return null}let s=$t.safeParse(o);return s.success?(await this.syncResolvedPreference(e,t,a,r,n),s.data):null}async set(e,t,n){let r=Date.now(),i=JSON.stringify(n??null);this.writeToLocalStorage(e,t,{value:i,updatedAt:r}),await this.writeToDb(e,t,i,r)}async delete(e,t){this.removeFromLocalStorage(e,t),await this.deleteFromDb(e,t)}async list(e,t){return xi(this.db,e,t)}async writeToDb(e,t,n,r){let i=hi(e);await this.db.insert(W).values({...i,category:t,value:n,updatedAt:r}).onConflictDoUpdate({target:[W.scope,W.surface,W.context,W.viewport,W.category],set:{value:n,updatedAt:r}}).run()}readFromLocalStorage(e,t){let n=_i(e,t),r=globalThis.localStorage?.getItem(n);return r?yi(r):null}writeToLocalStorage(e,t,n){let r=_i(e,t);try{globalThis.localStorage?.setItem(r,JSON.stringify(n))}catch(e){console.warn(`[StorageCoordinator] localStorage write failed:`,e)}}removeFromLocalStorage(e,t){let n=_i(e,t);try{globalThis.localStorage?.removeItem(n)}catch(e){console.warn(`[StorageCoordinator] localStorage delete failed:`,e)}}async syncResolvedPreference(e,t,n,r,i){this.isSameStoredPreference(n,i)||await this.writeToDb(e,t,n.value,n.updatedAt),r&&!this.isSameStoredPreference(n,r)&&this.writeToLocalStorage(e,t,n)}isSameStoredPreference(e,t){return!e||!t?!1:e.value===t.value&&e.updatedAt===t.updatedAt}async readFromDb(e,t){let n=await Si(this.db,e,t);return n?{value:n.value,updatedAt:n.updatedAt}:null}async deleteFromDb(e,t){let n=hi(e);await this.db.delete(W).where(Re(I(W.scope,n.scope),I(W.surface,n.surface),I(W.context,n.context),I(W.viewport,n.viewport),I(W.category,t))).run()}};function wi(e,t,n){let r=new Ci({db:t}),i=e.on(en.get,async e=>{let{key:t,category:n}=e.payload,i=await r.get(t,n);e.setResult({value:i})}),a=e.on(en.set,async e=>{let{key:t,category:n,value:i}=e.payload;await r.set(t,n,i),e.setResult({success:!0})}),o=e.on(en.delete,async e=>{let{key:t,category:n}=e.payload;await r.delete(t,n),e.setResult({success:!0})}),s=e.on(en.list,async e=>{let{key:t,category:n}=e.payload,i=await r.list(t,n);e.setResult({items:i})});return()=>{i(),a(),o(),s()}}const Ti={name:`preferences-storage`,displayName:`Preferences Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:ze(wi)}},Ei=oe(ae);function Di(e,t){if(!e.ok)throw Error(`HTTP ${e.status} ${e.statusText} fetching ${t}`)}function Oi(e){return{fetchTimeoutMs:e.fetchTimeoutMs??3e4,downloadTimeoutMs:e.downloadTimeoutMs??6e5,execTimeoutMs:e.execTimeoutMs??12e4,extractTimeoutMs:e.extractTimeoutMs??3e5}}async function ki(e,t){try{return await fetch(e,{signal:AbortSignal.timeout(t)})}catch(n){let r=n instanceof Error?n.name:``;throw r===`AbortError`||r===`TimeoutError`?Error(`Timed out fetching ${e} after ${t}ms`,{cause:n}):n}}async function Ai(e,t,n,r){await O.mkdir(t,{recursive:!0}),n===`tar.gz`?await Ei(`tar`,[`-xzf`,e,`-C`,t],{timeout:r}).catch(n=>{throw n.code===`ENOENT`?Error(`tar extraction failed: host executable "tar" was not found on PATH`):Error(`tar extraction failed: ${e} → ${t}\nstderr: ${n.stderr??``}\n${String(n.message)}`)}):await Ei(`unzip`,[`-q`,e,`-d`,t],{timeout:r}).catch(n=>{throw n.code===`ENOENT`?Error(`zip extraction failed: host executable "unzip" was not found on PATH`):Error(`unzip extraction failed: ${e} → ${t}\nstderr: ${n.stderr??``}\n${String(n.message)}`)})}async function ji(e,t,n,r){let{stdout:i}=await Ei(e,t,{cwd:n?.cwd,env:n?.env===void 0?process.env:{...process.env,...n.env},shell:!1,timeout:r}).catch(n=>{if(n.code===`ENOENT`)throw Error(`Command failed: host executable "${e}" was not found on PATH`);let r=n.stderr??``;throw Error(`Command failed: ${e} ${t.join(` `)}\nstderr: ${r}\n${String(n.message)}`)});return(i??``).trim()}function Mi(e={}){let{fetchTimeoutMs:t,downloadTimeoutMs:n,execTimeoutMs:r,extractTimeoutMs:i}=Oi(e);return{async fetchText(e){let n=await ki(e,t);return Di(n,e),n.text()},async fetchJson(e){let n=await ki(e,t);return Di(n,e),n.json()},async downloadFile(e,t,r){let i=await ki(e,n);if(Di(i,e),i.body===null)throw Error(`Response body is null for URL: ${e}`);let a=i.headers.get(`content-length`),o=a===null?null:parseInt(a,10),s=o!==null&&!isNaN(o)?o:null;await O.mkdir(k.dirname(t),{recursive:!0});let c=M.createWriteStream(t),l=0,u=new st({transform(e,t,n){l+=e.length,r?.(l,s),n(null,e)}});try{await ct(ot.from(i.body),u,c)}catch(e){throw await O.rm(t,{force:!0}),e}return t},exec(e,t,n){return ji(e,t,n,r)},async extractArchive(e,t,n){await Ai(e,t,n,i)},async deleteFile(e){await O.rm(e,{force:!0})},async computeChecksum(e,t=`sha256`){return new Promise((n,r)=>{let i=j(t),a=M.createReadStream(e);a.on(`error`,r),a.on(`data`,e=>i.update(e)),a.on(`end`,()=>n(i.digest(`hex`)))})},async removeDirectory(e){await O.rm(e,{recursive:!0,force:!0})}}}function Ni(e){let t,n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];try{i()}catch(e){n||=(t=e,!0)}}if(e.length=0,n)throw t}function Pi(e,t){try{return t()}catch(t){try{Ni(e)}catch{}throw t}}function Fi(e,t){for(let n of e){let e=n.providers.find(e=>e.definition.id===t);if(e)return e}}function Ii(e,t,n){for(let r of t){let t=e.find(e=>e.name===r.adapterName);if(t?.providers.some(e=>e.definition.id===n))return t}}function Li(e){let{$schema:t,...n}=e;return n}function Ri(e,t,n,r){let i=[];return Pi(i,()=>(i.push(e.on(on.adapter.getConfigSchema,({payload:e,setResult:n})=>{let r=t().find(t=>t.name===e.adapterName);if(!r?.adapterConfigSchema){n({hasSchema:!1,schema:null});return}n({hasSchema:!0,schema:D.toJSONSchema(r.adapterConfigSchema)})})),i.push(e.on(rn.getCredentialSchema,({payload:e,setResult:n})=>{let r=Fi(t(),e.definitionId)?.credentialSchema;if(r){n({hasSchema:!0,schema:D.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),i.push(e.on(rn.getConfigSchema,({payload:e,setResult:n})=>{let r=Fi(t(),e.definitionId)?.configSchema;if(r){n({hasSchema:!0,schema:D.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),r&&i.push(e.on(on.extension.getConfigSchema,({payload:e,setResult:t})=>{let n=r(e.extensionName);if(!n?.configSchema){t({hasSchema:!1,schema:null,uiConfig:null});return}t({hasSchema:!0,schema:Li(D.toJSONSchema(n.configSchema)),uiConfig:n.uiConfig??null})})),i.push(e.on(an.fetchModels,async({payload:r,setResult:i})=>{let{config:a}=await e.request(it.getProviderConfig,{id:r.providerConfigId});if(!a)throw Error(`Provider config '${r.providerConfigId}' not found`);let{bindings:o}=await e.request(it.listBindingsByConfig,{providerConfigId:r.providerConfigId}),s=Ii(t(),o,a.definitionId);if(!s)throw Error(o.length===0?`Provider config '${r.providerConfigId}' is not bound to an adapter`:`No loaded adapter bound to provider config '${r.providerConfigId}' for definition '${a.definitionId}'`);let c=await $e(e,r.providerConfigId),l=s.options.adapterId,u=l?n().get(l):void 0;if(!l||!u)throw Error(`Adapter instance for '${s.name}' not initialized`);if(!(`fetchModels`in u)||typeof u.fetchModels!=`function`)throw Error(`Adapter '${s.name}' does not support model fetching`);let d=await tn(e,c.credentialRefs),f=c.endpointOverrides?Object.values(c.endpointOverrides).find(e=>e!==void 0):void 0;i({models:await u.fetchModels(f,d)})})),()=>{Ni(i)}))}function zi(e,t){let n=new Map;for(let[r,i]of e)t.has(r)&&n.set(r,i);return n}function Bi(...e){let t=new Map;for(let n of e)for(let[e,r]of n)t.set(e,{...t.get(e)??{},...r});return t}function Vi(e,t){let n=[e.on(xe.get,async e=>{let n=await t.getConfig();e.setResult({config:n})}),e.on(xe.update,async e=>{let n=P.parse(e.payload.config),r=await t.prepareConfigForPersistence(n);await t.saveConfig(r),e.setResult({success:!0})})];return()=>{for(let e of n)e()}}var G=n((e=>{let t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),Hi=n((e=>{var t=G();let n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),Ui=n((e=>{var t=G(),n=Hi();let r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]);var a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)t===`!!`&&n===`tag:yaml.org,2002:`||(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
34
- `)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),Wi=n((e=>{var t=G(),n=Hi();function r(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function i(e){let t=new Set;return n.visit(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function a(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function o(e,n){let r=[],o=new Map,s=null;return{onAnchor:t=>{r.push(t),s??=i(e);let o=a(n,s);return s.add(o),o},setAnchors:()=>{for(let e of r){let n=o.get(e);if(typeof n==`object`&&n.anchor&&(t.isScalar(n.node)||t.isCollection(n.node)))n.node.anchor=n.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:o}}e.anchorIsValid=r,e.anchorNames=i,e.createNodeAnchors=o,e.findNewAnchor=a})),Gi=n((e=>{function t(e,n,r,i){if(i&&typeof i==`object`)if(Array.isArray(i))for(let n=0,r=i.length;n<r;++n){let r=i[n],a=t(e,i,String(n),r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}else if(i instanceof Map)for(let n of Array.from(i.keys())){let r=i.get(n),a=t(e,i,n,r);a===void 0?i.delete(n):a!==r&&i.set(n,a)}else if(i instanceof Set)for(let n of Array.from(i)){let r=t(e,i,n,n);r===void 0?i.delete(n):r!==n&&(i.delete(n),i.add(r))}else for(let[n,r]of Object.entries(i)){let a=t(e,i,n,r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}return e.call(n,r,i)}e.applyReviver=t})),K=n((e=>{var t=G();function n(e,r,i){if(Array.isArray(e))return e.map((e,t)=>n(e,String(t),i));if(e&&typeof e.toJSON==`function`){if(!i||!t.hasAnchor(e))return e.toJSON(r,i);let n={aliasCount:0,count:1,res:void 0};i.anchors.set(e,n),i.onCreate=e=>{n.res=e,delete i.onCreate};let a=e.toJSON(r,i);return i.onCreate&&i.onCreate(a),a}return typeof e==`bigint`&&!i?.keep?Number(e):e}e.toJS=n})),Ki=n((e=>{var t=Gi(),n=G(),r=K();e.NodeBase=class{constructor(e){Object.defineProperty(this,n.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:i,maxAliasCount:a,onAnchor:o,reviver:s}={}){if(!n.isDocument(e))throw TypeError(`A document argument is required`);let c={anchors:new Map,doc:e,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof a==`number`?a:100},l=r.toJS(this,``,c);if(typeof o==`function`)for(let{count:e,res:t}of c.anchors.values())o(t,e);return typeof s==`function`?t.applyReviver(s,{"":l},``,l):l}}})),qi=n((e=>{var t=Wi(),n=Hi(),r=G(),i=Ki(),a=K(),o=class extends i.NodeBase{constructor(e){super(r.ALIAS),this.source=e,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],n.visit(e,{Node:(e,t)=>{(r.isAlias(t)||r.hasAnchor(t))&&i.push(t)}}),t&&(t.aliasResolveCache=i));let a;for(let e of i){if(e===this)break;e.anchor===this.source&&(a=e)}return a}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,o=this.resolve(r,t);if(!o){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let c=n.get(o);if(c||=(a.toJS(o,null,t),n.get(o)),c?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=s(r,o,n)),c.count*c.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return c.res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}else if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),q=n((e=>{var t=G(),n=Ki(),r=K();let i=e=>!e||typeof e!=`function`&&typeof e!=`object`;var a=class extends n.NodeBase{constructor(e){super(t.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:r.toJS(this.value,e,t)}toString(){return String(this.value)}};a.BLOCK_FOLDED=`BLOCK_FOLDED`,a.BLOCK_LITERAL=`BLOCK_LITERAL`,a.PLAIN=`PLAIN`,a.QUOTE_DOUBLE=`QUOTE_DOUBLE`,a.QUOTE_SINGLE=`QUOTE_SINGLE`,e.Scalar=a,e.isScalarValue=i})),Ji=n((e=>{var t=qi(),n=G(),r=q();function i(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function a(e,a,o){if(n.isDocument(e)&&(e=e.contents),n.isNode(e))return e;if(n.isPair(e)){let t=o.schema[n.MAP].createNode?.(o.schema,null,o);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:c,onTagObj:l,schema:u,sourceObjects:d}=o,f;if(s&&e&&typeof e==`object`){if(f=d.get(e),f)return f.anchor??=c(e),new t.Alias(f.anchor);f={anchor:null,node:null},d.set(e,f)}a?.startsWith(`!!`)&&(a=`tag:yaml.org,2002:`+a.slice(2));let p=i(e,a,u.tags);if(!p){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new r.Scalar(e);return f&&(f.node=t),t}p=e instanceof Map?u[n.MAP]:Symbol.iterator in Object(e)?u[n.SEQ]:u[n.MAP]}l&&(l(p),delete o.onTagObj);let m=p?.createNode?p.createNode(o.schema,e,o):typeof p?.nodeClass?.from==`function`?p.nodeClass.from(o.schema,e,o):new r.Scalar(e);return a?m.tag=a:p.default||(m.tag=p.tag),f&&(f.node=m),m}e.createNode=a})),Yi=n((e=>{var t=Ji(),n=G(),r=Ki();function i(e,n,r){let i=r;for(let e=n.length-1;e>=0;--e){let t=n[e];if(typeof t==`number`&&Number.isInteger(t)&&t>=0){let e=[];e[t]=i,i=e}else i=new Map([[t,i]])}return t.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}let a=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done;e.Collection=class extends r.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,`schema`,{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>n.isNode(t)||n.isPair(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(a(e))this.add(t);else{let[r,...a]=e,o=this.get(r,!0);if(n.isCollection(o))o.addIn(a,t);else if(o===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(n.isCollection(i))return i.deleteIn(r);throw Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,a=this.get(r,!0);return i.length===0?!t&&n.isScalar(a)?a.value:a:n.isCollection(a)?a.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!n.isPair(t))return!1;let r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return n.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...a]=e;if(a.length===0)this.set(r,t);else{let e=this.get(r,!0);if(n.isCollection(e))e.setIn(a,t);else if(e===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}},e.collectionFromPath=i,e.isEmptyPath=a})),Xi=n((e=>{let t=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function n(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}e.indentComment=n,e.lineComment=(e,t,r)=>e.endsWith(`
1
+ import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../semver-DhHJv6Dt.mjs";import{RuntimeNamespace as i,RuntimeSubjects as a}from"./bus/runtime/namespace.mjs";import{ExplicitDescriptorDiscovery as o,FilesystemDescriptorDiscovery as s}from"./extension-discovery.mjs";import{MAKAIO_CONFIG_FILE_ENV as c,MAKAIO_HOME_ENV as l,buildConfiguredRuntimeOptions as u,createMakaioConfigDiscovery as d,defineMakaioConfig as f,loadMakaioConfig as p,parseMakaioConfig as m,resolveMakaioConfigPath as h,resolveMakaioHome as g,shouldIncludeExtension as _}from"./makaio-config.mjs";import{t as v}from"../descriptor-to-package-CY8oc2gl.mjs";import{a as y,c as b,i as x,n as S,o as C,r as w,s as T,t as E}from"../load-extensions-wELQ4BBN.mjs";import{i as ee,o as te,r as ne,s as re,t as ie}from"../workflow-worker-CK9Sqj7D.mjs";import{createRequire as D}from"node:module";import{z as O}from"zod";import{execFile as ae,execFileSync as oe}from"node:child_process";import{promisify as se}from"node:util";import{fileURLToPath as ce,pathToFileURL as k}from"node:url";import*as A from"node:fs/promises";import*as j from"node:path";import M from"node:path";import*as le from"node:crypto";import{createHash as N,randomUUID as ue}from"node:crypto";import*as P from"node:fs";import F,{existsSync as I,readFileSync as de}from"node:fs";import{createBusNamespace as fe}from"@makaio/framework/core";import{ChannelClosedError as pe,MakaioBus as me,openChannel as he,projectSubjectTelemetryFacts as ge}from"@makaio/framework/bus";import{AIModelSchema as L,AdapterSubjects as _e,BUILT_IN_THIN_WORKFLOW_PROVIDER_ID as ve,CapabilitySubjects as ye,ConfigSchema as be,ConfigSubjects as xe,CredentialSubjects as Se,FrameworkContractNamespaces as Ce,FrameworkStorageNamespaces as we,ProviderDefinitionSchema as Te,SubjectTelemetrySubjects as Ee,extensionToken as De,isDetachedDescriptor as Oe,isUniversalRange as ke,registerWorkerNodeProvider as Ae,safeParseExtensionDescriptor as je,unregisterWorkerNodeProvider as Me,versionSatisfies as Ne}from"@makaio/framework/contracts";import{BaseService as Pe}from"@makaio/framework/service-base";import{uniqueIndex as Fe}from"drizzle-orm/sqlite-core";import{uniqueIndex as Ie}from"drizzle-orm/pg-core";import{NON_BASELINE_GENERATION_LEGS as Le,STORAGE_ENGINE_URL_HINTS as Re,defineDialectSchema as ze,defineDualTable as Be,findStorageEngine as Ve,getDatabaseDialect as He,getRawSqlExecutor as Ue,getStorageEngine as We,registerDrizzleHandlers as Ge,registerStorageEngine as Ke,resolveSchema as qe,resolveStorageEngine as Je,resolveStorageEngineForUrl as Ye}from"@makaio/framework/storage/drizzle";import{and as Xe,eq as R,sql as z}from"drizzle-orm";import{ADAPTER_FILE_SCHEMA_VERSION as Ze,AdapterFileSchema as Qe,PROVIDER_CONFIG_SCHEMA_VERSION as $e,ProviderConfigFileSchema as et,brandCredentialRecord as tt,isAccountManagerRef as nt,parseStoredCredentialRef as rt,resolveCanonicalProviderConfigName as it,slugifyProviderConfigName as at}from"@makaio/framework/contracts/config";import{resolveModelVisibility as ot}from"@makaio/framework/contracts/provider";import{AdapterRuntimeSubjects as st,buildDeterministicAdapterId as ct,registerAdapterRuntimeIdentityHandlers as lt}from"@makaio/framework/services/adapter-runtime";import{buildProviderContext as ut}from"@makaio/framework/services/provider-context";import{ClientSubjects as dt}from"@makaio/framework/contracts/client";import*as ft from"node:os";import{ProviderStorageSubjects as pt}from"@makaio/framework/services/settings/storage";import{isRecord as mt}from"@makaio/framework/utils";import{AdapterSubsystemSubjects as ht,AdapterSubsystemSubjects as B}from"@makaio/framework/services/adapter-subsystem";import{createClientsCorePackage as gt}from"@makaio/framework/clients";import{Readable as _t,Transform as vt}from"node:stream";import{pipeline as yt}from"node:stream/promises";import{DispatchingAuth as bt,E2EAuth as xt,HmacAuth as St,WebSocketClientTransport as Ct}from"@makaio/framework/node/transports";import{createDatabaseClient as wt}from"@makaio/framework/storage/drizzle/client";import{BootNamespace as Tt,ExtensionCoordinator as Et,ExtensionNamespace as Dt,ExtensionSubjects as Ot,KernelNamespace as kt,coalesceExtensionOverrides as At,createShutdownSequence as jt,filterEligibleExtensions as Mt}from"@makaio/framework/kernel";import{CachedRegistryFetcher as Nt,FallbackRegistryFetcher as Pt,ModelRegistryProviderNotFoundError as Ft,ModelRegistrySchema as It,ModelRegistrySubjects as Lt,ProviderModelOverrideSchema as Rt,mergeModelMetadata as zt}from"@makaio/framework/services/model-registry";import{discoverWorkspacePackageJsonPaths as Bt,parseWorkspaceGlobs as Vt}from"@makaio/framework/utils/workspace-packages";import{loadOrCreateMachineIdentity as Ht,loadOrCreateMachineIdentity as Ut,machineKeysExist as Wt,validateMachineKeys as Gt}from"@makaio/framework/node/machine-identity";import{resolveWorkspaceRoot as Kt}from"@makaio/framework/utils/workspace-root";import{Hono as qt}from"hono";import{CliNamespace as Jt}from"@makaio/framework/kernel/cli";import{startBusServer as Yt}from"@makaio/framework/node/bus-server";import{WebSocketServer as Xt}from"ws";import{ConfigProvider as Zt}from"@makaio/framework/providers";import{KernelSubjects as V}from"@makaio/framework/kernel/namespace";import{FrameworkServicesCoreNamespaces as Qt,SessionOrchestratorToken as $t,createArtifactKindContributionProcessor as en,createArtifactLifecycleHookContributionProcessor as tn,createFacetNamespaceContributionProcessor as nn,createModelRegistryPackage as rn,createSurfaceBindingContributionProcessor as an,createToolContributionProcessor as on,createTransitionContributionProcessor as sn,createWorkflowBlockContributionProcessor as cn,frameworkCorePackages as ln}from"@makaio/framework/services";import{createLogImportContributionProcessor as un,logImportRegistryPackage as dn}from"@makaio/framework/services/log-import";import{createWorkflowEnginePackage as fn}from"@makaio/framework/workflow-engine/package";import{PreferenceValueSchema as pn,PreferencesSubjects as mn}from"@makaio/framework/services/preferences";import{resolveConnectorCredentials as hn,resolveCredentialRef as gn}from"@makaio/framework/adapters/config";import{DefinitionSubjects as _n}from"@makaio/framework/services/definition";import{ProviderRuntimeSubjects as vn}from"@makaio/framework/services/provider-runtime";import{SettingsSubjects as yn}from"@makaio/framework/services/settings/namespace";import{serveStatic as bn}from"@hono/node-server/serve-static";function xn(e){return e.on(_e.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(st.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function Sn(e){return e?{...e}:void 0}function Cn(e){return e?{...e}:void 0}function wn(e){return e?structuredClone(e):void 0}function Tn(e,t){let n=[];for(let[r,i]of t.providerConfigs){let t=e.providerConfigs.get(r);t!==i&&n.push({kind:`write-provider`,key:`provider:${r}`,id:r,next:i,previous:t})}for(let[r,i]of t.adapters){let t=e.adapters.get(r);t!==i&&n.push({kind:`write-adapter`,key:`adapter:${r}`,name:r,next:i,previous:t})}for(let[r,i]of e.providerConfigs)t.providerConfigs.has(r)||n.push({kind:`delete-provider`,key:`provider-delete:${r}`,id:r,previous:i});return n}async function En(e,t){switch(t.kind){case`write-provider`:await e.writeProviderConfig(t.id,t.next);return;case`write-adapter`:await e.writeAdapterFile(t.name,t.next);return;case`delete-provider`:if(!await e.deleteProviderConfig(t.id))throw Error(`Provider config file missing during delete: ${t.id}`);return}}async function Dn(e,t){switch(t.kind){case`write-provider`:if(t.previous){await e.writeProviderConfig(t.id,t.previous);return}await e.deleteProviderConfig(t.id);return;case`write-adapter`:if(t.previous){await e.writeAdapterFile(t.name,t.previous);return}await e.deleteAdapterFile(t.name);return;case`delete-provider`:await e.writeProviderConfig(t.id,t.previous);return}}async function On(e,t,n){let r=Tn(t,n);if(r.length===0)return;let i=[];try{for(let t of r)i.push(t),await En(e,t)}catch(t){try{await kn(e,i)}catch(e){throw AggregateError([t,e],`Adapter subsystem snapshot commit failed and rollback could not restore the previous state.`,{cause:e})}throw t}}async function kn(e,t){let n=[];for(let r of[...t].reverse())try{await Dn(e,r)}catch(e){n.push(e instanceof Error?Error(`[${r.key}] ${e.message}`,{cause:e}):Error(`[${r.key}] ${String(e)}`))}if(n.length>0)throw AggregateError(n,`Snapshot rollback failed.`)}function An(e,t){let n=t.credentials!==void 0&&Object.keys(t.credentials).length>0,r=Mn(t.credentials);return{id:e,definitionId:t.definitionId,name:t.name??t.definitionId,...t.endpointOverrides?{endpointOverrides:{...t.endpointOverrides}}:{},...t.modelVisibility?{modelVisibility:{...t.modelVisibility}}:{},modelFilterMode:t.modelFilterMode??`show-all`,isDefault:t.isDefault??!1,enabled:t.enabled??!0,isSentinel:t.isSentinel??!1,hasCredentials:n,...r?{sourceRef:r}:{}}}function H(e,t){return(t??[]).map(t=>({adapterName:e,providerConfigId:t.providerConfigId,isDefault:t.isDefault??!1}))}function jn(e,t,n){return{name:e,enabled:t.enabled??!0,...t.displayName===void 0?{}:{displayName:t.displayName},...t.description===void 0?{}:{description:t.description},...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds===void 0?{}:{providerDefinitionIds:[...t.providerDefinitionIds]},...t.settings?{settings:structuredClone(t.settings)}:{},bindings:n.map(e=>({...e}))}}function Mn(e){if(e){for(let t of Object.values(e))if(nt(t))return t}}function Nn(e,t){let n=[],r=new Set;for(let i of e){let e=t.get(i.providerConfigId);!e||r.has(e.definitionId)||(r.add(e.definitionId),n.push(e.definitionId))}return n}function Pn(e){let t=new Map,n=new Map,r=new Map;for(let[i,a]of e.providerConfigs){let e=An(i,a);t.set(i,e),n.set(at(e.name),i);let o=r.get(e.definitionId)??[];o.push(i),r.set(e.definitionId,o)}let i=new Map,a=new Map,o=new Map,s=new Map;for(let[n,r]of e.adapters){let e=H(n,r.bindings),c=jn(n,r,e),l=e.filter(e=>t.get(e.providerConfigId)?.enabled);i.set(n,c),a.set(n,e),s.set(n,l.find(e=>e.isDefault)??l[0]??null);for(let t of e){let e=o.get(t.providerConfigId)??[];e.push(t),o.set(t.providerConfigId,e)}}return{providerConfigRecords:t,providerConfigSlugToId:n,providerConfigIdsByDefinition:r,adapterRecords:i,bindingsByAdapter:a,bindingsByConfig:o,defaultBindingByAdapter:s,adapterNames:new Set(i.keys())}}function Fn(e,t){return e.get(t)?.enabled??!1}function In(e,t){return e.some(e=>Fn(t,e.providerConfigId))}function Ln(e,t){let n=e.find(e=>Fn(t,e.providerConfigId));return{bindings:e.map(e=>({...e,isDefault:e.providerConfigId===n?.providerConfigId})),...n?{promoted:{...n,isDefault:!0}}:{}}}function Rn(e,t,n){let r=[...n.entries()].filter(([n,r])=>n!==t&&r.definitionId===e).map(([e,t])=>({id:e,config:t})),i=r.find(({id:e})=>Fn(n,e))?.id??null;for(let{id:e,config:t}of r)n.set(e,{...t,isDefault:i!==null&&e===i});return i}async function zn(e,t,n){let{provider:r}=await e.request(pt.get,{id:n.definitionId});if(!r)throw Error(`ProviderDefinition '${n.definitionId}' not found for config '${t}'`);let i=await Bn(e,r),a={...r.endpoints??{},...n.endpointOverrides??{}},o=Vn(i);return{providerConfigId:t,definitionId:r.id,...Object.keys(a).length>0?{endpointOverrides:a}:{},credentialRefs:tt(n.credentials)??{},...r.credentialEnvVars?{credentialEnvVars:{...r.credentialEnvVars}}:{},...o.length>0?{ambientCredentialEnvVars:o}:{}}}async function Bn(e,t){try{let n=await e.requestOptional(pt.list,{});return n.handled?n.data.providers:[t]}catch(e){return console.debug(`[AdapterSubsystem] Provider list unavailable for ambient credential discovery`,e),[t]}}function Vn(e){return[...new Set(e.flatMap(e=>e.credentialEnvVars?Object.values(e.credentialEnvVars):[]))]}var Hn=class{tail=Promise.resolve();async run(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),await t}},Un=class{configRepository;bus;snapshot={providerConfigs:new Map,adapters:new Map};providerConfigRecords=new Map;providerConfigSlugToId=new Map;adapterRecords=new Map;bindingsByAdapter=new Map;bindingsByConfig=new Map;defaultBindingByAdapter=new Map;providerConfigIdsByDefinition=new Map;knownAdapterNames=new Set;logImportProviderKeysPromise=null;snapshotMutationQueue=new Hn;constructor(e){this.configRepository=e.configRepository,this.bus=e.bus}async loadSnapshot(){let[e,t]=await Promise.all([this.configRepository.loadProviderConfigs(),this.configRepository.loadAdapterConfigs()]);this.replaceSnapshot({providerConfigs:new Map(e.configs),adapters:new Map(t.configs)})}registerListeners(e){let t=()=>{this.logImportProviderKeysPromise=null};e(this.bus.on(ye.register,t,{filter:{capabilityId:`log-import`}})),e(this.bus.on(ye.unregister,t,{filter:{capabilityId:`log-import`}}))}clear(){this.snapshot={providerConfigs:new Map,adapters:new Map},this.providerConfigRecords.clear(),this.providerConfigSlugToId.clear(),this.adapterRecords.clear(),this.bindingsByAdapter.clear(),this.bindingsByConfig.clear(),this.defaultBindingByAdapter.clear(),this.providerConfigIdsByDefinition.clear(),this.knownAdapterNames.clear(),this.logImportProviderKeysPromise=null}replaceSnapshot(e){this.snapshot=e,this.applyDerivedState()}cloneSnapshot(){return{providerConfigs:new Map(this.snapshot.providerConfigs),adapters:new Map(this.snapshot.adapters)}}async commitSnapshotMutation(e,t){return await this.snapshotMutationQueue.run(async()=>{let n=this.cloneSnapshot();return await e(n),await this.commitSnapshot(n),await t?.()})}async commitSnapshot(e){await On(this.configRepository,this.snapshot,e),this.replaceSnapshot(e)}applyDerivedState(){let e=Pn(this.snapshot);this.providerConfigRecords=e.providerConfigRecords,this.providerConfigSlugToId=e.providerConfigSlugToId,this.providerConfigIdsByDefinition=e.providerConfigIdsByDefinition,this.adapterRecords=e.adapterRecords,this.bindingsByAdapter=e.bindingsByAdapter,this.bindingsByConfig=e.bindingsByConfig,this.defaultBindingByAdapter=e.defaultBindingByAdapter,(e.adapterNames.size!==this.knownAdapterNames.size||[...e.adapterNames].some(e=>!this.knownAdapterNames.has(e)))&&(this.knownAdapterNames=e.adapterNames,this.logImportProviderKeysPromise=null)}getProviderConfig(e){let t=this.providerConfigRecords.get(e);return t?structuredClone(t):null}requireProviderConfig(e,t){let n=this.getProviderConfig(e);if(!n)throw Error(`Provider config could not be loaded after ${t}: ${e}`);return n}getAdapterConfig(e){let t=this.adapterRecords.get(e);return t?structuredClone(t):null}requireAdapterConfig(e,t){let n=this.getAdapterConfig(e);if(!n)throw Error(`Adapter config could not be loaded after ${t}: ${e}`);return n}isAdapterEnabled(e){return this.getAdapterConfig(e)?.enabled??!1}listProviderConfigs(e){let t=[...this.providerConfigRecords.values()].map(e=>structuredClone(e));return e===void 0?t:t.filter(t=>t.enabled===e)}listProviderConfigsByDefinition(e){return this.getProviderConfigIdsByDefinition(e).map(e=>this.getProviderConfig(e)).filter(e=>e!==null)}listAdapterConfigs(){return[...this.adapterRecords.values()].map(e=>structuredClone(e))}listBindings(e){return structuredClone(this.bindingsByAdapter.get(e)??[])}listBindingsByConfig(e){return structuredClone(this.bindingsByConfig.get(e)??[])}getDefaultBinding(e){let t=this.defaultBindingByAdapter.get(e)??null;return t?structuredClone(t):null}findConfigForDefinitionAndAdapter(e,t){let n=new Set((this.bindingsByAdapter.get(t)??[]).map(e=>e.providerConfigId)),r=this.getProviderConfigIdsByDefinition(e).map(e=>this.providerConfigRecords.get(e)).filter(e=>e!==void 0&&e.enabled&&n.has(e.id)),i=r.find(e=>e.isDefault)??r[0]??null;return i?structuredClone(i):null}getRawProviderConfig(e){return this.snapshot.providerConfigs.get(e)}getProviderConfigIdsByDefinition(e){return[...this.providerConfigIdsByDefinition.get(e)??[]]}assertProviderConfigNameUnique(e,t){let n=at(e),r=this.providerConfigSlugToId.get(n);if(r!==void 0&&r!==t){let t=this.providerConfigRecords.get(r)?.name??r;throw Error(`Provider config name "${e}" conflicts with existing config "${t}": both slugify to "${n}". Choose a different name.`)}}async setAdapterConfig(e,t){return{config:await this.commitSnapshotMutation(n=>{let r=n.adapters.get(e);n.adapters.set(e,this.buildNextAdapterFile(r,t))},()=>this.requireAdapterConfig(e,`update`))}}buildNextAdapterFile(e,t){return{...e??{},$schema:Ze,...this.applyAdapterPatch(e,t),bindings:e?.bindings}}applyAdapterPatch(e,t){let n=e??{},r=t.helpLinks?.map(e=>({...e}))??n.helpLinks,i=t.providerDefinitionIds?[...t.providerDefinitionIds]:n.providerDefinitionIds;return{enabled:t.enabled??n.enabled??!0,displayName:t.displayName??n.displayName,description:t.description??n.description,helpLinks:r,instructions:t.instructions??n.instructions,clientId:t.clientId??n.clientId,protocol:t.protocol??n.protocol,providerDefinitionIds:i,settings:t.settings===void 0?n.settings:wn(t.settings)}}async setAdapterEnabled(e,t){await this.setAdapterConfig(e,{enabled:t})}async buildEffectiveAdapters(){let e=await this.getLogImportProviderKeys();return[...this.adapterRecords.values()].map(t=>{let n=this.bindingsByAdapter.get(t.name)??[],r=n.filter(e=>this.providerConfigRecords.get(e.providerConfigId)?.enabled),i=[...t.providerDefinitionIds??Nn(n,this.providerConfigRecords)];return{name:t.name,displayName:t.displayName??t.name,...t.description===void 0?{}:{description:t.description},enabled:t.enabled,configCount:n.length,readiness:r.length>0?`ready`:`needs-setup`,supportsLogImport:e.has(t.name),...t.helpLinks===void 0?{}:{helpLinks:t.helpLinks.map(e=>({...e}))},...t.instructions===void 0?{}:{instructions:t.instructions},...t.clientId===void 0?{}:{clientId:t.clientId},...t.protocol===void 0?{}:{protocol:t.protocol},...t.providerDefinitionIds!==void 0||i.length>0?{providerDefinitionIds:i}:{}}})}async getLogImportProviderKeys(){if(!this.logImportProviderKeysPromise){let e=this.bus.requestOptional(ye.listProviders,{capabilityId:`log-import`}).then(t=>t.handled?new Set(t.data.providers.map(e=>e.providerKey??e.id)):(this.logImportProviderKeysPromise===e&&(this.logImportProviderKeysPromise=null),new Set)).catch(e=>{throw this.logImportProviderKeysPromise=null,e});this.logImportProviderKeysPromise=e}return await this.logImportProviderKeysPromise}async buildProviderContext(e){let t=this.snapshot.providerConfigs.get(e);return t?zn(this.bus,e,t):null}removeBindingsForConfig(e,t,n){let r=new Map,i=[],a=[];for(let[o,s]of t){let t=H(o,s.bindings),c=t.findIndex(t=>t.providerConfigId===e);if(c===-1)continue;let[l]=t.splice(c,1);if(l&&i.push(l),l?.isDefault&&t.length>0){let e=Ln(t,n);t.splice(0,t.length,...e.bindings),e.promoted&&a.push({adapterName:o,providerConfigId:e.promoted.providerConfigId})}r.set(o,{...s,bindings:t.map(({adapterName:e,...t})=>t)})}return{changedAdapters:r,deletedBindings:i,defaultChangedBindings:a}}promoteProviderConfigDefault(e,t,n){return Rn(e,t,n)}};function Wn(e){if(!(e===void 0||e.length===0))return e.map(e=>({...e}))}function Gn(e,t){return e.clientId!==void 0&&t?.some(t=>t.id===e.clientId)?e.clientId:t?.[0]?.id}async function Kn(e,t,n,r,i={}){if(t===void 0||t.length===0)return;let a=new Map(n.map(e=>[e.definition.id,e.definition]));for(let n of t){let t=a.get(n.id);if(t===void 0)throw Error(`Adapter "${e}" references missing client "${n.id}"`);qn(t.version,n.version,`Adapter "${e}" client "${n.id}" definition version ${t.version}`)}if(i.checkBinaryVersions===!1)return;let o=t.filter(e=>e.binaryVersion!==void 0);await Promise.all(o.map(async t=>{if(ke(t.binaryVersion))return;let n=await r.requestOptional(dt.resolveBinary,{clientId:t.id});if(!n.handled)throw Error(`Adapter "${e}" client "${t.id}" declares binaryVersion ${t.binaryVersion}, but no client.resolveBinary handler is registered`);let i=n.data.version;if(i===null)throw Error(`Adapter "${e}" client "${t.id}" binary did not report a version; requires ${t.binaryVersion}`);qn(i,t.binaryVersion,`Adapter "${e}" client "${t.id}" binary version ${i}`)}))}function qn(e,t,n){if(!Ne(e,t))throw Error(`${n} does not satisfy ${t}`)}function Jn(e){let t=Gn(e.options,e.clients);return{name:e.name,displayName:e.displayName??e.name,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:t,protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id)}}async function Yn(e){for(let[t,n]of e){let e=n;if(typeof e.shutdown==`function`)try{await e.shutdown()}catch(e){console.error(`[adapter-runtime] Error shutting down adapter ${t}:`,e)}}e.clear()}async function Xn(e,t,n){try{let e=t;typeof e.shutdown==`function`&&await e.shutdown()}finally{n.delete(e)}}async function Zn(e,t){let{config:n}=await e.request(B.getAdapterConfig,{name:t});return n?.enabled??!1}function Qn(e,t){return e.options.adapterId??ct(t,e.name)}async function $n(e,t,n,r,i){let a=[];for(let o of n)try{if(!await Zn(e,o.name)){console.info(`Skipping disabled adapter: ${o.name}`);continue}let n=Qn(o,t),a=Gn(o.options,o.clients),s=await o.factory({...o.options,adapterId:n,platformDefaults:i,definitionProviders:o.providers,clientId:a});if(s.adapterId!==n)throw Error(`Adapter '${o.name}' initialized with mismatched adapterId (expected '${n}', got '${s.adapterId}')`);r.set(n,s);let c=s;try{await e.emit(_e.initialized,{adapterId:n,adapterName:o.name,capabilities:[...c.capabilities??[]],...c.nativeTools===void 0?{}:{nativeTools:[...c.nativeTools]}})}catch(e){try{await Xn(n,s,r)}catch(e){console.error(`[adapter-runtime] Error rolling back adapter ${o.name}:`,e)}throw e}console.info(`Initialized adapter: ${o.name} (${o.packageName})`)}catch(e){a.push({adapterName:o.name,error:e})}if(a.length>0){let e=a.map(({adapterName:e,error:t})=>`${e}: ${t instanceof Error?t.message:String(t)}`).join(`; `);throw Error(`Failed to initialize enabled adapters: ${e}`)}}var er=class{bus;machineId;loadedAdapters=new Map;adapterInstances=new Map;packageAdapters=new Map;publicationChain=Promise.resolve();constructor(e){this.bus=e.bus,this.machineId=e.machineId}getLoadedAdapters(){return[...this.loadedAdapters.values()]}getAdapterInstances(){return this.adapterInstances}getSettingsAvailableAdapters(){return[...this.loadedAdapters.values()].map(Jn)}registerAdapter(e,t){let n=this.loadedAdapters.get(e.name);if(n)throw Error(`Duplicate adapter name '${e.name}' from owners '${n.packageName}' and '${t}'.`);this.loadedAdapters.set(e.name,e);let r=this.packageAdapters.get(t)??[];this.packageAdapters.set(t,[...r,e.name])}async deregisterAdapter(e){let t=this.loadedAdapters.get(e);if(t){let n=t.options.adapterId??ct(this.machineId,e),r=this.adapterInstances.get(n);if(r){let e=r;typeof e.shutdown==`function`&&await e.shutdown(),this.adapterInstances.delete(n)}}this.loadedAdapters.delete(e)}removePackageTracking(e){this.packageAdapters.delete(e)}async deregisterPackage(e){let t=this.packageAdapters.get(e);if(t?.length){for(let e of t)try{await this.deregisterAdapter(e)}catch(t){console.error(`[AdapterRuntimeRegistry] Error shutting down adapter "${e}":`,t)}this.packageAdapters.delete(e)}}publishAdapterRegistered(e){let{adapterName:t,displayName:n,packageName:r,enabled:i,adapterId:a,providerDefinitionIds:o}=e,s=this.adapterInstances.has(a),c=this.publicationChain.catch(()=>void 0).then(()=>this.bus.emit(B.adapter.registered,{adapterName:t,displayName:n??t,packageName:r,enabled:i,initialized:s,providerDefinitionIds:[...o]}));return this.publicationChain=c.catch(()=>void 0),c}async initializeAdapter(e,t){await $n(this.bus,this.machineId,[e],this.adapterInstances,t)}async shutdownAll(){await Yn(this.adapterInstances),this.loadedAdapters.clear(),this.packageAdapters.clear()}},tr=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async createProviderConfig(e){let t=await this.resolveProviderConfigName(e.definitionId,e.name),n=at(t),r=this.cloneCreateCredentialRefs(e),i=Sn(e.endpointOverrides),a=Cn(e.modelVisibility),o=await this.configStore.commitSnapshotMutation(o=>{if(this.configStore.assertProviderConfigNameUnique(t),o.providerConfigs.has(n))throw Error(`Provider config already exists: ${n}`);o.providerConfigs.set(n,{$schema:$e,definitionId:e.definitionId,name:t,credentials:r,endpointOverrides:i,modelVisibility:a,modelFilterMode:e.modelFilterMode??`show-all`,isDefault:![...o.providerConfigs.values()].some(t=>t.definitionId===e.definitionId),enabled:!0,isSentinel:e.isSentinel??!1})},()=>this.configStore.requireProviderConfig(n,`creation`));return await this.bus.emit(B.providerConfig.created,o),{config:o}}async updateProviderConfig(e,t){let n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);let i=t.name??r.name??r.definitionId;t.name!==void 0&&this.configStore.assertProviderConfigNameUnique(i,e),n.providerConfigs.set(e,{...r,name:i,endpointOverrides:t.endpointOverrides===null?void 0:t.endpointOverrides===void 0?r.endpointOverrides:Sn(t.endpointOverrides),modelVisibility:t.modelVisibility===void 0?r.modelVisibility:Cn(t.modelVisibility),enabled:t.enabled??r.enabled})},()=>this.configStore.requireProviderConfig(e,`update`));return await this.bus.emit(B.providerConfig.updated,n),{config:n}}async setProviderConfigCredentialRefs(e,t){let n=this.normalizeCredentialRefs(t),r=await this.configStore.commitSnapshotMutation(t=>{let r=t.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);t.providerConfigs.set(e,{...r,credentials:n})},()=>this.configStore.requireProviderConfig(e,`credential update`));return await this.bus.emit(B.providerConfig.updated,r),{config:r}}async deleteProviderConfig(e){let t=!1,n,r=``,i=!1,a=null,o={changedAdapters:new Map,deletedBindings:[],defaultChangedBindings:[]},s=await this.configStore.commitSnapshotMutation(s=>{let c=s.providerConfigs.get(e);if(c){if(c.isSentinel){c.enabled&&(s.providerConfigs.set(e,{...c,enabled:!1}),n=e);return}o=this.configStore.removeBindingsForConfig(e,s.adapters,s.providerConfigs),i=c.isDefault??!1,r=c.definitionId,t=!0,s.providerConfigs.delete(e),a=i?this.configStore.promoteProviderConfigDefault(c.definitionId,e,s.providerConfigs):null;for(let[e,t]of o.changedAdapters)s.adapters.set(e,t)}},()=>n?this.configStore.requireProviderConfig(e,`sentinel disable`):null);if(!t)return n&&await this.bus.emit(B.providerConfig.updated,s),{deleted:!1};await this.cleanupDeletedProviderCredentials(e);for(let e of o.deletedBindings)await this.bus.emit(B.binding.deleted,e);for(let e of o.defaultChangedBindings)await this.bus.emit(B.binding.defaultChanged,e);return await this.bus.emit(B.providerConfig.deleted,{id:e}),i&&await this.bus.emit(B.providerConfig.defaultChanged,{definitionId:r,configId:a}),{deleted:!0}}async setDefaultProviderConfig(e){let t=``,n=await this.configStore.commitSnapshotMutation(n=>{let r=n.providerConfigs.get(e);if(!r)throw Error(`Provider config not found: ${e}`);if(!(r.enabled??!0))throw Error(`Disabled provider config cannot be default: ${e}`);t=r.definitionId;for(let[r,i]of n.providerConfigs)i.definitionId===t&&n.providerConfigs.set(r,{...i,isDefault:r===e})},()=>this.configStore.requireProviderConfig(e,`setDefault`));return await this.bus.emit(B.providerConfig.updated,n),await this.bus.emit(B.providerConfig.defaultChanged,{definitionId:t,configId:e}),{config:n}}async setModelFilterMode(e,t,n){let r=await this.configStore.commitSnapshotMutation(async r=>{let i=r.providerConfigs.get(e);if(!i)throw Error(`Provider config not found: ${e}`);let a=i.modelVisibility;if(t===`allowlist`){let e=await this.selectAllowlistKeeper(i.definitionId,i,n);e&&(a={...i.modelVisibility??{},[e]:`visible`})}r.providerConfigs.set(e,{...i,modelFilterMode:t,modelVisibility:a})},()=>this.configStore.requireProviderConfig(e,`setModelFilterMode`));return await this.bus.emit(B.providerConfig.updated,r),{config:r}}normalizeCredentialRefs(e){if(!(!e||Object.keys(e).length===0))return tt(e)}cloneCreateCredentialRefs(e){return this.normalizeCredentialRefs(e.credentialRefs)}async cleanupDeletedProviderCredentials(e){try{await this.bus.requestOptional(Se.delete,{configId:e})}catch(t){console.warn(`[AdapterProviderConfigService] Failed to delete credentials for removed provider config "${e}":`,t)}}async resolveProviderConfigName(e,t){let n=it({requestedName:t,providerName:(await this.getProviderDefinitionOrThrow(e)).name,definitionId:e});if(n)return n;throw Error(`Unable to derive a canonical provider config name for definition: ${e}`)}async getProviderDefinitionOrThrow(e){let{provider:t}=await this.bus.request(pt.get,{id:e});if(!t)throw Error(`Provider definition not found: ${e}`);return t}async selectAllowlistKeeper(e,t,n){let{provider:r}=await this.bus.request(pt.get,{id:e}),i=[n,...r?.availableModels?.map(e=>e.name)??[],...Object.keys(t.modelVisibility??{})].filter(e=>typeof e==`string`&&e.length>0);for(let e of i){let n=ot(e,`allowlist`,t.modelVisibility);if(n===`enabled`||n===`visible`)return}return i[0]}},nr=class{configStore;bus;constructor(e){this.configStore=e.configStore,this.bus=e.bus}async bind(e,t){let n,r=!1;if(await this.configStore.commitSnapshotMutation(i=>{let a=i.providerConfigs.get(t);if(!a)throw Error(`Provider config not found: ${t}`);let o=i.adapters.get(e);if(!o)throw Error(`Adapter config not found: ${e}`);let s=H(e,o.bindings),c=s.find(e=>e.providerConfigId===t);if(c){n={...c};return}r=!0,n={adapterName:e,providerConfigId:t,isDefault:(a.enabled??!0)&&!In(s,i.providerConfigs)};let l=[...s,n];i.adapters.set(e,{...o,bindings:l.map(({adapterName:e,...t})=>t)})}),!n)throw Error(`Binding could not be loaded after bind: ${e}/${t}`);return r&&await this.bus.emit(B.binding.created,n),n}async unbind(e,t){let n,r=!1;await this.configStore.commitSnapshotMutation(i=>{let a=i.adapters.get(e);if(!a)return;let o=H(e,a.bindings),s=o.findIndex(e=>e.providerConfigId===t);if(s===-1)return;let[c]=o.splice(s,1);if(r=!0,c?.isDefault&&o.length>0){let e=Ln(o,i.providerConfigs);n=e.promoted,o.splice(0,o.length,...e.bindings)}i.adapters.set(e,{...a,bindings:o.map(({adapterName:e,...t})=>t)})}),r&&(await this.bus.emit(B.binding.deleted,{adapterName:e,providerConfigId:t}),n&&await this.bus.emit(B.binding.defaultChanged,{adapterName:e,providerConfigId:n.providerConfigId}))}async setDefaultBinding(e,t){let n=!1;await this.configStore.commitSnapshotMutation(r=>{let i=r.adapters.get(e);if(!i)throw Error(`Adapter config not found: ${e}`);let a=H(e,i.bindings),o=a.find(e=>e.providerConfigId===t);if(!o)throw Error(`Binding not found for adapter ${e} and provider config ${t}`);if(!Fn(r.providerConfigs,o.providerConfigId))throw Error(`Disabled provider config cannot be default binding: ${t}`);o.isDefault||(n=!0,r.adapters.set(e,{...i,bindings:a.map(({adapterName:e,...n})=>({...n,isDefault:n.providerConfigId===t}))}))}),n&&await this.bus.emit(B.binding.defaultChanged,{adapterName:e,providerConfigId:t})}};function rr(e){return e.map(e=>({...e}))}function ir(e){if(e instanceof Ft)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return t.name===`ModelRegistryProviderNotFoundError`&&typeof t.providerId==`string`||e instanceof Error&&/^Request to "getProviderModels" failed: Provider ".+" is not present in the model registry$/.test(e.message)||e instanceof Error&&/^Provider ".+" is not present in the model registry$/.test(e.message)?!0:ir(t.cause)}function ar(e){let t=new Set;for(let n of e){if(typeof n==`string`){(n===`anthropic`||n===`openai`)&&t.add(n);continue}n.anthropic!==void 0&&t.add(`anthropic`),n.openai!==void 0&&t.add(`openai`)}return[...t]}function or(e,t,n){let r=ar(n);if(t!==void 0){if(!r.includes(t))throw Error(`Adapter "${e}" definition protocol "${t}" must be declared in manifest.protocols [${r.join(`, `)}].`);return t}return r.length===1?r[0]:void 0}var sr=class{configStore;registry;coordinator;machineId;platformDefaults;constructor(e){this.configStore=e.configStore,this.registry=e.registry,this.coordinator=e.coordinator,this.machineId=e.machineId,this.platformDefaults=e.platformDefaults}register(e){e(this.coordinator.registerContributionProcessor({filter:e=>!!e.adapters?.length,processActivated:async(e,t,n)=>{await this.onPackageActivated(e,t,n)},processStopped:async e=>{await this.onPackageStopped(e)}}))}async onPackageActivated(e,t,n){let r=t.adapters??[],i=[],a=[],o=new Map,s=await n.bus.request(Ot.contributions.catalog,{}),c=new Map;for(let e of s.providers)c.set(e.definition.id,e.definition);for(let e of t.providers??[])c.set(e.id,e);let l=s.clients;try{for(let t of r){let r=await this.activateAdapterContribution(e,t,n.bus,o,c,l);i.push(t.definition.name),a.push(r)}}catch(t){for(let e of i.reverse())try{await this.registry.deregisterAdapter(e)}catch(t){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${e}":`,t)}throw this.registry.removePackageTracking(e),t}await this.publishActivatedAdapters(a)}async processAdapterContribution(e,t,n=me){let r=await this.activateAdapterContribution(e,t,n,new Map);await this.publishActivatedAdapters([r])}async activateAdapterContribution(e,t,n,r,i,a){let o=await this.buildLoadedAdapter(e,t,n,r,i,a),s=!1;try{await this.ensureAdapterConfig(o);let t=this.configStore.isAdapterEnabled(o.name);t&&await this.validateEnabledAdapterClientRefs(o,n,a),this.registry.registerAdapter(o,e),s=!0,t&&(await this.registry.initializeAdapter(o,this.platformDefaults),console.info(`[AdapterContributionProcessor] Initialized adapter: ${o.name} (${o.packageName})`))}catch(e){if(s)try{await this.registry.deregisterAdapter(o.name)}catch(e){console.error(`[AdapterContributionProcessor] Rollback error for adapter "${o.name}":`,e)}throw e}return o}async validateEnabledAdapterClientRefs(e,t,n){if(e.clients===void 0||e.clients.length===0)return;let r=n??(await t.request(Ot.contributions.catalog,{})).clients;await Kn(e.name,e.clients,r,t)}async resolveProviderDefinitions(e,t,n,r,i,a){let o=a;if(!o){o=new Map;let t=await e.request(Ot.contributions.catalog,{});for(let e of t.providers)o.set(e.definition.id,e.definition)}let s=[],c=[];for(let e of t){let t=o.get(e.definitionId);if(!t){c.push(e.definitionId);continue}s.push({definition:t,configSchema:e.configSchema??r,credentialSchema:e.credentialSchema??i})}if(c.length>0)throw Error(`Adapter "${n}" declares providers [${c.join(`, `)}] but no active extension registers them. Ensure provider extensions are listed in the adapter's dependencies.`);return s}async buildLoadedAdapter(e,t,n=me,r=new Map,i,a){let o=t.definition,s=t.manifest,c=o.name,l=a??(await n.request(Ot.contributions.catalog,{})).clients;await Kn(c,s.clients,l,n,{checkBinaryVersions:!1});let u=await this.resolveProviderDefinitions(n,o.providers,c,o.providerConfigSchema,o.providerCredentialSchema,i),d=await Promise.all(u.map(async e=>{let t=e.definition.id;try{let i=r.get(t);if(i===void 0){let a=await n.requestOptional(Lt.getProviderModels,{providerId:t});i=a.handled?a.data.models:e.definition.availableModels??[],r.set(t,i)}return{...e,definition:{...e.definition,availableModels:rr(i)}}}catch(n){if(ir(n))return{...e,definition:{...e.definition,availableModels:rr(e.definition.availableModels??[])}};throw Error(`[AdapterContributionProcessor] Failed to populate available models for provider "${t}" on adapter "${c}"`,{cause:n})}}));return{name:c,displayName:o.displayName??s.displayName,description:o.description,packageName:e,factory:o.createAdapter,options:{adapterId:ct(this.machineId,c)},adapterConfigSchema:o.adapterConfigSchema,providers:d,helpLinks:o.helpLinks,instructions:o.instructions,defaultPresetId:o.defaultPresetId,clients:Wn(s.clients),protocol:or(c,o.protocol,s.protocols)}}async ensureAdapterConfig(e){this.configStore.getAdapterConfig(e.name)||await this.configStore.setAdapterConfig(e.name,{displayName:e.displayName,description:e.description,helpLinks:e.helpLinks?.map(e=>({...e})),instructions:e.instructions,clientId:Gn(e.options,e.clients),protocol:e.protocol,providerDefinitionIds:e.providers.map(e=>e.definition.id),enabled:!1})}async onPackageStopped(e){await this.registry.deregisterPackage(e)}publishAdapterRegistered(e){let t=this.configStore.isAdapterEnabled(e.name),n=e.options.adapterId??ct(this.machineId,e.name),r=e.providers.map(e=>e.definition.id);return this.registry.publishAdapterRegistered({adapterName:e.name,displayName:e.displayName,packageName:e.packageName,enabled:t,adapterId:n,providerDefinitionIds:r})}async publishActivatedAdapters(e){for(let t of e)try{await this.publishAdapterRegistered(t)}catch(e){console.error(`[AdapterContributionProcessor] Failed to publish adapter "${t.name}" registration:`,e)}}},cr=class extends Pe{configStore;registry;providerConfigService;bindingService;contributionProcessor;constructor(e){super(e.bus),this.configStore=new Un({configRepository:e.configRepository,bus:e.bus}),this.registry=new er({bus:e.bus,machineId:e.machineId}),this.providerConfigService=new tr({configStore:this.configStore,bus:e.bus}),this.bindingService=new nr({configStore:this.configStore,bus:e.bus}),this.contributionProcessor=new sr({configStore:this.configStore,registry:this.registry,coordinator:e.coordinator,machineId:e.machineId,platformDefaults:e.platformDefaults})}async onInit(){await this.configStore.loadSnapshot(),this.configStore.registerListeners(e=>this.addCleanup(e)),this.registerBusHandlers(),await this.bus.emit(B.ready,{})}registerBusHandlers(){this.registerReadHandlers(),this.registerMutationHandlers()}registerReadHandlers(){this.registerHandler(B.getAdapterConfig,e=>{e.setResult({config:this.configStore.getAdapterConfig(e.payload.name)})}),this.registerHandler(B.listAdapterConfigs,e=>{e.setResult({configs:this.configStore.listAdapterConfigs()})}),this.registerHandler(B.getProviderConfig,e=>{e.setResult({config:this.configStore.getProviderConfig(e.payload.id)})}),this.registerHandler(B.listProviderConfigs,e=>{e.setResult({configs:this.configStore.listProviderConfigs(e.payload.enabled)})}),this.registerHandler(B.listProviderConfigsByDefinition,e=>{e.setResult({configs:this.configStore.listProviderConfigsByDefinition(e.payload.definitionId)})}),this.registerHandler(B.listBindings,e=>{e.setResult({bindings:this.configStore.listBindings(e.payload.adapterName)})}),this.registerHandler(B.listBindingsByConfig,e=>{e.setResult({bindings:this.configStore.listBindingsByConfig(e.payload.providerConfigId)})}),this.registerHandler(B.getDefaultBinding,e=>{e.setResult({binding:this.configStore.getDefaultBinding(e.payload.adapterName)})}),this.registerHandler(B.findConfigForDefinitionAndAdapter,e=>{e.setResult({config:this.configStore.findConfigForDefinitionAndAdapter(e.payload.definitionId,e.payload.adapterName)})}),this.registerHandler(B.buildProviderContext,async e=>{e.setResult({context:await this.configStore.buildProviderContext(e.payload.providerConfigId)})}),this.registerHandler(B.listAdapters,async e=>{e.setResult({adapters:await this.configStore.buildEffectiveAdapters()})}),this.registerHandler(B.getProviderDefinitionsByAdapter,e=>{let t=(this.registry.getLoadedAdapters().find(t=>t.name===e.payload.adapterName)?.providers??[]).map(e=>Te.parse(e.definition));e.setResult({definitions:t})}),this.registerHandler(B.ensureReady,e=>{e.setResult({ready:!0})})}registerMutationHandlers(){this.registerHandler(B.createProviderConfig,async e=>{e.setResult(await this.providerConfigService.createProviderConfig(e.payload))}),this.registerHandler(B.updateProviderConfig,async e=>{e.setResult(await this.providerConfigService.updateProviderConfig(e.payload.id,e.payload.patch))}),this.registerHandler(B.setProviderConfigCredentialRefs,async e=>{e.setResult(await this.providerConfigService.setProviderConfigCredentialRefs(e.payload.id,e.payload.credentialRefs))}),this.registerHandler(B.deleteProviderConfig,async e=>{e.setResult(await this.providerConfigService.deleteProviderConfig(e.payload.id))}),this.registerHandler(B.setDefaultProviderConfig,async e=>{e.setResult(await this.providerConfigService.setDefaultProviderConfig(e.payload.id))}),this.registerHandler(B.setModelFilterMode,async e=>{e.setResult(await this.providerConfigService.setModelFilterMode(e.payload.id,e.payload.modelFilterMode,e.payload.preferredModel))}),this.registerHandler(B.setAdapterConfig,async e=>{e.setResult(await this.configStore.setAdapterConfig(e.payload.name,e.payload.patch))}),this.registerHandler(B.setAdapterEnabled,async e=>{await this.configStore.setAdapterEnabled(e.payload.name,e.payload.enabled),e.setResult({success:!0})}),this.registerHandler(B.bind,async e=>{e.setResult({binding:await this.bindingService.bind(e.payload.adapterName,e.payload.providerConfigId)})}),this.registerHandler(B.unbind,async e=>{await this.bindingService.unbind(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})}),this.registerHandler(B.setDefaultBinding,async e=>{await this.bindingService.setDefaultBinding(e.payload.adapterName,e.payload.providerConfigId),e.setResult({})})}async onDestroy(){await this.registry.shutdownAll(),this.configStore.clear()}getLoadedAdapters(){return this.registry.getLoadedAdapters()}getAdapterInstances(){return this.registry.getAdapterInstances()}getSettingsAvailableAdapters(){return this.registry.getSettingsAvailableAdapters()}async processAdapterContributions(e,t,n){await this.contributionProcessor.onPackageActivated(e,t,n)}async stopAdapterContributions(e){await this.contributionProcessor.onPackageStopped(e)}};const U=`.json`;var lr=class{providerConfigsDir;adaptersDir;constructor(e){this.providerConfigsDir=e.providerConfigsDir,this.adaptersDir=e.adaptersDir}async loadAdapterConfigs(){let e=new Map,t=await this.readJsonFiles(this.adaptersDir,`adapter`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`adapter`,n.filePath);if(!t)continue;let r=Qe.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`adapter`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async loadProviderConfigs(){let e=new Map,t=await this.readJsonFiles(this.providerConfigsDir,`provider config`);for(let n of t){let t=this.getCanonicalLoadedStem(n.stem,`provider config`,n.filePath);if(!t)continue;let r=et.safeParse(n.jsonData);if(!r.success){this.warnInvalidFile(`provider config`,n.filePath);continue}e.set(t,r.data)}return{configs:e}}async writeProviderConfig(e,t){let n=this.assertCanonicalFileStem(e,`provider config id`),r=et.parse(t);await this.writeJsonFile(j.join(this.providerConfigsDir,`${n}${U}`),r)}async deleteProviderConfig(e){let t=this.assertCanonicalFileStem(e,`provider config id`);try{return await this.unlinkFile(j.join(this.providerConfigsDir,`${t}${U}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async writeAdapterFile(e,t){let n=this.assertCanonicalFileStem(e,`adapter name`),r=Qe.parse(t);await this.writeJsonFile(j.join(this.adaptersDir,`${n}${U}`),r)}async deleteAdapterFile(e){let t=this.assertCanonicalFileStem(e,`adapter name`);try{return await this.unlinkFile(j.join(this.adaptersDir,`${t}${U}`)),!0}catch(e){if(e.code===`ENOENT`)return!1;throw e}}async readJsonFiles(e,t){try{let n=(await A.readdir(e,{withFileTypes:!0})).filter(e=>e.isFile()&&j.extname(e.name)===U).sort((e,t)=>e.name.localeCompare(t.name));return(await Promise.all(n.map(async n=>{let r=j.join(e,n.name);try{let e=await A.readFile(r,`utf-8`);return{filePath:r,stem:j.parse(n.name).name,jsonData:JSON.parse(e)}}catch(e){if(e instanceof SyntaxError||e instanceof Error&&e.code===`ENOENT`)return this.warnInvalidFile(t,r),null;throw e}}))).filter(e=>e!==null)}catch(e){if(e.code===`ENOENT`)return[];throw e}}warnInvalidFile(e,t){console.warn(`[FileAdapterConfigRepository] Skipping invalid %s file: %s`,e,t)}getCanonicalLoadedStem(e,t,n){try{return this.assertCanonicalFileStem(e,`${t} file stem`)}catch{return this.warnInvalidFile(t,n),null}}async writeJsonFile(e,t){let n=j.dirname(e),r=j.join(n,`.${j.basename(e)}.${ue()}.tmp`);await A.mkdir(n,{recursive:!0});try{await A.writeFile(r,`${JSON.stringify(t,null,2)}\n`,{encoding:`utf-8`,mode:384}),await this.replaceFile(r,e)}catch(e){throw await this.removeFileIfPresent(r),e}}async replaceFile(e,t){try{await this.renameFile(e,t);return}catch(e){let t=e;if(![`EEXIST`,`EPERM`,`EACCES`].includes(t.code??``))throw e}let n=`${t}.${ue()}.bak`,r=!1;try{await this.renameFile(t,n),r=!0}catch(e){if(e.code!==`ENOENT`)throw e}try{await this.renameFile(e,t)}catch(e){throw r&&await this.renameFile(n,t).catch(()=>void 0),e}r&&await this.removeFileIfPresent(n)}async renameFile(e,t){await A.rename(e,t)}async unlinkFile(e){await A.unlink(e)}async removeFileIfPresent(e){try{await A.unlink(e)}catch(t){t.code!==`ENOENT`&&console.warn(`[FileAdapterConfigRepository] Failed to remove temp file: %s`,e,t)}}assertCanonicalFileStem(e,t){let n=e.trim(),r=j.basename(n);if(!n||e!==n||n!==r||!/^[a-z0-9._-]+$/.test(n)||n.includes(`/`)||n.includes(`\\`)||n.toLowerCase().endsWith(`.json`)||n===`.`||n===`..`)throw Error(`Invalid canonical ${t}: ${e}`);return n}};function ur(e){return{filter:e=>!!e.adapters?.length,async processActivated(t,n,r){let i=e.getAdapterSubsystemService();if(!i)throw Error(`AdapterSubsystemService is not available. Ensure the adapter subsystem package starts before adapter-contributing packages.`);await i.processAdapterContributions(t,n,r)},async processStopped(t){let n=e.getAdapterSubsystemService();n&&await n.stopAdapterContributions(t)}}}const dr=De(`adapter-subsystem`);function fr(e){return{name:dr.name,displayName:`Adapter Subsystem`,version:`0.1.0`,provides:[`adapters`],critical:!0,create:t=>new cr({bus:t.bus,configRepository:e.configRepository,coordinator:e.coordinator,machineId:t.machineId,platformDefaults:e.platformDefaults})}}function pr(e){let{coordinator:t,configRepository:n,platformDefaults:r}=e,i=fr({configRepository:n,coordinator:t,platformDefaults:r});return t.registerContributionProcessor(ur({getAdapterSubsystemService:()=>t.getExtensionService(dr)})),{adapterSubsystemPackage:i}}function mr(e){let{bus:t,currentMachineId:n}=e,r=lt(t,{currentMachineId:n,listKnownAdapterNames:e.listKnownAdapterNames??(async()=>{let{configs:e}=await t.request(ht.listAdapterConfigs,{});return e.map(e=>e.name)})}),i=xn(t);return{cleanup:()=>{r.cleanup(),i()}}}function hr(e=`sqlite`){let{migrations:t}=We(e);return t.resolveSourceChainDir?.()??M.resolve(import.meta.dirname,`..`,t.chainDirName)}const gr=`sqlite`;function _r(e){let t=M.resolve(e,`package.json`),n=F.readFileSync(t,`utf-8`),r=Vt(JSON.parse(n));if(r.length>0)return[...r];throw Error(`No workspaces defined in ${t}`)}function vr(e){return e===void 0?[]:Array.isArray(e)?e:[e]}async function yr(e,t,n=`sqlite`){if(t&&t.length===0)throw Error(`discoverSchemas: patterns override must contain at least one glob`);let r=await Bt(e,{patterns:t??_r(e)}),i=[];for(let e of r){let t=F.readFileSync(e,`utf-8`),r=JSON.parse(t);if(!r.name||!r.makaio?.drizzleSchema)continue;let a=r.name,o=M.dirname(e),s=r.makaio.drizzleSchema,c,l;typeof s==`string`||Array.isArray(s)?(c=vr(s),l=[]):(c=vr(s.sqlite),l=vr(s.postgres));let u={sqlite:c,postgres:l};if(l.length>0&&c.length===0)throw Error(`Package "${a}" declares makaio.drizzleSchema with 'postgres' entries but no 'sqlite' entries. SQLite is the baseline dialect; declare the sqlite schema files as well.`);if(n!==gr&&u[gr].length>0&&u[n].length===0)throw Error(`Package "${a}" declares makaio.drizzleSchema without a '${n}' entry. Central-tier schema packages must declare schema files for every dialect being generated.`);let d=[...c,...l];for(let t of d){let n=M.resolve(o,t);if(!F.existsSync(n))throw Error(`Schema file not found: ${n}\nDeclared in ${a} (${e})\nRelative path: ${t}`)}let f=u[n];for(let e of f){let t=M.resolve(o,e);i.push({packageName:a,schemaPath:t})}}return i.sort((e,t)=>{let n=e.packageName.localeCompare(t.packageName);return n===0?e.schemaPath.localeCompare(t.schemaPath):n})}const br={sqlite:`schema.ts`,postgres:`schema.postgres.ts`};async function xr(e={}){let t=e.logger??console,n=e.workspaceRoot??M.resolve(import.meta.dirname,`../../..`);if(e.dialects&&e.dialects.length===0)throw Error(`generateSchema: options.dialects must contain at least one dialect when provided — an empty list would write no barrels and leave stale generated schema in place.`);let r=e.dialects??[`sqlite`];t.info(`Workspace root: ${n}`);let i=e.generatedDir??M.resolve(import.meta.dirname,`../.generated`);F.mkdirSync(i,{recursive:!0});for(let a of r){let r=await yr(n,e.patterns,a);t.info(`\nDiscovered ${r.length} ${a} schema(s):`);for(let e of r)t.info(` - ${e.packageName}`),t.info(` ${e.schemaPath}`);let o=r.map(e=>`export * from '${e.schemaPath.replace(/\\/g,`/`)}';`).join(`
2
+ `),s=br[a],c=M.join(i,s);F.writeFileSync(c,o+`
3
+ `,`utf-8`),t.info(`\n✓ Generated: ${c}`)}}function Sr(){let e=process.argv[1];return e?k(e).href===import.meta.url:!1}function Cr(){let e=D(import.meta.url),t=[`sqlite`];for(let n of Le){try{e.resolve(`${n.enginePackageName}/package.json`)}catch(e){if(e instanceof Error&&e.code===`MODULE_NOT_FOUND`)continue;throw e}t.push(n.dialect)}return t}Sr()&&xr({dialects:Cr()});const wr=`sqlite`;function Tr(){let e=D(import.meta.url);return M.join(M.dirname(e.resolve(`drizzle-kit`)),`bin.cjs`)}function Er(){return`m_${Date.now().toString(36)}`}function Dr(e){let t=D(import.meta.url);try{return M.dirname(t.resolve(`${e}/package.json`))}catch(e){if(e instanceof Error&&e.code===`MODULE_NOT_FOUND`)return;throw e}}function Or(e){let t=M.join(e,`meta`,`_journal.json`);if(F.existsSync(t))return JSON.parse(F.readFileSync(t,`utf-8`)).entries.at(-1)?.tag}function kr(e,t,n,r){if(r!==n&&(r===void 0||!r.endsWith(`_${t}`)))throw Error(`Cross-chain naming mismatch: the ${e} chain's newly generated migration tag '${r??`<none>`}' does not end with the shared name suffix '_${t}'. Every leg must receive the same '--name' so chains stay correlatable.`)}function Ar(e){e.fresh&&F.rmSync(e.chainDir,{recursive:!0,force:!0}),e.runCommand({file:`tsx`,args:[e.drizzleKitBin,`generate`,`--config`,e.configPath,`--name`,e.name],cwd:e.cwd}),e.normalizeScriptPath&&e.runCommand({file:`tsx`,args:[e.normalizeScriptPath],cwd:e.cwd})}async function jr(e={}){let t=e.logger??console,n=e.fresh??!1,r=e.__internals??{},i=r.runCommand??Nr,a=r.resolveEnginePackageRoot??Dr,o=r.readNewestJournalTag??Or,s=e.name??Er(),c=e.drizzleKitBin??Tr(),l=M.resolve(import.meta.dirname,`..`),u=Cr();await(r.regenerateBarrels??(n=>xr({dialects:n,logger:t,workspaceRoot:e.workspaceRoot})))(u);let d=[],f=M.join(l,`drizzle`);t.info(`[storage-migrations] Generating ${wr} chain (--name ${s})`);let p=o(f);Ar({runCommand:i,drizzleKitBin:c,cwd:l,configPath:`drizzle.config.ts`,chainDir:f,name:s,fresh:n}),kr(wr,s,p,o(f)),d.push({dialect:wr,chainDir:f,ran:!0});for(let e of Le){let r=a(e.enginePackageName),l=Mr(r,e);if(!r){t.info(`[storage-migrations] Skipping ${e.dialect} chain — engine package ${e.enginePackageName} is not installed.`),d.push({dialect:e.dialect,chainDir:l,ran:!1,reason:`engine-absent`});continue}t.info(`[storage-migrations] Generating ${e.dialect} chain (--name ${s})`);let u=o(l);Ar({runCommand:i,drizzleKitBin:c,cwd:r,configPath:M.join(r,e.drizzleConfigSpecifier),chainDir:l,name:s,fresh:n,normalizeScriptPath:e.normalizeScriptSpecifier?M.join(r,e.normalizeScriptSpecifier):void 0}),kr(e.dialect,s,u,o(l)),d.push({dialect:e.dialect,chainDir:l,ran:!0})}return{name:s,legs:d}}function Mr(e,t){return e?M.join(e,t.chainDirName):t.chainDirName}function Nr(e){oe(e.file,[...e.args],{cwd:e.cwd,stdio:`inherit`})}function Pr(){let e=process.argv[1];return e?k(e).href===import.meta.url:!1}function Fr(e){let t,n=!1;for(let r=2;r<e.length;r+=1){let i=e[r];if(i===`--fresh`)n=!0;else if(i===`--name`){if(r+1>=e.length)throw Error(`--name requires a value`);t=e[r+1],r+=1}else i.startsWith(`--name=`)&&(t=i.slice(7))}return{name:t,fresh:n}}if(Pr()){let{name:e,fresh:t}=Fr(process.argv);jr({name:e,fresh:t})}var Ir=class extends Error{expectedDialect;journalDialect;constructor(e,t,n,r){super(`Migration journal at ${r} declares dialect '${n??`unknown`}', but the target database speaks '${e}'. Point the runner at a migrations directory generated for '${e}' (journal dialect '${t}').`),this.name=`MigrationDialectMismatchError`,this.expectedDialect=e,this.journalDialect=n}};function Lr(e={}){let t=typeof e==`string`?void 0:e.expectedDialect,n=typeof e==`string`?e:e.migrationsDir??hr(t),r=M.join(n,`meta`,`_journal.json`);if(!I(r))throw Error(`Cannot find migrations journal at ${r}`);let i=JSON.parse(de(r,`utf-8`));if(t!==void 0){let e=We(t).migrations.journalDialect;if(i.dialect!==e)throw new Ir(t,e,i.dialect,r)}return i.entries.map(e=>{let t=de(M.join(n,`${e.tag}.sql`),`utf-8`);return{tag:e.tag,sql:t.split(`--> statement-breakpoint`),folderMillis:e.when,hash:N(`sha256`).update(t).digest(`hex`),bps:e.breakpoints}})}function Rr(e){return e.replace(/--.*$/gm,``).trim()}async function zr(e,t){try{await e.run(z.raw(`ROLLBACK`))}catch(e){console.error(`[storage-migrations] Failed to roll back migration transaction`,{...t,rollbackError:e})}}async function Br(e){let{migrations:t}=e.engine;if(await e.session.run(z.raw(t.beginTransactionStatement)),t.acquireTransactionLock)try{await t.acquireTransactionLock(e.session,e.tableName)}catch(t){throw await zr(e.session,{migrationsTable:e.tableName}),t}}async function Vr(e){let t=e.engine.migrations.acquireTransactionLock!==void 0;t&&await Br(e);try{await e.session.run(z.raw(e.engine.migrations.buildLedgerDdl(e.tableName)));let n=await e.session.all(z`SELECT hash FROM ${e.tableId}`);return t&&await e.session.run(z.raw(`COMMIT`)),new Set(n.map(e=>e.hash))}catch(n){throw t&&await zr(e.session,{migrationsTable:e.tableName}),n}}async function Hr(e,t){try{await e.session.run(z`INSERT INTO ${e.tableId} ("hash", "created_at") VALUES (${t.hash}, ${t.folderMillis})`),await e.session.run(z.raw(`COMMIT`))}catch(e){throw console.error(`[storage-migrations] Failed to finalize migration`,{hash:t.hash,folderMillis:t.folderMillis,error:e}),e}}async function Ur(e,t){return e.engine.migrations.acquireTransactionLock===void 0||(await e.session.all(z`SELECT hash FROM ${e.tableId} WHERE hash = ${t.hash}`)).length===0?!1:(console.warn(`[storage-migrations] Migration already recorded by a concurrent runner, skipping`,{hash:t.hash,folderMillis:t.folderMillis}),await e.session.run(z.raw(`COMMIT`)),!0)}async function Wr(e,t){await e.session.run(z.raw(`ROLLBACK`)),await Br(e),!await Ur(e,t)&&await Hr(e,t)}async function Gr(e,t){await Br(e);try{if(await Ur(e,t))return;for(let[n,r]of t.sql.entries())if(Rr(r))try{await e.session.run(z.raw(r))}catch(i){if(n===0&&/^\s*CREATE\s/i.test(r)&&e.engine.errors.isDuplicateObjectError(i)){if(t.sql.length>1)throw Error(`Cannot adopt multi-statement migration '${t.tag}' because its first schema object already exists. Reset the database or provide an incremental migration.`,{cause:i});console.warn(`[storage-migrations] Schema object already exists, adopting into ledger`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n}),await Wr(e,t);return}throw console.error(`[storage-migrations] Failed to apply migration statement`,{hash:t.hash,folderMillis:t.folderMillis,statementIndex:n,statement:r,error:i}),i}await Hr(e,t)}catch(n){throw await zr(e.session,{hash:t.hash,folderMillis:t.folderMillis}),n}}async function Kr(e,t,n){let r=Ue(e),i=We(r.dialect),a=n??i.migrations.defaultLedgerTable;await r.withSession(async e=>{let n={session:e,engine:i,tableName:a,tableId:z.identifier(a)},r=await Vr(n);for(let e of t)r.has(e.hash)||(await Gr(n,e),r.add(e.hash))})}async function qr(e,t={}){await Kr(e,Lr({migrationsDir:t.migrationsDir,expectedDialect:He(e)})),await Je(e).fts.provisionSearchIndex(e)}var Jr=class{configPath;constructor(e){this.configPath=j.join(e,`config.json`)}async getConfig(){try{let e=await A.readFile(this.configPath,`utf-8`);return be.parse(JSON.parse(e))}catch(e){if(e.code===`ENOENT`)return be.parse({});if(e instanceof SyntaxError||e instanceof Error&&e.name===`ZodError`)return console.warn(`[FileConfigStorage] Failed to parse config, falling back to defaults:`,e),be.parse({});throw e}}async saveConfig(e){let t=j.dirname(this.configPath);await A.mkdir(t,{recursive:!0}),await A.writeFile(this.configPath,JSON.stringify(e,null,2),{encoding:`utf-8`,mode:384}),await A.chmod(this.configPath,384)}};function Yr(e){try{let t=j.resolve(Kt(e),`static/model-registry.yaml`);return I(t)?t:void 0}catch{return}}async function Xr(e,t){await new Promise((n,r)=>{if(e.address()){n();return}let i=e=>{if(o(),e.code===`EADDRINUSE`){r(Error(`Port ${t} is already in use`));return}r(e)},a=()=>{o(),n()},o=()=>{e.off(`error`,i),e.off(`listening`,a)};e.once(`error`,i),e.once(`listening`,a)}),e.on(`error`,e=>{console.error(`[HttpServer] Post-bind error:`,e)})}function Zr(e){let t=e.address();if(typeof t==`object`&&t&&`port`in t)return t.port;throw Error(`HTTP server is not bound to a TCP address`)}function Qr(e,t){let n=e,r=!1;return{fetch:(e,i,a)=>{if(!r)return new Response(`Makaio runtime is booting`,{status:503,headers:{"Retry-After":`1`}});let{pathname:o}=new URL(e.url);return t?.health&&e.method===`GET`&&o===`/health`?Response.json(t.health()):e.method===`GET`&&o===`/bus`?new Response(`WebSocket endpoint`,{status:426,headers:{Upgrade:`websocket`}}):n.fetch(e,i,a)},markReady(){r=!0},replaceApp(e){n=e}}}const $r=[`extension`,`static-fallback`];function ei(e){let t=[];function n(e){let t=new qt,n=[...e].sort((e,t)=>$r.indexOf(e.phase)-$r.indexOf(t.phase));for(let e of n)e.mount(t);return t}function r(){return n(t)}function i(r){e&&e.replaceApp(n(r)),t=r}return{add(e){i([...t,e])},remove(e){let n=t.filter(t=>t.owner!==e);n.length!==t.length&&i(n)},build:r,get contributions(){return[...t]}}}function ti(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=ri(t),i=(r===void 0?[t]:[t,n]).flatMap(e=>[`Cannot find package '${e}'`,`Cannot find module '${e}'`,`Cannot find package "${e}"`,`Cannot find module "${e}"`]),a=e;return(a.code===`ERR_MODULE_NOT_FOUND`||a.code===`MODULE_NOT_FOUND`)&&i.some(t=>e.message.includes(t))||a.code===`ERR_PACKAGE_PATH_NOT_EXPORTED`&&r!==void 0&&e.message.includes(`Package subpath '${r}' is not defined by "exports"`)&&ii(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function ni(e){try{return await import(e)}catch(t){if(ti(t,e))return null;throw t}}function ri(e){let t=e.split(`/`);return e.startsWith(`@`)?{rootPackageName:t.slice(0,2).join(`/`),subpath:t.length>2?`./${t.slice(2).join(`/`)}`:void 0}:{rootPackageName:t[0]??e,subpath:t.length>1?`./${t.slice(1).join(`/`)}`:void 0}}function ii(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}function ai(e){let t=e.url?.split(`?`)[0]??``;return t===`/bus`?!0:(t===`/`||t===``)&&e.headers.origin===void 0}function oi(e,t){return(n,r,i)=>{if(!ai(n))return;let a=e();if(!a||!t()){r.destroy();return}a.handleUpgrade(n,r,i,e=>{a.emit(`connection`,e,n)})}}var si=class{options;busServer=null;websocketServer=null;upgradeHandlerServer=null;upgradeHandler=null;busReady=!1;connecting=!1;constructor(e){this.options=e}get dispatchingAuth(){return this.options.auth instanceof bt?this.options.auth:void 0}async connect(e,t){if(this.connecting||this.busServer||this.websocketServer)throw Error(`[BusServerTransport] connect() called while transport is already connected or connecting`);if(this.options.httpServer.address()===null)throw Error(`[BusServerTransport] httpServer must already be listening before connect() is called`);this.connecting=!0;try{let t=new Xt({noServer:!0});this.websocketServer=t;let n=oi(()=>this.websocketServer,()=>this.busReady);this.options.httpServer.on(`upgrade`,n),this.upgradeHandlerServer=this.options.httpServer,this.upgradeHandler=n,this.busServer=await Yt({websocket:t,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`node`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.detachUpgradeHandler(),await this.stopWebSocketServer(`shutdown`)}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}detachUpgradeHandler(){this.upgradeHandlerServer&&this.upgradeHandler&&this.upgradeHandlerServer.off(`upgrade`,this.upgradeHandler),this.upgradeHandlerServer=null,this.upgradeHandler=null}async stopWebSocketServer(e){this.websocketServer&&=(await new Promise((e,t)=>{this.websocketServer.close(n=>n?t(n):e())}).catch(t=>{t instanceof Error&&t.message===`The server is not running`||console.error(`[BusServerTransport] Failed to close WebSocket server during ${e}:`,t)}),null)}},ci=class extends Zt{keysDir;constructor(e,t){super(e),this.keysDir=j.join(t,`keys`)}async getConfig(e){let t=await super.getConfig(e);return t.bus?.remote&&!t.bus.remote.secret&&(t.bus.remote.secret=this.generateSecret(),(await this.getStoredConfig()).bus?.remote?.url===t.bus.remote.url&&await this.saveConfig(await this.prepareConfigForPersistence(t))),t}generateSecret(){return le.randomBytes(32).toString(`base64`)}async getMachineId(){return(await Ut(this.keysDir)).machineId}getEnv(e){return process.env[e]}};function li(e,t){return{extensions:e.discovery??new s(void 0,{extensionsDir:M.join(t,`extensions`),nodeModulesDir:M.join(t,`node_modules`)})}}function ui(e){return I(M.join(e,`meta`,`_journal.json`))}function di(e,t={}){let{moduleDir:n=import.meta.dirname,getMigrationsFolder:r=hr}=t,i=We(e).migrations.chainDirName,a=[],o=M.resolve(n,`..`,i);if(ui(o))return o;a.push(o);try{let t=r(e);if(ui(t))return t;a.push(t)}catch(t){a.push(`getMigrationsFolder('${e}') unavailable: ${t instanceof Error?t.message:String(t)}`)}throw Error(`resolveBundledMigrationsDir: no '${e}' migrations directory with meta/_journal.json found. Probed: ${a.join(`; `)}. Pass an explicit migrations directory (boot option 'centralMigrationsDir' or InitializeNodeDatabaseOptions.migrationsDir) when migrations are staged elsewhere.`)}function fi(e){if(process.platform===`win32`)return!0;let t=e?.code;return t===`ENOSYS`||t===`EINVAL`}function pi(e){return e===void 0||e.trim()===``?void 0:e}function mi(e){try{let t=new URL(e);if(t.host!==``)return`${t.protocol}//${t.host}${t.pathname}`}catch{}let t=e.indexOf(`:`);return t===-1?`<unparseable database URL>`:`${e.slice(0,t+1)}…`}async function hi(e,t,n){let r;try{r=await import(k(D(j.resolve(t,`package.json`)).resolve(e.packageName)).href)}catch(t){throw Error(`initializeNodeDatabase: the database URL from ${n} targets the '${e.dialect}' storage engine, but '${e.packageName}' could not be loaded. Install ${e.packageName} in the host application, or pass its already-loaded storageEngine via the 'database.engines' boot option.`,{cause:t})}let i=r.storageEngine;if(i===void 0||i.dialect!==e.dialect)throw Error(`initializeNodeDatabase: '${e.packageName}' does not provide a storage engine for dialect '${e.dialect}'. Auto-resolved engine packages must export 'storageEngine: StorageEngine' with a matching dialect.`);Ve(e.dialect)===void 0&&Ke(i)}async function gi(e){let t=pi(e.database?.url),n=t??pi(process.env.MAKAIO_DATABASE_URL);if(n!==void 0){let r=t===void 0?`the MAKAIO_DATABASE_URL environment variable`:`the 'database.url' boot option`,i=Ye(n);if(i.kind===`missing-engine`&&(await hi(i,e.database?.enginePackageImportBasePath??process.cwd(),r),i=Ye(n)),i.kind!==`engine`){let e=Re.map(e=>e.packageName).join(`, `);throw Error(`initializeNodeDatabase: unsupported database URL '${mi(n)}' from ${r}. URL targets require a storage engine that claims the URL (e.g. postgres:// / postgresql:// via ${e}); SQLite targets are configured via the dbPath option or MAKAIO_DATABASE_PATH.`)}return{kind:`url`,url:n,dialect:i.engine.dialect}}let r=j.resolve(pi(e.dbPath)??pi(process.env.MAKAIO_DATABASE_PATH)??j.join(e.makaioHome,`makaio.db`));return{kind:`file`,dbPath:r,url:k(r).href}}async function _i(e){for(let t of e.database?.engines??[])Ke(t);let t=await gi(e);if(t.kind===`url`){let n=await wt({url:t.url,postgres:{poolMax:e.database?.poolMax}});try{let r=e.migrationsDir??di(t.dialect);return await qr(n.db,{migrationsDir:r}),{databaseClient:n}}catch(e){throw await n.close(),e}}let{dbPath:n}=t,r=j.dirname(n);await P.promises.mkdir(r,{recursive:!0});let i=await wt({url:t.url});try{await qr(i.db,{migrationsDir:e.migrationsDir});try{await P.promises.chmod(n,384)}catch(e){if(!fi(e))throw e;console.warn(`[initializeNodeDatabase] Failed to set SQLite file permissions (continuing; this may be unsupported on Windows):`,e)}return{databaseClient:i,dbPath:n}}catch(e){throw await i.close(),e}}const vi=O.object({npmName:O.string(),version:O.string(),source:O.enum([`new`,`upgraded`,`already-present`])}),yi=O.object({npmName:O.string(),reason:O.string()}),bi=O.object({success:O.boolean(),packageName:O.string(),version:O.string().optional(),restartRequired:O.boolean(),error:O.string().optional(),installed:O.array(vi).optional(),skipped:O.array(yi).optional(),warnings:O.array(O.string()).optional()}),xi=O.object({success:O.boolean(),packageName:O.string(),error:O.string().optional(),restartRequired:O.boolean()}),Si=O.object({name:O.string(),version:O.string(),description:O.string().optional(),hasDescriptor:O.boolean().default(!1),serverImportPath:O.string().min(1).optional()}),Ci=O.object({packageName:O.string(),latestVersion:O.string(),success:O.boolean(),error:O.string().optional()}),wi=O.object({name:O.string(),displayName:O.string(),description:O.string(),icon:O.string().optional(),tags:O.array(O.string()).optional(),descriptorName:O.string().min(1).optional()}),Ti=O.object({$schema:O.string(),updatedAt:O.string(),adapters:O.array(wi),extensions:O.array(wi)}),Ei=O.object({name:O.string(),currentVersion:O.string(),latestVersion:O.string(),description:O.string().optional()}),Di=fe(`packages`,{list:{request:O.object({}),response:O.object({packages:O.array(Si)})},install:{request:O.object({packageName:O.string().optional(),packageNames:O.array(O.string()).min(1).optional(),source:O.enum([`npm`,`local`]).optional(),force:O.boolean().optional()}).refine(e=>e.packageName!==void 0||e.packageNames!==void 0,{message:`Expected packageName or packageNames`}),response:bi},uninstall:{request:O.object({packageName:O.string()}),response:xi},getLatestVersion:{request:O.object({packageName:O.string()}),response:Ci},getRegistry:{request:O.object({}),response:Ti},checkUpdates:{request:O.object({}),response:O.object({updates:O.array(Ei)})},installed:O.object({packageName:O.string(),version:O.string()}),uninstalled:O.object({packageName:O.string()})}),W=Di.subjects;async function Oi(e,t,n){if(!j.isAbsolute(e))return;let r;try{r=await A.realpath(e)}catch{return}let i=ki(t,n),a=[j.resolve(r,`src`,`${i}.ts`),j.resolve(r,`dist`,`${i}.mjs`)];for(let e of a){let t=await Ai(e);if(t!==void 0&&ji(t,r))return t}}function ki(e,t){return t===!0?e:t}async function Ai(e){try{return await A.realpath(e)}catch{return}}function ji(e,t){let n=j.relative(t,e);return n.length>0&&!n.startsWith(`..`)&&!j.isAbsolute(n)}var Mi=class{extensionsDir;constructor(e){this.extensionsDir=j.resolve(e)}async install(e){try{let t=j.resolve(e.endsWith(`descriptor.json`)?j.dirname(e):e),n=await A.realpath(t),r=await this.readDescriptor(n);Oe(r)||await this.validateEntrypoints(n,r.entrypoints);let i=this.linkPathFor(r.name);await A.mkdir(j.dirname(i),{recursive:!0});try{if((await A.lstat(i)).isSymbolicLink())await A.unlink(i);else throw Error(`${i} already exists and is not a symlink`)}catch(e){if(e.code!==`ENOENT`)throw e}let a=process.platform===`win32`?`junction`:`dir`;return await A.symlink(n,i,a),{success:!0,packageName:r.name,version:r.version,restartRequired:!0}}catch(e){return{success:!1,packageName:``,error:e instanceof Error?e.message:String(e),restartRequired:!1}}}async uninstall(e){try{let t=this.linkPathFor(e);if(await A.unlink(t),e.startsWith(`@`)){let e=j.dirname(t);(await A.readdir(e).catch(()=>null))?.length===0&&await A.rmdir(e).catch(()=>{})}return{success:!0,packageName:e,restartRequired:!0}}catch(t){return{success:!1,packageName:e,error:t instanceof Error?t.message:String(t),restartRequired:!1}}}async list(){try{await A.access(this.extensionsDir)}catch{return[]}let e=await A.readdir(this.extensionsDir),t=[];for(let n of e){let e=j.join(this.extensionsDir,n);if(n.startsWith(`@`)){let n=await A.readdir(e).catch(()=>[]);for(let r of n){let n=j.join(e,r),i=await this.readLocalEntry(n);i!==null&&t.push(i)}}else{let n=await this.readLocalEntry(e);n!==null&&t.push(n)}}return t}async readLocalEntry(e){try{if(!(await A.lstat(e)).isSymbolicLink())return null;let t=await A.readlink(e),n=await A.realpath(j.resolve(j.dirname(e),t)),r=j.join(n,`descriptor.json`),i=await A.readFile(r,`utf-8`),a=je(JSON.parse(i));if(!a.success)return null;let o=a.data.entrypoints?.server,s=o===void 0?void 0:await Oi(n,`server`,o);return{name:a.data.name,version:a.data.version,sourcePath:n,source:`local`,...s!==void 0&&{serverImportPath:s}}}catch{return null}}async readDescriptor(e){let t=j.join(e,`descriptor.json`),n=await A.readFile(t,`utf-8`).catch(()=>{throw Error(`descriptor.json not found at ${t}`)}),r=je(JSON.parse(n));if(!r.success)throw Error(`Invalid descriptor.json: ${r.error.message}`);return r.data}async validateEntrypoints(e,t){await Promise.all(Object.entries(t).map(async([t,n])=>{if(n!==void 0&&await Oi(e,t,n)===void 0){let e=ki(t,n);throw Error(`${t} entrypoint "${e}" has no resolvable candidate: neither src/${e}.ts nor dist/${e}.mjs exists within the extension root`)}}))}linkPathFor(e){let t=j.resolve(this.extensionsDir,...e.split(`/`)),n=j.relative(this.extensionsDir,t);if(n===``||n.startsWith(`..`)||j.isAbsolute(n))throw Error(`Invalid extension name: ${e}`);return t}};const Ni=`nodeLinker: node-modules`,Pi=/^[A-Za-z]:[\\/]/;let Fi=null;function G(){return Fi||(Fi=Promise.all([import(`../lib-Cq5R6Tx9.mjs`).then(e=>t(e.t(),1)),import(`../lib-CNOQJtgs.mjs`).then(e=>t(e.t(),1)),import(`../lib-nlcl5kRW.mjs`).then(e=>t(e.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),Fi)}var Ii=class{makaioHome;constructor(e){this.makaioHome=e}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await G(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=Vi(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await G(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await G();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await G(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await G(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await G(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await G(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState(),s=[];for(let[,e]of o.topLevelWorkspace.manifest.dependencies){let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);a.hasDescriptor&&s.push({name:t,version:i,hasDescriptor:!0,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath}})}return s}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=zi(e);try{let{structUtils:e}=await G(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=await this.resolveInstalledServerEntrypoint(e,t);return{hasDescriptor:!0,...n!==void 0&&{serverImportPath:n}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return Oi(j.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=j.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{let e=await A.readFile(t,`utf-8`);n=JSON.parse(e)}catch(e){if(e instanceof SyntaxError||Hi(e))return null;throw e}let r=je(n);return r.success?r.data:null}async listInstalledExtensionDescriptors(){let e=j.join(this.makaioHome,`package.json`),t;try{let n=await A.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(Hi(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=j.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await A.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=j.join(this.makaioHome,`package.json`),t=await A.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=j.join(this.makaioHome,`package.json`);await A.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:i}=await this.loadYarnState();await this.runProjectInstall(n,r,i)}async resolvePackageVersion(e){try{let{StreamReport:t}=await G(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function Li(e,t){return!t||t===`latest`?e:`${e}@${t}`}function Ri(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function zi(e){return e.localPackagePath?`portal:${Bi(e.localPackagePath)}`:e.versionRange}function Bi(e){let t=(Pi.test(e)?e:j.resolve(e)).replace(/\\/g,`/`);return Pi.test(t)?`/${t}`:t}function Vi(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,Ni):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
4
+ `:``}${Ni}\n`}return`${r.join(`
5
+ `).trimEnd()}\n`}function Hi(e){if(typeof e!=`object`||!e||!(`code`in e))return!1;let t=e.code;return t===`ENOENT`||t===`ENOTDIR`}function Ui(e){if(e.startsWith(`git+`))return{kind:`git`,raw:e,resolved:e};let t=e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`);if(e.startsWith(`~`)&&!t)throw Error(`Unsupported home-relative path syntax: ${e}`);return e.startsWith(`.`)||j.isAbsolute(e)||j.win32.isAbsolute(e)||t?{kind:`local`,raw:e,resolved:t?j.resolve(ft.homedir(),e===`~`?`.`:e.slice(2)):j.resolve(e)}:{kind:`npm`,raw:e,resolved:e}}var Wi=class{packages;names;constructor(e,t){this.packages=e,this.names=t}async resolve(e,t={}){let n=t.snapshot!==null,r=n?t.snapshot===void 0?await this.packages.readManifestSnapshot():t.snapshot:null;try{return await this.runBfs(e,t.force===!0)}catch(e){if(n)try{await this.packages.writeManifestAndReinstall(r)}catch(t){throw AggregateError([e,t],`Dependency resolution failed and rollback failed: ${qi(e)}`)}throw e}}async runBfs(e,t){let n=await this.readInstalledIndex(),r=e.map(e=>{let t=Ki(e),n=Gi(t.npmName);return{npmName:t.npmName,...n?{expectedDescriptorName:n}:{},...t.requiredRange?{requiredRange:t.requiredRange}:{},optional:!1,path:[t.npmName],root:!0}}),i=new Set,a=[],o=[],s=[];for(;r.length>0;){let e=r.shift(),s=i.has(e.npmName),c=n.byNpmName.get(e.npmName);if(s){if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.descriptorRangeSatisfied(c.descriptor,e.requiredRange))continue;if(!c)throw Error(`Package ${e.npmName} was resolved but is missing from the installed index`)}if(c&&this.assertDescriptorMatches(e,c.descriptor),c&&this.shouldUseCurrentDescriptor(c.descriptor,e)){a.push({npmName:e.npmName,version:c.version,source:`already-present`}),await this.enqueueDependencies(r,e,c.descriptor),i.add(e.npmName);continue}let l=Li(e.npmName,e.requiredRange),u,d;try{u=await this.packages.installPackage(l);let r=await this.packages.readInstalledExtensionDescriptor(e.npmName);if(!r)throw Error(`Installed package ${e.npmName} does not contain a valid descriptor.json`);this.assertDescriptorMatches(e,r),this.assertDescriptorVersionSatisfies(e,r),await this.assertDependentsCompatible(e.npmName,r.version,n,t),d=r}catch(t){if(e.optional){o.push({npmName:e.npmName,reason:t instanceof Error?t.message:String(t)});continue}throw t}a.push({npmName:e.npmName,version:u,source:c?`upgraded`:`new`}),c={npmName:e.npmName,version:u,descriptor:d},n.byNpmName.set(e.npmName,c),await this.enqueueDependencies(r,e,d),i.add(e.npmName)}return{installed:a,skipped:o,warnings:s}}async readInstalledIndex(){let e=await this.packages.listInstalledExtensionDescriptors();return{byNpmName:new Map(e.map(e=>[e.npmName,e]))}}descriptorRangeSatisfied(e,t){return t===void 0||Ne(e.version,t)}shouldUseCurrentDescriptor(e,t){return t.root&&t.requiredRange===void 0?!1:this.descriptorRangeSatisfied(e,t.requiredRange)}assertDescriptorMatches(e,t){if(!(e.expectedDescriptorName===void 0||t.name===e.expectedDescriptorName))throw Error(`Installed package ${e.npmName} declares descriptor name "${t.name}", expected "${e.expectedDescriptorName}"`)}assertDescriptorVersionSatisfies(e,t){if(!this.descriptorRangeSatisfied(t,e.requiredRange))throw Error(`Installed package ${e.npmName} descriptor version ${t.version} does not satisfy ${t.name} ${e.requiredRange}`)}async assertDependentsCompatible(e,t,n,r){if(r)return;let i=[];for(let r of n.byNpmName.values())for(let n of r.descriptor.dependencies??[])await this.names.resolveNpmPackageName(n.name)===e&&!Ne(t,n.version)&&i.push(`${r.npmName} requires ${n.name} ${n.version}`);if(i.length>0)throw Error(`Cannot install ${e}; existing dependencies would be violated:\n${i.join(`
6
+ `)}`)}async enqueueDependencies(e,t,n){for(let r of n.dependencies??[]){let n=await this.names.resolveNpmPackageName(r.name);if(t.path.includes(n))throw Error(`Circular dependency detected: ${[...t.path,n].join(` -> `)}`);e.push({npmName:n,expectedDescriptorName:r.name,requiredRange:r.version,optional:r.optional===!0,path:[...t.path,n],root:!1})}}};function Gi(e){return e.startsWith(`@`)?void 0:e}function Ki(e){let t=Ri(e);if(t.length===e.length)return{npmName:t};let n=e.slice(t.length+1);return n===`latest`?{npmName:t}:{npmName:t,requiredRange:n}}function qi(e){return e instanceof Error?e.message:String(e)}var Ji=class{registryClient;lookupMapPromise=null;constructor(e){this.registryClient=e}async resolveNpmPackageName(e){if(e.startsWith(`@`))return e;let t;try{t=await this.getLookupMap()}catch(t){throw Error(`Cannot resolve descriptor name "${e}": package registry is unavailable`,{cause:t})}return t.get(e)||`@makaio/${e}`}getLookupMap(){if(this.lookupMapPromise)return this.lookupMapPromise;let e=this.registryClient.getRegistry().then(e=>{let t=new Map;for(let n of[...e.adapters,...e.extensions])n.descriptorName&&t.set(n.descriptorName,n.name);return t}).catch(t=>{throw this.lookupMapPromise===e&&(this.lookupMapPromise=null),t});return this.lookupMapPromise=e,this.lookupMapPromise}},Yi=class{inner;portalMap;constructor(e,t){this.inner=e,this.portalMap=t}async installPackage(e){let t=Ri(e),n=this.portalMap.get(t);if(n!==void 0){let e=`${t}@portal:${Bi(n)}`;return this.inner.installPackage(e)}return this.inner.installPackage(e)}readInstalledExtensionDescriptor(e){return this.inner.readInstalledExtensionDescriptor(e)}listInstalledExtensionDescriptors(){return this.inner.listInstalledExtensionDescriptors()}readManifestSnapshot(){return this.inner.readManifestSnapshot()}writeManifestAndReinstall(e){return this.inner.writeManifestAndReinstall(e)}},Xi=class{cache=null;inFlightFetch=null;registryUrl;cacheTtlMs;fetchTimeoutMs;fetchImpl;constructor(e={}){this.registryUrl=e.registryUrl??`https://raw.githubusercontent.com/makaio-ai/makaio/develop/registry/packages.json`,this.cacheTtlMs=e.cacheTtlMs??36e5,this.fetchTimeoutMs=e.fetchTimeoutMs??1e4,this.fetchImpl=e.fetchImpl??fetch}async getRegistry(){if(this.cache&&Date.now()-this.cache.timestamp<this.cacheTtlMs)return this.cache.data;this.inFlightFetch??=this.fetchAndCacheRegistry();try{return await this.inFlightFetch}finally{this.inFlightFetch=null}}async fetchAndCacheRegistry(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.fetchTimeoutMs);try{let t=await this.fetchImpl(this.registryUrl,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json(),r=Ti.parse(n);return this.cache={data:r,timestamp:Date.now()},r}catch(e){let t=e instanceof Error?e:Error(String(e));throw Error(`Failed to fetch package registry`,{cause:t})}finally{clearTimeout(t)}}clearCache(){this.cache=null}},Zi=t(r(),1),Qi=`1.0.0`;function $i(){let e=Qi;if(typeof e!=`string`||e.length===0)throw Error(`Package manager package metadata must include a string version.`);return`^${e}`}const ea=$i();var ta=class extends Pe{yarnManager;registryService;localInstaller;dependencyResolver;frameworkPeerRange;frameworkPackagePath;constructor(e,t,n={}){super(e),this.yarnManager=n.yarnManager??new Ii(t),this.registryService=n.registryService??new Xi,this.localInstaller=n.localInstaller??new Mi(j.join(t,`extensions`)),this.frameworkPeerRange=n.frameworkPeerRange??ea,this.frameworkPackagePath=n.frameworkPackagePath;let r=n.devPortalPackages?.size?new Yi(this.yarnManager,n.devPortalPackages):this.yarnManager;this.dependencyResolver=n.dependencyResolver??new Wi(r,new Ji(this.registryService))}async onInit(){await this.yarnManager.initialize(),console.info(`[PackageManagerService] Initialized`),this.registerPackageHandlers(),this.registerRegistryHandlers()}normalizePackageName(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}validatePackageNamePayload(e,t){return this.normalizePackageName(e)||(t(),null)}createInvalidPackageNameResult(e){return e?{success:!1,packageName:``,latestVersion:e.latestVersion,error:`Invalid packageName`}:{success:!1,packageName:``,error:`Invalid packageName`,restartRequired:!1}}async emitInstalled(e,t){try{await this.bus.emit(W.installed,{packageName:e,version:t})}catch(e){console.error(`[PackageManagerService] installed emit failed:`,e)}}async emitUninstalled(e){try{await this.bus.emit(W.uninstalled,{packageName:e})}catch(e){console.error(`[PackageManagerService] uninstalled emit failed:`,e)}}registerPackageHandlers(){this.registerListHandler(),this.registerInstallHandler(),this.registerUninstallHandler()}registerListHandler(){this.registerHandler(W.list,async e=>{try{let[t,n]=await Promise.all([this.yarnManager.listPackages(),this.localInstaller.list()]),r=[...t,...n.map(e=>({name:e.name,version:e.version,hasDescriptor:!0,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath}}))];e.setResult({packages:r})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] List failed:`,n),e.setResult({packages:[]})}})}async ensureFrameworkPeer(){try{await this.yarnManager.ensureFrameworkDependency({versionRange:this.frameworkPeerRange,...this.frameworkPackagePath?{localPackagePath:this.frameworkPackagePath}:{}})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to ensure @makaio/framework dependency ${this.frameworkPeerRange}: ${t}`,{cause:e})}}async installNpmPackages(e,t){let n=await this.yarnManager.readManifestSnapshot(),r;try{await this.ensureFrameworkPeer(),r=await this.dependencyResolver.resolve(e,{force:t,snapshot:null})}catch(e){try{await this.yarnManager.writeManifestAndReinstall(n)}catch(t){let n=e instanceof Error?e.message:String(e);throw AggregateError([e,t],`Package install failed and rollback failed: ${n}`)}throw e}for(let e of r.installed)e.source!==`already-present`&&await this.emitInstalled(e.npmName,e.version);let i=r.installed[0];return{success:!0,packageName:i?.npmName??e[0]??``,version:i?.version,restartRequired:!0,installed:[...r.installed],skipped:[...r.skipped],warnings:[...r.warnings]}}registerInstallHandler(){this.registerHandler(W.install,async e=>{let t=e.payload.packageNames??(e.payload.packageName===void 0?[]:[e.payload.packageName]),n=t.map(e=>this.normalizePackageName(e)).filter(e=>e!==null);if(n.length!==t.length||n.length===0){e.setResult(this.createInvalidPackageNameResult());return}let r;if(e.payload.source!==void 0)r={kind:e.payload.source};else{let t=n.map(e=>Ui(e));r=t[0];let i=t.find(e=>e.kind!==r.kind);if(i){e.setResult({success:!1,packageName:``,error:`Cannot mix install sources: ${r.kind} and ${i.kind}`,restartRequired:!1});return}}if(r.kind===`git`){e.setResult({success:!1,packageName:n[0],error:`Git URL installs are not yet supported`,restartRequired:!1});return}if(r.kind===`local`){if(n.length>1){e.setResult({success:!1,packageName:``,error:`Local installs only support a single path`,restartRequired:!1});return}let t=await this.localInstaller.install(n[0]);t.success&&await this.emitInstalled(t.packageName,t.version??`unknown`),e.setResult(t);return}try{e.setResult(await this.installNpmPackages(n,e.payload.force))}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Install failed:`,r),e.setResult({success:!1,packageName:n[0]??``,error:r,restartRequired:!1})}})}registerUninstallHandler(){this.registerHandler(W.uninstall,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult())});if(t){if((await this.localInstaller.list()).find(e=>e.name===t)){let n=await this.localInstaller.uninstall(t);n.success&&await this.emitUninstalled(t),e.setResult(n);return}try{await this.yarnManager.uninstallPackage(t),await this.emitUninstalled(t),e.setResult({success:!0,packageName:t,restartRequired:!0})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Uninstall failed:`,r),e.setResult({success:!1,packageName:t,error:r,restartRequired:!1})}}})}registerRegistryHandlers(){this.registerHandler(W.getLatestVersion,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult({latestVersion:`unknown`}))});if(t)try{let n=await this.yarnManager.getLatestVersion(t);e.setResult({success:!0,packageName:t,latestVersion:n})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Version check failed:`,r),e.setResult({success:!1,packageName:t,latestVersion:`unknown`,error:r})}}),this.registerHandler(W.getRegistry,async e=>{try{let t=await this.registryService.getRegistry();e.setResult(t)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Registry fetch failed:`,n),e.setResult({$schema:`makaio/package-registry/v1`,updatedAt:new Date().toISOString(),adapters:[],extensions:[]})}}),this.registerHandler(W.checkUpdates,async e=>{try{let t=await this.checkForUpdates();e.setResult({updates:t})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Update check failed:`,n),e.setResult({updates:[]})}})}async checkForUpdates(){try{let e=await this.yarnManager.listPackages(),t=[];return await Promise.all(e.map(async e=>{try{let n=await this.yarnManager.getLatestVersion(e.name);Zi.valid(e.version)&&Zi.valid(n)&&Zi.gt(n,e.version)&&t.push({name:e.name,currentVersion:e.version,latestVersion:n,description:e.description})}catch(t){console.warn(`[PackageManagerService] Failed to check updates for %s:`,e.name,t)}})),console.info(`[PackageManagerService] Found %d package updates`,t.length),t}catch(e){throw Error(`Failed to check for updates`,{cause:e})}}};function na(e={}){return{name:`makaio.package-manager`,displayName:`Package Manager`,version:`0.1.0`,critical:!0,namespaces:[Di],create:t=>new ta(t.bus,t.makaioHome,{registryService:e.registryService,dependencyResolver:e.dependencyResolver,frameworkPeerRange:e.frameworkPeerRange,frameworkPackagePath:e.frameworkPackagePath,devPortalPackages:e.devPortalPackages})}}function ra(e){return{filter:e=>!!e.http,async processActivated(t,n){e.add({owner:t,phase:`extension`,mount:e=>n.http.mount(e)})},async processStopped(t){e.remove(t)}}}const ia={resolve(e,t){return!e&&!t?null:e?t?e.updatedAt>t.updatedAt?e:t:e:t}};function aa(e){return{scope:e.scope,surface:e.surface??`any`,context:e.context??`any`,viewport:e.viewport??`any`}}function oa(e){return{scope:e.scope,surface:e.surface===`any`?void 0:e.surface,context:e.context===`any`?void 0:e.context,viewport:e.viewport===`any`?void 0:e.viewport}}function sa(e,t){return[`makaio:prefs`,e.scope,e.surface||`any`,e.context||`any`,e.viewport||`any`,t].join(`:`)}function ca(e){return typeof e==`object`&&!!e&&`value`in e&&`updatedAt`in e&&typeof e.value==`string`&&typeof e.updatedAt==`number`}function la(e){try{let t=JSON.parse(e);return ca(t)?t:{value:JSON.stringify(t),updatedAt:0}}catch{return null}}const ua=Be(`preferences`,e=>({scope:e.text(`scope`).notNull(),surface:e.text(`surface`).notNull().default(`any`),context:e.text(`context`).notNull().default(`any`),viewport:e.text(`viewport`).notNull().default(`any`),category:e.text(`category`).notNull(),value:e.text(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()}),{sqlite:e=>[Fe(`preferences_pk`).on(e.scope,e.surface,e.context,e.viewport,e.category)],postgres:e=>[Ie(`preferences_pk`).on(e.scope,e.surface,e.context,e.viewport,e.category)]}),da=ua.sqlite,fa=ua.postgres,pa=ze({preferences:da},{preferences:fa});function ma(e,t,n){let r=[];return n!==void 0&&r.push(R(e.category,n)),t&&(t.scope!==void 0&&r.push(R(e.scope,t.scope)),t.surface!==void 0&&r.push(R(e.surface,t.surface)),t.context!==void 0&&r.push(R(e.context,t.context)),t.viewport!==void 0&&r.push(R(e.viewport,t.viewport))),r}async function ha(e,t,n){let{preferences:r}=qe(e,pa),i=ma(r,t,n);return(i.length>0?await e.select().from(r).where(Xe(...i)):await e.select().from(r)).map(e=>{let t;try{t=JSON.parse(e.value)}catch{t=null}let n=pn.safeParse(t);return{key:oa(e),category:e.category,value:n.success?n.data:null,updatedAt:e.updatedAt}})}async function ga(e,t,n){let{preferences:r}=qe(e,pa),i=aa(t),[a]=await e.select().from(r).where(Xe(R(r.scope,i.scope),R(r.surface,i.surface),R(r.context,i.context),R(r.viewport,i.viewport),R(r.category,n))).limit(1);return a}var _a=class{db;conflictResolver;constructor(e){this.db=e.db,this.conflictResolver=e.conflictResolver??ia}async get(e,t){let n=await this.readFromDb(e,t),r=this.readFromLocalStorage(e,t),i=r?.updatedAt===0?r:null;!n&&r&&!i&&this.removeFromLocalStorage(e,t);let a=this.conflictResolver.resolve(i,n);if(!a)return null;let o;try{o=JSON.parse(a.value)}catch{return null}let s=pn.safeParse(o);return s.success?(await this.syncResolvedPreference(e,t,a,r,n),s.data):null}async set(e,t,n){let r=Date.now(),i=JSON.stringify(n??null);this.writeToLocalStorage(e,t,{value:i,updatedAt:r}),await this.writeToDb(e,t,i,r)}async delete(e,t){this.removeFromLocalStorage(e,t),await this.deleteFromDb(e,t)}async list(e,t){return ha(this.db,e,t)}async writeToDb(e,t,n,r){let{preferences:i}=qe(this.db,pa),a=aa(e);await this.db.insert(i).values({...a,category:t,value:n,updatedAt:r}).onConflictDoUpdate({target:[i.scope,i.surface,i.context,i.viewport,i.category],set:{value:n,updatedAt:r}})}readFromLocalStorage(e,t){let n=sa(e,t),r=globalThis.localStorage?.getItem(n);return r?la(r):null}writeToLocalStorage(e,t,n){let r=sa(e,t);try{globalThis.localStorage?.setItem(r,JSON.stringify(n))}catch(e){console.warn(`[StorageCoordinator] localStorage write failed:`,e)}}removeFromLocalStorage(e,t){let n=sa(e,t);try{globalThis.localStorage?.removeItem(n)}catch(e){console.warn(`[StorageCoordinator] localStorage delete failed:`,e)}}async syncResolvedPreference(e,t,n,r,i){this.isSameStoredPreference(n,i)||await this.writeToDb(e,t,n.value,n.updatedAt),r&&!this.isSameStoredPreference(n,r)&&this.writeToLocalStorage(e,t,n)}isSameStoredPreference(e,t){return!e||!t?!1:e.value===t.value&&e.updatedAt===t.updatedAt}async readFromDb(e,t){let n=await ga(this.db,e,t);return n?{value:n.value,updatedAt:n.updatedAt}:null}async deleteFromDb(e,t){let{preferences:n}=qe(this.db,pa),r=aa(e);await this.db.delete(n).where(Xe(R(n.scope,r.scope),R(n.surface,r.surface),R(n.context,r.context),R(n.viewport,r.viewport),R(n.category,t)))}};function va(e,t,n){let r=new _a({db:t}),i=e.on(mn.get,async e=>{let{key:t,category:n}=e.payload,i=await r.get(t,n);e.setResult({value:i})}),a=e.on(mn.set,async e=>{let{key:t,category:n,value:i}=e.payload;await r.set(t,n,i),e.setResult({success:!0})}),o=e.on(mn.delete,async e=>{let{key:t,category:n}=e.payload;await r.delete(t,n),e.setResult({success:!0})}),s=e.on(mn.list,async e=>{let{key:t,category:n}=e.payload,i=await r.list(t,n);e.setResult({items:i})});return()=>{i(),a(),o(),s()}}const ya={name:`preferences-storage`,displayName:`Preferences Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:Ge(va)}},ba=se(ae);function xa(e,t){if(!e.ok)throw Error(`HTTP ${e.status} ${e.statusText} fetching ${t}`)}function Sa(e){return{fetchTimeoutMs:e.fetchTimeoutMs??3e4,downloadTimeoutMs:e.downloadTimeoutMs??6e5,execTimeoutMs:e.execTimeoutMs??12e4,extractTimeoutMs:e.extractTimeoutMs??3e5}}async function Ca(e,t){try{return await fetch(e,{signal:AbortSignal.timeout(t)})}catch(n){let r=n instanceof Error?n.name:``;throw r===`AbortError`||r===`TimeoutError`?Error(`Timed out fetching ${e} after ${t}ms`,{cause:n}):n}}async function wa(e,t,n,r){await A.mkdir(t,{recursive:!0}),n===`tar.gz`?await ba(`tar`,[`-xzf`,e,`-C`,t],{timeout:r}).catch(n=>{throw n.code===`ENOENT`?Error(`tar extraction failed: host executable "tar" was not found on PATH`):Error(`tar extraction failed: ${e} → ${t}\nstderr: ${n.stderr??``}\n${String(n.message)}`)}):await ba(`unzip`,[`-q`,e,`-d`,t],{timeout:r}).catch(n=>{throw n.code===`ENOENT`?Error(`zip extraction failed: host executable "unzip" was not found on PATH`):Error(`unzip extraction failed: ${e} → ${t}\nstderr: ${n.stderr??``}\n${String(n.message)}`)})}async function Ta(e,t,n,r){let{stdout:i}=await ba(e,t,{cwd:n?.cwd,env:n?.env===void 0?process.env:{...process.env,...n.env},shell:!1,timeout:r}).catch(n=>{if(n.code===`ENOENT`)throw Error(`Command failed: host executable "${e}" was not found on PATH`);let r=n.stderr??``;throw Error(`Command failed: ${e} ${t.join(` `)}\nstderr: ${r}\n${String(n.message)}`)});return(i??``).trim()}function Ea(e={}){let{fetchTimeoutMs:t,downloadTimeoutMs:n,execTimeoutMs:r,extractTimeoutMs:i}=Sa(e);return{async fetchText(e){let n=await Ca(e,t);return xa(n,e),n.text()},async fetchJson(e){let n=await Ca(e,t);return xa(n,e),n.json()},async downloadFile(e,t,r){let i=await Ca(e,n);if(xa(i,e),i.body===null)throw Error(`Response body is null for URL: ${e}`);let a=i.headers.get(`content-length`),o=a===null?null:parseInt(a,10),s=o!==null&&!isNaN(o)?o:null;await A.mkdir(j.dirname(t),{recursive:!0});let c=P.createWriteStream(t),l=0,u=new vt({transform(e,t,n){l+=e.length,r?.(l,s),n(null,e)}});try{await yt(_t.from(i.body),u,c)}catch(e){throw await A.rm(t,{force:!0}),e}return t},exec(e,t,n){return Ta(e,t,n,r)},async extractArchive(e,t,n){await wa(e,t,n,i)},async deleteFile(e){await A.rm(e,{force:!0})},async computeChecksum(e,t=`sha256`){return new Promise((n,r)=>{let i=N(t),a=P.createReadStream(e);a.on(`error`,r),a.on(`data`,e=>i.update(e)),a.on(`end`,()=>n(i.digest(`hex`)))})},async removeDirectory(e){await A.rm(e,{recursive:!0,force:!0})}}}function Da(e){let t,n=!1;for(let r=e.length-1;r>=0;--r){let i=e[r];try{i()}catch(e){n||=(t=e,!0)}}if(e.length=0,n)throw t}function Oa(e,t){try{return t()}catch(t){try{Da(e)}catch{}throw t}}function ka(e,t){for(let n of e){let e=n.providers.find(e=>e.definition.id===t);if(e)return e}}function Aa(e,t,n){for(let r of t){let t=e.find(e=>e.name===r.adapterName);if(t?.providers.some(e=>e.definition.id===n))return t}}function ja(e){let{$schema:t,...n}=e;return n}function Ma(e,t,n,r){let i=[];return Oa(i,()=>(i.push(e.on(yn.adapter.getConfigSchema,({payload:e,setResult:n})=>{let r=t().find(t=>t.name===e.adapterName);if(!r?.adapterConfigSchema){n({hasSchema:!1,schema:null});return}n({hasSchema:!0,schema:O.toJSONSchema(r.adapterConfigSchema)})})),i.push(e.on(_n.getCredentialSchema,({payload:e,setResult:n})=>{let r=ka(t(),e.definitionId)?.credentialSchema;if(r){n({hasSchema:!0,schema:O.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),i.push(e.on(_n.getConfigSchema,({payload:e,setResult:n})=>{let r=ka(t(),e.definitionId)?.configSchema;if(r){n({hasSchema:!0,schema:O.toJSONSchema(r)});return}n({hasSchema:!1,schema:null})})),r&&i.push(e.on(yn.extension.getConfigSchema,({payload:e,setResult:t})=>{let n=r(e.extensionName);if(!n?.configSchema){t({hasSchema:!1,schema:null,uiConfig:null});return}t({hasSchema:!0,schema:ja(O.toJSONSchema(n.configSchema)),uiConfig:n.uiConfig??null})})),i.push(e.on(vn.fetchModels,async({payload:r,setResult:i})=>{let{config:a}=await e.request(ht.getProviderConfig,{id:r.providerConfigId});if(!a)throw Error(`Provider config '${r.providerConfigId}' not found`);let{bindings:o}=await e.request(ht.listBindingsByConfig,{providerConfigId:r.providerConfigId}),s=Aa(t(),o,a.definitionId);if(!s)throw Error(o.length===0?`Provider config '${r.providerConfigId}' is not bound to an adapter`:`No loaded adapter bound to provider config '${r.providerConfigId}' for definition '${a.definitionId}'`);let c=await ut(e,r.providerConfigId),l=s.options.adapterId,u=l?n().get(l):void 0;if(!l||!u)throw Error(`Adapter instance for '${s.name}' not initialized`);if(!(`fetchModels`in u)||typeof u.fetchModels!=`function`)throw Error(`Adapter '${s.name}' does not support model fetching`);let d=await hn(e,c.credentialRefs),f=c.endpointOverrides?Object.values(c.endpointOverrides).find(e=>e!==void 0):void 0;i({models:await u.fetchModels(f,d)})})),()=>{Da(i)}))}function Na(e,t){let n=new Map;for(let[r,i]of e)t.has(r)&&n.set(r,i);return n}function Pa(...e){let t=new Map;for(let n of e)for(let[e,r]of n)t.set(e,{...t.get(e)??{},...r});return t}function Fa(e,t){let n=[e.on(xe.get,async e=>{let n=await t.getConfig();e.setResult({config:n})}),e.on(xe.update,async e=>{let n=be.parse(e.payload.config),r=await t.prepareConfigForPersistence(n);await t.saveConfig(r),e.setResult({success:!0})})];return()=>{for(let e of n)e()}}var K=n((e=>{let t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),Ia=n((e=>{var t=K();let n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e<r.items.length;++e){let t=o(e,r.items[e],a,s);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){s=Object.freeze(s.concat(r));let e=o(`key`,r.key,a,s);if(e===n)return n;e===i&&(r.key=null);let t=o(`value`,r.value,a,s);if(t===n)return n;t===i&&(r.value=null)}}return c}async function s(e,n){let r=l(n);t.isDocument(e)?await c(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):await c(null,e,r,Object.freeze([]))}s.BREAK=n,s.SKIP=r,s.REMOVE=i;async function c(e,r,a,o){let s=await u(e,r,a,o);if(t.isNode(s)||t.isPair(s))return d(e,o,s),c(e,s,a,o);if(typeof s!=`symbol`){if(t.isCollection(r)){o=Object.freeze(o.concat(r));for(let e=0;e<r.items.length;++e){let t=await c(e,r.items[e],a,o);if(typeof t==`number`)e=t-1;else if(t===n)return n;else t===i&&(r.items.splice(e,1),--e)}}else if(t.isPair(r)){o=Object.freeze(o.concat(r));let e=await c(`key`,r.key,a,o);if(e===n)return n;e===i&&(r.key=null);let t=await c(`value`,r.value,a,o);if(t===n)return n;t===i&&(r.value=null)}}return s}function l(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function u(e,n,r,i){if(typeof r==`function`)return r(e,n,i);if(t.isMap(n))return r.Map?.(e,n,i);if(t.isSeq(n))return r.Seq?.(e,n,i);if(t.isPair(n))return r.Pair?.(e,n,i);if(t.isScalar(n))return r.Scalar?.(e,n,i);if(t.isAlias(n))return r.Alias?.(e,n,i)}function d(e,n,r){let i=n[n.length-1];if(t.isCollection(i))i.items[e]=r;else if(t.isPair(i))e===`key`?i.key=r:i.value=r;else if(t.isDocument(i))i.contents=r;else{let e=t.isAlias(i)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}e.visit=a,e.visitAsync=s})),La=n((e=>{var t=K(),n=Ia();let r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]);var a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)t===`!!`&&n===`tag:yaml.org,2002:`||(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(`
7
+ `)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),Ra=n((e=>{var t=K(),n=Ia();function r(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function i(e){let t=new Set;return n.visit(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function a(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function o(e,n){let r=[],o=new Map,s=null;return{onAnchor:t=>{r.push(t),s??=i(e);let o=a(n,s);return s.add(o),o},setAnchors:()=>{for(let e of r){let n=o.get(e);if(typeof n==`object`&&n.anchor&&(t.isScalar(n.node)||t.isCollection(n.node)))n.node.anchor=n.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:o}}e.anchorIsValid=r,e.anchorNames=i,e.createNodeAnchors=o,e.findNewAnchor=a})),za=n((e=>{function t(e,n,r,i){if(i&&typeof i==`object`)if(Array.isArray(i))for(let n=0,r=i.length;n<r;++n){let r=i[n],a=t(e,i,String(n),r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}else if(i instanceof Map)for(let n of Array.from(i.keys())){let r=i.get(n),a=t(e,i,n,r);a===void 0?i.delete(n):a!==r&&i.set(n,a)}else if(i instanceof Set)for(let n of Array.from(i)){let r=t(e,i,n,n);r===void 0?i.delete(n):r!==n&&(i.delete(n),i.add(r))}else for(let[n,r]of Object.entries(i)){let a=t(e,i,n,r);a===void 0?delete i[n]:a!==r&&(i[n]=a)}return e.call(n,r,i)}e.applyReviver=t})),q=n((e=>{var t=K();function n(e,r,i){if(Array.isArray(e))return e.map((e,t)=>n(e,String(t),i));if(e&&typeof e.toJSON==`function`){if(!i||!t.hasAnchor(e))return e.toJSON(r,i);let n={aliasCount:0,count:1,res:void 0};i.anchors.set(e,n),i.onCreate=e=>{n.res=e,delete i.onCreate};let a=e.toJSON(r,i);return i.onCreate&&i.onCreate(a),a}return typeof e==`bigint`&&!i?.keep?Number(e):e}e.toJS=n})),Ba=n((e=>{var t=za(),n=K(),r=q();e.NodeBase=class{constructor(e){Object.defineProperty(this,n.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:i,maxAliasCount:a,onAnchor:o,reviver:s}={}){if(!n.isDocument(e))throw TypeError(`A document argument is required`);let c={anchors:new Map,doc:e,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof a==`number`?a:100},l=r.toJS(this,``,c);if(typeof o==`function`)for(let{count:e,res:t}of c.anchors.values())o(t,e);return typeof s==`function`?t.applyReviver(s,{"":l},``,l):l}}})),Va=n((e=>{var t=Ra(),n=Ia(),r=K(),i=Ba(),a=q(),o=class extends i.NodeBase{constructor(e){super(r.ALIAS),this.source=e,Object.defineProperty(this,`tag`,{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],n.visit(e,{Node:(e,t)=>{(r.isAlias(t)||r.hasAnchor(t))&&i.push(t)}}),t&&(t.aliasResolveCache=i));let a;for(let e of i){if(e===this)break;e.anchor===this.source&&(a=e)}return a}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,o=this.resolve(r,t);if(!o){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let c=n.get(o);if(c||=(a.toJS(o,null,t),n.get(o)),c?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=s(r,o,n)),c.count*c.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return c.res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}else if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),J=n((e=>{var t=K(),n=Ba(),r=q();let i=e=>!e||typeof e!=`function`&&typeof e!=`object`;var a=class extends n.NodeBase{constructor(e){super(t.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:r.toJS(this.value,e,t)}toString(){return String(this.value)}};a.BLOCK_FOLDED=`BLOCK_FOLDED`,a.BLOCK_LITERAL=`BLOCK_LITERAL`,a.PLAIN=`PLAIN`,a.QUOTE_DOUBLE=`QUOTE_DOUBLE`,a.QUOTE_SINGLE=`QUOTE_SINGLE`,e.Scalar=a,e.isScalarValue=i})),Ha=n((e=>{var t=Va(),n=K(),r=J();function i(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function a(e,a,o){if(n.isDocument(e)&&(e=e.contents),n.isNode(e))return e;if(n.isPair(e)){let t=o.schema[n.MAP].createNode?.(o.schema,null,o);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:c,onTagObj:l,schema:u,sourceObjects:d}=o,f;if(s&&e&&typeof e==`object`){if(f=d.get(e),f)return f.anchor??=c(e),new t.Alias(f.anchor);f={anchor:null,node:null},d.set(e,f)}a?.startsWith(`!!`)&&(a=`tag:yaml.org,2002:`+a.slice(2));let p=i(e,a,u.tags);if(!p){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new r.Scalar(e);return f&&(f.node=t),t}p=e instanceof Map?u[n.MAP]:Symbol.iterator in Object(e)?u[n.SEQ]:u[n.MAP]}l&&(l(p),delete o.onTagObj);let m=p?.createNode?p.createNode(o.schema,e,o):typeof p?.nodeClass?.from==`function`?p.nodeClass.from(o.schema,e,o):new r.Scalar(e);return a?m.tag=a:p.default||(m.tag=p.tag),f&&(f.node=m),m}e.createNode=a})),Ua=n((e=>{var t=Ha(),n=K(),r=Ba();function i(e,n,r){let i=r;for(let e=n.length-1;e>=0;--e){let t=n[e];if(typeof t==`number`&&Number.isInteger(t)&&t>=0){let e=[];e[t]=i,i=e}else i=new Map([[t,i]])}return t.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}let a=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done;e.Collection=class extends r.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,`schema`,{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>n.isNode(t)||n.isPair(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(a(e))this.add(t);else{let[r,...a]=e,o=this.get(r,!0);if(n.isCollection(o))o.addIn(a,t);else if(o===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(n.isCollection(i))return i.deleteIn(r);throw Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,a=this.get(r,!0);return i.length===0?!t&&n.isScalar(a)?a.value:a:n.isCollection(a)?a.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!n.isPair(t))return!1;let r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return n.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...a]=e;if(a.length===0)this.set(r,t);else{let e=this.get(r,!0);if(n.isCollection(e))e.setIn(a,t);else if(e===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}},e.collectionFromPath=i,e.isEmptyPath=a})),Wa=n((e=>{let t=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function n(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}e.indentComment=n,e.lineComment=(e,t,r)=>e.endsWith(`
35
8
  `)?n(r,t):r.includes(`
36
9
  `)?`
37
- `+n(r,t):(e.endsWith(` `)?``:` `)+r,e.stringifyComment=t})),Zi=n((e=>{let t=`block`,n=`quoted`;function r(e,r,a=`flow`,{indentAtStart:o,lineWidth:s=80,minContentWidth:c=20,onFold:l,onOverflow:u}={}){if(!s||s<0)return e;s<c&&(c=0);let d=Math.max(1+c,1+s-r.length);if(e.length<=d)return e;let f=[],p={},m=s-r.length;typeof o==`number`&&(o>s-Math.max(2,c)?f.push(0):m=s-o);let h,g,_=!1,v=-1,y=-1,b=-1;a===t&&(v=i(e,v,r.length),v!==-1&&(m=v+d));for(let o;o=e[v+=1];){if(a===n&&o===`\\`){switch(y=v,e[v+1]){case`x`:v+=3;break;case`u`:v+=5;break;case`U`:v+=9;break;default:v+=1}b=v}if(o===`
10
+ `+n(r,t):(e.endsWith(` `)?``:` `)+r,e.stringifyComment=t})),Ga=n((e=>{let t=`block`,n=`quoted`;function r(e,r,a=`flow`,{indentAtStart:o,lineWidth:s=80,minContentWidth:c=20,onFold:l,onOverflow:u}={}){if(!s||s<0)return e;s<c&&(c=0);let d=Math.max(1+c,1+s-r.length);if(e.length<=d)return e;let f=[],p={},m=s-r.length;typeof o==`number`&&(o>s-Math.max(2,c)?f.push(0):m=s-o);let h,g,_=!1,v=-1,y=-1,b=-1;a===t&&(v=i(e,v,r.length),v!==-1&&(m=v+d));for(let o;o=e[v+=1];){if(a===n&&o===`\\`){switch(y=v,e[v+1]){case`x`:v+=3;break;case`u`:v+=5;break;case`U`:v+=9;break;default:v+=1}b=v}if(o===`
38
11
  `)a===t&&(v=i(e,v,r.length)),m=v+r.length+d,h=void 0;else{if(o===` `&&g&&g!==` `&&g!==`
39
12
  `&&g!==` `){let t=e[v+1];t&&t!==` `&&t!==`
40
13
  `&&t!==` `&&(h=v)}if(v>=m)if(h)f.push(h),m=h+d,h=void 0;else if(a===n){for(;g===` `||g===` `;)g=o,o=e[v+=1],_=!0;let t=v>b+1?v-2:y-1;if(p[t])return e;f.push(t),p[t]=!0,m=t+d,h=void 0}else _=!0}g=o}if(_&&u&&u(),f.length===0)return e;l&&l();let x=e.slice(0,f[0]);for(let t=0;t<f.length;++t){let i=f[t],o=f[t+1]||e.length;i===0?x=`\n${r}${e.slice(0,o)}`:(a===n&&p[i]&&(x+=`${e[i]}\\`),x+=`\n${r}${e.slice(i+1,o)}`)}return x}function i(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
41
- `);r=t,i=t+1,a=e[i]}return r}e.FOLD_BLOCK=t,e.FOLD_FLOW=`flow`,e.FOLD_QUOTED=n,e.foldFlowLines=r})),Qi=n((e=>{var t=q(),n=Zi();let r=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),i=e=>/^(%|---|\.\.\.)/m.test(e);function a(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
14
+ `);r=t,i=t+1,a=e[i]}return r}e.FOLD_BLOCK=t,e.FOLD_FLOW=`flow`,e.FOLD_QUOTED=n,e.foldFlowLines=r})),Ka=n((e=>{var t=J(),n=Ga();let r=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),i=e=>/^(%|---|\.\.\.)/m.test(e);function a(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
42
15
  `){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function o(e,t){let a=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return a;let{implicitKey:o}=t,s=t.options.doubleQuotedMinMultiLineLength,c=t.indent||(i(e)?` `:``),l=``,u=0;for(let e=0,t=a[e];t;t=a[++e])if(t===` `&&a[e+1]===`\\`&&a[e+2]===`n`&&(l+=a.slice(u,e)+`\\ `,e+=1,u=e,t=`\\`),t===`\\`)switch(a[e+1]){case`u`:{l+=a.slice(u,e);let t=a.substr(e+2,4);switch(t){case`0000`:l+=`\\0`;break;case`0007`:l+=`\\a`;break;case`000b`:l+=`\\v`;break;case`001b`:l+=`\\e`;break;case`0085`:l+=`\\N`;break;case`00a0`:l+=`\\_`;break;case`2028`:l+=`\\L`;break;case`2029`:l+=`\\P`;break;default:t.substr(0,2)===`00`?l+=`\\x`+t.substr(2):l+=a.substr(e,6)}e+=5,u=e+1}break;case`n`:if(o||a[e+2]===`"`||a.length<s)e+=1;else{for(l+=a.slice(u,e)+`
43
16
 
44
17
  `;a[e+2]===`\\`&&a[e+3]===`n`&&a[e+4]!==`"`;)l+=`
@@ -56,29 +29,29 @@ import{i as e,o as t,t as n}from"../chunk-DTipWd-i.mjs";import{t as r}from"../se
56
29
  $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${g}`),i=!1,a=r(u,!0);p!==`folded`&&o!==t.Scalar.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let c=n.foldFlowLines(`${T}${e}${b}`,g,n.FOLD_BLOCK,a);if(!i)return`>${E}\n${g}${c}`}return s=s.replace(/\n+/g,`$&${g}`),`|${E}\n${g}${T}${s}${b}`}function d(e,a,o,s){let{type:l,value:d}=e,{actualString:f,implicitKey:p,indent:m,indentStep:h,inFlow:g}=a;if(p&&d.includes(`
57
30
  `)||g&&/[[\]{},]/.test(d))return c(d,a);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(d))return p||g||!d.includes(`
58
31
  `)?c(d,a):u(e,a,o,s);if(!p&&!g&&l!==t.Scalar.PLAIN&&d.includes(`
59
- `))return u(e,a,o,s);if(i(d)){if(m===``)return a.forceBlockIndent=!0,u(e,a,o,s);if(p&&m===h)return c(d,a)}let _=d.replace(/\n+/g,`$&\n${m}`);if(f){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(_),{compat:t,tags:n}=a.doc.schema;if(n.some(e)||t?.some(e))return c(d,a)}return p?_:n.foldFlowLines(_,m,n.FOLD_FLOW,r(a,!1))}function f(e,n,r,i){let{implicitKey:a,inFlow:l}=n,f=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:p}=e;p!==t.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(f.value)&&(p=t.Scalar.QUOTE_DOUBLE);let m=e=>{switch(e){case t.Scalar.BLOCK_FOLDED:case t.Scalar.BLOCK_LITERAL:return a||l?c(f.value,n):u(f,n,r,i);case t.Scalar.QUOTE_DOUBLE:return o(f.value,n);case t.Scalar.QUOTE_SINGLE:return s(f.value,n);case t.Scalar.PLAIN:return d(f,n,r,i);default:return null}},h=m(p);if(h===null){let{defaultKeyType:e,defaultStringType:t}=n.options,r=a&&e||t;if(h=m(r),h===null)throw Error(`Unsupported default string type ${r}`)}return h}e.stringifyString=f})),$i=n((e=>{var t=Wi(),n=G(),r=Xi(),i=Qi();function a(e,t){let n=Object.assign({blockQuote:!0,commentString:r.stringifyComment,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),i;switch(n.collectionStyle){case`block`:i=!1;break;case`flow`:i=!0;break;default:i=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:i,options:n}}function o(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let r,i;if(n.isScalar(t)){i=t.value;let n=e.filter(e=>e.identify?.(i));if(n.length>1){let e=n.filter(e=>e.test);e.length>0&&(n=e)}r=n.find(e=>e.format===t.format)??n.find(e=>!e.format)}else i=t,r=e.find(e=>e.nodeClass&&i instanceof e.nodeClass);if(!r){let e=i?.constructor?.name??(i===null?`null`:typeof i);throw Error(`Tag not resolved for ${e} value`)}return r}function s(e,r,{anchors:i,doc:a}){if(!a.directives)return``;let o=[],s=(n.isScalar(e)||n.isCollection(e))&&e.anchor;s&&t.anchorIsValid(s)&&(i.add(s),o.push(`&${s}`));let c=e.tag??(r.default?null:r.tag);return c&&o.push(a.directives.tagString(c)),o.join(` `)}function c(e,t,r,a){if(n.isPair(e))return e.toString(t,r,a);if(n.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let c,l=n.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>c=e});c??=o(t.doc.schema.tags,l);let u=s(l,c,t);u.length>0&&(t.indentAtStart=(t.indentAtStart??0)+u.length+1);let d=typeof c.stringify==`function`?c.stringify(l,t,r,a):n.isScalar(l)?i.stringifyString(l,t,r,a):l.toString(t,r,a);return u?n.isScalar(l)||d[0]===`{`||d[0]===`[`?`${u} ${d}`:`${u}\n${t.indent}${d}`:d}e.createStringifyContext=a,e.stringify=c})),ea=n((e=>{var t=G(),n=q(),r=$i(),i=Xi();function a({key:e,value:a},o,s,c){let{allNullValues:l,doc:u,indent:d,indentStep:f,options:{commentString:p,indentSeq:m,simpleKeys:h}}=o,g=t.isNode(e)&&e.comment||null;if(h){if(g)throw Error(`With simple keys, key nodes cannot have comments`);if(t.isCollection(e)||!t.isNode(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let _=!h&&(!e||g&&a==null&&!o.inFlow||t.isCollection(e)||(t.isScalar(e)?e.type===n.Scalar.BLOCK_FOLDED||e.type===n.Scalar.BLOCK_LITERAL:typeof e==`object`));o=Object.assign({},o,{allNullValues:!1,implicitKey:!_&&(h||!l),indent:d+f});let v=!1,y=!1,b=r.stringify(e,o,()=>v=!0,()=>y=!0);if(!_&&!o.inFlow&&b.length>1024){if(h)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);_=!0}if(o.inFlow){if(l||a==null)return v&&s&&s(),b===``?`?`:_?`? ${b}`:b}else if(l&&!h||a==null&&_)return b=`? ${b}`,g&&!v?b+=i.lineComment(b,o.indent,p(g)):y&&c&&c(),b;v&&(g=null),_?(g&&(b+=i.lineComment(b,o.indent,p(g))),b=`? ${b}\n${d}:`):(b=`${b}:`,g&&(b+=i.lineComment(b,o.indent,p(g))));let x,S,C;t.isNode(a)?(x=!!a.spaceBefore,S=a.commentBefore,C=a.comment):(x=!1,S=null,C=null,a&&typeof a==`object`&&(a=u.createNode(a))),o.implicitKey=!1,!_&&!g&&t.isScalar(a)&&(o.indentAtStart=b.length+1),y=!1,!m&&f.length>=2&&!o.inFlow&&!_&&t.isSeq(a)&&!a.flow&&!a.tag&&!a.anchor&&(o.indent=o.indent.substring(2));let w=!1,T=r.stringify(a,o,()=>w=!0,()=>y=!0),E=` `;if(g||x||S){if(E=x?`
32
+ `))return u(e,a,o,s);if(i(d)){if(m===``)return a.forceBlockIndent=!0,u(e,a,o,s);if(p&&m===h)return c(d,a)}let _=d.replace(/\n+/g,`$&\n${m}`);if(f){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(_),{compat:t,tags:n}=a.doc.schema;if(n.some(e)||t?.some(e))return c(d,a)}return p?_:n.foldFlowLines(_,m,n.FOLD_FLOW,r(a,!1))}function f(e,n,r,i){let{implicitKey:a,inFlow:l}=n,f=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:p}=e;p!==t.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(f.value)&&(p=t.Scalar.QUOTE_DOUBLE);let m=e=>{switch(e){case t.Scalar.BLOCK_FOLDED:case t.Scalar.BLOCK_LITERAL:return a||l?c(f.value,n):u(f,n,r,i);case t.Scalar.QUOTE_DOUBLE:return o(f.value,n);case t.Scalar.QUOTE_SINGLE:return s(f.value,n);case t.Scalar.PLAIN:return d(f,n,r,i);default:return null}},h=m(p);if(h===null){let{defaultKeyType:e,defaultStringType:t}=n.options,r=a&&e||t;if(h=m(r),h===null)throw Error(`Unsupported default string type ${r}`)}return h}e.stringifyString=f})),qa=n((e=>{var t=Ra(),n=K(),r=Wa(),i=Ka();function a(e,t){let n=Object.assign({blockQuote:!0,commentString:r.stringifyComment,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),i;switch(n.collectionStyle){case`block`:i=!1;break;case`flow`:i=!0;break;default:i=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:i,options:n}}function o(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let r,i;if(n.isScalar(t)){i=t.value;let n=e.filter(e=>e.identify?.(i));if(n.length>1){let e=n.filter(e=>e.test);e.length>0&&(n=e)}r=n.find(e=>e.format===t.format)??n.find(e=>!e.format)}else i=t,r=e.find(e=>e.nodeClass&&i instanceof e.nodeClass);if(!r){let e=i?.constructor?.name??(i===null?`null`:typeof i);throw Error(`Tag not resolved for ${e} value`)}return r}function s(e,r,{anchors:i,doc:a}){if(!a.directives)return``;let o=[],s=(n.isScalar(e)||n.isCollection(e))&&e.anchor;s&&t.anchorIsValid(s)&&(i.add(s),o.push(`&${s}`));let c=e.tag??(r.default?null:r.tag);return c&&o.push(a.directives.tagString(c)),o.join(` `)}function c(e,t,r,a){if(n.isPair(e))return e.toString(t,r,a);if(n.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let c,l=n.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>c=e});c??=o(t.doc.schema.tags,l);let u=s(l,c,t);u.length>0&&(t.indentAtStart=(t.indentAtStart??0)+u.length+1);let d=typeof c.stringify==`function`?c.stringify(l,t,r,a):n.isScalar(l)?i.stringifyString(l,t,r,a):l.toString(t,r,a);return u?n.isScalar(l)||d[0]===`{`||d[0]===`[`?`${u} ${d}`:`${u}\n${t.indent}${d}`:d}e.createStringifyContext=a,e.stringify=c})),Ja=n((e=>{var t=K(),n=J(),r=qa(),i=Wa();function a({key:e,value:a},o,s,c){let{allNullValues:l,doc:u,indent:d,indentStep:f,options:{commentString:p,indentSeq:m,simpleKeys:h}}=o,g=t.isNode(e)&&e.comment||null;if(h){if(g)throw Error(`With simple keys, key nodes cannot have comments`);if(t.isCollection(e)||!t.isNode(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let _=!h&&(!e||g&&a==null&&!o.inFlow||t.isCollection(e)||(t.isScalar(e)?e.type===n.Scalar.BLOCK_FOLDED||e.type===n.Scalar.BLOCK_LITERAL:typeof e==`object`));o=Object.assign({},o,{allNullValues:!1,implicitKey:!_&&(h||!l),indent:d+f});let v=!1,y=!1,b=r.stringify(e,o,()=>v=!0,()=>y=!0);if(!_&&!o.inFlow&&b.length>1024){if(h)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);_=!0}if(o.inFlow){if(l||a==null)return v&&s&&s(),b===``?`?`:_?`? ${b}`:b}else if(l&&!h||a==null&&_)return b=`? ${b}`,g&&!v?b+=i.lineComment(b,o.indent,p(g)):y&&c&&c(),b;v&&(g=null),_?(g&&(b+=i.lineComment(b,o.indent,p(g))),b=`? ${b}\n${d}:`):(b=`${b}:`,g&&(b+=i.lineComment(b,o.indent,p(g))));let x,S,C;t.isNode(a)?(x=!!a.spaceBefore,S=a.commentBefore,C=a.comment):(x=!1,S=null,C=null,a&&typeof a==`object`&&(a=u.createNode(a))),o.implicitKey=!1,!_&&!g&&t.isScalar(a)&&(o.indentAtStart=b.length+1),y=!1,!m&&f.length>=2&&!o.inFlow&&!_&&t.isSeq(a)&&!a.flow&&!a.tag&&!a.anchor&&(o.indent=o.indent.substring(2));let w=!1,T=r.stringify(a,o,()=>w=!0,()=>y=!0),E=` `;if(g||x||S){if(E=x?`
60
33
  `:``,S){let e=p(S);E+=`\n${i.indentComment(e,o.indent)}`}T===``&&!o.inFlow?E===`
61
34
  `&&C&&(E=`
62
35
 
63
36
  `):E+=`\n${o.indent}`}else if(!_&&t.isCollection(a)){let e=T[0],t=T.indexOf(`
64
37
  `),n=t!==-1,r=o.inFlow??a.flow??a.items.length===0;if(n||!r){let r=!1;if(n&&(e===`&`||e===`!`)){let n=T.indexOf(` `);e===`&`&&n!==-1&&n<t&&T[n+1]===`!`&&(n=T.indexOf(` `,n+1)),(n===-1||t<n)&&(r=!0)}r||(E=`\n${o.indent}`)}}else (T===``||T[0]===`
65
- `)&&(E=``);return b+=E+T,o.inFlow?w&&s&&s():C&&!w?b+=i.lineComment(b,o.indent,p(C)):y&&c&&c(),b}e.stringifyPair=a})),ta=n((t=>{var n=e(`process`);function r(e,...t){e===`debug`&&console.log(...t)}function i(e,t){(e===`debug`||e===`warn`)&&(typeof n.emitWarning==`function`?n.emitWarning(t):console.warn(t))}t.debug=r,t.warn=i})),na=n((e=>{var t=G(),n=q();let r={identify:e=>e===`<<`||typeof e==`symbol`&&e.description===`<<`,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new n.Scalar(Symbol(`<<`)),{addToJSMap:a}),stringify:()=>`<<`},i=(e,i)=>(r.identify(i)||t.isScalar(i)&&(!i.type||i.type===n.Scalar.PLAIN)&&r.identify(i.value))&&e?.doc.schema.tags.some(e=>e.tag===r.tag&&e.default);function a(e,n,r){let i=s(e,r);if(t.isSeq(i))for(let t of i.items)o(e,n,t);else if(Array.isArray(i))for(let t of i)o(e,n,t);else o(e,n,i)}function o(e,n,r){let i=s(e,r);if(!t.isMap(i))throw Error(`Merge sources must be maps or map aliases`);let a=i.toJSON(null,e,Map);for(let[e,t]of a)n instanceof Map?n.has(e)||n.set(e,t):n instanceof Set?n.add(e):Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{value:t,writable:!0,enumerable:!0,configurable:!0});return n}function s(e,n){return e&&t.isAlias(n)?n.resolve(e.doc,e):n}e.addMergeToJSMap=a,e.isMergeKey=i,e.merge=r})),ra=n((e=>{var t=ta(),n=na(),r=$i(),i=G(),a=K();function o(e,t,{key:r,value:o}){if(i.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,o);else if(n.isMergeKey(e,r))n.addMergeToJSMap(e,t,o);else{let n=a.toJS(r,``,e);if(t instanceof Map)t.set(n,a.toJS(o,n,e));else if(t instanceof Set)t.add(n);else{let i=s(r,n,e),c=a.toJS(o,i,e);i in t?Object.defineProperty(t,i,{value:c,writable:!0,enumerable:!0,configurable:!0}):t[i]=c}}return t}function s(e,n,a){if(n===null)return``;if(typeof n!=`object`)return String(n);if(i.isNode(e)&&a?.doc){let n=r.createStringifyContext(a.doc,{});n.anchors=new Set;for(let e of a.anchors.keys())n.anchors.add(e.anchor);n.inFlow=!0,n.inStringifyKey=!0;let i=e.toString(n);if(!a.mapKeyWarned){let e=JSON.stringify(i);e.length>40&&(e=e.substring(0,36)+`..."`),t.warn(a.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),a.mapKeyWarned=!0}return i}return JSON.stringify(n)}e.addPairToJSMap=o})),J=n((e=>{var t=Ji(),n=ea(),r=ra(),i=G();function a(e,n,r){return new o(t.createNode(e,void 0,r),t.createNode(n,void 0,r))}var o=class e{constructor(e,t=null){Object.defineProperty(this,i.NODE_TYPE,{value:i.PAIR}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return i.isNode(n)&&(n=n.clone(t)),i.isNode(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return r.addPairToJSMap(t,n,this)}toString(e,t,r){return e?.doc?n.stringifyPair(this,e,t,r):JSON.stringify(this)}};e.Pair=o,e.createPair=a})),ia=n((e=>{var t=G(),n=$i(),r=Xi();function i(e,t,n){return(t.inFlow??e.flow?o:a)(e,t,n)}function a({comment:e,items:i},a,{blockItemPrefix:o,flowChars:c,itemIndent:l,onChompKeep:u,onComment:d}){let{indent:f,options:{commentString:p}}=a,m=Object.assign({},a,{indent:l,type:null}),h=!1,g=[];for(let e=0;e<i.length;++e){let c=i[e],u=null;if(t.isNode(c))!h&&c.spaceBefore&&g.push(``),s(a,g,c.commentBefore,h),c.comment&&(u=c.comment);else if(t.isPair(c)){let e=t.isNode(c.key)?c.key:null;e&&(!h&&e.spaceBefore&&g.push(``),s(a,g,e.commentBefore,h))}h=!1;let d=n.stringify(c,m,()=>u=null,()=>h=!0);u&&(d+=r.lineComment(d,l,p(u))),h&&u&&(h=!1),g.push(o+d)}let _;if(g.length===0)_=c.start+c.end;else{_=g[0];for(let e=1;e<g.length;++e){let t=g[e];_+=t?`\n${f}${t}`:`
38
+ `)&&(E=``);return b+=E+T,o.inFlow?w&&s&&s():C&&!w?b+=i.lineComment(b,o.indent,p(C)):y&&c&&c(),b}e.stringifyPair=a})),Ya=n((t=>{var n=e(`process`);function r(e,...t){e===`debug`&&console.log(...t)}function i(e,t){(e===`debug`||e===`warn`)&&(typeof n.emitWarning==`function`?n.emitWarning(t):console.warn(t))}t.debug=r,t.warn=i})),Xa=n((e=>{var t=K(),n=J();let r={identify:e=>e===`<<`||typeof e==`symbol`&&e.description===`<<`,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new n.Scalar(Symbol(`<<`)),{addToJSMap:a}),stringify:()=>`<<`},i=(e,i)=>(r.identify(i)||t.isScalar(i)&&(!i.type||i.type===n.Scalar.PLAIN)&&r.identify(i.value))&&e?.doc.schema.tags.some(e=>e.tag===r.tag&&e.default);function a(e,n,r){let i=s(e,r);if(t.isSeq(i))for(let t of i.items)o(e,n,t);else if(Array.isArray(i))for(let t of i)o(e,n,t);else o(e,n,i)}function o(e,n,r){let i=s(e,r);if(!t.isMap(i))throw Error(`Merge sources must be maps or map aliases`);let a=i.toJSON(null,e,Map);for(let[e,t]of a)n instanceof Map?n.has(e)||n.set(e,t):n instanceof Set?n.add(e):Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{value:t,writable:!0,enumerable:!0,configurable:!0});return n}function s(e,n){return e&&t.isAlias(n)?n.resolve(e.doc,e):n}e.addMergeToJSMap=a,e.isMergeKey=i,e.merge=r})),Za=n((e=>{var t=Ya(),n=Xa(),r=qa(),i=K(),a=q();function o(e,t,{key:r,value:o}){if(i.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,o);else if(n.isMergeKey(e,r))n.addMergeToJSMap(e,t,o);else{let n=a.toJS(r,``,e);if(t instanceof Map)t.set(n,a.toJS(o,n,e));else if(t instanceof Set)t.add(n);else{let i=s(r,n,e),c=a.toJS(o,i,e);i in t?Object.defineProperty(t,i,{value:c,writable:!0,enumerable:!0,configurable:!0}):t[i]=c}}return t}function s(e,n,a){if(n===null)return``;if(typeof n!=`object`)return String(n);if(i.isNode(e)&&a?.doc){let n=r.createStringifyContext(a.doc,{});n.anchors=new Set;for(let e of a.anchors.keys())n.anchors.add(e.anchor);n.inFlow=!0,n.inStringifyKey=!0;let i=e.toString(n);if(!a.mapKeyWarned){let e=JSON.stringify(i);e.length>40&&(e=e.substring(0,36)+`..."`),t.warn(a.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),a.mapKeyWarned=!0}return i}return JSON.stringify(n)}e.addPairToJSMap=o})),Y=n((e=>{var t=Ha(),n=Ja(),r=Za(),i=K();function a(e,n,r){return new o(t.createNode(e,void 0,r),t.createNode(n,void 0,r))}var o=class e{constructor(e,t=null){Object.defineProperty(this,i.NODE_TYPE,{value:i.PAIR}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return i.isNode(n)&&(n=n.clone(t)),i.isNode(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return r.addPairToJSMap(t,n,this)}toString(e,t,r){return e?.doc?n.stringifyPair(this,e,t,r):JSON.stringify(this)}};e.Pair=o,e.createPair=a})),Qa=n((e=>{var t=K(),n=qa(),r=Wa();function i(e,t,n){return(t.inFlow??e.flow?o:a)(e,t,n)}function a({comment:e,items:i},a,{blockItemPrefix:o,flowChars:c,itemIndent:l,onChompKeep:u,onComment:d}){let{indent:f,options:{commentString:p}}=a,m=Object.assign({},a,{indent:l,type:null}),h=!1,g=[];for(let e=0;e<i.length;++e){let c=i[e],u=null;if(t.isNode(c))!h&&c.spaceBefore&&g.push(``),s(a,g,c.commentBefore,h),c.comment&&(u=c.comment);else if(t.isPair(c)){let e=t.isNode(c.key)?c.key:null;e&&(!h&&e.spaceBefore&&g.push(``),s(a,g,e.commentBefore,h))}h=!1;let d=n.stringify(c,m,()=>u=null,()=>h=!0);u&&(d+=r.lineComment(d,l,p(u))),h&&u&&(h=!1),g.push(o+d)}let _;if(g.length===0)_=c.start+c.end;else{_=g[0];for(let e=1;e<g.length;++e){let t=g[e];_+=t?`\n${f}${t}`:`
66
39
  `}}return e?(_+=`
67
40
  `+r.indentComment(p(e),f),d&&d()):h&&u&&u(),_}function o({items:e},i,{flowChars:a,itemIndent:o}){let{indent:c,indentStep:l,flowCollectionPadding:u,options:{commentString:d}}=i;o+=l;let f=Object.assign({},i,{indent:o,inFlow:!0,type:null}),p=!1,m=0,h=[];for(let a=0;a<e.length;++a){let c=e[a],l=null;if(t.isNode(c))c.spaceBefore&&h.push(``),s(i,h,c.commentBefore,!1),c.comment&&(l=c.comment);else if(t.isPair(c)){let e=t.isNode(c.key)?c.key:null;e&&(e.spaceBefore&&h.push(``),s(i,h,e.commentBefore,!1),e.comment&&(p=!0));let n=t.isNode(c.value)?c.value:null;n?(n.comment&&(l=n.comment),n.commentBefore&&(p=!0)):c.value==null&&e?.comment&&(l=e.comment)}l&&(p=!0);let u=n.stringify(c,f,()=>l=null);p||=h.length>m||u.includes(`
68
41
  `),a<e.length-1?u+=`,`:i.options.trailingComma&&(i.options.lineWidth>0&&(p||=h.reduce((e,t)=>e+t.length+2,2)+(u.length+2)>i.options.lineWidth),p&&(u+=`,`)),l&&(u+=r.lineComment(u,o,d(l))),h.push(u),m=h.length}let{start:g,end:_}=a;if(h.length===0)return g+_;if(!p){let e=h.reduce((e,t)=>e+t.length+2,2);p=i.options.lineWidth>0&&e>i.options.lineWidth}if(p){let e=g;for(let t of h)e+=t?`\n${l}${c}${t}`:`
69
- `;return`${e}\n${c}${_}`}else return`${g}${u}${h.join(` `)}${u}${_}`}function s({indent:e,options:{commentString:t}},n,i,a){if(i&&a&&(i=i.replace(/^\n+/,``)),i){let a=r.indentComment(t(i),e);n.push(a.trimStart())}}e.stringifyCollection=i})),Y=n((e=>{var t=ia(),n=ra(),r=Yi(),i=G(),a=J(),o=q();function s(e,t){let n=i.isScalar(t)?t.value:t;for(let r of e)if(i.isPair(r)&&(r.key===t||r.key===n||i.isScalar(r.key)&&r.key.value===n))return r}e.YAMLMap=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(i.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,o=new this(e),s=(e,s)=>{if(typeof i==`function`)s=i.call(t,e,s);else if(Array.isArray(i)&&!i.includes(e))return;(s!==void 0||r)&&o.items.push(a.createPair(e,s,n))};if(t instanceof Map)for(let[e,n]of t)s(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))s(e,t[e]);return typeof e.sortMapEntries==`function`&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;n=i.isPair(e)?e:!e||typeof e!=`object`||!(`key`in e)?new a.Pair(e,e?.value):new a.Pair(e.key,e.value);let r=s(this.items,n.key),c=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);i.isScalar(r.value)&&o.isScalarValue(n.value)?r.value.value=n.value:r.value=n.value}else if(c){let e=this.items.findIndex(e=>c(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=s(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=s(this.items,e)?.value;return(!t&&i.isScalar(n)?n.value:n)??void 0}has(e){return!!s(this.items,e)}set(e,t){this.add(new a.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let e of this.items)n.addPairToJSMap(t,i,e);return i}toString(e,n,r){if(!e)return JSON.stringify(this);for(let e of this.items)if(!i.isPair(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),t.stringifyCollection(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:r,onComment:n})}},e.findPair=s})),X=n((e=>{var t=G(),n=Y();e.map={collection:`map`,default:!0,nodeClass:n.YAMLMap,tag:`tag:yaml.org,2002:map`,resolve(e,n){return t.isMap(e)||n(`Expected a mapping for this tag`),e},createNode:(e,t,r)=>n.YAMLMap.from(e,t,r)}})),Z=n((e=>{var t=Ji(),n=ia(),r=Yi(),i=G(),a=q(),o=K(),s=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(i.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=c(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=c(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&i.isScalar(r)?r.value:r}has(e){let t=c(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=c(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];i.isScalar(r)&&a.isScalarValue(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(o.toJS(e,String(r++),t));return n}toString(e,t,r){return e?n.stringifyCollection(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:r,onComment:t}):JSON.stringify(this)}static from(e,n,r){let{replacer:i}=r,a=new this(e);if(n&&Symbol.iterator in Object(n)){let e=0;for(let o of n){if(typeof i==`function`){let t=n instanceof Set?o:String(e++);o=i.call(n,t,o)}a.items.push(t.createNode(o,void 0,r))}}return a}};function c(e){let t=i.isScalar(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}e.YAMLSeq=s})),Q=n((e=>{var t=G(),n=Z();e.seq={collection:`seq`,default:!0,nodeClass:n.YAMLSeq,tag:`tag:yaml.org,2002:seq`,resolve(e,n){return t.isSeq(e)||n(`Expected a sequence for this tag`),e},createNode:(e,t,r)=>n.YAMLSeq.from(e,t,r)}})),aa=n((e=>{var t=Qi();e.string={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,n,r,i){return n=Object.assign({actualString:!0},n),t.stringifyString(e,n,r,i)}}})),oa=n((e=>{var t=q();let n={identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new t.Scalar(null),stringify:({source:e},t)=>typeof e==`string`&&n.test.test(e)?e:t.options.nullStr};e.nullTag=n})),sa=n((e=>{var t=q();let n={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new t.Scalar(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},r){return e&&n.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?r.options.trueStr:r.options.falseStr}};e.boolTag=n})),$=n((e=>{function t({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-- >0;)a+=`0`}return a}e.stringifyNumber=t})),ca=n((e=>{var t=q(),n=$();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let n=new t.Scalar(parseFloat(e)),r=e.indexOf(`.`);return r!==-1&&e[e.length-1]===`0`&&(n.minFractionDigits=e.length-r-1),n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),la=n((e=>{var t=$();let n=e=>typeof e==`bigint`||Number.isInteger(e),r=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function i(e,r,i){let{value:a}=e;return n(a)&&a>=0?i+a.toString(r):t.stringifyNumber(e)}e.int={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},e.intHex={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)},e.intOct={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>r(e,2,8,n),stringify:e=>i(e,8,`0o`)}})),ua=n((e=>{var t=X(),n=oa(),r=Q(),i=aa(),a=sa(),o=ca(),s=la();e.schema=[t.map,r.seq,i.string,n.nullTag,a.boolTag,s.intOct,s.int,s.intHex,o.floatNaN,o.floatExp,o.float]})),da=n((e=>{var t=q(),n=X(),r=Q();function i(e){return typeof e==`bigint`||Number.isInteger(e)}let a=({value:e})=>JSON.stringify(e),o=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:a},{identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:a},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:a},{identify:i,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>i(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:a}];e.schema=[n.map,r.seq].concat(o,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),fa=n((t=>{var n=e(`buffer`),r=q(),i=Qi();t.binary={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof n.Buffer==`function`)return n.Buffer.from(e,`base64`);if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:a},o,s,c){if(!a)return``;let l=a,u;if(typeof n.Buffer==`function`)u=l instanceof n.Buffer?l.toString(`base64`):n.Buffer.from(l.buffer).toString(`base64`);else if(typeof btoa==`function`){let e=``;for(let t=0;t<l.length;++t)e+=String.fromCharCode(l[t]);u=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=r.Scalar.BLOCK_LITERAL,t!==r.Scalar.QUOTE_DOUBLE){let e=Math.max(o.options.lineWidth-o.indent.length,o.options.minContentWidth),n=Math.ceil(u.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=u.substr(r,e);u=i.join(t===r.Scalar.BLOCK_LITERAL?`
70
- `:` `)}return i.stringifyString({comment:e,type:t,value:u},o,s,c)}}})),pa=n((e=>{var t=G(),n=J(),r=q(),i=Z();function a(e,i){if(t.isSeq(e))for(let a=0;a<e.items.length;++a){let o=e.items[a];if(!t.isPair(o)){if(t.isMap(o)){o.items.length>1&&i(`Each pair must have its own sequence indicator`);let e=o.items[0]||new n.Pair(new r.Scalar(null));if(o.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${o.commentBefore}\n${e.key.commentBefore}`:o.commentBefore),o.comment){let t=e.value??e.key;t.comment=t.comment?`${o.comment}\n${t.comment}`:o.comment}o=e}e.items[a]=t.isPair(o)?o:new n.Pair(o)}}else i(`Expected a sequence for this tag`);return e}function o(e,t,r){let{replacer:a}=r,o=new i.YAMLSeq(e);o.tag=`tag:yaml.org,2002:pairs`;let s=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof a==`function`&&(e=a.call(t,String(s++),e));let i,c;if(Array.isArray(e))if(e.length===2)i=e[0],c=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)i=t[0],c=e[i];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else i=e;o.items.push(n.createPair(i,c,r))}return o}let s={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:a,createNode:o};e.createPairs=o,e.pairs=s,e.resolvePairs=a})),ma=n((e=>{var t=G(),n=K(),r=Y(),i=Z(),a=pa(),o=class e extends i.YAMLSeq{constructor(){super(),this.add=r.YAMLMap.prototype.add.bind(this),this.delete=r.YAMLMap.prototype.delete.bind(this),this.get=r.YAMLMap.prototype.get.bind(this),this.has=r.YAMLMap.prototype.has.bind(this),this.set=r.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(e,r){if(!r)return super.toJSON(e);let i=new Map;r?.onCreate&&r.onCreate(i);for(let e of this.items){let a,o;if(t.isPair(e)?(a=n.toJS(e.key,``,r),o=n.toJS(e.value,a,r)):a=n.toJS(e,``,r),i.has(a))throw Error(`Ordered maps must not include duplicate keys`);i.set(a,o)}return i}static from(e,t,n){let r=a.createPairs(e,t,n),i=new this;return i.items=r.items,i}};o.tag=`tag:yaml.org,2002:omap`;let s={collection:`seq`,identify:e=>e instanceof Map,nodeClass:o,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,n){let r=a.resolvePairs(e,n),i=[];for(let{key:e}of r.items)t.isScalar(e)&&(i.includes(e.value)?n(`Ordered maps must not include duplicate keys: ${e.value}`):i.push(e.value));return Object.assign(new o,r)},createNode:(e,t,n)=>o.from(e,t,n)};e.YAMLOMap=o,e.omap=s})),ha=n((e=>{var t=q();function n({value:e,source:t},n){return t&&(e?r:i).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}let r={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new t.Scalar(!0),stringify:n},i={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new t.Scalar(!1),stringify:n};e.falseTag=i,e.trueTag=r})),ga=n((e=>{var t=q(),n=$();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let n=new t.Scalar(parseFloat(e.replace(/_/g,``))),r=e.indexOf(`.`);if(r!==-1){let t=e.substring(r+1).replace(/_/g,``);t[t.length-1]===`0`&&(n.minFractionDigits=t.length)}return n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),_a=n((e=>{var t=$();let n=e=>typeof e==`bigint`||Number.isInteger(e);function r(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function i(e,r,i){let{value:a}=e;if(n(a)){let e=a.toString(r);return a<0?`-`+i+e.substr(1):i+e}return t.stringifyNumber(e)}let a={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>r(e,2,2,n),stringify:e=>i(e,2,`0b`)},o={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>r(e,1,8,n),stringify:e=>i(e,8,`0`)},s={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},c={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)};e.int=s,e.intBin=a,e.intHex=c,e.intOct=o})),va=n((e=>{var t=G(),n=J(),r=Y(),i=class e extends r.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(e){let i;i=t.isPair(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new n.Pair(e.key,null):new n.Pair(e,null),r.findPair(this.items,i.key)||this.items.push(i)}get(e,n){let i=r.findPair(this.items,e);return!n&&t.isPair(i)?t.isScalar(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=r.findPair(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new n.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,r){let{replacer:i}=r,a=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof i==`function`&&(e=i.call(t,e,e)),a.items.push(n.createPair(e,null,r));return a}};i.tag=`tag:yaml.org,2002:set`;let a={collection:`map`,identify:e=>e instanceof Set,nodeClass:i,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>i.from(e,t,n),resolve(e,n){if(t.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new i,e);n(`Set items must all have null values`)}else n(`Expected a mapping for this tag`);return e}};e.YAMLSet=i,e.set=a})),ya=n((e=>{var t=$();function n(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function r(e){let{value:n}=e,r=e=>e;if(typeof n==`bigint`)r=e=>BigInt(e);else if(isNaN(n)||!isFinite(n))return t.stringifyNumber(e);let i=``;n<0&&(i=`-`,n*=r(-1));let a=r(60),o=[n%a];return n<60?o.unshift(0):(n=(n-o[0])/a,o.unshift(n%a),n>=60&&(n=(n-o[0])/a,o.unshift(n))),i+o.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}let i={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>n(e,r),stringify:r},a={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>n(e,!1),stringify:r},o={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(o.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,r,i,a,s,c,l]=t.map(Number),u=t[7]?Number((t[7]+`00`).substr(1,3)):0,d=Date.UTC(r,i-1,a,s||0,c||0,l||0,u),f=t[8];if(f&&f!==`Z`){let e=n(f,!1);Math.abs(e)<30&&(e*=60),d-=6e4*e}return new Date(d)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``};e.floatTime=a,e.intTime=i,e.timestamp=o})),ba=n((e=>{var t=X(),n=oa(),r=Q(),i=aa(),a=fa(),o=ha(),s=ga(),c=_a(),l=na(),u=ma(),d=pa(),f=va(),p=ya();e.schema=[t.map,r.seq,i.string,n.nullTag,o.trueTag,o.falseTag,c.intBin,c.intOct,c.int,c.intHex,s.floatNaN,s.floatExp,s.float,a.binary,l.merge,u.omap,d.pairs,f.set,p.intTime,p.floatTime,p.timestamp]})),xa=n((e=>{var t=X(),n=oa(),r=Q(),i=aa(),a=sa(),o=ca(),s=la(),c=ua(),l=da(),u=fa(),d=na(),f=ma(),p=pa(),m=ba(),h=va(),g=ya();let _=new Map([[`core`,c.schema],[`failsafe`,[t.map,r.seq,i.string]],[`json`,l.schema],[`yaml11`,m.schema],[`yaml-1.1`,m.schema]]),v={binary:u.binary,bool:a.boolTag,float:o.float,floatExp:o.floatExp,floatNaN:o.floatNaN,floatTime:g.floatTime,int:s.int,intHex:s.intHex,intOct:s.intOct,intTime:g.intTime,map:t.map,merge:d.merge,null:n.nullTag,omap:f.omap,pairs:p.pairs,seq:r.seq,set:h.set,timestamp:g.timestamp},y={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:merge":d.merge,"tag:yaml.org,2002:omap":f.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":h.set,"tag:yaml.org,2002:timestamp":g.timestamp};function b(e,t,n){let r=_.get(t);if(r&&!e)return n&&!r.includes(d.merge)?r.concat(d.merge):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(_.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(d.merge)),i.reduce((e,t)=>{let n=typeof t==`string`?v[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(v).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}e.coreKnownTags=y,e.getTags=b})),Sa=n((e=>{var t=G(),n=X(),r=Q(),i=aa(),a=xa();let o=(e,t)=>e.key<t.key?-1:+(e.key>t.key);e.Schema=class e{constructor({compat:e,customTags:s,merge:c,resolveKnownTags:l,schema:u,sortMapEntries:d,toStringDefaults:f}){this.compat=Array.isArray(e)?a.getTags(e,`compat`):e?a.getTags(null,e):null,this.name=typeof u==`string`&&u||`core`,this.knownTags=l?a.coreKnownTags:{},this.tags=a.getTags(s,this.name,c),this.toStringOptions=f??null,Object.defineProperty(this,t.MAP,{value:n.map}),Object.defineProperty(this,t.SCALAR,{value:i.string}),Object.defineProperty(this,t.SEQ,{value:r.seq}),this.sortMapEntries=typeof d==`function`?d:d===!0?o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}})),Ca=n((e=>{var t=G(),n=$i(),r=Xi();function i(e,i){let a=[],o=i.directives===!0;if(i.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(a.push(t),o=!0):e.directives.docStart&&(o=!0)}o&&a.push(`---`);let s=n.createStringifyContext(e,i),{commentString:c}=s.options;if(e.commentBefore){a.length!==1&&a.unshift(``);let t=c(e.commentBefore);a.unshift(r.indentComment(t,``))}let l=!1,u=null;if(e.contents){if(t.isNode(e.contents)){if(e.contents.spaceBefore&&o&&a.push(``),e.contents.commentBefore){let t=c(e.contents.commentBefore);a.push(r.indentComment(t,``))}s.forceBlockIndent=!!e.comment,u=e.contents.comment}let i=u?void 0:()=>l=!0,d=n.stringify(e.contents,s,()=>u=null,i);u&&(d+=r.lineComment(d,``,c(u))),(d[0]===`|`||d[0]===`>`)&&a[a.length-1]===`---`?a[a.length-1]=`--- ${d}`:a.push(d)}else a.push(n.stringify(e.contents,s));if(e.directives?.docEnd)if(e.comment){let t=c(e.comment);t.includes(`
42
+ `;return`${e}\n${c}${_}`}else return`${g}${u}${h.join(` `)}${u}${_}`}function s({indent:e,options:{commentString:t}},n,i,a){if(i&&a&&(i=i.replace(/^\n+/,``)),i){let a=r.indentComment(t(i),e);n.push(a.trimStart())}}e.stringifyCollection=i})),X=n((e=>{var t=Qa(),n=Za(),r=Ua(),i=K(),a=Y(),o=J();function s(e,t){let n=i.isScalar(t)?t.value:t;for(let r of e)if(i.isPair(r)&&(r.key===t||r.key===n||i.isScalar(r.key)&&r.key.value===n))return r}e.YAMLMap=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(i.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,o=new this(e),s=(e,s)=>{if(typeof i==`function`)s=i.call(t,e,s);else if(Array.isArray(i)&&!i.includes(e))return;(s!==void 0||r)&&o.items.push(a.createPair(e,s,n))};if(t instanceof Map)for(let[e,n]of t)s(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))s(e,t[e]);return typeof e.sortMapEntries==`function`&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;n=i.isPair(e)?e:!e||typeof e!=`object`||!(`key`in e)?new a.Pair(e,e?.value):new a.Pair(e.key,e.value);let r=s(this.items,n.key),c=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);i.isScalar(r.value)&&o.isScalarValue(n.value)?r.value.value=n.value:r.value=n.value}else if(c){let e=this.items.findIndex(e=>c(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=s(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=s(this.items,e)?.value;return(!t&&i.isScalar(n)?n.value:n)??void 0}has(e){return!!s(this.items,e)}set(e,t){this.add(new a.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let e of this.items)n.addPairToJSMap(t,i,e);return i}toString(e,n,r){if(!e)return JSON.stringify(this);for(let e of this.items)if(!i.isPair(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),t.stringifyCollection(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:r,onComment:n})}},e.findPair=s})),Z=n((e=>{var t=K(),n=X();e.map={collection:`map`,default:!0,nodeClass:n.YAMLMap,tag:`tag:yaml.org,2002:map`,resolve(e,n){return t.isMap(e)||n(`Expected a mapping for this tag`),e},createNode:(e,t,r)=>n.YAMLMap.from(e,t,r)}})),Q=n((e=>{var t=Ha(),n=Qa(),r=Ua(),i=K(),a=J(),o=q(),s=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(i.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=c(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=c(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&i.isScalar(r)?r.value:r}has(e){let t=c(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=c(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];i.isScalar(r)&&a.isScalarValue(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(o.toJS(e,String(r++),t));return n}toString(e,t,r){return e?n.stringifyCollection(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:r,onComment:t}):JSON.stringify(this)}static from(e,n,r){let{replacer:i}=r,a=new this(e);if(n&&Symbol.iterator in Object(n)){let e=0;for(let o of n){if(typeof i==`function`){let t=n instanceof Set?o:String(e++);o=i.call(n,t,o)}a.items.push(t.createNode(o,void 0,r))}}return a}};function c(e){let t=i.isScalar(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}e.YAMLSeq=s})),$=n((e=>{var t=K(),n=Q();e.seq={collection:`seq`,default:!0,nodeClass:n.YAMLSeq,tag:`tag:yaml.org,2002:seq`,resolve(e,n){return t.isSeq(e)||n(`Expected a sequence for this tag`),e},createNode:(e,t,r)=>n.YAMLSeq.from(e,t,r)}})),$a=n((e=>{var t=Ka();e.string={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,n,r,i){return n=Object.assign({actualString:!0},n),t.stringifyString(e,n,r,i)}}})),eo=n((e=>{var t=J();let n={identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new t.Scalar(null),stringify:({source:e},t)=>typeof e==`string`&&n.test.test(e)?e:t.options.nullStr};e.nullTag=n})),to=n((e=>{var t=J();let n={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new t.Scalar(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},r){return e&&n.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?r.options.trueStr:r.options.falseStr}};e.boolTag=n})),no=n((e=>{function t({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-- >0;)a+=`0`}return a}e.stringifyNumber=t})),ro=n((e=>{var t=J(),n=no();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let n=new t.Scalar(parseFloat(e)),r=e.indexOf(`.`);return r!==-1&&e[e.length-1]===`0`&&(n.minFractionDigits=e.length-r-1),n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),io=n((e=>{var t=no();let n=e=>typeof e==`bigint`||Number.isInteger(e),r=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function i(e,r,i){let{value:a}=e;return n(a)&&a>=0?i+a.toString(r):t.stringifyNumber(e)}e.int={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},e.intHex={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)},e.intOct={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>r(e,2,8,n),stringify:e=>i(e,8,`0o`)}})),ao=n((e=>{var t=Z(),n=eo(),r=$(),i=$a(),a=to(),o=ro(),s=io();e.schema=[t.map,r.seq,i.string,n.nullTag,a.boolTag,s.intOct,s.int,s.intHex,o.floatNaN,o.floatExp,o.float]})),oo=n((e=>{var t=J(),n=Z(),r=$();function i(e){return typeof e==`bigint`||Number.isInteger(e)}let a=({value:e})=>JSON.stringify(e),o=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:a},{identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:a},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:a},{identify:i,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>i(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:a}];e.schema=[n.map,r.seq].concat(o,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),so=n((t=>{var n=e(`buffer`),r=J(),i=Ka();t.binary={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof n.Buffer==`function`)return n.Buffer.from(e,`base64`);if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:a},o,s,c){if(!a)return``;let l=a,u;if(typeof n.Buffer==`function`)u=l instanceof n.Buffer?l.toString(`base64`):n.Buffer.from(l.buffer).toString(`base64`);else if(typeof btoa==`function`){let e=``;for(let t=0;t<l.length;++t)e+=String.fromCharCode(l[t]);u=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=r.Scalar.BLOCK_LITERAL,t!==r.Scalar.QUOTE_DOUBLE){let e=Math.max(o.options.lineWidth-o.indent.length,o.options.minContentWidth),n=Math.ceil(u.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=u.substr(r,e);u=i.join(t===r.Scalar.BLOCK_LITERAL?`
43
+ `:` `)}return i.stringifyString({comment:e,type:t,value:u},o,s,c)}}})),co=n((e=>{var t=K(),n=Y(),r=J(),i=Q();function a(e,i){if(t.isSeq(e))for(let a=0;a<e.items.length;++a){let o=e.items[a];if(!t.isPair(o)){if(t.isMap(o)){o.items.length>1&&i(`Each pair must have its own sequence indicator`);let e=o.items[0]||new n.Pair(new r.Scalar(null));if(o.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${o.commentBefore}\n${e.key.commentBefore}`:o.commentBefore),o.comment){let t=e.value??e.key;t.comment=t.comment?`${o.comment}\n${t.comment}`:o.comment}o=e}e.items[a]=t.isPair(o)?o:new n.Pair(o)}}else i(`Expected a sequence for this tag`);return e}function o(e,t,r){let{replacer:a}=r,o=new i.YAMLSeq(e);o.tag=`tag:yaml.org,2002:pairs`;let s=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof a==`function`&&(e=a.call(t,String(s++),e));let i,c;if(Array.isArray(e))if(e.length===2)i=e[0],c=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)i=t[0],c=e[i];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else i=e;o.items.push(n.createPair(i,c,r))}return o}let s={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:a,createNode:o};e.createPairs=o,e.pairs=s,e.resolvePairs=a})),lo=n((e=>{var t=K(),n=q(),r=X(),i=Q(),a=co(),o=class e extends i.YAMLSeq{constructor(){super(),this.add=r.YAMLMap.prototype.add.bind(this),this.delete=r.YAMLMap.prototype.delete.bind(this),this.get=r.YAMLMap.prototype.get.bind(this),this.has=r.YAMLMap.prototype.has.bind(this),this.set=r.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(e,r){if(!r)return super.toJSON(e);let i=new Map;r?.onCreate&&r.onCreate(i);for(let e of this.items){let a,o;if(t.isPair(e)?(a=n.toJS(e.key,``,r),o=n.toJS(e.value,a,r)):a=n.toJS(e,``,r),i.has(a))throw Error(`Ordered maps must not include duplicate keys`);i.set(a,o)}return i}static from(e,t,n){let r=a.createPairs(e,t,n),i=new this;return i.items=r.items,i}};o.tag=`tag:yaml.org,2002:omap`;let s={collection:`seq`,identify:e=>e instanceof Map,nodeClass:o,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,n){let r=a.resolvePairs(e,n),i=[];for(let{key:e}of r.items)t.isScalar(e)&&(i.includes(e.value)?n(`Ordered maps must not include duplicate keys: ${e.value}`):i.push(e.value));return Object.assign(new o,r)},createNode:(e,t,n)=>o.from(e,t,n)};e.YAMLOMap=o,e.omap=s})),uo=n((e=>{var t=J();function n({value:e,source:t},n){return t&&(e?r:i).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}let r={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new t.Scalar(!0),stringify:n},i={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new t.Scalar(!1),stringify:n};e.falseTag=i,e.trueTag=r})),fo=n((e=>{var t=J(),n=no();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let n=new t.Scalar(parseFloat(e.replace(/_/g,``))),r=e.indexOf(`.`);if(r!==-1){let t=e.substring(r+1).replace(/_/g,``);t[t.length-1]===`0`&&(n.minFractionDigits=t.length)}return n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),po=n((e=>{var t=no();let n=e=>typeof e==`bigint`||Number.isInteger(e);function r(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function i(e,r,i){let{value:a}=e;if(n(a)){let e=a.toString(r);return a<0?`-`+i+e.substr(1):i+e}return t.stringifyNumber(e)}let a={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>r(e,2,2,n),stringify:e=>i(e,2,`0b`)},o={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>r(e,1,8,n),stringify:e=>i(e,8,`0`)},s={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},c={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)};e.int=s,e.intBin=a,e.intHex=c,e.intOct=o})),mo=n((e=>{var t=K(),n=Y(),r=X(),i=class e extends r.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(e){let i;i=t.isPair(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new n.Pair(e.key,null):new n.Pair(e,null),r.findPair(this.items,i.key)||this.items.push(i)}get(e,n){let i=r.findPair(this.items,e);return!n&&t.isPair(i)?t.isScalar(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=r.findPair(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new n.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,r){let{replacer:i}=r,a=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof i==`function`&&(e=i.call(t,e,e)),a.items.push(n.createPair(e,null,r));return a}};i.tag=`tag:yaml.org,2002:set`;let a={collection:`map`,identify:e=>e instanceof Set,nodeClass:i,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>i.from(e,t,n),resolve(e,n){if(t.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new i,e);n(`Set items must all have null values`)}else n(`Expected a mapping for this tag`);return e}};e.YAMLSet=i,e.set=a})),ho=n((e=>{var t=no();function n(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function r(e){let{value:n}=e,r=e=>e;if(typeof n==`bigint`)r=e=>BigInt(e);else if(isNaN(n)||!isFinite(n))return t.stringifyNumber(e);let i=``;n<0&&(i=`-`,n*=r(-1));let a=r(60),o=[n%a];return n<60?o.unshift(0):(n=(n-o[0])/a,o.unshift(n%a),n>=60&&(n=(n-o[0])/a,o.unshift(n))),i+o.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}let i={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>n(e,r),stringify:r},a={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>n(e,!1),stringify:r},o={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(o.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,r,i,a,s,c,l]=t.map(Number),u=t[7]?Number((t[7]+`00`).substr(1,3)):0,d=Date.UTC(r,i-1,a,s||0,c||0,l||0,u),f=t[8];if(f&&f!==`Z`){let e=n(f,!1);Math.abs(e)<30&&(e*=60),d-=6e4*e}return new Date(d)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``};e.floatTime=a,e.intTime=i,e.timestamp=o})),go=n((e=>{var t=Z(),n=eo(),r=$(),i=$a(),a=so(),o=uo(),s=fo(),c=po(),l=Xa(),u=lo(),d=co(),f=mo(),p=ho();e.schema=[t.map,r.seq,i.string,n.nullTag,o.trueTag,o.falseTag,c.intBin,c.intOct,c.int,c.intHex,s.floatNaN,s.floatExp,s.float,a.binary,l.merge,u.omap,d.pairs,f.set,p.intTime,p.floatTime,p.timestamp]})),_o=n((e=>{var t=Z(),n=eo(),r=$(),i=$a(),a=to(),o=ro(),s=io(),c=ao(),l=oo(),u=so(),d=Xa(),f=lo(),p=co(),m=go(),h=mo(),g=ho();let _=new Map([[`core`,c.schema],[`failsafe`,[t.map,r.seq,i.string]],[`json`,l.schema],[`yaml11`,m.schema],[`yaml-1.1`,m.schema]]),v={binary:u.binary,bool:a.boolTag,float:o.float,floatExp:o.floatExp,floatNaN:o.floatNaN,floatTime:g.floatTime,int:s.int,intHex:s.intHex,intOct:s.intOct,intTime:g.intTime,map:t.map,merge:d.merge,null:n.nullTag,omap:f.omap,pairs:p.pairs,seq:r.seq,set:h.set,timestamp:g.timestamp},y={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:merge":d.merge,"tag:yaml.org,2002:omap":f.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":h.set,"tag:yaml.org,2002:timestamp":g.timestamp};function b(e,t,n){let r=_.get(t);if(r&&!e)return n&&!r.includes(d.merge)?r.concat(d.merge):r.slice();let i=r;if(!i)if(Array.isArray(e))i=[];else{let e=Array.from(_.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(d.merge)),i.reduce((e,t)=>{let n=typeof t==`string`?v[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(v).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}e.coreKnownTags=y,e.getTags=b})),vo=n((e=>{var t=K(),n=Z(),r=$(),i=$a(),a=_o();let o=(e,t)=>e.key<t.key?-1:+(e.key>t.key);e.Schema=class e{constructor({compat:e,customTags:s,merge:c,resolveKnownTags:l,schema:u,sortMapEntries:d,toStringDefaults:f}){this.compat=Array.isArray(e)?a.getTags(e,`compat`):e?a.getTags(null,e):null,this.name=typeof u==`string`&&u||`core`,this.knownTags=l?a.coreKnownTags:{},this.tags=a.getTags(s,this.name,c),this.toStringOptions=f??null,Object.defineProperty(this,t.MAP,{value:n.map}),Object.defineProperty(this,t.SCALAR,{value:i.string}),Object.defineProperty(this,t.SEQ,{value:r.seq}),this.sortMapEntries=typeof d==`function`?d:d===!0?o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}})),yo=n((e=>{var t=K(),n=qa(),r=Wa();function i(e,i){let a=[],o=i.directives===!0;if(i.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(a.push(t),o=!0):e.directives.docStart&&(o=!0)}o&&a.push(`---`);let s=n.createStringifyContext(e,i),{commentString:c}=s.options;if(e.commentBefore){a.length!==1&&a.unshift(``);let t=c(e.commentBefore);a.unshift(r.indentComment(t,``))}let l=!1,u=null;if(e.contents){if(t.isNode(e.contents)){if(e.contents.spaceBefore&&o&&a.push(``),e.contents.commentBefore){let t=c(e.contents.commentBefore);a.push(r.indentComment(t,``))}s.forceBlockIndent=!!e.comment,u=e.contents.comment}let i=u?void 0:()=>l=!0,d=n.stringify(e.contents,s,()=>u=null,i);u&&(d+=r.lineComment(d,``,c(u))),(d[0]===`|`||d[0]===`>`)&&a[a.length-1]===`---`?a[a.length-1]=`--- ${d}`:a.push(d)}else a.push(n.stringify(e.contents,s));if(e.directives?.docEnd)if(e.comment){let t=c(e.comment);t.includes(`
71
44
  `)?(a.push(`...`),a.push(r.indentComment(t,``))):a.push(`... ${t}`)}else a.push(`...`);else{let t=e.comment;t&&l&&(t=t.replace(/^\n+/,``)),t&&((!l||u)&&a[a.length-1]!==``&&a.push(``),a.push(r.indentComment(c(t),``)))}return a.join(`
72
45
  `)+`
73
- `}e.stringifyDocument=i})),wa=n((e=>{var t=qi(),n=Yi(),r=G(),i=J(),a=K(),o=Sa(),s=Ca(),c=Wi(),l=Gi(),u=Ji(),d=Ui(),f=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r.NODE_TYPE,{value:r.DOC});let i=null;typeof t==`function`||Array.isArray(t)?i=t:n===void 0&&t&&(n=t,t=void 0);let a=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=a;let{version:o}=a;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new d.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,i,n)}clone(){let t=Object.create(e.prototype,{[r.NODE_TYPE]:{value:r.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=r.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){p(this.contents)&&this.contents.add(e)}addIn(e,t){p(this.contents)&&this.contents.addIn(e,t)}createAlias(e,n){if(!e.anchor){let t=c.anchorNames(this);e.anchor=!n||t.has(n)?c.findNewAnchor(n||`a`,t):n}return new t.Alias(e.anchor)}createNode(e,t,n){let i;if(typeof t==`function`)e=t.call({"":e},``,e),i=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),i=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:a,anchorPrefix:o,flow:s,keepUndefined:l,onTagObj:d,tag:f}=n??{},{onAnchor:p,setAnchors:m,sourceObjects:h}=c.createNodeAnchors(this,o||`a`),g={aliasDuplicateObjects:a??!0,keepUndefined:l??!1,onAnchor:p,onTagObj:d,replacer:i,schema:this.schema,sourceObjects:h},_=u.createNode(e,f,g);return s&&r.isCollection(_)&&(_.flow=!0),m(),_}createPair(e,t,n={}){let r=this.createNode(e,null,n),a=this.createNode(t,null,n);return new i.Pair(r,a)}delete(e){return p(this.contents)?this.contents.delete(e):!1}deleteIn(e){return n.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):p(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return r.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return n.isEmptyPath(e)?!t&&r.isScalar(this.contents)?this.contents.value:this.contents:r.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return r.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return n.isEmptyPath(e)?this.contents!==void 0:r.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=n.collectionFromPath(this.schema,[e],t):p(this.contents)&&this.contents.set(e,t)}setIn(e,t){n.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=n.collectionFromPath(this.schema,Array.from(e),t):p(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new d.Directives({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new d.Directives({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new o.Schema(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:o}={}){let s={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},c=a.toJS(this.contents,t??``,s);if(typeof i==`function`)for(let{count:e,res:t}of s.anchors.values())i(t,e);return typeof o==`function`?l.applyReviver(o,{"":c},``,c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return s.stringifyDocument(this,e)}};function p(e){if(r.isCollection(e))return!0;throw Error(`Expected a YAML collection as document contents`)}e.Document=f})),Ta=n((e=>{var t=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},n=class extends t{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},r=class extends t{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}};e.YAMLError=t,e.YAMLParseError=n,e.YAMLWarning=r,e.prettifyError=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
74
- `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}})),Ea=n((e=>{function t(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}e.resolveProps=t})),Da=n((e=>{function t(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
75
- `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let n of e.items){for(let e of n.start)if(e.type===`newline`)return!0;if(n.sep){for(let e of n.sep)if(e.type===`newline`)return!0}if(t(n.key)||t(n.value))return!0}return!1;default:return!0}}e.containsNewline=t})),Oa=n((e=>{var t=Da();function n(e,n,r){if(n?.type===`flow-collection`){let i=n.end[0];i.indent===e&&(i.source===`]`||i.source===`}`)&&t.containsNewline(n)&&r(i,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}e.flowIndentCheck=n})),ka=n((e=>{var t=G();function n(e,n,r){let{uniqueKeys:i}=e.options;if(i===!1)return!1;let a=typeof i==`function`?i:(e,n)=>e===n||t.isScalar(e)&&t.isScalar(n)&&e.value===n.value;return n.some(e=>a(e.key,r))}e.mapIncludes=n})),Aa=n((e=>{var t=J(),n=Y(),r=Ea(),i=Da(),a=Oa(),o=ka();let s=`All mapping items must start at the same column`;function c({composeNode:e,composeEmptyNode:c},l,u,d,f){let p=new(f?.nodeClass??n.YAMLMap)(l.schema);l.atRoot&&=!1;let m=u.offset,h=null;for(let n of u.items){let{start:f,key:g,sep:_,value:v}=n,y=r.resolveProps(f,{indicator:`explicit-key-ind`,next:g??_?.[0],offset:m,onError:d,parentIndent:u.indent,startOnNewline:!0}),b=!y.found;if(b){if(g&&(g.type===`block-seq`?d(m,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in g&&g.indent!==u.indent&&d(m,`BAD_INDENT`,s)),!y.anchor&&!y.tag&&!_){h=y.end,y.comment&&(p.comment?p.comment+=`
46
+ `}e.stringifyDocument=i})),bo=n((e=>{var t=Va(),n=Ua(),r=K(),i=Y(),a=q(),o=vo(),s=yo(),c=Ra(),l=za(),u=Ha(),d=La(),f=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r.NODE_TYPE,{value:r.DOC});let i=null;typeof t==`function`||Array.isArray(t)?i=t:n===void 0&&t&&(n=t,t=void 0);let a=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=a;let{version:o}=a;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new d.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,i,n)}clone(){let t=Object.create(e.prototype,{[r.NODE_TYPE]:{value:r.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=r.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){p(this.contents)&&this.contents.add(e)}addIn(e,t){p(this.contents)&&this.contents.addIn(e,t)}createAlias(e,n){if(!e.anchor){let t=c.anchorNames(this);e.anchor=!n||t.has(n)?c.findNewAnchor(n||`a`,t):n}return new t.Alias(e.anchor)}createNode(e,t,n){let i;if(typeof t==`function`)e=t.call({"":e},``,e),i=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),i=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:a,anchorPrefix:o,flow:s,keepUndefined:l,onTagObj:d,tag:f}=n??{},{onAnchor:p,setAnchors:m,sourceObjects:h}=c.createNodeAnchors(this,o||`a`),g={aliasDuplicateObjects:a??!0,keepUndefined:l??!1,onAnchor:p,onTagObj:d,replacer:i,schema:this.schema,sourceObjects:h},_=u.createNode(e,f,g);return s&&r.isCollection(_)&&(_.flow=!0),m(),_}createPair(e,t,n={}){let r=this.createNode(e,null,n),a=this.createNode(t,null,n);return new i.Pair(r,a)}delete(e){return p(this.contents)?this.contents.delete(e):!1}deleteIn(e){return n.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):p(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return r.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return n.isEmptyPath(e)?!t&&r.isScalar(this.contents)?this.contents.value:this.contents:r.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return r.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return n.isEmptyPath(e)?this.contents!==void 0:r.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=n.collectionFromPath(this.schema,[e],t):p(this.contents)&&this.contents.set(e,t)}setIn(e,t){n.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=n.collectionFromPath(this.schema,Array.from(e),t):p(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new d.Directives({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new d.Directives({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new o.Schema(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:o}={}){let s={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},c=a.toJS(this.contents,t??``,s);if(typeof i==`function`)for(let{count:e,res:t}of s.anchors.values())i(t,e);return typeof o==`function`?l.applyReviver(o,{"":c},``,c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return s.stringifyDocument(this,e)}};function p(e){if(r.isCollection(e))return!0;throw Error(`Expected a YAML collection as document contents`)}e.Document=f})),xo=n((e=>{var t=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},n=class extends t{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},r=class extends t{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}};e.YAMLError=t,e.YAMLParseError=n,e.YAMLWarning=r,e.prettifyError=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
47
+ `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}})),So=n((e=>{function t(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}e.resolveProps=t})),Co=n((e=>{function t(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
48
+ `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let n of e.items){for(let e of n.start)if(e.type===`newline`)return!0;if(n.sep){for(let e of n.sep)if(e.type===`newline`)return!0}if(t(n.key)||t(n.value))return!0}return!1;default:return!0}}e.containsNewline=t})),wo=n((e=>{var t=Co();function n(e,n,r){if(n?.type===`flow-collection`){let i=n.end[0];i.indent===e&&(i.source===`]`||i.source===`}`)&&t.containsNewline(n)&&r(i,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}e.flowIndentCheck=n})),To=n((e=>{var t=K();function n(e,n,r){let{uniqueKeys:i}=e.options;if(i===!1)return!1;let a=typeof i==`function`?i:(e,n)=>e===n||t.isScalar(e)&&t.isScalar(n)&&e.value===n.value;return n.some(e=>a(e.key,r))}e.mapIncludes=n})),Eo=n((e=>{var t=Y(),n=X(),r=So(),i=Co(),a=wo(),o=To();let s=`All mapping items must start at the same column`;function c({composeNode:e,composeEmptyNode:c},l,u,d,f){let p=new(f?.nodeClass??n.YAMLMap)(l.schema);l.atRoot&&=!1;let m=u.offset,h=null;for(let n of u.items){let{start:f,key:g,sep:_,value:v}=n,y=r.resolveProps(f,{indicator:`explicit-key-ind`,next:g??_?.[0],offset:m,onError:d,parentIndent:u.indent,startOnNewline:!0}),b=!y.found;if(b){if(g&&(g.type===`block-seq`?d(m,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in g&&g.indent!==u.indent&&d(m,`BAD_INDENT`,s)),!y.anchor&&!y.tag&&!_){h=y.end,y.comment&&(p.comment?p.comment+=`
76
49
  `+y.comment:p.comment=y.comment);continue}(y.newlineAfterProp||i.containsNewline(g))&&d(g??f[f.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else y.found?.indent!==u.indent&&d(m,`BAD_INDENT`,s);l.atKey=!0;let x=y.end,S=g?e(l,g,y,d):c(l,x,f,null,y,d);l.schema.compat&&a.flowIndentCheck(u.indent,g,d),l.atKey=!1,o.mapIncludes(l,p.items,S)&&d(x,`DUPLICATE_KEY`,`Map keys must be unique`);let C=r.resolveProps(_??[],{indicator:`map-value-ind`,next:v,offset:S.range[2],onError:d,parentIndent:u.indent,startOnNewline:!g||g.type===`block-scalar`});if(m=C.end,C.found){b&&(v?.type===`block-map`&&!C.hasNewline&&d(m,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),l.options.strict&&y.start<C.found.offset-1024&&d(S.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let r=v?e(l,v,C,d):c(l,m,_,null,C,d);l.schema.compat&&a.flowIndentCheck(u.indent,v,d),m=r.range[2];let i=new t.Pair(S,r);l.options.keepSourceTokens&&(i.srcToken=n),p.items.push(i)}else{b&&d(S.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),C.comment&&(S.comment?S.comment+=`
77
- `+C.comment:S.comment=C.comment);let e=new t.Pair(S);l.options.keepSourceTokens&&(e.srcToken=n),p.items.push(e)}}return h&&h<m&&d(h,`IMPOSSIBLE`,`Map comment with trailing content`),p.range=[u.offset,m,h??m],p}e.resolveBlockMap=c})),ja=n((e=>{var t=Z(),n=Ea(),r=Oa();function i({composeNode:e,composeEmptyNode:i},a,o,s,c){let l=new(c?.nodeClass??t.YAMLSeq)(a.schema);a.atRoot&&=!1,a.atKey&&=!1;let u=o.offset,d=null;for(let{start:t,value:c}of o.items){let f=n.resolveProps(t,{indicator:`seq-item-ind`,next:c,offset:u,onError:s,parentIndent:o.indent,startOnNewline:!0});if(!f.found)if(f.anchor||f.tag||c)c?.type===`block-seq`?s(f.end,`BAD_INDENT`,`All sequence items must start at the same column`):s(u,`MISSING_CHAR`,`Sequence item without - indicator`);else{d=f.end,f.comment&&(l.comment=f.comment);continue}let p=c?e(a,c,f,s):i(a,f.end,t,null,f,s);a.schema.compat&&r.flowIndentCheck(o.indent,c,s),u=p.range[2],l.items.push(p)}return l.range=[o.offset,u,d??u],l}e.resolveBlockSeq=i})),Ma=n((e=>{function t(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}e.resolveEnd=t})),Na=n((e=>{var t=G(),n=J(),r=Y(),i=Z(),a=Ma(),o=Ea(),s=Da(),c=ka();let l=`Block collections are not allowed within flow collections`,u=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function d({composeNode:e,composeEmptyNode:d},f,p,m,h){let g=p.start.source===`{`,_=g?`flow map`:`flow sequence`,v=new(h?.nodeClass??(g?r.YAMLMap:i.YAMLSeq))(f.schema);v.flow=!0;let y=f.atRoot;y&&(f.atRoot=!1),f.atKey&&=!1;let b=p.offset+p.start.source.length;for(let i=0;i<p.items.length;++i){let a=p.items[i],{start:h,key:y,sep:x,value:S}=a,C=o.resolveProps(h,{flow:_,indicator:`explicit-key-ind`,next:y??x?.[0],offset:b,onError:m,parentIndent:p.indent,startOnNewline:!1});if(!C.found){if(!C.anchor&&!C.tag&&!x&&!S){i===0&&C.comma?m(C.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${_}`):i<p.items.length-1&&m(C.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${_}`),C.comment&&(v.comment?v.comment+=`
50
+ `+C.comment:S.comment=C.comment);let e=new t.Pair(S);l.options.keepSourceTokens&&(e.srcToken=n),p.items.push(e)}}return h&&h<m&&d(h,`IMPOSSIBLE`,`Map comment with trailing content`),p.range=[u.offset,m,h??m],p}e.resolveBlockMap=c})),Do=n((e=>{var t=Q(),n=So(),r=wo();function i({composeNode:e,composeEmptyNode:i},a,o,s,c){let l=new(c?.nodeClass??t.YAMLSeq)(a.schema);a.atRoot&&=!1,a.atKey&&=!1;let u=o.offset,d=null;for(let{start:t,value:c}of o.items){let f=n.resolveProps(t,{indicator:`seq-item-ind`,next:c,offset:u,onError:s,parentIndent:o.indent,startOnNewline:!0});if(!f.found)if(f.anchor||f.tag||c)c?.type===`block-seq`?s(f.end,`BAD_INDENT`,`All sequence items must start at the same column`):s(u,`MISSING_CHAR`,`Sequence item without - indicator`);else{d=f.end,f.comment&&(l.comment=f.comment);continue}let p=c?e(a,c,f,s):i(a,f.end,t,null,f,s);a.schema.compat&&r.flowIndentCheck(o.indent,c,s),u=p.range[2],l.items.push(p)}return l.range=[o.offset,u,d??u],l}e.resolveBlockSeq=i})),Oo=n((e=>{function t(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}e.resolveEnd=t})),ko=n((e=>{var t=K(),n=Y(),r=X(),i=Q(),a=Oo(),o=So(),s=Co(),c=To();let l=`Block collections are not allowed within flow collections`,u=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function d({composeNode:e,composeEmptyNode:d},f,p,m,h){let g=p.start.source===`{`,_=g?`flow map`:`flow sequence`,v=new(h?.nodeClass??(g?r.YAMLMap:i.YAMLSeq))(f.schema);v.flow=!0;let y=f.atRoot;y&&(f.atRoot=!1),f.atKey&&=!1;let b=p.offset+p.start.source.length;for(let i=0;i<p.items.length;++i){let a=p.items[i],{start:h,key:y,sep:x,value:S}=a,C=o.resolveProps(h,{flow:_,indicator:`explicit-key-ind`,next:y??x?.[0],offset:b,onError:m,parentIndent:p.indent,startOnNewline:!1});if(!C.found){if(!C.anchor&&!C.tag&&!x&&!S){i===0&&C.comma?m(C.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${_}`):i<p.items.length-1&&m(C.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${_}`),C.comment&&(v.comment?v.comment+=`
78
51
  `+C.comment:v.comment=C.comment),b=C.end;continue}!g&&f.options.strict&&s.containsNewline(y)&&m(y,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(i===0)C.comma&&m(C.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${_}`);else if(C.comma||m(C.start,`MISSING_CHAR`,`Missing , between ${_} items`),C.comment){let e=``;loop:for(let t of h)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let n=v.items[v.items.length-1];t.isPair(n)&&(n=n.value??n.key),n.comment?n.comment+=`
79
52
  `+e:n.comment=e,C.comment=C.comment.substring(e.length+1)}}if(!g&&!x&&!C.found){let t=S?e(f,S,C,m):d(f,C.end,x,null,C,m);v.items.push(t),b=t.range[2],u(S)&&m(t.range,`BLOCK_IN_FLOW`,l)}else{f.atKey=!0;let t=C.end,i=y?e(f,y,C,m):d(f,t,h,null,C,m);u(y)&&m(i.range,`BLOCK_IN_FLOW`,l),f.atKey=!1;let s=o.resolveProps(x??[],{flow:_,indicator:`map-value-ind`,next:S,offset:i.range[2],onError:m,parentIndent:p.indent,startOnNewline:!1});if(s.found){if(!g&&!C.found&&f.options.strict){if(x)for(let e of x){if(e===s.found)break;if(e.type===`newline`){m(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}C.start<s.found.offset-1024&&m(s.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else S&&(`source`in S&&S.source?.[0]===`:`?m(S,`MISSING_CHAR`,`Missing space after : in ${_}`):m(s.start,`MISSING_CHAR`,`Missing , or : between ${_} items`));let w=S?e(f,S,s,m):s.found?d(f,s.end,x,null,s,m):null;w?u(S)&&m(w.range,`BLOCK_IN_FLOW`,l):s.comment&&(i.comment?i.comment+=`
80
53
  `+s.comment:i.comment=s.comment);let T=new n.Pair(i,w);if(f.options.keepSourceTokens&&(T.srcToken=a),g){let e=v;c.mapIncludes(f,e.items,i)&&m(t,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(T)}else{let e=new r.YAMLMap(f.schema);e.flow=!0,e.items.push(T);let t=(w??i).range;e.range=[i.range[0],t[1],t[2]],v.items.push(e)}b=w?w.range[2]:s.end}}let x=g?`}`:`]`,[S,...C]=p.end,w=b;if(S?.source===x)w=S.offset+S.source.length;else{let e=_[0].toUpperCase()+_.substring(1),t=y?`${e} must end with a ${x}`:`${e} in block collection must be sufficiently indented and end with a ${x}`;m(b,y?`MISSING_CHAR`:`BAD_INDENT`,t),S&&S.source.length!==1&&C.unshift(S)}if(C.length>0){let e=a.resolveEnd(C,w,f.options.strict,m);e.comment&&(v.comment?v.comment+=`
81
- `+e.comment:v.comment=e.comment),v.range=[p.offset,w,e.offset]}else v.range=[p.offset,w,w];return v}e.resolveFlowCollection=d})),Pa=n((e=>{var t=G(),n=q(),r=Y(),i=Z(),a=Aa(),o=ja(),s=Na();function c(e,t,n,r,i,c){let l=n.type===`block-map`?a.resolveBlockMap(e,t,n,r,c):n.type===`block-seq`?o.resolveBlockSeq(e,t,n,r,c):s.resolveFlowCollection(e,t,n,r,c),u=l.constructor;return i===`!`||i===u.tagName?(l.tag=u.tagName,l):(i&&(l.tag=i),l)}function l(e,a,o,s,l){let u=s.tag,d=u?a.directives.tagName(u.source,e=>l(u,`TAG_RESOLVE_FAILED`,e)):null;if(o.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=s,n=e&&u?e.offset>u.offset?e:u:e??u;n&&(!t||t.offset<n.offset)&&l(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let f=o.type===`block-map`?`map`:o.type===`block-seq`?`seq`:o.start.source===`{`?`map`:`seq`;if(!u||!d||d===`!`||d===r.YAMLMap.tagName&&f===`map`||d===i.YAMLSeq.tagName&&f===`seq`)return c(e,a,o,l,d);let p=a.schema.tags.find(e=>e.tag===d&&e.collection===f);if(!p){let t=a.schema.knownTags[d];if(t?.collection===f)a.schema.tags.push(Object.assign({},t,{default:!1})),p=t;else return t?l(u,`BAD_COLLECTION_TYPE`,`${t.tag} used for ${f} collection, but expects ${t.collection??`scalar`}`,!0):l(u,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${d}`,!0),c(e,a,o,l,d)}let m=c(e,a,o,l,d,p),h=p.resolve?.(m,e=>l(u,`TAG_RESOLVE_FAILED`,e),a.options)??m,g=t.isNode(h)?h:new n.Scalar(h);return g.range=m.range,g.tag=d,p?.format&&(g.format=p.format),g}e.composeCollection=l})),Fa=n((e=>{var t=q();function n(e,n,a){let o=n.offset,s=r(n,e.options.strict,a);if(!s)return{value:``,type:null,comment:``,range:[o,o,o]};let c=s.mode===`>`?t.Scalar.BLOCK_FOLDED:t.Scalar.BLOCK_LITERAL,l=n.source?i(n.source):[],u=l.length;for(let e=l.length-1;e>=0;--e){let t=l[e][1];if(t===``||t===`\r`)u=e;else break}if(u===0){let e=s.chomp===`+`&&l.length>0?`
54
+ `+e.comment:v.comment=e.comment),v.range=[p.offset,w,e.offset]}else v.range=[p.offset,w,w];return v}e.resolveFlowCollection=d})),Ao=n((e=>{var t=K(),n=J(),r=X(),i=Q(),a=Eo(),o=Do(),s=ko();function c(e,t,n,r,i,c){let l=n.type===`block-map`?a.resolveBlockMap(e,t,n,r,c):n.type===`block-seq`?o.resolveBlockSeq(e,t,n,r,c):s.resolveFlowCollection(e,t,n,r,c),u=l.constructor;return i===`!`||i===u.tagName?(l.tag=u.tagName,l):(i&&(l.tag=i),l)}function l(e,a,o,s,l){let u=s.tag,d=u?a.directives.tagName(u.source,e=>l(u,`TAG_RESOLVE_FAILED`,e)):null;if(o.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=s,n=e&&u?e.offset>u.offset?e:u:e??u;n&&(!t||t.offset<n.offset)&&l(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let f=o.type===`block-map`?`map`:o.type===`block-seq`?`seq`:o.start.source===`{`?`map`:`seq`;if(!u||!d||d===`!`||d===r.YAMLMap.tagName&&f===`map`||d===i.YAMLSeq.tagName&&f===`seq`)return c(e,a,o,l,d);let p=a.schema.tags.find(e=>e.tag===d&&e.collection===f);if(!p){let t=a.schema.knownTags[d];if(t?.collection===f)a.schema.tags.push(Object.assign({},t,{default:!1})),p=t;else return t?l(u,`BAD_COLLECTION_TYPE`,`${t.tag} used for ${f} collection, but expects ${t.collection??`scalar`}`,!0):l(u,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${d}`,!0),c(e,a,o,l,d)}let m=c(e,a,o,l,d,p),h=p.resolve?.(m,e=>l(u,`TAG_RESOLVE_FAILED`,e),a.options)??m,g=t.isNode(h)?h:new n.Scalar(h);return g.range=m.range,g.tag=d,p?.format&&(g.format=p.format),g}e.composeCollection=l})),jo=n((e=>{var t=J();function n(e,n,a){let o=n.offset,s=r(n,e.options.strict,a);if(!s)return{value:``,type:null,comment:``,range:[o,o,o]};let c=s.mode===`>`?t.Scalar.BLOCK_FOLDED:t.Scalar.BLOCK_LITERAL,l=n.source?i(n.source):[],u=l.length;for(let e=l.length-1;e>=0;--e){let t=l[e][1];if(t===``||t===`\r`)u=e;else break}if(u===0){let e=s.chomp===`+`&&l.length>0?`
82
55
  `.repeat(Math.max(1,l.length-1)):``,t=o+s.length;return n.source&&(t+=n.source.length),{value:e,type:c,comment:s.comment,range:[o,t,t]}}let d=n.indent+s.indent,f=n.offset+s.length,p=0;for(let t=0;t<u;++t){let[n,r]=l[t];if(r===``||r===`\r`)s.indent===0&&n.length>d&&(d=n.length);else{n.length<d&&a(f+n.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),s.indent===0&&(d=n.length),p=t,d===0&&!e.atRoot&&a(f,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}f+=n.length+r.length+1}for(let e=l.length-1;e>=u;--e)l[e][0].length>d&&(u=e+1);let m=``,h=``,g=!1;for(let e=0;e<p;++e)m+=l[e][0].slice(d)+`
83
56
  `;for(let e=p;e<u;++e){let[n,r]=l[e];f+=n.length+r.length+1;let i=r[r.length-1]===`\r`;if(i&&(r=r.slice(0,-1)),r&&n.length<d){let e=`Block scalar lines must not be less indented than their ${s.indent?`explicit indentation indicator`:`first line`}`;a(f-r.length-(i?2:1),`BAD_INDENT`,e),n=``}c===t.Scalar.BLOCK_LITERAL?(m+=h+n.slice(d)+r,h=`
84
57
  `):n.length>d||r[0]===` `?(h===` `?h=`
@@ -93,7 +66,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
93
66
  `+l[e][0].slice(d);m[m.length-1]!==`
94
67
  `&&(m+=`
95
68
  `);break;default:m+=`
96
- `}let _=o+s.length+n.source.length;return{value:m,type:c,comment:s.comment,range:[o,_,_]}}function r({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function i(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}e.resolveBlockScalar=n})),Ia=n((e=>{var t=q(),n=Ma();function r(e,r,o){let{offset:c,type:l,source:u,end:d}=e,f,p,m=(e,t,n)=>o(c+e,t,n);switch(l){case`scalar`:f=t.Scalar.PLAIN,p=i(u,m);break;case`single-quoted-scalar`:f=t.Scalar.QUOTE_SINGLE,p=a(u,m);break;case`double-quoted-scalar`:f=t.Scalar.QUOTE_DOUBLE,p=s(u,m);break;default:return o(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${l}`),{value:``,type:null,comment:``,range:[c,c+u.length,c+u.length]}}let h=c+u.length,g=n.resolveEnd(d,h,r,o);return{value:p,type:f,comment:g.comment,range:[c,h,g.offset]}}function i(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),o(e)}function a(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),o(e.slice(1,-1)).replace(/''/g,`'`)}function o(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
69
+ `}let _=o+s.length+n.source.length;return{value:m,type:c,comment:s.comment,range:[o,_,_]}}function r({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function i(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}e.resolveBlockScalar=n})),Mo=n((e=>{var t=J(),n=Oo();function r(e,r,o){let{offset:c,type:l,source:u,end:d}=e,f,p,m=(e,t,n)=>o(c+e,t,n);switch(l){case`scalar`:f=t.Scalar.PLAIN,p=i(u,m);break;case`single-quoted-scalar`:f=t.Scalar.QUOTE_SINGLE,p=a(u,m);break;case`double-quoted-scalar`:f=t.Scalar.QUOTE_DOUBLE,p=s(u,m);break;default:return o(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${l}`),{value:``,type:null,comment:``,range:[c,c+u.length,c+u.length]}}let h=c+u.length,g=n.resolveEnd(d,h,r,o);return{value:p,type:f,comment:g.comment,range:[c,h,g.offset]}}function i(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),o(e)}function a(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),o(e.slice(1,-1)).replace(/''/g,`'`)}function o(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
97
70
  `,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
98
71
  `,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
99
72
  `?i+=a:a=`
@@ -108,10 +81,10 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
108
81
  `);)r===`
109
82
  `&&(n+=`
110
83
  `),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}let l={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
111
- `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function u(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}e.resolveFlowScalar=r})),La=n((e=>{var t=G(),n=q(),r=Fa(),i=Ia();function a(e,a,c,l){let{value:u,type:d,comment:f,range:p}=a.type===`block-scalar`?r.resolveBlockScalar(e,a,l):i.resolveFlowScalar(a,e.options.strict,l),m=c?e.directives.tagName(c.source,e=>l(c,`TAG_RESOLVE_FAILED`,e)):null,h;h=e.options.stringKeys&&e.atKey?e.schema[t.SCALAR]:m?o(e.schema,u,m,c,l):a.type===`scalar`?s(e,u,a,l):e.schema[t.SCALAR];let g;try{let r=h.resolve(u,e=>l(c??a,`TAG_RESOLVE_FAILED`,e),e.options);g=t.isScalar(r)?r:new n.Scalar(r)}catch(e){let t=e instanceof Error?e.message:String(e);l(c??a,`TAG_RESOLVE_FAILED`,t),g=new n.Scalar(u)}return g.range=p,g.source=u,d&&(g.type=d),m&&(g.tag=m),h.format&&(g.format=h.format),f&&(g.comment=f),g}function o(e,n,r,i,a){if(r===`!`)return e[t.SCALAR];let o=[];for(let t of e.tags)if(!t.collection&&t.tag===r)if(t.default&&t.test)o.push(t);else return t;for(let e of o)if(e.test?.test(n))return e;let s=e.knownTags[r];return s&&!s.collection?(e.tags.push(Object.assign({},s,{default:!1,test:void 0})),s):(a(i,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${r}`,r!==`tag:yaml.org,2002:str`),e[t.SCALAR])}function s({atKey:e,directives:n,schema:r},i,a,o){let s=r.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(i))||r[t.SCALAR];if(r.compat){let e=r.compat.find(e=>e.default&&e.test?.test(i))??r[t.SCALAR];s.tag!==e.tag&&o(a,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${n.tagString(s.tag)} or ${n.tagString(e.tag)}`,!0)}return s}e.composeScalar=a})),Ra=n((e=>{function t(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}e.emptyScalarPosition=t})),za=n((e=>{var t=qi(),n=G(),r=Pa(),i=La(),a=Ma(),o=Ra();let s={composeNode:c,composeEmptyNode:l};function c(e,t,a,o){let c=e.atKey,{spaceBefore:d,comment:f,anchor:p,tag:m}=a,h,g=!0;switch(t.type){case`alias`:h=u(e,t,o),(p||m)&&o(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:h=i.composeScalar(e,t,m,o),p&&(h.anchor=p.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{h=r.composeCollection(s,e,t,a,o),p&&(h.anchor=p.source.substring(1))}catch(e){o(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:o(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),g=!1}return h??=l(e,t.offset,void 0,null,a,o),p&&h.anchor===``&&o(p,`BAD_ALIAS`,`Anchor cannot be an empty string`),c&&e.options.stringKeys&&(!n.isScalar(h)||typeof h.value!=`string`||h.tag&&h.tag!==`tag:yaml.org,2002:str`)&&o(m??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),d&&(h.spaceBefore=!0),f&&(t.type===`scalar`&&t.source===``?h.comment=f:h.commentBefore=f),e.options.keepSourceTokens&&g&&(h.srcToken=t),h}function l(e,t,n,r,{spaceBefore:a,comment:s,anchor:c,tag:l,end:u},d){let f={type:`scalar`,offset:o.emptyScalarPosition(t,n,r),indent:-1,source:``},p=i.composeScalar(e,f,l,d);return c&&(p.anchor=c.source.substring(1),p.anchor===``&&d(c,`BAD_ALIAS`,`Anchor cannot be an empty string`)),a&&(p.spaceBefore=!0),s&&(p.comment=s,p.range[2]=u),p}function u({options:e},{offset:n,source:r,end:i},o){let s=new t.Alias(r.substring(1));s.source===``&&o(n,`BAD_ALIAS`,`Alias cannot be an empty string`),s.source.endsWith(`:`)&&o(n+r.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let c=n+r.length,l=a.resolveEnd(i,c,e.strict,o);return s.range=[n,c,l.offset],l.comment&&(s.comment=l.comment),s}e.composeEmptyNode=l,e.composeNode=c})),Ba=n((e=>{var t=wa(),n=za(),r=Ma(),i=Ea();function a(e,a,{offset:o,start:s,value:c,end:l},u){let d=Object.assign({_directives:a},e),f=new t.Document(void 0,d),p={atKey:!1,atRoot:!0,directives:f.directives,options:f.options,schema:f.schema},m=i.resolveProps(s,{indicator:`doc-start`,next:c??l?.[0],offset:o,onError:u,parentIndent:0,startOnNewline:!0});m.found&&(f.directives.docStart=!0,c&&(c.type===`block-map`||c.type===`block-seq`)&&!m.hasNewline&&u(m.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),f.contents=c?n.composeNode(p,c,m,u):n.composeEmptyNode(p,m.end,s,null,m,u);let h=f.contents.range[2],g=r.resolveEnd(l,h,!1,u);return g.comment&&(f.comment=g.comment),f.range=[o,h,g.offset],f}e.composeDoc=a})),Va=n((t=>{var n=e(`process`),r=Ui(),i=wa(),a=Ta(),o=G(),s=Ba(),c=Ma();function l(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function u(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
84
+ `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function u(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}e.resolveFlowScalar=r})),No=n((e=>{var t=K(),n=J(),r=jo(),i=Mo();function a(e,a,c,l){let{value:u,type:d,comment:f,range:p}=a.type===`block-scalar`?r.resolveBlockScalar(e,a,l):i.resolveFlowScalar(a,e.options.strict,l),m=c?e.directives.tagName(c.source,e=>l(c,`TAG_RESOLVE_FAILED`,e)):null,h;h=e.options.stringKeys&&e.atKey?e.schema[t.SCALAR]:m?o(e.schema,u,m,c,l):a.type===`scalar`?s(e,u,a,l):e.schema[t.SCALAR];let g;try{let r=h.resolve(u,e=>l(c??a,`TAG_RESOLVE_FAILED`,e),e.options);g=t.isScalar(r)?r:new n.Scalar(r)}catch(e){let t=e instanceof Error?e.message:String(e);l(c??a,`TAG_RESOLVE_FAILED`,t),g=new n.Scalar(u)}return g.range=p,g.source=u,d&&(g.type=d),m&&(g.tag=m),h.format&&(g.format=h.format),f&&(g.comment=f),g}function o(e,n,r,i,a){if(r===`!`)return e[t.SCALAR];let o=[];for(let t of e.tags)if(!t.collection&&t.tag===r)if(t.default&&t.test)o.push(t);else return t;for(let e of o)if(e.test?.test(n))return e;let s=e.knownTags[r];return s&&!s.collection?(e.tags.push(Object.assign({},s,{default:!1,test:void 0})),s):(a(i,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${r}`,r!==`tag:yaml.org,2002:str`),e[t.SCALAR])}function s({atKey:e,directives:n,schema:r},i,a,o){let s=r.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(i))||r[t.SCALAR];if(r.compat){let e=r.compat.find(e=>e.default&&e.test?.test(i))??r[t.SCALAR];s.tag!==e.tag&&o(a,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${n.tagString(s.tag)} or ${n.tagString(e.tag)}`,!0)}return s}e.composeScalar=a})),Po=n((e=>{function t(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}e.emptyScalarPosition=t})),Fo=n((e=>{var t=Va(),n=K(),r=Ao(),i=No(),a=Oo(),o=Po();let s={composeNode:c,composeEmptyNode:l};function c(e,t,a,o){let c=e.atKey,{spaceBefore:d,comment:f,anchor:p,tag:m}=a,h,g=!0;switch(t.type){case`alias`:h=u(e,t,o),(p||m)&&o(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:h=i.composeScalar(e,t,m,o),p&&(h.anchor=p.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{h=r.composeCollection(s,e,t,a,o),p&&(h.anchor=p.source.substring(1))}catch(e){o(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:o(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),g=!1}return h??=l(e,t.offset,void 0,null,a,o),p&&h.anchor===``&&o(p,`BAD_ALIAS`,`Anchor cannot be an empty string`),c&&e.options.stringKeys&&(!n.isScalar(h)||typeof h.value!=`string`||h.tag&&h.tag!==`tag:yaml.org,2002:str`)&&o(m??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),d&&(h.spaceBefore=!0),f&&(t.type===`scalar`&&t.source===``?h.comment=f:h.commentBefore=f),e.options.keepSourceTokens&&g&&(h.srcToken=t),h}function l(e,t,n,r,{spaceBefore:a,comment:s,anchor:c,tag:l,end:u},d){let f={type:`scalar`,offset:o.emptyScalarPosition(t,n,r),indent:-1,source:``},p=i.composeScalar(e,f,l,d);return c&&(p.anchor=c.source.substring(1),p.anchor===``&&d(c,`BAD_ALIAS`,`Anchor cannot be an empty string`)),a&&(p.spaceBefore=!0),s&&(p.comment=s,p.range[2]=u),p}function u({options:e},{offset:n,source:r,end:i},o){let s=new t.Alias(r.substring(1));s.source===``&&o(n,`BAD_ALIAS`,`Alias cannot be an empty string`),s.source.endsWith(`:`)&&o(n+r.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let c=n+r.length,l=a.resolveEnd(i,c,e.strict,o);return s.range=[n,c,l.offset],l.comment&&(s.comment=l.comment),s}e.composeEmptyNode=l,e.composeNode=c})),Io=n((e=>{var t=bo(),n=Fo(),r=Oo(),i=So();function a(e,a,{offset:o,start:s,value:c,end:l},u){let d=Object.assign({_directives:a},e),f=new t.Document(void 0,d),p={atKey:!1,atRoot:!0,directives:f.directives,options:f.options,schema:f.schema},m=i.resolveProps(s,{indicator:`doc-start`,next:c??l?.[0],offset:o,onError:u,parentIndent:0,startOnNewline:!0});m.found&&(f.directives.docStart=!0,c&&(c.type===`block-map`||c.type===`block-seq`)&&!m.hasNewline&&u(m.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),f.contents=c?n.composeNode(p,c,m,u):n.composeEmptyNode(p,m.end,s,null,m,u);let h=f.contents.range[2],g=r.resolveEnd(l,h,!1,u);return g.comment&&(f.comment=g.comment),f.range=[o,h,g.offset],f}e.composeDoc=a})),Lo=n((t=>{var n=e(`process`),r=La(),i=bo(),a=xo(),o=K(),s=Io(),c=Oo();function l(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function u(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
112
85
 
113
86
  `:`
114
- `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}t.Composer=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=l(e);r?this.warnings.push(new a.YAMLWarning(i,t,n)):this.errors.push(new a.YAMLParseError(i,t,n))},this.directives=new r.Directives({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=u(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(o.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];o.isPair(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:u(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(n.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=l(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=s.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=c.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new i.Document(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}})),Ha=n((e=>{var t=Fa(),n=Ia(),r=Ta(),i=Qi();function a(e,i=!0,a){if(e){let o=(e,t,n)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(a)a(i,t,n);else throw new r.YAMLParseError([i,i+1],t,n)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return n.resolveFlowScalar(e,i,o);case`block-scalar`:return t.resolveBlockScalar({options:{strict:i}},e,o)}}return null}function o(e,t){let{implicitKey:n=!1,indent:r,inFlow:a=!1,offset:o=-1,type:s=`PLAIN`}=t,c=i.stringifyString({type:s,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:`newline`,offset:-1,indent:r,source:`
87
+ `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}t.Composer=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=l(e);r?this.warnings.push(new a.YAMLWarning(i,t,n)):this.errors.push(new a.YAMLParseError(i,t,n))},this.directives=new r.Directives({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=u(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(o.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];o.isPair(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:u(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(n.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=l(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=s.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=c.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new a.YAMLParseError(l(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new i.Document(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}})),Ro=n((e=>{var t=jo(),n=Mo(),r=xo(),i=Ka();function a(e,i=!0,a){if(e){let o=(e,t,n)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(a)a(i,t,n);else throw new r.YAMLParseError([i,i+1],t,n)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return n.resolveFlowScalar(e,i,o);case`block-scalar`:return t.resolveBlockScalar({options:{strict:i}},e,o)}}return null}function o(e,t){let{implicitKey:n=!1,indent:r,inFlow:a=!1,offset:o=-1,type:s=`PLAIN`}=t,c=i.stringifyString({type:s,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:`newline`,offset:-1,indent:r,source:`
115
88
  `}];switch(c[0]){case`|`:case`>`:{let e=c.indexOf(`
116
89
  `),t=c.substring(0,e),n=c.substring(e+1)+`
117
90
  `,i=[{type:`block-scalar-header`,offset:o,indent:r,source:t}];return l(i,u)||i.push({type:`newline`,offset:-1,indent:r,source:`
@@ -119,9 +92,9 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
119
92
  `),r=t.substring(0,n),i=t.substring(n+1)+`
120
93
  `;if(e.type===`block-scalar`){let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);t.source=r,e.source=i}else{let{offset:t}=e,n=`indent`in e?e.indent:-1,a=[{type:`block-scalar-header`,offset:t,indent:n,source:r}];l(a,`end`in e?e.end:void 0)||a.push({type:`newline`,offset:-1,indent:n,source:`
121
94
  `});for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:`block-scalar`,indent:n,props:a,source:i})}}function l(e,t){if(t)for(let n of t)switch(n.type){case`space`:case`comment`:e.push(n);break;case`newline`:return e.push(n),!0}return!1}function u(e,t,n){switch(e.type){case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:e.type=n,e.source=t;break;case`block-scalar`:{let r=e.props.slice(1),i=t.length;e.props[0].type===`block-scalar-header`&&(i-=e.props[0].source.length);for(let e of r)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:r});break}case`block-map`:case`block-seq`:{let r={type:`newline`,offset:e.offset+t.length,indent:e.indent,source:`
122
- `};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}e.createScalarToken=o,e.resolveAsScalar=a,e.setScalarValue=s})),Ua=n((e=>{let t=e=>`type`in e?n(e):r(e);function n(e){switch(e.type){case`block-scalar`:{let t=``;for(let r of e.props)t+=n(r);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=r(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=r(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=r(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function r({start:e,key:t,sep:r,value:i}){let a=``;for(let t of e)a+=t.source;if(t&&(a+=n(t)),r)for(let e of r)a+=e.source;return i&&(a+=n(i)),a}e.stringify=t})),Wa=n((e=>{let t=Symbol(`break visit`),n=Symbol(`skip children`),r=Symbol(`remove item`);function i(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),a(Object.freeze([]),e,t)}i.BREAK=t,i.SKIP=n,i.REMOVE=r,i.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},i.parentCollection=(e,t)=>{let n=i.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],a=n?.[r];if(a&&`items`in a)return a;throw Error(`Parent collection not found`)};function a(e,n,i){let o=i(n,e);if(typeof o==`symbol`)return o;for(let s of[`key`,`value`]){let c=n[s];if(c&&`items`in c){for(let n=0;n<c.items.length;++n){let o=a(Object.freeze(e.concat([[s,n]])),c.items[n],i);if(typeof o==`number`)n=o-1;else if(o===t)return t;else o===r&&(c.items.splice(n,1),--n)}typeof o==`function`&&s===`key`&&(o=o(n,e))}}return typeof o==`function`?o(n,e):o}e.visit=i})),Ga=n((e=>{var t=Ha(),n=Ua(),r=Wa();let i=e=>!!e&&`items`in e,a=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`);function o(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:return`<FLOW_END>`;case``:return`<SCALAR>`;default:return JSON.stringify(e)}}function s(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
95
+ `};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}e.createScalarToken=o,e.resolveAsScalar=a,e.setScalarValue=s})),zo=n((e=>{let t=e=>`type`in e?n(e):r(e);function n(e){switch(e.type){case`block-scalar`:{let t=``;for(let r of e.props)t+=n(r);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=r(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=r(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=r(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function r({start:e,key:t,sep:r,value:i}){let a=``;for(let t of e)a+=t.source;if(t&&(a+=n(t)),r)for(let e of r)a+=e.source;return i&&(a+=n(i)),a}e.stringify=t})),Bo=n((e=>{let t=Symbol(`break visit`),n=Symbol(`skip children`),r=Symbol(`remove item`);function i(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),a(Object.freeze([]),e,t)}i.BREAK=t,i.SKIP=n,i.REMOVE=r,i.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},i.parentCollection=(e,t)=>{let n=i.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],a=n?.[r];if(a&&`items`in a)return a;throw Error(`Parent collection not found`)};function a(e,n,i){let o=i(n,e);if(typeof o==`symbol`)return o;for(let s of[`key`,`value`]){let c=n[s];if(c&&`items`in c){for(let n=0;n<c.items.length;++n){let o=a(Object.freeze(e.concat([[s,n]])),c.items[n],i);if(typeof o==`number`)n=o-1;else if(o===t)return t;else o===r&&(c.items.splice(n,1),--n)}typeof o==`function`&&s===`key`&&(o=o(n,e))}}return typeof o==`function`?o(n,e):o}e.visit=i})),Vo=n((e=>{var t=Ro(),n=zo(),r=Bo();let i=e=>!!e&&`items`in e,a=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`);function o(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:return`<FLOW_END>`;case``:return`<SCALAR>`;default:return JSON.stringify(e)}}function s(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
123
96
  `:case`\r
124
- `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}e.createScalarToken=t.createScalarToken,e.resolveAsScalar=t.resolveAsScalar,e.setScalarValue=t.setScalarValue,e.stringify=n.stringify,e.visit=r.visit,e.BOM=``,e.DOCUMENT=``,e.FLOW_END=``,e.SCALAR=``,e.isCollection=i,e.isScalar=a,e.prettyToken=o,e.tokenType=s})),Ka=n((e=>{var t=Ga();function n(e){switch(e){case void 0:case` `:case`
97
+ `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}e.createScalarToken=t.createScalarToken,e.resolveAsScalar=t.resolveAsScalar,e.setScalarValue=t.setScalarValue,e.stringify=n.stringify,e.visit=r.visit,e.BOM=``,e.DOCUMENT=``,e.FLOW_END=``,e.SCALAR=``,e.isCollection=i,e.isScalar=a,e.prettyToken=o,e.tokenType=s})),Ho=n((e=>{var t=Vo();function n(e){switch(e){case void 0:case` `:case`
125
98
  `:case`\r`:case` `:return!0;default:return!1}}let r=new Set(`0123456789ABCDEFabcdef`),i=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),a=new Set(`,[]{}`),o=new Set(` ,[]{}
126
99
  \r `),s=e=>!e||o.has(e);e.Lexer=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
127
100
  `?!0:t===`\r`?this.buffer[e+1]===`
@@ -140,9 +113,9 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
140
113
  `,t=this.buffer[i+1]):r=i),t===`#`||e&&a.has(t))break;if(o===`
141
114
  `){let e=this.continueScalar(i+1);if(e===-1)break;i=Math.max(i,e-2)}}else{if(e&&a.has(o))break;r=i}return!o&&!this.atEnd?this.setNext(`plain-scalar`):(yield t.SCALAR,yield*this.pushToIndex(r+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(s),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,r=this.charAt(1);if(n(r)||t&&a.has(r)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!n(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(i.has(t))t=this.buffer[++e];else if(t===`%`&&r.has(this.buffer[e+1])&&r.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
142
115
  `?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
143
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),qa=n((e=>{e.LineCounter=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}}})),Ja=n((t=>{var n=e(`process`),r=Ga(),i=Ka();function a(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function o(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function s(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function c(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function l(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function u(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function d(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!a(t.start,`explicit-key-ind`)&&!a(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,s(t.value)?t.value.end?u(t.value.end,t.sep):t.value.end=t.sep:u(t.start,t.sep),delete t.sep)}t.Parser=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new i.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,n.env.LOG_TOKENS&&console.log(`|`,r.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=r.tokenType(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&d(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&o(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:o(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=l(c(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
116
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),Uo=n((e=>{e.LineCounter=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}}})),Wo=n((t=>{var n=e(`process`),r=Vo(),i=Ho();function a(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function o(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function s(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function c(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function l(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function u(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function d(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!a(t.start,`explicit-key-ind`)&&!a(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,s(t.value)?t.value.end?u(t.value.end,t.sep):t.value.end=t.sep:u(t.start,t.sep),delete t.sep)}t.Parser=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new i.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,n.env.LOG_TOKENS&&console.log(`|`,r.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=r.tokenType(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&d(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&o(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:o(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=l(c(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
144
117
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
145
118
  `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){u(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(a(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=l(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(a(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(s(t.key)&&!a(t.sep,`newline`)){let e=l(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):a(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!a(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){u(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||a(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=l(c(t));d(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
146
119
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
147
- `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=l(c(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=l(c(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),Ya=n((e=>{var t=Va(),n=wa(),r=Ta(),i=ta(),a=G(),o=qa(),s=Ja();function c(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new o.LineCounter||null,prettyErrors:t}}function l(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=Array.from(l.compose(o.parse(e)));if(a&&i)for(let t of u)t.errors.forEach(r.prettifyError(e,i)),t.warnings.forEach(r.prettifyError(e,i));return u.length>0?u:Object.assign([],{empty:!0},l.streamInfo())}function u(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=null;for(let t of l.compose(o.parse(e),!0,e.length))if(!u)u=t;else if(u.options.logLevel!==`silent`){u.errors.push(new r.YAMLParseError(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return a&&i&&(u.errors.forEach(r.prettifyError(e,i)),u.warnings.forEach(r.prettifyError(e,i))),u}function d(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let a=u(e,n);if(!a)return null;if(a.warnings.forEach(e=>i.warn(a.options.logLevel,e)),a.errors.length>0){if(a.options.logLevel!==`silent`)throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:r},n))}function f(e,t,r){let i=null;if(typeof t==`function`||Array.isArray(t)?i=t:r===void 0&&t&&(r=t),typeof r==`string`&&(r=r.length),typeof r==`number`){let e=Math.round(r);r=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=r??t??{};if(!e)return}return a.isDocument(e)&&!i?e.toString(r):new n.Document(e,i,r).toString(r)}e.parse=d,e.parseAllDocuments=l,e.parseDocument=u,e.stringify=f})),Xa=n((e=>{var t=Va(),n=wa(),r=Sa(),i=Ta(),a=qi(),o=G(),s=J(),c=q(),l=Y(),u=Z();Ga();var d=Ka(),f=qa(),p=Ja(),m=Ya(),h=Hi();e.Composer=t.Composer,e.Document=n.Document,e.Schema=r.Schema,e.YAMLError=i.YAMLError,e.YAMLParseError=i.YAMLParseError,e.YAMLWarning=i.YAMLWarning,e.Alias=a.Alias,e.isAlias=o.isAlias,e.isCollection=o.isCollection,e.isDocument=o.isDocument,e.isMap=o.isMap,e.isNode=o.isNode,e.isPair=o.isPair,e.isScalar=o.isScalar,e.isSeq=o.isSeq,e.Pair=s.Pair,e.Scalar=c.Scalar,e.YAMLMap=l.YAMLMap,e.YAMLSeq=u.YAMLSeq,e.Lexer=d.Lexer,e.LineCounter=f.LineCounter,e.Parser=p.Parser,e.parse=m.parse,e.parseAllDocuments=m.parseAllDocuments,e.parseDocument=m.parseDocument,e.stringify=m.stringify,e.visit=h.visit,e.visitAsync=h.visitAsync}))();function Za(e){return e instanceof Error&&`code`in e&&typeof e.code==`string`}function Qa(e){return Za(e)&&e.code===`ENOENT`}function $a(e){return Za(e)&&e.code===`ENOTDIR`}function eo(e){return e instanceof Error?e.message:String(e)}async function to(e){try{return(await M.promises.readdir(e)).filter(e=>e.endsWith(`.yaml`)).sort().map(t=>k.join(e,t))}catch(t){if(Qa(t))return[];throw $a(t)?Error(`Invalid model registry directory ${e}: expected a directory.`,{cause:t}):t}}var no=class{seedPaths;constructor(e){this.seedPaths=Array.isArray(e)?e:[e]}async fetch(){for(let e of this.seedPaths){let t=await ro(e);if(t!==void 0)try{return Tt.parse((0,Xa.parse)(t))}catch(t){throw Error(`Invalid bundled model registry seed at ${e}: ${eo(t)}`,{cause:t})}}throw Error(`Bundled model registry seed not found. Tried:\n${this.seedPaths.map(e=>`- ${e}`).join(`
148
- `)}`)}};async function ro(e){try{return await M.promises.readFile(e,`utf-8`)}catch(t){if(io(t))return;throw Error(`Failed to read bundled model registry seed at ${e}: ${eo(t)}`,{cause:t})}}function io(e){return Qa(e)||$a(e)}var ao=class{url;timeoutMs;constructor(e,t=1e4){let n=e.trim();if(!n)throw Error(`CdnRegistryFetcher requires a non-empty registry URL`);let r;try{r=new URL(n)}catch(e){throw Error(`CdnRegistryFetcher requires a valid registry URL: ${n}`,{cause:e})}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`CdnRegistryFetcher requires an HTTP(S) registry URL: ${n}`);if(!Number.isFinite(t)||t<=0)throw Error(`CdnRegistryFetcher requires a positive finite timeoutMs, got ${t}`);this.url=r.toString(),this.timeoutMs=t}async fetch(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.timeoutMs);try{let t=await fetch(this.url,{signal:e.signal});if(!t.ok)throw Error(`Failed to fetch model registry: ${t.status} ${t.statusText}`);let n=(0,Xa.parse)(await t.text());return Tt.parse(n)}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`Failed to fetch model registry: timed out after ${this.timeoutMs}ms`,{cause:e}):e}finally{clearTimeout(t)}}},oo=class{cachePath;trackFetchedAt;constructor(e,t={}){this.cachePath=e,this.trackFetchedAt=t.trackFetchedAt??!1}async get(){try{let e=await M.promises.readFile(this.cachePath,`utf-8`),t=so(JSON.parse(e)),n=Tt.safeParse(t);return n.success?n.data:null}catch{return null}}async set(e){try{await M.promises.mkdir(k.dirname(this.cachePath),{recursive:!0});let t=this.trackFetchedAt?{fetchedAt:new Date().toISOString(),registry:e}:e;await M.promises.writeFile(this.cachePath,JSON.stringify(t,null,2),`utf-8`)}catch(e){console.warn(`[FileRegistryCache] Failed to write cache:`,e)}}};function so(e){return rt(e)&&`registry`in e&&`fetchedAt`in e?e.registry:e}const co=D.object({name:D.string().optional(),models:D.array(ve)}),lo=D.object({name:D.string().optional(),models:D.record(D.string(),Dt)}),uo=D.object({$schema:D.literal(`makaio/model-registry/v2`).optional(),updatedAt:D.string().datetime().optional(),labs:D.record(D.string(),co).optional(),providers:D.record(D.string(),lo).optional()}),fo=D.object({name:D.string().optional(),models:D.array(D.record(D.string(),D.unknown()))}),po=D.object({name:D.string().optional(),models:D.record(D.string(),Dt)});var mo=class{userModelsDir;constructor(e){this.userModelsDir=e}async fetch(){let e=ho();return await Promise.all([this.loadLabDirectory(k.join(this.userModelsDir,`labs`),e),this.loadProviderDirectory(k.join(this.userModelsDir,`providers`),e)]),await this.loadFlatFiles(e),e}async loadLabDirectory(e,t){let n=await to(e),r=await Promise.all(n.map(async e=>({labId:k.basename(e,`.yaml`),lab:await Co(e,k.basename(e,`.yaml`))})));for(let{labId:e,lab:n}of r)Oo(t,e,n)}async loadProviderDirectory(e,t){let n=await to(e),r=await Promise.all(n.map(async e=>({providerId:k.basename(e,`.yaml`),provider:await wo(e)})));for(let{providerId:e,provider:n}of r)ko(t,e,n)}async loadFlatFiles(e){let t=await to(this.userModelsDir);for(let n of t){let t=k.basename(n,`.yaml`),r=(0,Xa.parse)(await M.promises.readFile(n,`utf-8`));if(!rt(r))throw Error(`Invalid model registry overlay YAML in ${n}: expected a YAML object.`);if(`labs`in r||`providers`in r){Do(e,uo.parse(r));continue}if(Array.isArray(r.models)){Oo(e,t,To(r,t));continue}if(rt(r.models)){ko(e,t,Eo(r));continue}throw Error(`Unrecognized model registry overlay shape in ${n}: expected labs, providers, or models.`)}}};function ho(){return{labs:{},providers:{}}}function go(e,t){return{$schema:`makaio/model-registry/v2`,updatedAt:t.updatedAt??e.updatedAt,labs:Ao(_o(e.labs,t.labs)),providers:jo(bo(e.providers,t.providers))}}function _o(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:{...t,...r,models:vo(t.models,r.models)}}return n}function vo(e,t){let n=[...e],r=new Map(e.map((e,t)=>[e.name,t]));for(let e of t){let t=r.get(e.name);if(t===void 0){r.set(e.name,n.length),n.push(e);continue}n[t]=yo(n[t],e)}return n}function yo(e,t){let n={...e,...t},r=Ot(e.metadata,t.metadata);return r===void 0?delete n.metadata:n.metadata=r,n}function bo(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:{...t,...r,models:xo(t.models,r.models)}}return n}function xo(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:So(t,r)}return n}function So(e,t){let n={...e,...t},r=Ot(e.metadata,t.metadata);return r===void 0?delete n.metadata:n.metadata=r,n}async function Co(e,t){return To((0,Xa.parse)(await M.promises.readFile(e,`utf-8`)),t)}async function wo(e){return Eo((0,Xa.parse)(await M.promises.readFile(e,`utf-8`)))}function To(e,t){let n=fo.parse(e);return{...n.name===void 0?{}:{name:n.name},models:n.models.map(e=>ve.parse({...e,labId:t}))}}function Eo(e){let t=po.parse(e);return{...t.name===void 0?{}:{name:t.name},models:t.models}}function Do(e,t){e.updatedAt=t.updatedAt??e.updatedAt,t.labs!==void 0&&(e.labs=_o(e.labs,t.labs)),t.providers!==void 0&&(e.providers=bo(e.providers,t.providers))}function Oo(e,t,n){e.labs=_o(e.labs,{[t]:n})}function ko(e,t,n){e.providers=bo(e.providers,{[t]:n})}function Ao(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,name:t.name??e}]))}function jo(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,name:t.name??e}]))}var Mo=class{userModelsDir;baseFetcher;constructor(e,t){this.userModelsDir=e,this.baseFetcher=t}async fetch(){let e=await this.baseFetcher.fetch();if(await this.validateDirectory(this.userModelsDir),await this.validateDirectory(`${this.userModelsDir}/labs`),await this.validateDirectory(`${this.userModelsDir}/providers`),!await this.hasAnyOverlayFiles())return e;let t=go(e,await new mo(this.userModelsDir).fetch());return Tt.parse(t)}async validateDirectory(e){await to(e)}async hasAnyOverlayFiles(){let e,t;try{let n=await O.readdir(this.userModelsDir,{withFileTypes:!0});e=n.map(e=>String(e.name)),t=new Map(n.map(e=>[String(e.name),[e.isFile(),e.isDirectory()]]))}catch(e){if(Qa(e))return!1;throw e}return e.some(e=>{let[n,r]=t.get(e)??[!1,!1];return n&&e.endsWith(`.yaml`)||r&&(e===`labs`||e===`providers`)})}},No=class extends Error{constructor(e){super(`[boot] Could not find workspace root (no package.json with 'workspaces' field) starting from: ${e}`),this.name=`WorkspaceRootNotFoundError`}};function Po(e){return Fo(e).root}function Fo(e){let t=k.resolve(e);for(;;){let n=k.join(t,`package.json`);if(M.existsSync(n))try{let e=M.readFileSync(n,`utf-8`),r=JSON.parse(e);if(typeof r==`object`&&r&&`workspaces`in r)return{root:t,packageJsonPath:n,workspaces:sn(r)}}catch{}let r=k.dirname(t);if(r===t)throw new No(e);t=r}}const Io=`MAKAIO_MODEL_REGISTRY_SOURCES`;function Lo(e){let t=k.join(e.makaioHome,`models`),n=k.join(e.makaioHome,`cache`,`model-registry`);return new Mo(t,new Ct(Ro(e).map(e=>Vo(e,n))))}function Ro(e){let t=Bo(e.srcDir,e.cwd),n=t.slice(0,-1),r=t.slice(n.length);return Wo([...zo(e.env??process.env),...e.seedPaths??[],...n,e.cdnRegistryUrl??`https://makaio-ai.github.io/makaio-framework/model-registry.yaml`,...e.fallbackSeedPaths??[],...r])}function zo(e){let t=e[Io]?.trim();if(!t)return[];let n;try{n=t.startsWith(`[`)?JSON.parse(t):t}catch(e){throw Error(`[boot] ${Io} must be a JSON string array or a single source string`,{cause:e})}let r=Array.isArray(n)?n:[n];if(!r.every(e=>typeof e==`string`))throw Error(`[boot] ${Io} entries must be strings`);return r.map(e=>e.trim()).filter(e=>e.length>0)}function Bo(e,t=process.cwd()){let n=k.resolve(e,`static/model-registry.yaml`),r=k.resolve(t,`static/model-registry.yaml`);try{return Wo([r,k.resolve(Po(e),`static/model-registry.yaml`),n])}catch(e){if(e instanceof No)return Wo([r,n]);throw e}}function Vo(e,t){let n=Uo(e);return n?.protocol===`http:`||n?.protocol===`https:`?new St(new ao(n.href),new oo(k.join(t,`${Ko(n.href)}.json`),{trackFetchedAt:!0})):new no(Ho(e,n))}function Ho(e,t){if(t?.protocol===`file:`)return se(t);if(t!==void 0)throw Error(`[boot] Unsupported model registry source protocol "${t.protocol}" for ${e}`);return k.isAbsolute(e)?e:k.resolve(e)}function Uo(e){try{return new URL(e)}catch{return}}function Wo(e){let t=new Set,n=[];for(let r of e){let e=Go(r);t.has(e)||(t.add(e),n.push(r))}return n}function Go(e){let t=Uo(e);return t?.protocol===`file:`?`file:${k.resolve(se(t))}`:t===void 0?`file:${k.resolve(e)}`:`${t.protocol}//${t.host}${t.pathname}${t.search}`}function Ko(e){return j(`sha256`).update(e).digest(`hex`).slice(0,16)}async function qo(e){let t=k.resolve(e.frameworkPackagePath);await Jo(t);let n=k.join(e.makaioHome,`node_modules`,`@makaio`),r=k.join(n,`framework`);await O.mkdir(n,{recursive:!0}),!await Yo(r,t)&&(await O.rm(r,{recursive:!0,force:!0}),await O.symlink(t,r,process.platform===`win32`?`junction`:`dir`))}async function Jo(e){let t=k.join(e,`package.json`),n=await O.readFile(t,`utf-8`);if(JSON.parse(n).name!==`@makaio/framework`)throw Error(`Expected @makaio/framework package at ${e}`)}async function Yo(e,t){try{return(await O.lstat(e)).isSymbolicLink()?await O.realpath(e)===await O.realpath(t):!1}catch(e){if(Xo(e))return!1;throw e}}function Xo(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}function Zo(e,t){e.push(...Qo(t))}function Qo(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function $o(e,t=[]){let n=new Set([e]),r=new Set,i=new Map;for(let e of t)typeof e==`string`?n.add(e):(r.add(e.id),e.version!==void 0&&i.set(e.id,e.version));return{hosts:n,capabilities:r,...i.size>0?{capabilityVersions:i}:{}}}function es(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function ts(e){return yt(xt(ns(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function ns(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function rs(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function is(e,t){let n=rs(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function as(e){return e===!0||(is(e,`sessionOrchestrator`),rs(e,`sessionOrchestrator`).length===0)?Yt:Yt.filter(e=>e.name!==Bt.name)}function os(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&Zo(r,e.configure({bus:t,registerContributionProcessor:e=>{r.push(n.registerContributionProcessor(e))},forEachActiveExtension:e=>{n.forEachActiveExtension(e)}}))}}catch(e){let t=[];for(let e of[...r].reverse())try{e()}catch(e){t.push(e)}throw t.length>0?AggregateError([e,...t],`Extension boot contribution failed and rollback cleanup reported additional errors`,{cause:e}):e}return r}function ss(){let e=process.env.MAKAIO_SKIP_EXTENSIONS;if(!e)return new Set;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(t)}function cs(e,t){let n=t.endsWith(`/`)?t:`${t}/`,r=cn({root:e,rewriteRequestPath:e=>e.slice(n.length-1)});return e=>{e.use(`${t}/*`,r)}}function ls(e){return`/extensions/${e}/browser`}function us(e,t){return`extensions/${e}/browser/${fs(t)}`}function ds(e,t){return`/${us(e,t)}.js`}function fs(e){let t=e.replaceAll(A.win32.sep,A.posix.sep),n=A.posix.basename(t),r=A.posix.extname(n);return r?n.slice(0,-r.length):n}function ps(e,t,n={}){let{createMount:r=cs}=n,i=new Map(e.map(e=>[e.descriptor.name,e]));return t.map(e=>{let t=i.get(e.name);if(!t?.descriptor.entrypoints?.browser)return e;if(e.browser)return console.warn(`[extensions] ${e.name}: server entry already declares browser, skipping browser bridge`),e;if(e.http)return console.warn(`[extensions] ${e.name}: server entry already declares http, skipping browser bridge`),e;let n=t.descriptor.entrypoints.browser,a=S(`browser`,n),o=b(`browser`,n,t.extensionPath);if(!o)return console.warn(`[extensions] ${e.name}: browser entry has no resolvable candidate within extension directory, skipping bridge`),e;let s=k.dirname(o),c=ls(e.name),l=ds(e.name,a);return{...e,browser:{entrypoint:l},http:{prefix:c,mount:r(s,c)}}})}function ms(e,t={}){let{createMount:n=cs,frameworkVersion:r}=t,i=[],a=new Map;for(let t of e){let{descriptor:e,extensionPath:o}=t;if(r!==void 0&&!x(t,r)||e.execution===`detached`||e.entrypoints.server||!e.entrypoints.browser)continue;let s=e.entrypoints.browser,c=S(`browser`,s),l=b(`browser`,s,o);if(!l){console.warn(`[extensions] ${e.name}: browser entry has no resolvable candidate within extension directory, skipping synthesis`);continue}let u=k.dirname(l),d=ls(e.name),f=ds(e.name,c);i.push({...v(e),browser:{entrypoint:f},http:{prefix:d,mount:n(u,d)}}),e.config?.defaults&&a.set(e.name,e.config.defaults)}return{packages:i,configDefaults:a}}async function hs(){let e=k.dirname(se(import.meta.url)),t=k.resolve(e,`..`,`package.json`),n=await O.readFile(t,`utf-8`),r=JSON.parse(n);if(typeof r!=`object`||!r||!(`version`in r)||typeof r.version!=`string`)throw Error(`[boot] package.json at ${t} has no string 'version' field`);return r.version}async function gs(e){let t={packages:[],configDefaults:new Map},n=[],r=e.frameworkVersion??await hs();try{if(n=await e.extensionOptions.extensions.discover(),n=_s(n,e.skipExtensions),process.env.MAKAIO_DEBUG){console.info(`[boot] Discovered %d extension descriptor(s):`,n.length);for(let e of n)console.info(`[boot] - %s (%s)`,e.descriptor.displayName??e.descriptor.name,e.source)}}catch(e){console.warn(`[boot] Extension discovery failed, skipping:`,e instanceof Error?e.message:e)}let i=n.filter(e=>x(e,r));if(i.length>0)try{t=await T(i,{frameworkVersion:r})}catch(e){console.warn(`[boot] Extension loading failed, skipping:`,e instanceof Error?e.message:e)}let a={...e.createMount?{createMount:e.createMount}:{},frameworkVersion:r},o=ps(i,t.packages,a),s=ms(i,a),c=await E(i,[...o,...s.packages],{frameworkVersion:r});return{discovered:n,extensionLoadResult:t,browserOnlyResult:s,extensionsWithCli:c,allExtensionPackages:c.packages}}function _s(e,t){if(t.size===0)return e;let n=new Set(e.map(e=>e.descriptor.name)),r=[...t].filter(e=>!n.has(e));r.length&&console.warn(`[boot] MAKAIO_SKIP_EXTENSIONS: no matching extension(s): %s`,r.join(`, `));let i=new Set([...t].filter(e=>n.has(e))),a=e.filter(e=>!i.has(e.descriptor.name));return a.length<e.length&&console.info(`[boot] MAKAIO_SKIP_EXTENSIONS filtered %d extension(s): %s`,e.length-a.length,[...i].join(`, `)),a}async function vs(e,t){let n=new Set;for(let r of t){if(n.has(r.migrationSourceId))continue;n.add(r.migrationSourceId);let t=ys(r.migrationSourceId);process.env.MAKAIO_DEBUG===`true`&&console.info(`[boot] Running migrations for package: ${r.name}`),await or(e,rr({migrationsDir:r.migrationsPath,migrationSourceId:r.migrationSourceId}),t)}}function ys(e){return`__drizzle_migrations_${j(`sha256`).update(e).digest(`hex`).slice(0,16)}`}function bs(e,t){return new ut({signingKeyPair:e.signingKeyPair,identityId:e.machineId,getPeerSigningKey:t})}const xs=Ee.fact.$meta.namespace,Ss=Ee.fact.subject;function Cs(e,t){if(t.transport!==void 0||t.localOnly===!0)return!1;let n=`${t.namespace}.${t.subject}`,r=e.getContext().namespaceRegistry;return!r.isLocalSubject(n)&&!r.isCollectorOnlySubject(n)}function ws(e){return e.type===`event`?{type:`event`,namespace:e.namespace,subject:e.subject,payload:e.payload,messageId:e.messageId,...e.correlationId===void 0?{}:{correlationId:e.correlationId}}:{type:e.type,namespace:e.namespace,subject:e.subject,payload:e.payload,messageId:e.messageId,correlationId:e.correlationId??e.messageId}}async function Ts(e,t,n,r,i){let a=ws(i),o=_e({message:a,direction:`outbound`,observedAt:Date.now(),machineId:n,namespaceRegistry:t.getContext().namespaceRegistry,projectorRegistry:r.projectorRegistry});for(let t of o)await e.send({type:`event`,namespace:xs,subject:Ss,payload:t,messageId:`${a.messageId}:telemetry:${t.factId}`,correlationId:a.correlationId})}async function Es(e,t,n){let r=n.transport;await r.connect();let i;try{i=e.observeMessages(i=>{Cs(e,i)&&Ts(r,e,t,n,i).catch(e=>{console.error(`[upstream-telemetry] Failed to export subject telemetry fact`,e)})})}catch(e){throw await r.disconnect().catch(()=>void 0),e}return{shutdown:async()=>{i(),await r.disconnect()}}}function Ds(e,t){let n=e===`0.0.0.0`?`127.0.0.1`:e===`::`?`::1`:e;return`ws://${n.includes(`:`)&&!n.startsWith(`[`)?`[${n}]`:n}:${t}/bus`}async function Os(e,t,n,r){let o=r.makaioHome??g(),s=Tr(r,o),c=ss(),l=[];try{let u=new wr(new ur(o),o),d=await u.getConfig({mode:`local`}),f=await u.getMachineId();console.info(`[boot] Config resolved (mode=%s)`,d.mode);let p=he;if(p.registerNamespaces(Ce),p.registerNamespaces(we),p.registerNamespaces([mt,Ft,gt,vt,i]),p.registerNamespaces(zt),p.registerNamespaces(r.hostNamespaces??[]),process.env.MAKAIO_DEBUG===`true`){let e=p.__onAny(e=>{let t;try{t=JSON.stringify(e.payload)}catch{t=`[unserializable payload]`}console.debug(`[bus-server] subject: ${e.subject}, payload: ${t}`)});l.push(e)}if(r.upstreamTelemetry){let e=await Es(p,f,r.upstreamTelemetry);l.push(e.shutdown)}await p.emit(z.phase.busCreated,{machineId:f});let m=r.peerSigningKeyResolver;if(r.lanBind&&e.dispatchingAuth&&!m)throw Error(`[boot] peerSigningKeyResolver is required when lanBind is enabled`);await e.connect(p,f),l.push(()=>e.disconnect()),console.info(`[boot] Transport ready on %s:%d`,n,t);try{r.onTransportReady?.({port:t,host:n})}catch(e){console.warn(`[boot] onTransportReady callback failed:`,e)}let{databaseClient:h}=await Dr({makaioHome:o,migrationsDir:r.centralMigrationsDir}),g=h.db;console.info(`[boot] Database initialized`),l.push(()=>h.close());let _=await At(k.join(o,`keys`)),v=[p.on(a.database,e=>{e.setResult({db:g})}),p.on(a.machineIdentity,e=>{e.setResult({identity:_})}),p.on(a.busPort,e=>{e.setResult({port:t})})],y=!1,b=p.on(z.isReady,e=>{e.setResult({ready:y,machineId:f})});l.push(()=>{y=!1,b();for(let e of v)e()}),await p.emit(z.phase.coreReady,{machineId:f}),console.info(`[boot] Core ready (machineId=%s)`,f);let x=k.dirname(se(import.meta.url)),S=Vi(p,u);l.push(S),console.info(`[boot] Config handlers registered`),r.frameworkPackagePath&&(await qo({makaioHome:o,frameworkPackagePath:r.frameworkPackagePath}),console.info(`[boot] Framework package linked for extension resolution`));let C=r.frameworkModuleResolver;if(C){try{await C.install()}catch(e){throw await Promise.resolve(C.uninstall()).catch(()=>void 0),e}l.push(()=>C.uninstall()),console.info(`[boot] Framework module resolver installed`)}let w={current:void 0},T=Lo({makaioHome:o,srcDir:x,fallbackSeedPaths:r.modelRegistryFallbackSeedPaths}),E=process.env.USER??process.env.USERNAME??`unknown`;try{E=tt.userInfo().username}catch{}let ee=r.frameworkVersion??await hs(),{extensionLoadResult:D,browserOnlyResult:ae,extensionsWithCli:oe,allExtensionPackages:ce}=await gs({extensionOptions:s,skipExtensions:c,frameworkVersion:ee,createMount:r.createMount}),O=$o(process.platform,r.hostCapabilities),A=ts({packages:ce,configProvider:r.extensionConfigProvider,surface:r.surface??`headless`,runtimeEnvironment:O}),le=Ds(n,t),j=new ht(p,{surface:r.surface??`headless`,db:g,extensionContextBase:{platform:process.platform,homedir:tt.homedir(),makaioHome:o,username:E,machineId:_.machineId,busUrl:le,tryImport:vr},runtimeEnvironment:O,launcherCommand:r.launcherCommand,loadConfig:r.extensionConfigProvider?e=>r.extensionConfigProvider.loadConfig(e):void 0,loadEnabled:r.extensionConfigProvider?e=>r.extensionConfigProvider.loadEnabled(e):void 0,runMigrations:e=>vs(g,e)}),ue=new Zn({providerConfigsDir:k.join(o,`provider-configs`),adaptersDir:k.join(o,`adapters`)}),M=[Ti,at({definitions:A.flatMap(e=>e.clients??[]),strategyDependencies:r.clientBinaryStrategyDependencies,postInstallHandlers:r.clientBinaryPostInstallHandlers})];r.enablePackageManager!==!1&&M.push(fi({frameworkPeerRange:`^${ee}`,frameworkPackagePath:r.frameworkPackagePath,devPortalPackages:r.devPortalPackages}));let de={cwd:process.cwd()},fe=ne({busUrl:le,runtimeModuleDir:x,platformDefaults:de,workflowRunner:r.workflowRunner,makaioHome:o,bus:p}),{adapterSubsystemPackage:pe}=tr({coordinator:j,configRepository:ue,platformDefaults:de});if(M.push(pe,...as(A),Qt(fe),Wt(T),Zt),process.platform===`darwin`){let{platformMacOSPackage:e}=await import(`../src-4_2jBceX.mjs`);M.push(e)}let me=[...M,...A],ge=new Set(me.map(e=>e.name)),_e=zi(Bi(D.configDefaults,ae.configDefaults,oe.configDefaults,r.packageConfigDefaults??new Map),ge);j.load(me,_e),j.registerContributionProcessor(Xt()),j.registerContributionProcessor(Vt()),j.registerContributionProcessor(Ht()),j.registerContributionProcessor(Ut()),j.registerContributionProcessor(Gt()),j.registerContributionProcessor(Kt()),j.registerContributionProcessor(Jt()),j.registerContributionProcessor(qt()),r.routeGraphBuilder&&j.registerContributionProcessor(pi(r.routeGraphBuilder)),Zo(l,os(me,p,j)),l.push(()=>j.shutdown()),Zo(l,r.configureCoordinator?.({bus:p,coordinator:j,registerContributionProcessor:e=>{j.registerContributionProcessor(e)},getAdapterSubsystemService:()=>j.getExtensionService($n)})),await j.startAll(),await p.emit(z.phase.servicesReady,{machineId:f});let ve=j.list(),ye=ve.filter(e=>e.state===`active`);if(console.info(`[boot] Extensions started: %d active`,ye.length),process.env.MAKAIO_DEBUG){let e=ve.filter(e=>e.state===`failed`);for(let e of ye)console.info(`[boot] ✓ %s (%s)`,e.displayName,e.name);for(let t of e)console.warn(`[boot] ✗ %s (%s): %s`,t.displayName,t.name,t.error??`unknown`)}w.current=j.getExtensionService($n);let N=new re({workerEntry:te({moduleDir:x,mode:k.basename(x)===`src`?`source`:`dist`}),manifest:{packages:[]}}),P=new ie({id:be,displayName:`Local (Piscina)`,runner:N});try{await Ae(p,P)}catch(e){throw await N.dispose().catch(()=>void 0),e}l.push(async()=>{try{await Me(p,P.id)}finally{await N.dispose().catch(()=>void 0)}}),console.info(`[boot] Piscina thin workflow provider registered (id=%s)`,P.id),l.push(Ri(p,()=>w.current?.getLoadedAdapters()??[],()=>w.current?.getAdapterInstances()??new Map,e=>j.getExtension(e)));let xe=nr({bus:p,currentMachineId:f});if(l.push(xe.cleanup),await p.broadcast(z.phase.coordinatorReady,{machineId:f}),r.lanBind&&e.dispatchingAuth&&m){let t=bs(_,m);e.dispatchingAuth.setE2EAuth(t),console.info(`[boot] E2E auth enabled (LAN mode, machineId=%s)`,f)}y=!0,await p.emit(z.ready,{machineId:f}),console.info(`[boot] Runtime ready (machineId=%s)`,f);let Se=bt([...l].reverse());return{port:t,host:n,machineId:f,bus:p,coordinator:j,trayEntries:j.trayEntries,windowRegistry:j.windowRegistry,shutdown:Se}}catch(e){console.error(`[boot] Startup failed — rolling back started resources`,e);for(let e of[...l].reverse())try{await e()}catch(e){console.warn(`[boot] Rollback step error:`,e)}throw e}}async function ks(e){let t=new Cr({httpServer:e.httpServer,auth:e.auth,loopbackName:e.loopbackName??`node`}),n=e.httpServer.address();if(typeof n!=`object`||!n)throw Error(`HTTP server is not bound to a TCP address`);return Os(t,n.port,n.address,{...e,hostCapabilities:es(e.hostCapabilities),clientBinaryStrategyDependencies:e.clientBinaryStrategyDependencies??Mi()})}const As=`MAKAIO_UPSTREAM_URL`,js=`MAKAIO_UPSTREAM_SECRET`;function Ms(e){return new ft({url:e.url,name:`upstream-telemetry-ws`,auth:e.secret===void 0?void 0:new dt({secret:e.secret})})}function Ns(e={}){let t=e.env??process.env,n=Fs(t[js]),r=Ps(t[As]);if(r===void 0){if(n!==void 0)throw Error(`${js} requires ${As}`);return}return{transport:(e.createTransport??Ms)({url:r,...n===void 0?{}:{secret:n}})}}function Ps(e){let t=e?.trim();return t===void 0||t===``?void 0:t}function Fs(e){let t=e?.trim();return t===void 0||t===``?void 0:t}async function Is(e){return{...await u(e),hostCapabilities:[`node`]}}const Ls=oe(ae);var Rs=class{async resolve(e){return nn(e,{resolveKeychain:this.resolveKeychain})}async resolveKeychain(e,t){try{let{stdout:n}=await Ls(`security`,[`find-generic-password`,`-s`,e,`-a`,t,`-w`]);return n.trim()||null}catch{return null}}},zs=class{bus;fallbackProvider=new Rs;channelPromise;constructor(e){this.bus=e}async resolve(e){let t=Ke(e);if(t){let{configId:e,key:n}=t;for(let t=0;t<2;t++)try{return(await(await this.getChannel()).request(Se.get,{configId:e})).credentials?.[n]??null}catch(e){if(e instanceof me&&(this.channelPromise=void 0,t===0))continue;throw e}}return e.startsWith(`account-manager:`)?(console.warn(`[StoredCredentialProvider] account-manager: refs are account identifiers and cannot be resolved to credentials. The associated adapter should authenticate via its native credential store.`),null):e.startsWith(`stored:`)?(console.warn(`[StoredCredentialProvider] Unresolvable credential ref "${e}". Only the "stored:providerConfig:" format is supported. Re-save the credential using the current format.`),null):this.fallbackProvider.resolve(e)}getChannel(){return this.channelPromise??=this.openCredentialChannel().catch(e=>{throw this.channelPromise=void 0,e}),this.channelPromise}async openCredentialChannel(){let{token:e}=await this.bus.request(Se.getChannelToken,{});return ge(this.bus.getContext(),`credentials`,{token:e,transports:[]})}};const Bs=[`default`,`import`,`require`];var Vs=class{frameworkDistPath=``;install(){}uninstall(){}},Hs=class{frameworkDistPath;hooks;installPromise;installToken;constructor(e){this.frameworkDistPath=e}async install(){if(this.hooks)return;if(this.installPromise)return this.installPromise;let e={};this.installToken=e;let t=this.installWithToken(e);this.installPromise=t;try{await t}finally{this.installPromise===t&&(this.installPromise=void 0)}}async installWithToken(e){let{registerHooks:t}=await import(`node:module`);if(this.installToken!==e||this.hooks)return;let n=this.frameworkDistPath,r=Ws(n);this.hooks=t({resolve(e,t,i){let a=Us(n,e,r);return a?{shortCircuit:!0,url:ce(a).href}:i(e,t)}})}uninstall(){this.installToken=void 0,this.installPromise=void 0,this.hooks?.deregister(),this.hooks=void 0}};function Us(e,t,n){if(!t.startsWith(`@makaio/framework/`))return;let r=t.slice(18),i=r.split(`/`);if(i.length===0||i.some(e=>e.length===0||e===`.`||e===`..`||e.includes(`\\`)))return;let a=Ks((n??Ws(e))[`./${r}`]);if(!a)return;let o=qs(a);if(!o)return;let s=A.resolve(e,o);return Js(s,e)?s:void 0}function Ws(e){let t=A.join(e,`..`,`package.json`);return Gs(JSON.parse(fe(t,`utf-8`)).exports)}function Gs(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))if(n.startsWith(`.`)){if(typeof r==`string`){t[n]=r;continue}typeof r==`object`&&r&&!Array.isArray(r)&&(t[n]=r)}return t}function Ks(e){if(typeof e==`string`)return e;if(e)for(let t of Bs){let n=e[t];if(typeof n==`string`)return n}}function qs(e){let t=e.split(`\\`).join(`/`);if(t.startsWith(`./dist/`))return t.slice(7)}function Js(e,t){let n=A.relative(t,e);return n===``||!n.startsWith(`..`)&&!A.isAbsolute(n)}export{Cr as BusServerTransportProvider,o as ExplicitDescriptorDiscovery,ur as FileConfigStorage,oo as FileRegistryCache,s as FilesystemDescriptorDiscovery,ee as InProcessWorkflowRunner,c as MAKAIO_CONFIG_FILE_ENV,l as MAKAIO_HOME_ENV,js as MAKAIO_UPSTREAM_SECRET_ENV,As as MAKAIO_UPSTREAM_URL_ENV,Rs as NodeCredentialProvider,Hs as NodeFrameworkModuleResolver,Vs as NoopFrameworkModuleResolver,a as RuntimeSubjects,zs as StoredCredentialProvider,re as ThinWorkflowPiscinaRunner,No as WorkspaceRootNotFoundError,nr as activateAdapterRuntimeIdentity,Es as attachUpstreamTelemetry,ks as bootMakaioRuntime,Os as bootMakaioRuntimeCore,ps as bridgeExtensionBrowserEntries,u as buildConfiguredRuntimeOptions,us as buildExtensionBrowserRollupInputName,ds as buildExtensionBrowserRuntimeEntrypoint,Is as buildNodeRuntimeOptions,mr as createHonoRouteGraph,gr as createHttpRouteGraphBuilder,d as createMakaioConfigDiscovery,Ms as createUpstreamTelemetryTransport,f as defineMakaioConfig,S as entrypointStem,Po as findWorkspaceRoot,Fo as findWorkspaceRootInfo,Dr as initializeNodeDatabase,w as isCliContributionLike,y as isMakaioExtensionLike,_r as isMissingOptionalRuntimePackage,C as isWithinDirectory,T as loadExtensions,p as loadMakaioConfig,kt as loadOrCreateMachineIdentity,jt as machineKeysExist,es as normalizeNodeHostCapabilities,m as parseMakaioConfig,tr as prepareAdapterRuntime,hs as readFrameworkVersion,ln as registerAdapterNameResolver,b as resolveConventionEntrypoint,Us as resolveFrameworkSpecifier,pr as resolveListeningPort,h as resolveMakaioConfigPath,g as resolveMakaioHome,dr as resolveStaticModelRegistryPath,Ns as resolveUpstreamTelemetryBootOptionsFromEnv,te as resolveWorkflowWorkerEntry,sr as runMigrations,as as selectFrameworkCorePackages,_ as shouldIncludeExtension,vr as tryImport,Mt as validateMachineKeys,fr as waitForServerListening};
120
+ `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=l(c(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=l(c(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),Go=n((e=>{var t=Lo(),n=bo(),r=xo(),i=Ya(),a=K(),o=Uo(),s=Wo();function c(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new o.LineCounter||null,prettyErrors:t}}function l(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=Array.from(l.compose(o.parse(e)));if(a&&i)for(let t of u)t.errors.forEach(r.prettifyError(e,i)),t.warnings.forEach(r.prettifyError(e,i));return u.length>0?u:Object.assign([],{empty:!0},l.streamInfo())}function u(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=null;for(let t of l.compose(o.parse(e),!0,e.length))if(!u)u=t;else if(u.options.logLevel!==`silent`){u.errors.push(new r.YAMLParseError(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return a&&i&&(u.errors.forEach(r.prettifyError(e,i)),u.warnings.forEach(r.prettifyError(e,i))),u}function d(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let a=u(e,n);if(!a)return null;if(a.warnings.forEach(e=>i.warn(a.options.logLevel,e)),a.errors.length>0){if(a.options.logLevel!==`silent`)throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:r},n))}function f(e,t,r){let i=null;if(typeof t==`function`||Array.isArray(t)?i=t:r===void 0&&t&&(r=t),typeof r==`string`&&(r=r.length),typeof r==`number`){let e=Math.round(r);r=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=r??t??{};if(!e)return}return a.isDocument(e)&&!i?e.toString(r):new n.Document(e,i,r).toString(r)}e.parse=d,e.parseAllDocuments=l,e.parseDocument=u,e.stringify=f})),Ko=n((e=>{var t=Lo(),n=bo(),r=vo(),i=xo(),a=Va(),o=K(),s=Y(),c=J(),l=X(),u=Q();Vo();var d=Ho(),f=Uo(),p=Wo(),m=Go(),h=Ia();e.Composer=t.Composer,e.Document=n.Document,e.Schema=r.Schema,e.YAMLError=i.YAMLError,e.YAMLParseError=i.YAMLParseError,e.YAMLWarning=i.YAMLWarning,e.Alias=a.Alias,e.isAlias=o.isAlias,e.isCollection=o.isCollection,e.isDocument=o.isDocument,e.isMap=o.isMap,e.isNode=o.isNode,e.isPair=o.isPair,e.isScalar=o.isScalar,e.isSeq=o.isSeq,e.Pair=s.Pair,e.Scalar=c.Scalar,e.YAMLMap=l.YAMLMap,e.YAMLSeq=u.YAMLSeq,e.Lexer=d.Lexer,e.LineCounter=f.LineCounter,e.Parser=p.Parser,e.parse=m.parse,e.parseAllDocuments=m.parseAllDocuments,e.parseDocument=m.parseDocument,e.stringify=m.stringify,e.visit=h.visit,e.visitAsync=h.visitAsync}))();function qo(e){return e instanceof Error&&`code`in e&&typeof e.code==`string`}function Jo(e){return qo(e)&&e.code===`ENOENT`}function Yo(e){return qo(e)&&e.code===`ENOTDIR`}function Xo(e){return e instanceof Error?e.message:String(e)}async function Zo(e){try{return(await P.promises.readdir(e)).filter(e=>e.endsWith(`.yaml`)).sort().map(t=>j.join(e,t))}catch(t){if(Jo(t))return[];throw Yo(t)?Error(`Invalid model registry directory ${e}: expected a directory.`,{cause:t}):t}}var Qo=class{seedPaths;constructor(e){this.seedPaths=Array.isArray(e)?e:[e]}async fetch(){for(let e of this.seedPaths){let t=await $o(e);if(t!==void 0)try{return It.parse((0,Ko.parse)(t))}catch(t){throw Error(`Invalid bundled model registry seed at ${e}: ${Xo(t)}`,{cause:t})}}throw Error(`Bundled model registry seed not found. Tried:\n${this.seedPaths.map(e=>`- ${e}`).join(`
121
+ `)}`)}};async function $o(e){try{return await P.promises.readFile(e,`utf-8`)}catch(t){if(es(t))return;throw Error(`Failed to read bundled model registry seed at ${e}: ${Xo(t)}`,{cause:t})}}function es(e){return Jo(e)||Yo(e)}var ts=class{url;timeoutMs;constructor(e,t=1e4){let n=e.trim();if(!n)throw Error(`CdnRegistryFetcher requires a non-empty registry URL`);let r;try{r=new URL(n)}catch(e){throw Error(`CdnRegistryFetcher requires a valid registry URL: ${n}`,{cause:e})}if(r.protocol!==`http:`&&r.protocol!==`https:`)throw Error(`CdnRegistryFetcher requires an HTTP(S) registry URL: ${n}`);if(!Number.isFinite(t)||t<=0)throw Error(`CdnRegistryFetcher requires a positive finite timeoutMs, got ${t}`);this.url=r.toString(),this.timeoutMs=t}async fetch(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.timeoutMs);try{let t=await fetch(this.url,{signal:e.signal});if(!t.ok)throw Error(`Failed to fetch model registry: ${t.status} ${t.statusText}`);let n=(0,Ko.parse)(await t.text());return It.parse(n)}catch(e){throw e instanceof Error&&e.name===`AbortError`?Error(`Failed to fetch model registry: timed out after ${this.timeoutMs}ms`,{cause:e}):e}finally{clearTimeout(t)}}},ns=class{cachePath;trackFetchedAt;constructor(e,t={}){this.cachePath=e,this.trackFetchedAt=t.trackFetchedAt??!1}async get(){try{let e=await P.promises.readFile(this.cachePath,`utf-8`),t=rs(JSON.parse(e)),n=It.safeParse(t);return n.success?n.data:null}catch{return null}}async set(e){try{await P.promises.mkdir(j.dirname(this.cachePath),{recursive:!0});let t=this.trackFetchedAt?{fetchedAt:new Date().toISOString(),registry:e}:e;await P.promises.writeFile(this.cachePath,JSON.stringify(t,null,2),`utf-8`)}catch(e){console.warn(`[FileRegistryCache] Failed to write cache:`,e)}}};function rs(e){return mt(e)&&`registry`in e&&`fetchedAt`in e?e.registry:e}const is=O.object({name:O.string().optional(),models:O.array(L)}),as=O.object({name:O.string().optional(),models:O.record(O.string(),Rt)}),os=O.object({$schema:O.literal(`makaio/model-registry/v2`).optional(),updatedAt:O.string().datetime().optional(),labs:O.record(O.string(),is).optional(),providers:O.record(O.string(),as).optional()}),ss=O.object({name:O.string().optional(),models:O.array(O.record(O.string(),O.unknown()))}),cs=O.object({name:O.string().optional(),models:O.record(O.string(),Rt)});var ls=class{userModelsDir;constructor(e){this.userModelsDir=e}async fetch(){let e=us();return await Promise.all([this.loadLabDirectory(j.join(this.userModelsDir,`labs`),e),this.loadProviderDirectory(j.join(this.userModelsDir,`providers`),e)]),await this.loadFlatFiles(e),e}async loadLabDirectory(e,t){let n=await Zo(e),r=await Promise.all(n.map(async e=>({labId:j.basename(e,`.yaml`),lab:await vs(e,j.basename(e,`.yaml`))})));for(let{labId:e,lab:n}of r)Cs(t,e,n)}async loadProviderDirectory(e,t){let n=await Zo(e),r=await Promise.all(n.map(async e=>({providerId:j.basename(e,`.yaml`),provider:await ys(e)})));for(let{providerId:e,provider:n}of r)ws(t,e,n)}async loadFlatFiles(e){let t=await Zo(this.userModelsDir);for(let n of t){let t=j.basename(n,`.yaml`),r=(0,Ko.parse)(await P.promises.readFile(n,`utf-8`));if(!mt(r))throw Error(`Invalid model registry overlay YAML in ${n}: expected a YAML object.`);if(`labs`in r||`providers`in r){Ss(e,os.parse(r));continue}if(Array.isArray(r.models)){Cs(e,t,bs(r,t));continue}if(mt(r.models)){ws(e,t,xs(r));continue}throw Error(`Unrecognized model registry overlay shape in ${n}: expected labs, providers, or models.`)}}};function us(){return{labs:{},providers:{}}}function ds(e,t){return{$schema:`makaio/model-registry/v2`,updatedAt:t.updatedAt??e.updatedAt,labs:Ts(fs(e.labs,t.labs)),providers:Es(hs(e.providers,t.providers))}}function fs(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:{...t,...r,models:ps(t.models,r.models)}}return n}function ps(e,t){let n=[...e],r=new Map(e.map((e,t)=>[e.name,t]));for(let e of t){let t=r.get(e.name);if(t===void 0){r.set(e.name,n.length),n.push(e);continue}n[t]=ms(n[t],e)}return n}function ms(e,t){let n={...e,...t},r=zt(e.metadata,t.metadata);return r===void 0?delete n.metadata:n.metadata=r,n}function hs(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:{...t,...r,models:gs(t.models,r.models)}}return n}function gs(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=t===void 0?r:_s(t,r)}return n}function _s(e,t){let n={...e,...t},r=zt(e.metadata,t.metadata);return r===void 0?delete n.metadata:n.metadata=r,n}async function vs(e,t){return bs((0,Ko.parse)(await P.promises.readFile(e,`utf-8`)),t)}async function ys(e){return xs((0,Ko.parse)(await P.promises.readFile(e,`utf-8`)))}function bs(e,t){let n=ss.parse(e);return{...n.name===void 0?{}:{name:n.name},models:n.models.map(e=>L.parse({...e,labId:t}))}}function xs(e){let t=cs.parse(e);return{...t.name===void 0?{}:{name:t.name},models:t.models}}function Ss(e,t){e.updatedAt=t.updatedAt??e.updatedAt,t.labs!==void 0&&(e.labs=fs(e.labs,t.labs)),t.providers!==void 0&&(e.providers=hs(e.providers,t.providers))}function Cs(e,t,n){e.labs=fs(e.labs,{[t]:n})}function ws(e,t,n){e.providers=hs(e.providers,{[t]:n})}function Ts(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,name:t.name??e}]))}function Es(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...t,name:t.name??e}]))}var Ds=class{userModelsDir;baseFetcher;constructor(e,t){this.userModelsDir=e,this.baseFetcher=t}async fetch(){let e=await this.baseFetcher.fetch();if(await this.validateDirectory(this.userModelsDir),await this.validateDirectory(`${this.userModelsDir}/labs`),await this.validateDirectory(`${this.userModelsDir}/providers`),!await this.hasAnyOverlayFiles())return e;let t=ds(e,await new ls(this.userModelsDir).fetch());return It.parse(t)}async validateDirectory(e){await Zo(e)}async hasAnyOverlayFiles(){let e,t;try{let n=await A.readdir(this.userModelsDir,{withFileTypes:!0});e=n.map(e=>String(e.name)),t=new Map(n.map(e=>[String(e.name),[e.isFile(),e.isDirectory()]]))}catch(e){if(Jo(e))return!1;throw e}return e.some(e=>{let[n,r]=t.get(e)??[!1,!1];return n&&e.endsWith(`.yaml`)||r&&(e===`labs`||e===`providers`)})}},Os=class extends Error{constructor(e){super(`[boot] Could not find workspace root (no package.json with 'workspaces' field) starting from: ${e}`),this.name=`WorkspaceRootNotFoundError`}};function ks(e){return As(e).root}function As(e){let t=j.resolve(e);for(;;){let n=j.join(t,`package.json`);if(P.existsSync(n))try{let e=P.readFileSync(n,`utf-8`),r=JSON.parse(e);if(typeof r==`object`&&r&&`workspaces`in r)return{root:t,packageJsonPath:n,workspaces:Vt(r)}}catch{}let r=j.dirname(t);if(r===t)throw new Os(e);t=r}}const js=`MAKAIO_MODEL_REGISTRY_SOURCES`;function Ms(e){let t=j.join(e.makaioHome,`models`),n=j.join(e.makaioHome,`cache`,`model-registry`);return new Ds(t,new Pt(Ns(e).map(e=>Is(e,n))))}function Ns(e){let t=Fs(e.srcDir,e.cwd),n=t.slice(0,-1),r=t.slice(n.length);return zs([...Ps(e.env??process.env),...e.seedPaths??[],...n,e.cdnRegistryUrl??`https://makaio-ai.github.io/makaio-framework/model-registry.yaml`,...e.fallbackSeedPaths??[],...r])}function Ps(e){let t=e[js]?.trim();if(!t)return[];let n;try{n=t.startsWith(`[`)?JSON.parse(t):t}catch(e){throw Error(`[boot] ${js} must be a JSON string array or a single source string`,{cause:e})}let r=Array.isArray(n)?n:[n];if(!r.every(e=>typeof e==`string`))throw Error(`[boot] ${js} entries must be strings`);return r.map(e=>e.trim()).filter(e=>e.length>0)}function Fs(e,t=process.cwd()){let n=j.resolve(e,`static/model-registry.yaml`),r=j.resolve(t,`static/model-registry.yaml`);try{return zs([r,j.resolve(ks(e),`static/model-registry.yaml`),n])}catch(e){if(e instanceof Os)return zs([r,n]);throw e}}function Is(e,t){let n=Rs(e);return n?.protocol===`http:`||n?.protocol===`https:`?new Nt(new ts(n.href),new ns(j.join(t,`${Vs(n.href)}.json`),{trackFetchedAt:!0})):new Qo(Ls(e,n))}function Ls(e,t){if(t?.protocol===`file:`)return ce(t);if(t!==void 0)throw Error(`[boot] Unsupported model registry source protocol "${t.protocol}" for ${e}`);return j.isAbsolute(e)?e:j.resolve(e)}function Rs(e){try{return new URL(e)}catch{return}}function zs(e){let t=new Set,n=[];for(let r of e){let e=Bs(r);t.has(e)||(t.add(e),n.push(r))}return n}function Bs(e){let t=Rs(e);return t?.protocol===`file:`?`file:${j.resolve(ce(t))}`:t===void 0?`file:${j.resolve(e)}`:`${t.protocol}//${t.host}${t.pathname}${t.search}`}function Vs(e){return N(`sha256`).update(e).digest(`hex`).slice(0,16)}async function Hs(e){let t=j.resolve(e.frameworkPackagePath);await Us(t);let n=j.join(e.makaioHome,`node_modules`,`@makaio`),r=j.join(n,`framework`);await A.mkdir(n,{recursive:!0}),!await Ws(r,t)&&(await A.rm(r,{recursive:!0,force:!0}),await A.symlink(t,r,process.platform===`win32`?`junction`:`dir`))}async function Us(e){let t=j.join(e,`package.json`),n=await A.readFile(t,`utf-8`);if(JSON.parse(n).name!==`@makaio/framework`)throw Error(`Expected @makaio/framework package at ${e}`)}async function Ws(e,t){try{return(await A.lstat(e)).isSymbolicLink()?await A.realpath(e)===await A.realpath(t):!1}catch(e){if(Gs(e))return!1;throw e}}function Gs(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}function Ks(e,t){e.push(...qs(t))}function qs(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function Js(e,t=[]){let n=new Set([e]),r=new Set,i=new Map;for(let e of t)typeof e==`string`?n.add(e):(r.add(e.id),e.version!==void 0&&i.set(e.id,e.version));return{hosts:n,capabilities:r,...i.size>0?{capabilityVersions:i}:{}}}function Ys(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function Xs(e){return At(Mt(Zs(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function Zs(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function Qs(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function $s(e,t){let n=Qs(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function ec(e){return e===!0||($s(e,`sessionOrchestrator`),Qs(e,`sessionOrchestrator`).length===0)?ln:ln.filter(e=>e.name!==$t.name)}function tc(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&Ks(r,e.configure({bus:t,registerContributionProcessor:e=>{r.push(n.registerContributionProcessor(e))},forEachActiveExtension:e=>{n.forEachActiveExtension(e)}}))}}catch(e){let t=[];for(let e of[...r].reverse())try{e()}catch(e){t.push(e)}throw t.length>0?AggregateError([e,...t],`Extension boot contribution failed and rollback cleanup reported additional errors`,{cause:e}):e}return r}function nc(){let e=process.env.MAKAIO_SKIP_EXTENSIONS;if(!e)return new Set;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(t)}function rc(e,t){let n=t.endsWith(`/`)?t:`${t}/`,r=bn({root:e,rewriteRequestPath:e=>e.slice(n.length-1)});return e=>{e.use(`${t}/*`,r)}}function ic(e){return`/extensions/${e}/browser`}function ac(e,t){return`extensions/${e}/browser/${sc(t)}`}function oc(e,t){return`/${ac(e,t)}.js`}function sc(e){let t=e.replaceAll(M.win32.sep,M.posix.sep),n=M.posix.basename(t),r=M.posix.extname(n);return r?n.slice(0,-r.length):n}function cc(e,t,n={}){let{createMount:r=rc}=n,i=new Map(e.map(e=>[e.descriptor.name,e]));return t.map(e=>{let t=i.get(e.name);if(!t?.descriptor.entrypoints?.browser)return e;if(e.browser)return console.warn(`[extensions] ${e.name}: server entry already declares browser, skipping browser bridge`),e;if(e.http)return console.warn(`[extensions] ${e.name}: server entry already declares http, skipping browser bridge`),e;let n=t.descriptor.entrypoints.browser,a=S(`browser`,n),o=b(`browser`,n,t.extensionPath);if(!o)return console.warn(`[extensions] ${e.name}: browser entry has no resolvable candidate within extension directory, skipping bridge`),e;let s=j.dirname(o),c=ic(e.name),l=oc(e.name,a);return{...e,browser:{entrypoint:l},http:{prefix:c,mount:r(s,c)}}})}function lc(e,t={}){let{createMount:n=rc,frameworkVersion:r}=t,i=[],a=new Map;for(let t of e){let{descriptor:e,extensionPath:o}=t;if(r!==void 0&&!x(t,r)||e.execution===`detached`||e.entrypoints.server||!e.entrypoints.browser)continue;let s=e.entrypoints.browser,c=S(`browser`,s),l=b(`browser`,s,o);if(!l){console.warn(`[extensions] ${e.name}: browser entry has no resolvable candidate within extension directory, skipping synthesis`);continue}let u=j.dirname(l),d=ic(e.name),f=oc(e.name,c);i.push({...v(e),browser:{entrypoint:f},http:{prefix:d,mount:n(u,d)}}),e.config?.defaults&&a.set(e.name,e.config.defaults)}return{packages:i,configDefaults:a}}async function uc(){let e=j.dirname(ce(import.meta.url)),t=j.resolve(e,`..`,`package.json`),n=await A.readFile(t,`utf-8`),r=JSON.parse(n);if(typeof r!=`object`||!r||!(`version`in r)||typeof r.version!=`string`)throw Error(`[boot] package.json at ${t} has no string 'version' field`);return r.version}async function dc(e){let t={packages:[],configDefaults:new Map},n=[],r=e.frameworkVersion??await uc();try{if(n=await e.extensionOptions.extensions.discover(),n=fc(n,e.skipExtensions),process.env.MAKAIO_DEBUG){console.info(`[boot] Discovered %d extension descriptor(s):`,n.length);for(let e of n)console.info(`[boot] - %s (%s)`,e.descriptor.displayName??e.descriptor.name,e.source)}}catch(e){console.warn(`[boot] Extension discovery failed, skipping:`,e instanceof Error?e.message:e)}let i=n.filter(e=>x(e,r));if(i.length>0)try{t=await T(i,{frameworkVersion:r})}catch(e){console.warn(`[boot] Extension loading failed, skipping:`,e instanceof Error?e.message:e)}let a={...e.createMount?{createMount:e.createMount}:{},frameworkVersion:r},o=cc(i,t.packages,a),s=lc(i,a),c=await E(i,[...o,...s.packages],{frameworkVersion:r});return{discovered:n,extensionLoadResult:t,browserOnlyResult:s,extensionsWithCli:c,allExtensionPackages:c.packages}}function fc(e,t){if(t.size===0)return e;let n=new Set(e.map(e=>e.descriptor.name)),r=[...t].filter(e=>!n.has(e));r.length&&console.warn(`[boot] MAKAIO_SKIP_EXTENSIONS: no matching extension(s): %s`,r.join(`, `));let i=new Set([...t].filter(e=>n.has(e))),a=e.filter(e=>!i.has(e.descriptor.name));return a.length<e.length&&console.info(`[boot] MAKAIO_SKIP_EXTENSIONS filtered %d extension(s): %s`,e.length-a.length,[...i].join(`, `)),a}async function pc(e,t){let n=Je(e),r=n.dialect,i=new Set;for(let a of t){if(i.has(a.migrationSourceId))continue;i.add(a.migrationSourceId);let t=mc(a.migrationSourceId,n);process.env.MAKAIO_DEBUG===`true`&&console.info(`[boot] Running migrations for package: ${a.name}`);let o;try{o=Lr({migrationsDir:a.migrationsPathByDialect?.[r]??a.migrationsPath,migrationSourceId:a.migrationSourceId,expectedDialect:r})}catch(e){throw e instanceof Error&&e.name===`MigrationDialectMismatchError`?Error(`Extension '${a.name}' ships migrations that do not match the '${r}' database dialect. Disable this extension on '${r}' hosts or ship a migration chain generated for '${r}'.`,{cause:e}):e}await Kr(e,o,t)}}function mc(e,t){let n=N(`sha256`).update(e).digest(`hex`).slice(0,16);return t.migrations.extensionLedgerName(n)}function hc(e,t){return new xt({signingKeyPair:e.signingKeyPair,identityId:e.machineId,getPeerSigningKey:t})}const gc=Ee.fact.$meta.namespace,_c=Ee.fact.subject;function vc(e,t){if(t.transport!==void 0||t.localOnly===!0)return!1;let n=`${t.namespace}.${t.subject}`,r=e.getContext().namespaceRegistry;return!r.isLocalSubject(n)&&!r.isCollectorOnlySubject(n)}function yc(e){return e.type===`event`?{type:`event`,namespace:e.namespace,subject:e.subject,payload:e.payload,messageId:e.messageId,...e.correlationId===void 0?{}:{correlationId:e.correlationId}}:{type:e.type,namespace:e.namespace,subject:e.subject,payload:e.payload,messageId:e.messageId,correlationId:e.correlationId??e.messageId}}async function bc(e,t,n,r,i){let a=yc(i),o=ge({message:a,direction:`outbound`,observedAt:Date.now(),machineId:n,namespaceRegistry:t.getContext().namespaceRegistry,projectorRegistry:r.projectorRegistry});for(let t of o)await e.send({type:`event`,namespace:gc,subject:_c,payload:t,messageId:`${a.messageId}:telemetry:${t.factId}`,correlationId:a.correlationId})}async function xc(e,t,n){let r=n.transport;await r.connect();let i;try{i=e.observeMessages(i=>{vc(e,i)&&bc(r,e,t,n,i).catch(e=>{console.error(`[upstream-telemetry] Failed to export subject telemetry fact`,e)})})}catch(e){throw await r.disconnect().catch(()=>void 0),e}return{shutdown:async()=>{i(),await r.disconnect()}}}function Sc(e,t){let n=e===`0.0.0.0`?`127.0.0.1`:e===`::`?`::1`:e;return`ws://${n.includes(`:`)&&!n.startsWith(`[`)?`[${n}]`:n}:${t}/bus`}async function Cc(e,t,n,r){let o=r.makaioHome??g(),s=li(r,o),c=nc(),l=[];try{let u=new ci(new Jr(o),o),d=await u.getConfig({mode:`local`}),f=await u.getMachineId();console.info(`[boot] Config resolved (mode=%s)`,d.mode);let p=me;if(p.registerNamespaces(Ce),p.registerNamespaces(we),p.registerNamespaces([Tt,Jt,Dt,kt,i]),p.registerNamespaces(Qt),p.registerNamespaces(r.hostNamespaces??[]),process.env.MAKAIO_DEBUG===`true`){let e=p.__onAny(e=>{let t;try{t=JSON.stringify(e.payload)}catch{t=`[unserializable payload]`}console.debug(`[bus-server] subject: ${e.subject}, payload: ${t}`)});l.push(e)}if(r.upstreamTelemetry){let e=await xc(p,f,r.upstreamTelemetry);l.push(e.shutdown)}await p.emit(V.phase.busCreated,{machineId:f});let m=r.peerSigningKeyResolver;if(r.lanBind&&e.dispatchingAuth&&!m)throw Error(`[boot] peerSigningKeyResolver is required when lanBind is enabled`);await e.connect(p,f),l.push(()=>e.disconnect()),console.info(`[boot] Transport ready on %s:%d`,n,t);try{r.onTransportReady?.({port:t,host:n})}catch(e){console.warn(`[boot] onTransportReady callback failed:`,e)}let{databaseClient:h}=await _i({makaioHome:o,migrationsDir:r.centralMigrationsDir,database:r.database}),g=h.db;console.info(`[boot] Database initialized`),l.push(()=>h.close());let _=await Ut(j.join(o,`keys`)),v=[p.on(a.database,e=>{e.setResult({db:g})}),p.on(a.machineIdentity,e=>{e.setResult({identity:_})}),p.on(a.busPort,e=>{e.setResult({port:t})})],y=!1,b=p.on(V.isReady,e=>{e.setResult({ready:y,machineId:f})});l.push(()=>{y=!1,b();for(let e of v)e()}),await p.emit(V.phase.coreReady,{machineId:f}),console.info(`[boot] Core ready (machineId=%s)`,f);let x=j.dirname(ce(import.meta.url)),S=Fa(p,u);l.push(S),console.info(`[boot] Config handlers registered`),r.frameworkPackagePath&&(await Hs({makaioHome:o,frameworkPackagePath:r.frameworkPackagePath}),console.info(`[boot] Framework package linked for extension resolution`));let C=r.frameworkModuleResolver;if(C){try{await C.install()}catch(e){throw await Promise.resolve(C.uninstall()).catch(()=>void 0),e}l.push(()=>C.uninstall()),console.info(`[boot] Framework module resolver installed`)}let w={current:void 0},T=Ms({makaioHome:o,srcDir:x,fallbackSeedPaths:r.modelRegistryFallbackSeedPaths}),E=process.env.USER??process.env.USERNAME??`unknown`;try{E=ft.userInfo().username}catch{}let ee=r.frameworkVersion??await uc(),{extensionLoadResult:D,browserOnlyResult:O,extensionsWithCli:ae,allExtensionPackages:oe}=await dc({extensionOptions:s,skipExtensions:c,frameworkVersion:ee,createMount:r.createMount}),se=Js(process.platform,r.hostCapabilities),k=Xs({packages:oe,configProvider:r.extensionConfigProvider,surface:r.surface??`headless`,runtimeEnvironment:se}),A=Sc(n,t),M=new Et(p,{surface:r.surface??`headless`,db:g,extensionContextBase:{platform:process.platform,homedir:ft.homedir(),makaioHome:o,username:E,machineId:_.machineId,busUrl:A,tryImport:ni},runtimeEnvironment:se,launcherCommand:r.launcherCommand,loadConfig:r.extensionConfigProvider?e=>r.extensionConfigProvider.loadConfig(e):void 0,loadEnabled:r.extensionConfigProvider?e=>r.extensionConfigProvider.loadEnabled(e):void 0,runMigrations:e=>pc(g,e)}),le=new lr({providerConfigsDir:j.join(o,`provider-configs`),adaptersDir:j.join(o,`adapters`)}),N=[ya,gt({definitions:k.flatMap(e=>e.clients??[]),strategyDependencies:r.clientBinaryStrategyDependencies,postInstallHandlers:r.clientBinaryPostInstallHandlers})];r.enablePackageManager!==!1&&N.push(na({frameworkPeerRange:`^${ee}`,frameworkPackagePath:r.frameworkPackagePath,devPortalPackages:r.devPortalPackages}));let ue={cwd:process.cwd()},P=ne({busUrl:A,runtimeModuleDir:x,platformDefaults:ue,workflowRunner:r.workflowRunner,makaioHome:o,bus:p}),{adapterSubsystemPackage:F}=pr({coordinator:M,configRepository:le,platformDefaults:ue});if(N.push(F,...ec(k),fn(P),rn(T),dn),process.platform===`darwin`){let{platformMacOSPackage:e}=await import(`../src-DedDL9iv.mjs`);N.push(e)}let I=[...N,...k],de=new Set(I.map(e=>e.name)),fe=Na(Pa(D.configDefaults,O.configDefaults,ae.configDefaults,r.packageConfigDefaults??new Map),de);M.load(I,fe),M.registerContributionProcessor(un()),M.registerContributionProcessor(en()),M.registerContributionProcessor(tn()),M.registerContributionProcessor(nn()),M.registerContributionProcessor(an()),M.registerContributionProcessor(on()),M.registerContributionProcessor(cn()),M.registerContributionProcessor(sn()),r.routeGraphBuilder&&M.registerContributionProcessor(ra(r.routeGraphBuilder)),Ks(l,tc(I,p,M)),l.push(()=>M.shutdown()),Ks(l,r.configureCoordinator?.({bus:p,coordinator:M,registerContributionProcessor:e=>{M.registerContributionProcessor(e)},getAdapterSubsystemService:()=>M.getExtensionService(dr)})),await M.startAll(),await p.emit(V.phase.servicesReady,{machineId:f});let pe=M.list(),he=pe.filter(e=>e.state===`active`);if(console.info(`[boot] Extensions started: %d active`,he.length),process.env.MAKAIO_DEBUG){let e=pe.filter(e=>e.state===`failed`);for(let e of he)console.info(`[boot] ✓ %s (%s)`,e.displayName,e.name);for(let t of e)console.warn(`[boot] ✗ %s (%s): %s`,t.displayName,t.name,t.error??`unknown`)}w.current=M.getExtensionService(dr);let ge=new re({workerEntry:te({moduleDir:x,mode:j.basename(x)===`src`?`source`:`dist`}),manifest:{packages:[]}}),L=new ie({id:ve,displayName:`Local (Piscina)`,runner:ge});try{await Ae(p,L)}catch(e){throw await ge.dispose().catch(()=>void 0),e}l.push(async()=>{try{await Me(p,L.id)}finally{await ge.dispose().catch(()=>void 0)}}),console.info(`[boot] Piscina thin workflow provider registered (id=%s)`,L.id),l.push(Ma(p,()=>w.current?.getLoadedAdapters()??[],()=>w.current?.getAdapterInstances()??new Map,e=>M.getExtension(e)));let _e=mr({bus:p,currentMachineId:f});if(l.push(_e.cleanup),await p.broadcast(V.phase.coordinatorReady,{machineId:f}),r.lanBind&&e.dispatchingAuth&&m){let t=hc(_,m);e.dispatchingAuth.setE2EAuth(t),console.info(`[boot] E2E auth enabled (LAN mode, machineId=%s)`,f)}y=!0,await p.emit(V.ready,{machineId:f}),console.info(`[boot] Runtime ready (machineId=%s)`,f);let ye=jt([...l].reverse());return{port:t,host:n,machineId:f,bus:p,coordinator:M,trayEntries:M.trayEntries,windowRegistry:M.windowRegistry,shutdown:ye}}catch(e){console.error(`[boot] Startup failed — rolling back started resources`,e);for(let e of[...l].reverse())try{await e()}catch(e){console.warn(`[boot] Rollback step error:`,e)}throw e}}async function wc(e){let t=new si({httpServer:e.httpServer,auth:e.auth,loopbackName:e.loopbackName??`node`}),n=e.httpServer.address();if(typeof n!=`object`||!n)throw Error(`HTTP server is not bound to a TCP address`);return Cc(t,n.port,n.address,{...e,hostCapabilities:Ys(e.hostCapabilities),clientBinaryStrategyDependencies:e.clientBinaryStrategyDependencies??Ea()})}const Tc=`MAKAIO_UPSTREAM_URL`,Ec=`MAKAIO_UPSTREAM_SECRET`;function Dc(e){return new Ct({url:e.url,name:`upstream-telemetry-ws`,auth:e.secret===void 0?void 0:new St({secret:e.secret})})}function Oc(e={}){let t=e.env??process.env,n=Ac(t[Ec]),r=kc(t[Tc]);if(r===void 0){if(n!==void 0)throw Error(`${Ec} requires ${Tc}`);return}return{transport:(e.createTransport??Dc)({url:r,...n===void 0?{}:{secret:n}})}}function kc(e){let t=e?.trim();return t===void 0||t===``?void 0:t}function Ac(e){let t=e?.trim();return t===void 0||t===``?void 0:t}async function jc(e){return{...await u(e),hostCapabilities:[`node`]}}const Mc=se(ae);var Nc=class{async resolve(e){return gn(e,{resolveKeychain:this.resolveKeychain})}async resolveKeychain(e,t){try{let{stdout:n}=await Mc(`security`,[`find-generic-password`,`-s`,e,`-a`,t,`-w`]);return n.trim()||null}catch{return null}}},Pc=class{bus;fallbackProvider=new Nc;channelPromise;constructor(e){this.bus=e}async resolve(e){let t=rt(e);if(t){let{configId:e,key:n}=t;for(let t=0;t<2;t++)try{return(await(await this.getChannel()).request(Se.get,{configId:e})).credentials?.[n]??null}catch(e){if(e instanceof pe&&(this.channelPromise=void 0,t===0))continue;throw e}}return e.startsWith(`account-manager:`)?(console.warn(`[StoredCredentialProvider] account-manager: refs are account identifiers and cannot be resolved to credentials. The associated adapter should authenticate via its native credential store.`),null):e.startsWith(`stored:`)?(console.warn(`[StoredCredentialProvider] Unresolvable credential ref "${e}". Only the "stored:providerConfig:" format is supported. Re-save the credential using the current format.`),null):this.fallbackProvider.resolve(e)}getChannel(){return this.channelPromise??=this.openCredentialChannel().catch(e=>{throw this.channelPromise=void 0,e}),this.channelPromise}async openCredentialChannel(){let{token:e}=await this.bus.request(Se.getChannelToken,{});return he(this.bus.getContext(),`credentials`,{token:e,transports:[]})}};const Fc=[`default`,`import`,`require`];var Ic=class{frameworkDistPath=``;install(){}uninstall(){}},Lc=class{frameworkDistPath;hooks;installPromise;installToken;constructor(e){this.frameworkDistPath=e}async install(){if(this.hooks)return;if(this.installPromise)return this.installPromise;let e={};this.installToken=e;let t=this.installWithToken(e);this.installPromise=t;try{await t}finally{this.installPromise===t&&(this.installPromise=void 0)}}async installWithToken(e){let{registerHooks:t}=await import(`node:module`);if(this.installToken!==e||this.hooks)return;let n=this.frameworkDistPath,r=zc(n);this.hooks=t({resolve(e,t,i){let a=Rc(n,e,r);return a?{shortCircuit:!0,url:k(a).href}:i(e,t)}})}uninstall(){this.installToken=void 0,this.installPromise=void 0,this.hooks?.deregister(),this.hooks=void 0}};function Rc(e,t,n){if(!t.startsWith(`@makaio/framework/`))return;let r=t.slice(18),i=r.split(`/`);if(i.length===0||i.some(e=>e.length===0||e===`.`||e===`..`||e.includes(`\\`)))return;let a=Vc((n??zc(e))[`./${r}`]);if(!a)return;let o=Hc(a);if(!o)return;let s=M.resolve(e,o);return Uc(s,e)?s:void 0}function zc(e){let t=M.join(e,`..`,`package.json`);return Bc(JSON.parse(de(t,`utf-8`)).exports)}function Bc(e){if(typeof e!=`object`||!e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))if(n.startsWith(`.`)){if(typeof r==`string`){t[n]=r;continue}typeof r==`object`&&r&&!Array.isArray(r)&&(t[n]=r)}return t}function Vc(e){if(typeof e==`string`)return e;if(e)for(let t of Fc){let n=e[t];if(typeof n==`string`)return n}}function Hc(e){let t=e.split(`\\`).join(`/`);if(t.startsWith(`./dist/`))return t.slice(7)}function Uc(e,t){let n=M.relative(t,e);return n===``||!n.startsWith(`..`)&&!M.isAbsolute(n)}export{si as BusServerTransportProvider,o as ExplicitDescriptorDiscovery,Jr as FileConfigStorage,ns as FileRegistryCache,s as FilesystemDescriptorDiscovery,ee as InProcessWorkflowRunner,c as MAKAIO_CONFIG_FILE_ENV,l as MAKAIO_HOME_ENV,Ec as MAKAIO_UPSTREAM_SECRET_ENV,Tc as MAKAIO_UPSTREAM_URL_ENV,Nc as NodeCredentialProvider,Lc as NodeFrameworkModuleResolver,Ic as NoopFrameworkModuleResolver,a as RuntimeSubjects,Pc as StoredCredentialProvider,re as ThinWorkflowPiscinaRunner,Os as WorkspaceRootNotFoundError,mr as activateAdapterRuntimeIdentity,xc as attachUpstreamTelemetry,wc as bootMakaioRuntime,Cc as bootMakaioRuntimeCore,cc as bridgeExtensionBrowserEntries,u as buildConfiguredRuntimeOptions,ac as buildExtensionBrowserRollupInputName,oc as buildExtensionBrowserRuntimeEntrypoint,jc as buildNodeRuntimeOptions,Qr as createHonoRouteGraph,ei as createHttpRouteGraphBuilder,d as createMakaioConfigDiscovery,Dc as createUpstreamTelemetryTransport,f as defineMakaioConfig,S as entrypointStem,ks as findWorkspaceRoot,As as findWorkspaceRootInfo,_i as initializeNodeDatabase,w as isCliContributionLike,y as isMakaioExtensionLike,ti as isMissingOptionalRuntimePackage,C as isWithinDirectory,T as loadExtensions,p as loadMakaioConfig,Ht as loadOrCreateMachineIdentity,Wt as machineKeysExist,Ys as normalizeNodeHostCapabilities,m as parseMakaioConfig,pr as prepareAdapterRuntime,uc as readFrameworkVersion,xn as registerAdapterNameResolver,di as resolveBundledMigrationsDir,b as resolveConventionEntrypoint,Rc as resolveFrameworkSpecifier,Zr as resolveListeningPort,h as resolveMakaioConfigPath,g as resolveMakaioHome,Yr as resolveStaticModelRegistryPath,Oc as resolveUpstreamTelemetryBootOptionsFromEnv,te as resolveWorkflowWorkerEntry,qr as runMigrations,ec as selectFrameworkCorePackages,_ as shouldIncludeExtension,ni as tryImport,Gt as validateMachineKeys,Xr as waitForServerListening};