@openpalm/ui 0.11.0-rc.2

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 (329) hide show
  1. package/README.md +129 -0
  2. package/build/.openpalm-ui-version +1 -0
  3. package/build/client/_app/immutable/assets/0.BK7X4bPu.css +1 -0
  4. package/build/client/_app/immutable/assets/0.BK7X4bPu.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.BK7X4bPu.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/4.D9MwgTDo.css +1 -0
  7. package/build/client/_app/immutable/assets/4.D9MwgTDo.css.br +0 -0
  8. package/build/client/_app/immutable/assets/4.D9MwgTDo.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +1 -0
  10. package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
  11. package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/6.DJenXolA.css +1 -0
  13. package/build/client/_app/immutable/assets/6.DJenXolA.css.br +0 -0
  14. package/build/client/_app/immutable/assets/6.DJenXolA.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/7.BHUsSUvX.css +1 -0
  16. package/build/client/_app/immutable/assets/7.BHUsSUvX.css.br +0 -0
  17. package/build/client/_app/immutable/assets/7.BHUsSUvX.css.gz +0 -0
  18. package/build/client/_app/immutable/assets/8.DjrHy5wu.css +1 -0
  19. package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
  20. package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
  21. package/build/client/_app/immutable/assets/AuthGate.BtJV-xXj.css +1 -0
  22. package/build/client/_app/immutable/assets/AuthGate.BtJV-xXj.css.br +0 -0
  23. package/build/client/_app/immutable/assets/AuthGate.BtJV-xXj.css.gz +0 -0
  24. package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css +1 -0
  25. package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css.br +0 -0
  26. package/build/client/_app/immutable/assets/VoiceProfileSelector.Dp7tWdKe.css.gz +0 -0
  27. package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
  28. package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
  31. package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/C8qMxft1.js +1 -0
  34. package/build/client/_app/immutable/chunks/C8qMxft1.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/C8qMxft1.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/Cb_i8bV9.js +1 -0
  37. package/build/client/_app/immutable/chunks/Cb_i8bV9.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/Cb_i8bV9.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/CzXGhlNF.js +1 -0
  40. package/build/client/_app/immutable/chunks/CzXGhlNF.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/CzXGhlNF.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/DYskO3Sk.js +5 -0
  43. package/build/client/_app/immutable/chunks/DYskO3Sk.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/DYskO3Sk.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/ak2ISc8B.js +1 -0
  46. package/build/client/_app/immutable/chunks/ak2ISc8B.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/ak2ISc8B.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
  49. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
  52. package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
  53. package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  55. package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
  56. package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
  57. package/build/client/_app/immutable/entry/app.C_eSlUyi.js +2 -0
  58. package/build/client/_app/immutable/entry/app.C_eSlUyi.js.br +0 -0
  59. package/build/client/_app/immutable/entry/app.C_eSlUyi.js.gz +0 -0
  60. package/build/client/_app/immutable/entry/start.BAta_Cih.js +1 -0
  61. package/build/client/_app/immutable/entry/start.BAta_Cih.js.br +0 -0
  62. package/build/client/_app/immutable/entry/start.BAta_Cih.js.gz +0 -0
  63. package/build/client/_app/immutable/nodes/0.Bi_of0So.js +1 -0
  64. package/build/client/_app/immutable/nodes/0.Bi_of0So.js.br +0 -0
  65. package/build/client/_app/immutable/nodes/0.Bi_of0So.js.gz +0 -0
  66. package/build/client/_app/immutable/nodes/1.qjZsjpWC.js +1 -0
  67. package/build/client/_app/immutable/nodes/1.qjZsjpWC.js.br +0 -0
  68. package/build/client/_app/immutable/nodes/1.qjZsjpWC.js.gz +0 -0
  69. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
  70. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
  73. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/4.BYtA2xx-.js +19 -0
  76. package/build/client/_app/immutable/nodes/4.BYtA2xx-.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/4.BYtA2xx-.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/5.ChSoAFFd.js +4 -0
  79. package/build/client/_app/immutable/nodes/5.ChSoAFFd.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/5.ChSoAFFd.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/6.BRG0vYmH.js +1 -0
  82. package/build/client/_app/immutable/nodes/6.BRG0vYmH.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/6.BRG0vYmH.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/7.BVvy1f_p.js +15 -0
  85. package/build/client/_app/immutable/nodes/7.BVvy1f_p.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/7.BVvy1f_p.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/8.Cb4MWMah.js +2 -0
  88. package/build/client/_app/immutable/nodes/8.Cb4MWMah.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/8.Cb4MWMah.js.gz +0 -0
  90. package/build/client/_app/version.json +1 -0
  91. package/build/client/_app/version.json.br +0 -0
  92. package/build/client/_app/version.json.gz +0 -0
  93. package/build/client/banner.png +0 -0
  94. package/build/client/fu-128.png +0 -0
  95. package/build/client/fu.png +0 -0
  96. package/build/client/logo-128.png +0 -0
  97. package/build/client/logo.png +0 -0
  98. package/build/client/setup/wizard.css +1639 -0
  99. package/build/client/setup/wizard.css.br +0 -0
  100. package/build/client/setup/wizard.css.gz +0 -0
  101. package/build/client/wizard-128.png +0 -0
  102. package/build/client/wizard.png +0 -0
  103. package/build/env.js +94 -0
  104. package/build/handler.js +1494 -0
  105. package/build/index.js +345 -0
  106. package/build/server/chunks/0-Dk6RRhi2.js +9 -0
  107. package/build/server/chunks/0-Dk6RRhi2.js.map +1 -0
  108. package/build/server/chunks/1-CWcY3PRs.js +9 -0
  109. package/build/server/chunks/1-CWcY3PRs.js.map +1 -0
  110. package/build/server/chunks/2-C2y4ydWU.js +9 -0
  111. package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
  112. package/build/server/chunks/3-BgeGdVvT.js +23 -0
  113. package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
  114. package/build/server/chunks/4-DeAt_mYc.js +9 -0
  115. package/build/server/chunks/4-DeAt_mYc.js.map +1 -0
  116. package/build/server/chunks/5-qTXiNPEM.js +9 -0
  117. package/build/server/chunks/5-qTXiNPEM.js.map +1 -0
  118. package/build/server/chunks/6-C444Mr69.js +9 -0
  119. package/build/server/chunks/6-C444Mr69.js.map +1 -0
  120. package/build/server/chunks/7-Dg_sVly5.js +9 -0
  121. package/build/server/chunks/7-Dg_sVly5.js.map +1 -0
  122. package/build/server/chunks/8-CF5kn4AY.js +9 -0
  123. package/build/server/chunks/8-CF5kn4AY.js.map +1 -0
  124. package/build/server/chunks/AuthGate-keg7G6rX.js +707 -0
  125. package/build/server/chunks/AuthGate-keg7G6rX.js.map +1 -0
  126. package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
  127. package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
  128. package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
  129. package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
  130. package/build/server/chunks/_layout.svelte-BNWepgTx.js +58 -0
  131. package/build/server/chunks/_layout.svelte-BNWepgTx.js.map +1 -0
  132. package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
  133. package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
  134. package/build/server/chunks/_page.svelte-BdYSYjmj.js +67 -0
  135. package/build/server/chunks/_page.svelte-BdYSYjmj.js.map +1 -0
  136. package/build/server/chunks/_page.svelte-BiKY57wg.js +533 -0
  137. package/build/server/chunks/_page.svelte-BiKY57wg.js.map +1 -0
  138. package/build/server/chunks/_page.svelte-CtX_8pMq.js +5528 -0
  139. package/build/server/chunks/_page.svelte-CtX_8pMq.js.map +1 -0
  140. package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
  141. package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
  142. package/build/server/chunks/_page.svelte-DwMiUmq6.js +107 -0
  143. package/build/server/chunks/_page.svelte-DwMiUmq6.js.map +1 -0
  144. package/build/server/chunks/_server.ts-0FuXkx70.js +56 -0
  145. package/build/server/chunks/_server.ts-0FuXkx70.js.map +1 -0
  146. package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
  147. package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
  148. package/build/server/chunks/_server.ts-5Q0J3F4-.js +55 -0
  149. package/build/server/chunks/_server.ts-5Q0J3F4-.js.map +1 -0
  150. package/build/server/chunks/_server.ts-AJk0xBLJ.js +46 -0
  151. package/build/server/chunks/_server.ts-AJk0xBLJ.js.map +1 -0
  152. package/build/server/chunks/_server.ts-AQe1PIYE.js +68 -0
  153. package/build/server/chunks/_server.ts-AQe1PIYE.js.map +1 -0
  154. package/build/server/chunks/_server.ts-B0N2Nj7L.js +44 -0
  155. package/build/server/chunks/_server.ts-B0N2Nj7L.js.map +1 -0
  156. package/build/server/chunks/_server.ts-BDBJ6fxs.js +67 -0
  157. package/build/server/chunks/_server.ts-BDBJ6fxs.js.map +1 -0
  158. package/build/server/chunks/_server.ts-BEeaI665.js +79 -0
  159. package/build/server/chunks/_server.ts-BEeaI665.js.map +1 -0
  160. package/build/server/chunks/_server.ts-BM4QuGQf.js +53 -0
  161. package/build/server/chunks/_server.ts-BM4QuGQf.js.map +1 -0
  162. package/build/server/chunks/_server.ts-BSIZMZVn.js +50 -0
  163. package/build/server/chunks/_server.ts-BSIZMZVn.js.map +1 -0
  164. package/build/server/chunks/_server.ts-BV-6Mum8.js +54 -0
  165. package/build/server/chunks/_server.ts-BV-6Mum8.js.map +1 -0
  166. package/build/server/chunks/_server.ts-BdnJF23z.js +44 -0
  167. package/build/server/chunks/_server.ts-BdnJF23z.js.map +1 -0
  168. package/build/server/chunks/_server.ts-Bfy4RFhe.js +41 -0
  169. package/build/server/chunks/_server.ts-Bfy4RFhe.js.map +1 -0
  170. package/build/server/chunks/_server.ts-Bhh33s6N.js +149 -0
  171. package/build/server/chunks/_server.ts-Bhh33s6N.js.map +1 -0
  172. package/build/server/chunks/_server.ts-BiSuK8jN.js +41 -0
  173. package/build/server/chunks/_server.ts-BiSuK8jN.js.map +1 -0
  174. package/build/server/chunks/_server.ts-BjiyoKWK.js +41 -0
  175. package/build/server/chunks/_server.ts-BjiyoKWK.js.map +1 -0
  176. package/build/server/chunks/_server.ts-BnEeEd9g.js +57 -0
  177. package/build/server/chunks/_server.ts-BnEeEd9g.js.map +1 -0
  178. package/build/server/chunks/_server.ts-Bq2dkWvj.js +33 -0
  179. package/build/server/chunks/_server.ts-Bq2dkWvj.js.map +1 -0
  180. package/build/server/chunks/_server.ts-Br16AqpO.js +82 -0
  181. package/build/server/chunks/_server.ts-Br16AqpO.js.map +1 -0
  182. package/build/server/chunks/_server.ts-BsZrddQT.js +200 -0
  183. package/build/server/chunks/_server.ts-BsZrddQT.js.map +1 -0
  184. package/build/server/chunks/_server.ts-Btbzy89u.js +65 -0
  185. package/build/server/chunks/_server.ts-Btbzy89u.js.map +1 -0
  186. package/build/server/chunks/_server.ts-BudQlGOx.js +70 -0
  187. package/build/server/chunks/_server.ts-BudQlGOx.js.map +1 -0
  188. package/build/server/chunks/_server.ts-BxPYakCb.js +59 -0
  189. package/build/server/chunks/_server.ts-BxPYakCb.js.map +1 -0
  190. package/build/server/chunks/_server.ts-ByyRcwFy.js +79 -0
  191. package/build/server/chunks/_server.ts-ByyRcwFy.js.map +1 -0
  192. package/build/server/chunks/_server.ts-C7rtn3mH.js +103 -0
  193. package/build/server/chunks/_server.ts-C7rtn3mH.js.map +1 -0
  194. package/build/server/chunks/_server.ts-C88qd-ju.js +46 -0
  195. package/build/server/chunks/_server.ts-C88qd-ju.js.map +1 -0
  196. package/build/server/chunks/_server.ts-CD6LeslU.js +55 -0
  197. package/build/server/chunks/_server.ts-CD6LeslU.js.map +1 -0
  198. package/build/server/chunks/_server.ts-CDlWxA5S.js +60 -0
  199. package/build/server/chunks/_server.ts-CDlWxA5S.js.map +1 -0
  200. package/build/server/chunks/_server.ts-CGqrfNlv.js +514 -0
  201. package/build/server/chunks/_server.ts-CGqrfNlv.js.map +1 -0
  202. package/build/server/chunks/_server.ts-CGwYZUuw.js +759 -0
  203. package/build/server/chunks/_server.ts-CGwYZUuw.js.map +1 -0
  204. package/build/server/chunks/_server.ts-CHVs0yya.js +54 -0
  205. package/build/server/chunks/_server.ts-CHVs0yya.js.map +1 -0
  206. package/build/server/chunks/_server.ts-CMEY6oQe.js +121 -0
  207. package/build/server/chunks/_server.ts-CMEY6oQe.js.map +1 -0
  208. package/build/server/chunks/_server.ts-CS73tiTY.js +63 -0
  209. package/build/server/chunks/_server.ts-CS73tiTY.js.map +1 -0
  210. package/build/server/chunks/_server.ts-CWwgmo8z.js +33 -0
  211. package/build/server/chunks/_server.ts-CWwgmo8z.js.map +1 -0
  212. package/build/server/chunks/_server.ts-CXzZeGlQ.js +55 -0
  213. package/build/server/chunks/_server.ts-CXzZeGlQ.js.map +1 -0
  214. package/build/server/chunks/_server.ts-C_kseo_y.js +72 -0
  215. package/build/server/chunks/_server.ts-C_kseo_y.js.map +1 -0
  216. package/build/server/chunks/_server.ts-Cbk-UThV.js +73 -0
  217. package/build/server/chunks/_server.ts-Cbk-UThV.js.map +1 -0
  218. package/build/server/chunks/_server.ts-CboRRTK1.js +139 -0
  219. package/build/server/chunks/_server.ts-CboRRTK1.js.map +1 -0
  220. package/build/server/chunks/_server.ts-CgD8-EFl.js +52 -0
  221. package/build/server/chunks/_server.ts-CgD8-EFl.js.map +1 -0
  222. package/build/server/chunks/_server.ts-Ci-q0BiD.js +79 -0
  223. package/build/server/chunks/_server.ts-Ci-q0BiD.js.map +1 -0
  224. package/build/server/chunks/_server.ts-Cn7ahHlk.js +44 -0
  225. package/build/server/chunks/_server.ts-Cn7ahHlk.js.map +1 -0
  226. package/build/server/chunks/_server.ts-Cy36-qGT.js +60 -0
  227. package/build/server/chunks/_server.ts-Cy36-qGT.js.map +1 -0
  228. package/build/server/chunks/_server.ts-CyFZ9OZQ.js +97 -0
  229. package/build/server/chunks/_server.ts-CyFZ9OZQ.js.map +1 -0
  230. package/build/server/chunks/_server.ts-D-UAqhor.js +33 -0
  231. package/build/server/chunks/_server.ts-D-UAqhor.js.map +1 -0
  232. package/build/server/chunks/_server.ts-D1cb1hmF.js +90 -0
  233. package/build/server/chunks/_server.ts-D1cb1hmF.js.map +1 -0
  234. package/build/server/chunks/_server.ts-D33gvU5B.js +65 -0
  235. package/build/server/chunks/_server.ts-D33gvU5B.js.map +1 -0
  236. package/build/server/chunks/_server.ts-DDwiNChJ.js +88 -0
  237. package/build/server/chunks/_server.ts-DDwiNChJ.js.map +1 -0
  238. package/build/server/chunks/_server.ts-DEnxvwcJ.js +46 -0
  239. package/build/server/chunks/_server.ts-DEnxvwcJ.js.map +1 -0
  240. package/build/server/chunks/_server.ts-DHXmcRrP.js +41 -0
  241. package/build/server/chunks/_server.ts-DHXmcRrP.js.map +1 -0
  242. package/build/server/chunks/_server.ts-DQxY-pHZ.js +64 -0
  243. package/build/server/chunks/_server.ts-DQxY-pHZ.js.map +1 -0
  244. package/build/server/chunks/_server.ts-DXNJ2LJu.js +83 -0
  245. package/build/server/chunks/_server.ts-DXNJ2LJu.js.map +1 -0
  246. package/build/server/chunks/_server.ts-Dbly1Fe-.js +96 -0
  247. package/build/server/chunks/_server.ts-Dbly1Fe-.js.map +1 -0
  248. package/build/server/chunks/_server.ts-DffjWMNC.js +53 -0
  249. package/build/server/chunks/_server.ts-DffjWMNC.js.map +1 -0
  250. package/build/server/chunks/_server.ts-Di-8UJYw.js +40 -0
  251. package/build/server/chunks/_server.ts-Di-8UJYw.js.map +1 -0
  252. package/build/server/chunks/_server.ts-DsEzCr9k.js +109 -0
  253. package/build/server/chunks/_server.ts-DsEzCr9k.js.map +1 -0
  254. package/build/server/chunks/_server.ts-DwXd92Ow.js +63 -0
  255. package/build/server/chunks/_server.ts-DwXd92Ow.js.map +1 -0
  256. package/build/server/chunks/_server.ts-DwjjO7L5.js +41 -0
  257. package/build/server/chunks/_server.ts-DwjjO7L5.js.map +1 -0
  258. package/build/server/chunks/_server.ts-DyEbcQS0.js +62 -0
  259. package/build/server/chunks/_server.ts-DyEbcQS0.js.map +1 -0
  260. package/build/server/chunks/_server.ts-HxcM6xQA.js +70 -0
  261. package/build/server/chunks/_server.ts-HxcM6xQA.js.map +1 -0
  262. package/build/server/chunks/_server.ts-JItoNB1Z.js +57 -0
  263. package/build/server/chunks/_server.ts-JItoNB1Z.js.map +1 -0
  264. package/build/server/chunks/_server.ts-KpT_vKKo.js +77 -0
  265. package/build/server/chunks/_server.ts-KpT_vKKo.js.map +1 -0
  266. package/build/server/chunks/_server.ts-WbY7XmtT.js +157 -0
  267. package/build/server/chunks/_server.ts-WbY7XmtT.js.map +1 -0
  268. package/build/server/chunks/_server.ts-Yy0BWsSd.js +70 -0
  269. package/build/server/chunks/_server.ts-Yy0BWsSd.js.map +1 -0
  270. package/build/server/chunks/_server.ts-b9yNYKW6.js +49 -0
  271. package/build/server/chunks/_server.ts-b9yNYKW6.js.map +1 -0
  272. package/build/server/chunks/_server.ts-bAJXjaCc.js +42 -0
  273. package/build/server/chunks/_server.ts-bAJXjaCc.js.map +1 -0
  274. package/build/server/chunks/_server.ts-cwRl-tZ-.js +40 -0
  275. package/build/server/chunks/_server.ts-cwRl-tZ-.js.map +1 -0
  276. package/build/server/chunks/_server.ts-hMTx0DC3.js +159 -0
  277. package/build/server/chunks/_server.ts-hMTx0DC3.js.map +1 -0
  278. package/build/server/chunks/_server.ts-l_HoZ2_I.js +163 -0
  279. package/build/server/chunks/_server.ts-l_HoZ2_I.js.map +1 -0
  280. package/build/server/chunks/_server.ts-uLRX2uy0.js +107 -0
  281. package/build/server/chunks/_server.ts-uLRX2uy0.js.map +1 -0
  282. package/build/server/chunks/_server.ts-uWfb47S6.js +204 -0
  283. package/build/server/chunks/_server.ts-uWfb47S6.js.map +1 -0
  284. package/build/server/chunks/addon-helpers-Bnj3aKJ2.js +49 -0
  285. package/build/server/chunks/addon-helpers-Bnj3aKJ2.js.map +1 -0
  286. package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
  287. package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
  288. package/build/server/chunks/coercion-TNFJisCC.js +34 -0
  289. package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
  290. package/build/server/chunks/config-CEYPfvQh.js +121 -0
  291. package/build/server/chunks/config-CEYPfvQh.js.map +1 -0
  292. package/build/server/chunks/dev-DjANv7AF.js +4389 -0
  293. package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
  294. package/build/server/chunks/docker-sGFTjRfy.js +20 -0
  295. package/build/server/chunks/docker-sGFTjRfy.js.map +1 -0
  296. package/build/server/chunks/endpoints-L7Wjvq44.js +340 -0
  297. package/build/server/chunks/endpoints-L7Wjvq44.js.map +1 -0
  298. package/build/server/chunks/environment-BnT49Gi3.js +36 -0
  299. package/build/server/chunks/environment-BnT49Gi3.js.map +1 -0
  300. package/build/server/chunks/error.svelte-PJnhZZCy.js +16 -0
  301. package/build/server/chunks/error.svelte-PJnhZZCy.js.map +1 -0
  302. package/build/server/chunks/exports-D1quPX8S.js +124 -0
  303. package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
  304. package/build/server/chunks/helpers-5jd3ccud.js +226 -0
  305. package/build/server/chunks/helpers-5jd3ccud.js.map +1 -0
  306. package/build/server/chunks/hooks.server-Al9-eO5K.js +82 -0
  307. package/build/server/chunks/hooks.server-Al9-eO5K.js.map +1 -0
  308. package/build/server/chunks/http-D5xo_m60.js +31 -0
  309. package/build/server/chunks/http-D5xo_m60.js.map +1 -0
  310. package/build/server/chunks/internal-CJBOAkaQ.js +1544 -0
  311. package/build/server/chunks/internal-CJBOAkaQ.js.map +1 -0
  312. package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
  313. package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
  314. package/build/server/chunks/setup-deploy-UKTSVAC0.js +529 -0
  315. package/build/server/chunks/setup-deploy-UKTSVAC0.js.map +1 -0
  316. package/build/server/chunks/src-FpMyngcw.js +14064 -0
  317. package/build/server/chunks/src-FpMyngcw.js.map +1 -0
  318. package/build/server/chunks/state-BI-lJPhE.js +203 -0
  319. package/build/server/chunks/state-BI-lJPhE.js.map +1 -0
  320. package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
  321. package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
  322. package/build/server/chunks/voice-state.svelte-CQp8u0bn.js +437 -0
  323. package/build/server/chunks/voice-state.svelte-CQp8u0bn.js.map +1 -0
  324. package/build/server/index.js +4359 -0
  325. package/build/server/index.js.map +1 -0
  326. package/build/server/manifest.js +570 -0
  327. package/build/server/manifest.js.map +1 -0
  328. package/build/shims.js +32 -0
  329. package/package.json +61 -0
@@ -0,0 +1,204 @@
1
+ import { i as authJsonPath } from './src-FpMyngcw.js';
2
+ import { b as getState } from './endpoints-L7Wjvq44.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-5jd3ccud.js';
4
+ import { b as asRecord, c as asString, a as asNumber, e as asStringRecord, d as asStringArray } from './coercion-TNFJisCC.js';
5
+ import { o as opencodeFetch } from './http-D5xo_m60.js';
6
+ import { g as getCurrentConfig } from './config-CEYPfvQh.js';
7
+ import { existsSync, readFileSync } from 'node:fs';
8
+ import './chunk-CLZ62Ad-.js';
9
+ import 'node:module';
10
+ import 'node:path';
11
+ import 'node:child_process';
12
+ import 'node:os';
13
+ import 'buffer';
14
+ import 'node:url';
15
+ import 'node:crypto';
16
+ import 'events';
17
+ import 'fs';
18
+ import 'node:events';
19
+ import 'node:stream';
20
+ import 'node:string_decoder';
21
+ import 'path';
22
+ import 'assert';
23
+ import 'zlib';
24
+ import 'node:assert';
25
+ import 'node:fs/promises';
26
+
27
+ //#region src/lib/server/opencode/catalog.ts
28
+ /**
29
+ * Provider catalog assembly.
30
+ *
31
+ * Pulls catalog/auth/config/configured-provider data from the OpenCode server
32
+ * (and the on-disk config), merges them, and emits ProviderView records the
33
+ * UI renders directly.
34
+ */
35
+ /**
36
+ * Map of provider ID → credential type, as found in OpenCode's auth.json.
37
+ * OpenCode's /provider response only reports env-var-detected providers in
38
+ * `connected`; auth.json-stored credentials (API keys + OAuth tokens) are
39
+ * loaded on-demand and don't appear there. We surface them here so the UI
40
+ * can treat them as connected and show the right badge.
41
+ */
42
+ function readAuthedProviders() {
43
+ const out = /* @__PURE__ */ new Map();
44
+ try {
45
+ const path = authJsonPath(getState());
46
+ if (!existsSync(path)) return out;
47
+ const data = JSON.parse(readFileSync(path, "utf-8"));
48
+ for (const [id, entry] of Object.entries(data ?? {})) {
49
+ const type = entry?.type === "oauth" ? "oauth" : "api";
50
+ out.set(id, type);
51
+ }
52
+ } catch {}
53
+ return out;
54
+ }
55
+ async function loadProviderPage() {
56
+ try {
57
+ const [catalog, auth, ocConfig, configured] = await Promise.all([
58
+ opencodeFetch("/provider"),
59
+ opencodeFetch("/provider/auth"),
60
+ opencodeFetch("/config"),
61
+ opencodeFetch("/config/providers")
62
+ ]);
63
+ const diskConfig = await getCurrentConfig();
64
+ const config = {
65
+ ...ocConfig,
66
+ provider: {
67
+ ...ocConfig.provider ?? {},
68
+ ...diskConfig.provider ?? {}
69
+ },
70
+ disabled_providers: diskConfig.disabled_providers ?? ocConfig.disabled_providers,
71
+ enabled_providers: diskConfig.enabled_providers ?? ocConfig.enabled_providers
72
+ };
73
+ const views = buildProviderViews(catalog, auth, config, configured, readAuthedProviders());
74
+ return {
75
+ available: true,
76
+ providers: views,
77
+ currentModel: config.model,
78
+ currentSmallModel: config.small_model,
79
+ defaultModels: catalog.default,
80
+ allowlistActive: Array.isArray(config.enabled_providers) && config.enabled_providers.length > 0,
81
+ providerCountLabel: `${views.length} providers indexed from OpenCode`,
82
+ stats: {
83
+ total: views.length,
84
+ connected: views.filter((p) => p.connected).length,
85
+ configured: views.filter((p) => p.configured).length,
86
+ disabled: views.filter((p) => p.disabled).length
87
+ }
88
+ };
89
+ } catch (error) {
90
+ return {
91
+ available: false,
92
+ error: error instanceof Error ? error.message : "Unable to reach the OpenCode server.",
93
+ providers: [],
94
+ defaultModels: {},
95
+ allowlistActive: false,
96
+ providerCountLabel: "The OpenCode server is currently unavailable.",
97
+ stats: {
98
+ total: 0,
99
+ connected: 0,
100
+ configured: 0,
101
+ disabled: 0
102
+ }
103
+ };
104
+ }
105
+ }
106
+ function extractAndSortModels(...sources) {
107
+ let entries = {};
108
+ for (const source of sources) {
109
+ const record = asModelRecord(source);
110
+ if (record) {
111
+ entries = record;
112
+ break;
113
+ }
114
+ }
115
+ return Object.entries(entries).map(([id, model]) => ({
116
+ id,
117
+ name: model.name ?? id
118
+ })).sort((left, right) => left.name.localeCompare(right.name));
119
+ }
120
+ function buildProviderViews(catalog, auth, config, configured, authed) {
121
+ const catalogMap = new Map(catalog.all.map((p) => [p.id, p]));
122
+ const envConnected = new Set(catalog.connected);
123
+ const connected = new Set([...envConnected, ...authed.keys()]);
124
+ const disabled = new Set(config.disabled_providers ?? []);
125
+ const allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;
126
+ const configuredMap = new Map(configured.providers.map((p) => [p.id, p]));
127
+ const providerIds = new Set([
128
+ ...catalog.all.map((p) => p.id),
129
+ ...Object.keys(config.provider ?? {}),
130
+ ...configured.providers.map((p) => p.id)
131
+ ]);
132
+ return Array.from(providerIds).map((providerId) => {
133
+ const entry = catalogMap.get(providerId);
134
+ const configEntry = asRecord(config.provider?.[providerId]);
135
+ const resolvedEntry = configuredMap.get(providerId);
136
+ const rawOptions = {
137
+ ...asRecord(resolvedEntry?.options),
138
+ ...asRecord(configEntry?.options)
139
+ };
140
+ const authMethods = (auth[providerId] ?? []).map((method, index) => ({
141
+ index,
142
+ type: method.type,
143
+ label: method.label,
144
+ prompts: method.prompts ?? []
145
+ }));
146
+ const models = extractAndSortModels(resolvedEntry?.models, configEntry?.models, entry?.models);
147
+ const currentModelId = splitModel(config.model, providerId);
148
+ const currentSmallModelId = splitModel(config.small_model, providerId);
149
+ const enabled = allowlist ? allowlist.has(providerId) && !disabled.has(providerId) : !disabled.has(providerId);
150
+ const isConnected = connected.has(providerId);
151
+ const isEnvConnected = envConnected.has(providerId);
152
+ const authedType = authed.get(providerId);
153
+ const credentialType = !isConnected ? void 0 : isEnvConnected ? "env" : authedType ? authedType : configEntry ? "config" : "custom";
154
+ return {
155
+ id: providerId,
156
+ name: resolvedEntry?.name ?? asString(configEntry?.name) ?? entry?.name ?? providerId,
157
+ source: resolvedEntry?.source ?? (entry ? configEntry ? "config" : "catalog" : "custom"),
158
+ env: resolvedEntry?.env ?? asStringArray(configEntry?.env) ?? entry?.env ?? [],
159
+ connected: isConnected,
160
+ configured: Boolean(resolvedEntry || configEntry),
161
+ disabled: !enabled,
162
+ activeMainModel: Boolean(currentModelId),
163
+ activeSmallModel: Boolean(currentSmallModelId),
164
+ recommendedModelId: currentModelId ?? configured.default[providerId] ?? catalog.default[providerId] ?? models[0]?.id ?? "",
165
+ modelCount: models.length,
166
+ models,
167
+ authMethods,
168
+ credentialType,
169
+ options: {
170
+ baseURL: asString(rawOptions.baseURL),
171
+ headers: asStringRecord(rawOptions.headers),
172
+ timeout: asNumber(rawOptions.timeout),
173
+ setCacheKey: rawOptions.setCacheKey === true,
174
+ enterpriseUrl: asString(rawOptions.enterpriseUrl)
175
+ },
176
+ supportsOauth: authMethods.some((m) => m.type === "oauth"),
177
+ supportsApiAuth: authMethods.some((m) => m.type === "api")
178
+ };
179
+ }).sort((left, right) => {
180
+ if (left.connected !== right.connected) return left.connected ? -1 : 1;
181
+ if (left.activeMainModel !== right.activeMainModel) return left.activeMainModel ? -1 : 1;
182
+ if (left.configured !== right.configured) return left.configured ? -1 : 1;
183
+ if (left.disabled !== right.disabled) return left.disabled ? 1 : -1;
184
+ return left.name.localeCompare(right.name);
185
+ });
186
+ }
187
+ function splitModel(model, providerId) {
188
+ if (!model?.startsWith(`${providerId}/`)) return void 0;
189
+ return model.slice(providerId.length + 1);
190
+ }
191
+ function asModelRecord(value) {
192
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
193
+ }
194
+ //#endregion
195
+ //#region src/routes/admin/providers/+server.ts
196
+ var GET = async (event) => {
197
+ const requestId = getRequestId(event);
198
+ const authError = requireAdmin(event, requestId);
199
+ if (authError) return authError;
200
+ return jsonResponse(200, await loadProviderPage(), requestId);
201
+ };
202
+
203
+ export { GET };
204
+ //# sourceMappingURL=_server.ts-uWfb47S6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-uWfb47S6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_server.ts.js"],"sourcesContent":["import { Et as authJsonPath } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { a as asStringRecord, i as asStringArray, n as asRecord, r as asString, t as asNumber } from \"../../../../chunks/coercion.js\";\nimport { t as opencodeFetch } from \"../../../../chunks/http.js\";\nimport { t as getCurrentConfig } from \"../../../../chunks/config.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/lib/server/opencode/catalog.ts\n/**\n* Provider catalog assembly.\n*\n* Pulls catalog/auth/config/configured-provider data from the OpenCode server\n* (and the on-disk config), merges them, and emits ProviderView records the\n* UI renders directly.\n*/\n/**\n* Map of provider ID → credential type, as found in OpenCode's auth.json.\n* OpenCode's /provider response only reports env-var-detected providers in\n* `connected`; auth.json-stored credentials (API keys + OAuth tokens) are\n* loaded on-demand and don't appear there. We surface them here so the UI\n* can treat them as connected and show the right badge.\n*/\nfunction readAuthedProviders() {\n\tconst out = /* @__PURE__ */ new Map();\n\ttry {\n\t\tconst path = authJsonPath(getState());\n\t\tif (!existsSync(path)) return out;\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\tfor (const [id, entry] of Object.entries(data ?? {})) {\n\t\t\tconst type = entry?.type === \"oauth\" ? \"oauth\" : \"api\";\n\t\t\tout.set(id, type);\n\t\t}\n\t} catch {}\n\treturn out;\n}\nasync function loadProviderPage() {\n\ttry {\n\t\tconst [catalog, auth, ocConfig, configured] = await Promise.all([\n\t\t\topencodeFetch(\"/provider\"),\n\t\t\topencodeFetch(\"/provider/auth\"),\n\t\t\topencodeFetch(\"/config\"),\n\t\t\topencodeFetch(\"/config/providers\")\n\t\t]);\n\t\tconst diskConfig = await getCurrentConfig();\n\t\tconst config = {\n\t\t\t...ocConfig,\n\t\t\tprovider: {\n\t\t\t\t...ocConfig.provider ?? {},\n\t\t\t\t...diskConfig.provider ?? {}\n\t\t\t},\n\t\t\tdisabled_providers: diskConfig.disabled_providers ?? ocConfig.disabled_providers,\n\t\t\tenabled_providers: diskConfig.enabled_providers ?? ocConfig.enabled_providers\n\t\t};\n\t\tconst views = buildProviderViews(catalog, auth, config, configured, readAuthedProviders());\n\t\treturn {\n\t\t\tavailable: true,\n\t\t\tproviders: views,\n\t\t\tcurrentModel: config.model,\n\t\t\tcurrentSmallModel: config.small_model,\n\t\t\tdefaultModels: catalog.default,\n\t\t\tallowlistActive: Array.isArray(config.enabled_providers) && config.enabled_providers.length > 0,\n\t\t\tproviderCountLabel: `${views.length} providers indexed from OpenCode`,\n\t\t\tstats: {\n\t\t\t\ttotal: views.length,\n\t\t\t\tconnected: views.filter((p) => p.connected).length,\n\t\t\t\tconfigured: views.filter((p) => p.configured).length,\n\t\t\t\tdisabled: views.filter((p) => p.disabled).length\n\t\t\t}\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tavailable: false,\n\t\t\terror: error instanceof Error ? error.message : \"Unable to reach the OpenCode server.\",\n\t\t\tproviders: [],\n\t\t\tdefaultModels: {},\n\t\t\tallowlistActive: false,\n\t\t\tproviderCountLabel: \"The OpenCode server is currently unavailable.\",\n\t\t\tstats: {\n\t\t\t\ttotal: 0,\n\t\t\t\tconnected: 0,\n\t\t\t\tconfigured: 0,\n\t\t\t\tdisabled: 0\n\t\t\t}\n\t\t};\n\t}\n}\nfunction extractAndSortModels(...sources) {\n\tlet entries = {};\n\tfor (const source of sources) {\n\t\tconst record = asModelRecord(source);\n\t\tif (record) {\n\t\t\tentries = record;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn Object.entries(entries).map(([id, model]) => ({\n\t\tid,\n\t\tname: model.name ?? id\n\t})).sort((left, right) => left.name.localeCompare(right.name));\n}\nfunction buildProviderViews(catalog, auth, config, configured, authed) {\n\tconst catalogMap = new Map(catalog.all.map((p) => [p.id, p]));\n\tconst envConnected = new Set(catalog.connected);\n\tconst connected = new Set([...envConnected, ...authed.keys()]);\n\tconst disabled = new Set(config.disabled_providers ?? []);\n\tconst allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;\n\tconst configuredMap = new Map(configured.providers.map((p) => [p.id, p]));\n\tconst providerIds = new Set([\n\t\t...catalog.all.map((p) => p.id),\n\t\t...Object.keys(config.provider ?? {}),\n\t\t...configured.providers.map((p) => p.id)\n\t]);\n\treturn Array.from(providerIds).map((providerId) => {\n\t\tconst entry = catalogMap.get(providerId);\n\t\tconst configEntry = asRecord(config.provider?.[providerId]);\n\t\tconst resolvedEntry = configuredMap.get(providerId);\n\t\tconst rawOptions = {\n\t\t\t...asRecord(resolvedEntry?.options),\n\t\t\t...asRecord(configEntry?.options)\n\t\t};\n\t\tconst authMethods = (auth[providerId] ?? []).map((method, index) => ({\n\t\t\tindex,\n\t\t\ttype: method.type,\n\t\t\tlabel: method.label,\n\t\t\tprompts: method.prompts ?? []\n\t\t}));\n\t\tconst models = extractAndSortModels(resolvedEntry?.models, configEntry?.models, entry?.models);\n\t\tconst currentModelId = splitModel(config.model, providerId);\n\t\tconst currentSmallModelId = splitModel(config.small_model, providerId);\n\t\tconst enabled = allowlist ? allowlist.has(providerId) && !disabled.has(providerId) : !disabled.has(providerId);\n\t\tconst isConnected = connected.has(providerId);\n\t\tconst isEnvConnected = envConnected.has(providerId);\n\t\tconst authedType = authed.get(providerId);\n\t\tconst credentialType = !isConnected ? void 0 : isEnvConnected ? \"env\" : authedType ? authedType : configEntry ? \"config\" : \"custom\";\n\t\treturn {\n\t\t\tid: providerId,\n\t\t\tname: resolvedEntry?.name ?? asString(configEntry?.name) ?? entry?.name ?? providerId,\n\t\t\tsource: resolvedEntry?.source ?? (entry ? configEntry ? \"config\" : \"catalog\" : \"custom\"),\n\t\t\tenv: resolvedEntry?.env ?? asStringArray(configEntry?.env) ?? entry?.env ?? [],\n\t\t\tconnected: isConnected,\n\t\t\tconfigured: Boolean(resolvedEntry || configEntry),\n\t\t\tdisabled: !enabled,\n\t\t\tactiveMainModel: Boolean(currentModelId),\n\t\t\tactiveSmallModel: Boolean(currentSmallModelId),\n\t\t\trecommendedModelId: currentModelId ?? configured.default[providerId] ?? catalog.default[providerId] ?? models[0]?.id ?? \"\",\n\t\t\tmodelCount: models.length,\n\t\t\tmodels,\n\t\t\tauthMethods,\n\t\t\tcredentialType,\n\t\t\toptions: {\n\t\t\t\tbaseURL: asString(rawOptions.baseURL),\n\t\t\t\theaders: asStringRecord(rawOptions.headers),\n\t\t\t\ttimeout: asNumber(rawOptions.timeout),\n\t\t\t\tsetCacheKey: rawOptions.setCacheKey === true,\n\t\t\t\tenterpriseUrl: asString(rawOptions.enterpriseUrl)\n\t\t\t},\n\t\t\tsupportsOauth: authMethods.some((m) => m.type === \"oauth\"),\n\t\t\tsupportsApiAuth: authMethods.some((m) => m.type === \"api\")\n\t\t};\n\t}).sort((left, right) => {\n\t\tif (left.connected !== right.connected) return left.connected ? -1 : 1;\n\t\tif (left.activeMainModel !== right.activeMainModel) return left.activeMainModel ? -1 : 1;\n\t\tif (left.configured !== right.configured) return left.configured ? -1 : 1;\n\t\tif (left.disabled !== right.disabled) return left.disabled ? 1 : -1;\n\t\treturn left.name.localeCompare(right.name);\n\t});\n}\nfunction splitModel(model, providerId) {\n\tif (!model?.startsWith(`${providerId}/`)) return void 0;\n\treturn model.slice(providerId.length + 1);\n}\nfunction asModelRecord(value) {\n\treturn value && typeof value === \"object\" && !Array.isArray(value) ? value : void 0;\n}\n//#endregion\n//#region src/routes/admin/providers/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, await loadProviderPage(), requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { a0 as listEnabledAddonIds, S as getAddonServiceNames, m as checkDocker, w as composeStop, k as buildComposeOptions, am as setAddonEnabled, y as createLogger } from './src-FpMyngcw.js';
2
+
3
+ //#region src/lib/server/addon-helpers.ts
4
+ /**
5
+ * Shared addon enable/disable logic for admin route handlers.
6
+ *
7
+ * Both /admin/addons and /admin/addons/:name share the same POST flow:
8
+ * validate → stop running services if disabling → mutate state → audit.
9
+ * This module houses the shared mutation step so neither route duplicates it.
10
+ */
11
+ var logger = createLogger("addon-helpers");
12
+ /**
13
+ * Stop running services if disabling, then call setAddonEnabled.
14
+ * Returns the mutation result with the final enabled state.
15
+ */
16
+ async function performAddonToggle(state, name, requestedEnabled, requestId) {
17
+ const wasEnabled = listEnabledAddonIds(state.homeDir).includes(name);
18
+ const nextEnabled = requestedEnabled !== void 0 ? requestedEnabled : wasEnabled;
19
+ if (!nextEnabled && wasEnabled) {
20
+ const serviceNames = getAddonServiceNames(state.homeDir, name);
21
+ if (serviceNames.length > 0) {
22
+ if ((await checkDocker()).ok) try {
23
+ await composeStop(serviceNames, buildComposeOptions(state));
24
+ logger.info("stopped addon services before disable", {
25
+ name,
26
+ services: serviceNames,
27
+ requestId
28
+ });
29
+ } catch (err) {
30
+ logger.warn("failed to stop addon services before disable", {
31
+ name,
32
+ services: serviceNames,
33
+ error: String(err),
34
+ requestId
35
+ });
36
+ }
37
+ }
38
+ }
39
+ const mutation = setAddonEnabled(state.homeDir, state.stackDir, name, nextEnabled);
40
+ if (!mutation.ok) return mutation;
41
+ return {
42
+ ok: true,
43
+ enabled: listEnabledAddonIds(state.homeDir).includes(name),
44
+ changed: mutation.changed
45
+ };
46
+ }
47
+
48
+ export { performAddonToggle as p };
49
+ //# sourceMappingURL=addon-helpers-Bnj3aKJ2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-helpers-Bnj3aKJ2.js","sources":["../../../.svelte-kit/adapter-node/chunks/addon-helpers.js"],"sourcesContent":["import { F as composeStop, Nt as createLogger, T as checkDocker, ct as setAddonEnabled, it as getAddonServiceNames, st as listEnabledAddonIds, w as buildComposeOptions } from \"./src.js\";\n//#region src/lib/server/addon-helpers.ts\n/**\n* Shared addon enable/disable logic for admin route handlers.\n*\n* Both /admin/addons and /admin/addons/:name share the same POST flow:\n* validate → stop running services if disabling → mutate state → audit.\n* This module houses the shared mutation step so neither route duplicates it.\n*/\nvar logger = createLogger(\"addon-helpers\");\n/**\n* Stop running services if disabling, then call setAddonEnabled.\n* Returns the mutation result with the final enabled state.\n*/\nasync function performAddonToggle(state, name, requestedEnabled, requestId) {\n\tconst wasEnabled = listEnabledAddonIds(state.homeDir).includes(name);\n\tconst nextEnabled = requestedEnabled !== void 0 ? requestedEnabled : wasEnabled;\n\tif (!nextEnabled && wasEnabled) {\n\t\tconst serviceNames = getAddonServiceNames(state.homeDir, name);\n\t\tif (serviceNames.length > 0) {\n\t\t\tif ((await checkDocker()).ok) try {\n\t\t\t\tawait composeStop(serviceNames, buildComposeOptions(state));\n\t\t\t\tlogger.info(\"stopped addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tlogger.warn(\"failed to stop addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\terror: String(err),\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst mutation = setAddonEnabled(state.homeDir, state.stackDir, name, nextEnabled, state);\n\tif (!mutation.ok) return mutation;\n\treturn {\n\t\tok: true,\n\t\tenabled: listEnabledAddonIds(state.homeDir).includes(name),\n\t\tchanged: mutation.changed\n\t};\n}\n//#endregion\nexport { performAddonToggle as t };\n"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA,eAAe,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE;AAC5E,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrE,CAAC,MAAM,WAAW,GAAG,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,UAAU;AAChF,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AACjC,EAAE,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AAChE,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI;AACrC,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;AACzD,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK;AACL,KAAK,CAAC;AACN,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;AAChE,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AACvB,KAAK;AACL,KAAK,CAAC;AACN,GAAG;AACH,EAAE;AACF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAkB,CAAC;AAC1F,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,QAAQ;AAClC,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,EAAE,OAAO,EAAE,QAAQ,CAAC;AACpB,EAAE;AACF;;;;"}
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';
2
+
3
+ //#region \0rolldown/runtime.js
4
+ var __defProp = Object.defineProperty;
5
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
6
+ var __exportAll = (all, no_symbols) => {
7
+ let target = {};
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ return target;
14
+ };
15
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
16
+
17
+ export { __commonJSMin as _, __exportAll as a, __require as b };
18
+ //# sourceMappingURL=chunk-CLZ62Ad-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-CLZ62Ad-.js","sources":["../../../.svelte-kit/adapter-node/chunks/chunk.js"],"sourcesContent":["import { createRequire } from \"node:module\";\n//#region \\0rolldown/runtime.js\nvar __defProp = Object.defineProperty;\nvar __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);\nvar __exportAll = (all, no_symbols) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\tif (!no_symbols) __defProp(target, Symbol.toStringTag, { value: \"Module\" });\n\treturn target;\n};\nvar __require = /* @__PURE__ */ createRequire(import.meta.url);\n//#endregion\nexport { __exportAll as n, __require as r, __commonJSMin as t };\n"],"names":[],"mappings":";;AACA;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc;AAClC,IAAC,aAAa,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO;AAC9G,IAAC,WAAW,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK;AACvC,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AAC/C,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAChB,EAAE,UAAU,EAAE;AACd,EAAE,CAAC;AACH,CAAkB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC5E,CAAC,OAAO,MAAM;AACd;AACG,IAAC,SAAS,mBAAmB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;;;;"}
@@ -0,0 +1,34 @@
1
+ //#region src/lib/server/coercion.ts
2
+ /**
3
+ * Shared `unknown` -> typed coercion helpers used by API routes and
4
+ * server-side logic that consumes opaque JSON (e.g. OpenCode config blobs).
5
+ *
6
+ * Each helper returns `undefined` when the value does not match the expected
7
+ * shape. Object helpers shallow-clone so callers can mutate without leaking
8
+ * back into shared state.
9
+ */
10
+ /** Narrow `unknown` to a plain-object record. Returns a shallow clone. */
11
+ function asRecord(value) {
12
+ return value && typeof value === "object" && !Array.isArray(value) ? { ...value } : void 0;
13
+ }
14
+ /** Narrow `unknown` to a string. */
15
+ function asString(value) {
16
+ return typeof value === "string" ? value : void 0;
17
+ }
18
+ /** Narrow `unknown` to a number. */
19
+ function asNumber(value) {
20
+ return typeof value === "number" ? value : void 0;
21
+ }
22
+ /** Narrow `unknown` to an array of strings. Drops non-string entries. */
23
+ function asStringArray(value) {
24
+ return Array.isArray(value) ? value.filter((e) => typeof e === "string") : void 0;
25
+ }
26
+ /** Narrow `unknown` to a `Record<string, string>`. Returns `undefined` when empty. */
27
+ function asStringRecord(value) {
28
+ if (!value || typeof value !== "object" || Array.isArray(value)) return void 0;
29
+ const entries = Object.entries(value).filter((e) => typeof e[1] === "string");
30
+ return entries.length > 0 ? Object.fromEntries(entries) : void 0;
31
+ }
32
+
33
+ export { asNumber as a, asRecord as b, asString as c, asStringArray as d, asStringRecord as e };
34
+ //# sourceMappingURL=coercion-TNFJisCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coercion-TNFJisCC.js","sources":["../../../.svelte-kit/adapter-node/chunks/coercion.js"],"sourcesContent":["//#region src/lib/server/coercion.ts\n/**\n* Shared `unknown` -> typed coercion helpers used by API routes and\n* server-side logic that consumes opaque JSON (e.g. OpenCode config blobs).\n*\n* Each helper returns `undefined` when the value does not match the expected\n* shape. Object helpers shallow-clone so callers can mutate without leaking\n* back into shared state.\n*/\n/** Narrow `unknown` to a plain-object record. Returns a shallow clone. */\nfunction asRecord(value) {\n\treturn value && typeof value === \"object\" && !Array.isArray(value) ? { ...value } : void 0;\n}\n/** Narrow `unknown` to a string. */\nfunction asString(value) {\n\treturn typeof value === \"string\" ? value : void 0;\n}\n/** Narrow `unknown` to a number. */\nfunction asNumber(value) {\n\treturn typeof value === \"number\" ? value : void 0;\n}\n/** Narrow `unknown` to an array of strings. Drops non-string entries. */\nfunction asStringArray(value) {\n\treturn Array.isArray(value) ? value.filter((e) => typeof e === \"string\") : void 0;\n}\n/** Narrow `unknown` to a `Record<string, string>`. Returns `undefined` when empty. */\nfunction asStringRecord(value) {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return void 0;\n\tconst entries = Object.entries(value).filter((e) => typeof e[1] === \"string\");\n\treturn entries.length > 0 ? Object.fromEntries(entries) : void 0;\n}\n//#endregion\nexport { asStringRecord as a, asStringArray as i, asRecord as n, asString as r, asNumber as t };\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,CAAC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AAC3F;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,CAAC,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM;AAClD;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,CAAC,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM;AAClD;AACA;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,GAAG,MAAM;AAClF;AACA;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,MAAM;AAC/E,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAC9E,CAAC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM;AACjE;;;;"}
@@ -0,0 +1,121 @@
1
+ import { b as asRecord } from './coercion-TNFJisCC.js';
2
+ import { o as opencodeFetch } from './http-D5xo_m60.js';
3
+ import { readFileSync, writeFileSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+
6
+ //#region src/lib/server/opencode/config.ts
7
+ /**
8
+ * OpenCode config read/write + small mutation helpers.
9
+ *
10
+ * Reads/writes `OP_HOME/config/assistant/opencode.json` directly because the
11
+ * container mount is read-only and OpenCode's PATCH /config does not persist
12
+ * to disk. We still call PATCH afterwards (best-effort) so the live process
13
+ * picks up the change without a restart.
14
+ */
15
+ function configPath() {
16
+ return join(process.env.OP_HOME ?? "", "config", "assistant", "opencode.json");
17
+ }
18
+ async function getCurrentConfig() {
19
+ try {
20
+ return JSON.parse(readFileSync(configPath(), "utf-8"));
21
+ } catch {
22
+ return opencodeFetch("/config");
23
+ }
24
+ }
25
+ async function patchConfig(config) {
26
+ let existing = {};
27
+ try {
28
+ existing = JSON.parse(readFileSync(configPath(), "utf-8"));
29
+ } catch {}
30
+ const merged = {
31
+ ...existing,
32
+ ...config
33
+ };
34
+ if (config.provider) merged.provider = {
35
+ ...existing.provider ?? {},
36
+ ...config.provider
37
+ };
38
+ writeFileSync(configPath(), JSON.stringify(merged, null, 2) + "\n");
39
+ await opencodeFetch("/config", {
40
+ method: "PATCH",
41
+ body: JSON.stringify(config)
42
+ }).catch(() => {});
43
+ return merged;
44
+ }
45
+ function normalizeProviderConfig(providerConfig) {
46
+ const normalized = providerConfig ? { ...providerConfig } : {};
47
+ const options = asRecord(normalized.options);
48
+ if (options && Object.keys(options).length === 0) delete normalized.options;
49
+ return Object.keys(normalized).length > 0 ? normalized : void 0;
50
+ }
51
+ function setProviderEnabled(config, providerId, enabled) {
52
+ const disabled = new Set(config.disabled_providers ?? []);
53
+ const allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;
54
+ if (enabled) {
55
+ disabled.delete(providerId);
56
+ allowlist?.add(providerId);
57
+ } else {
58
+ disabled.add(providerId);
59
+ allowlist?.delete(providerId);
60
+ }
61
+ config.disabled_providers = Array.from(disabled).sort();
62
+ if (allowlist) config.enabled_providers = Array.from(allowlist).sort();
63
+ return config;
64
+ }
65
+ /** Save non-credential connection options (baseURL, headers, timeout, etc.) for a provider. */
66
+ async function setProviderOptions(providerId, options) {
67
+ const config = await getCurrentConfig();
68
+ const providerConfig = { ...config.provider ?? {} };
69
+ const current = asRecord(providerConfig[providerId]) ?? {};
70
+ const nextOptions = { ...asRecord(current.options) ?? {} };
71
+ delete nextOptions.apiKey;
72
+ if (options.baseURL) nextOptions.baseURL = options.baseURL;
73
+ else delete nextOptions.baseURL;
74
+ if (options.enterpriseUrl) nextOptions.enterpriseUrl = options.enterpriseUrl;
75
+ else delete nextOptions.enterpriseUrl;
76
+ if (options.timeout !== void 0 && options.timeout > 0) nextOptions.timeout = options.timeout;
77
+ else delete nextOptions.timeout;
78
+ if (options.setCacheKey === true) nextOptions.setCacheKey = true;
79
+ else delete nextOptions.setCacheKey;
80
+ if (options.headers && Object.keys(options.headers).length > 0) nextOptions.headers = options.headers;
81
+ else delete nextOptions.headers;
82
+ const nextEntry = normalizeProviderConfig({
83
+ ...current,
84
+ options: nextOptions
85
+ });
86
+ if (nextEntry) providerConfig[providerId] = nextEntry;
87
+ else delete providerConfig[providerId];
88
+ config.provider = providerConfig;
89
+ await patchConfig(config);
90
+ }
91
+ /** Register a provider entry (local-detected or fully custom) in opencode.json. */
92
+ async function registerProvider(providerId, entry, overwrite = false) {
93
+ const config = await getCurrentConfig();
94
+ const providerConfig = { ...config.provider ?? {} };
95
+ if (providerConfig[providerId] && !overwrite) return { alreadyExists: true };
96
+ providerConfig[providerId] = {
97
+ ...asRecord(providerConfig[providerId]),
98
+ ...entry.npm !== void 0 ? { npm: entry.npm } : {},
99
+ ...entry.name !== void 0 ? { name: entry.name } : {},
100
+ ...entry.options !== void 0 ? { options: entry.options } : {},
101
+ ...entry.models !== void 0 ? { models: entry.models } : {}
102
+ };
103
+ config.provider = providerConfig;
104
+ await patchConfig(config);
105
+ return { alreadyExists: false };
106
+ }
107
+ /** Set the main model (or small model) in opencode.json. */
108
+ async function setMainModel(providerId, modelId, target) {
109
+ const config = await getCurrentConfig();
110
+ config[target] = `${providerId}/${modelId}`;
111
+ await patchConfig(config);
112
+ }
113
+ /** Clear the main model (or small model) in opencode.json. */
114
+ async function unsetMainModel(target) {
115
+ const config = await getCurrentConfig();
116
+ delete config[target];
117
+ await patchConfig(config);
118
+ }
119
+
120
+ export { setProviderEnabled as a, setProviderOptions as b, getCurrentConfig as g, patchConfig as p, registerProvider as r, setMainModel as s, unsetMainModel as u };
121
+ //# sourceMappingURL=config-CEYPfvQh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-CEYPfvQh.js","sources":["../../../.svelte-kit/adapter-node/chunks/config.js"],"sourcesContent":["import { n as asRecord } from \"./coercion.js\";\nimport { t as opencodeFetch } from \"./http.js\";\nimport { readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/lib/server/opencode/config.ts\n/**\n* OpenCode config read/write + small mutation helpers.\n*\n* Reads/writes `OP_HOME/config/assistant/opencode.json` directly because the\n* container mount is read-only and OpenCode's PATCH /config does not persist\n* to disk. We still call PATCH afterwards (best-effort) so the live process\n* picks up the change without a restart.\n*/\nfunction configPath() {\n\treturn join(process.env.OP_HOME ?? \"\", \"config\", \"assistant\", \"opencode.json\");\n}\nasync function getCurrentConfig() {\n\ttry {\n\t\treturn JSON.parse(readFileSync(configPath(), \"utf-8\"));\n\t} catch {\n\t\treturn opencodeFetch(\"/config\");\n\t}\n}\nasync function patchConfig(config) {\n\tlet existing = {};\n\ttry {\n\t\texisting = JSON.parse(readFileSync(configPath(), \"utf-8\"));\n\t} catch {}\n\tconst merged = {\n\t\t...existing,\n\t\t...config\n\t};\n\tif (config.provider) merged.provider = {\n\t\t...existing.provider ?? {},\n\t\t...config.provider\n\t};\n\twriteFileSync(configPath(), JSON.stringify(merged, null, 2) + \"\\n\");\n\tawait opencodeFetch(\"/config\", {\n\t\tmethod: \"PATCH\",\n\t\tbody: JSON.stringify(config)\n\t}).catch(() => {});\n\treturn merged;\n}\nfunction normalizeProviderConfig(providerConfig) {\n\tconst normalized = providerConfig ? { ...providerConfig } : {};\n\tconst options = asRecord(normalized.options);\n\tif (options && Object.keys(options).length === 0) delete normalized.options;\n\treturn Object.keys(normalized).length > 0 ? normalized : void 0;\n}\nfunction setProviderEnabled(config, providerId, enabled) {\n\tconst disabled = new Set(config.disabled_providers ?? []);\n\tconst allowlist = config.enabled_providers ? new Set(config.enabled_providers) : void 0;\n\tif (enabled) {\n\t\tdisabled.delete(providerId);\n\t\tallowlist?.add(providerId);\n\t} else {\n\t\tdisabled.add(providerId);\n\t\tallowlist?.delete(providerId);\n\t}\n\tconfig.disabled_providers = Array.from(disabled).sort();\n\tif (allowlist) config.enabled_providers = Array.from(allowlist).sort();\n\treturn config;\n}\n/** Save non-credential connection options (baseURL, headers, timeout, etc.) for a provider. */\nasync function setProviderOptions(providerId, options) {\n\tconst config = await getCurrentConfig();\n\tconst providerConfig = { ...config.provider ?? {} };\n\tconst current = asRecord(providerConfig[providerId]) ?? {};\n\tconst nextOptions = { ...asRecord(current.options) ?? {} };\n\tdelete nextOptions.apiKey;\n\tif (options.baseURL) nextOptions.baseURL = options.baseURL;\n\telse delete nextOptions.baseURL;\n\tif (options.enterpriseUrl) nextOptions.enterpriseUrl = options.enterpriseUrl;\n\telse delete nextOptions.enterpriseUrl;\n\tif (options.timeout !== void 0 && options.timeout > 0) nextOptions.timeout = options.timeout;\n\telse delete nextOptions.timeout;\n\tif (options.setCacheKey === true) nextOptions.setCacheKey = true;\n\telse delete nextOptions.setCacheKey;\n\tif (options.headers && Object.keys(options.headers).length > 0) nextOptions.headers = options.headers;\n\telse delete nextOptions.headers;\n\tconst nextEntry = normalizeProviderConfig({\n\t\t...current,\n\t\toptions: nextOptions\n\t});\n\tif (nextEntry) providerConfig[providerId] = nextEntry;\n\telse delete providerConfig[providerId];\n\tconfig.provider = providerConfig;\n\tawait patchConfig(config);\n}\n/** Register a provider entry (local-detected or fully custom) in opencode.json. */\nasync function registerProvider(providerId, entry, overwrite = false) {\n\tconst config = await getCurrentConfig();\n\tconst providerConfig = { ...config.provider ?? {} };\n\tif (providerConfig[providerId] && !overwrite) return { alreadyExists: true };\n\tproviderConfig[providerId] = {\n\t\t...asRecord(providerConfig[providerId]),\n\t\t...entry.npm !== void 0 ? { npm: entry.npm } : {},\n\t\t...entry.name !== void 0 ? { name: entry.name } : {},\n\t\t...entry.options !== void 0 ? { options: entry.options } : {},\n\t\t...entry.models !== void 0 ? { models: entry.models } : {}\n\t};\n\tconfig.provider = providerConfig;\n\tawait patchConfig(config);\n\treturn { alreadyExists: false };\n}\n/** Set the main model (or small model) in opencode.json. */\nasync function setMainModel(providerId, modelId, target) {\n\tconst config = await getCurrentConfig();\n\tconfig[target] = `${providerId}/${modelId}`;\n\tawait patchConfig(config);\n}\n/** Clear the main model (or small model) in opencode.json. */\nasync function unsetMainModel(target) {\n\tconst config = await getCurrentConfig();\n\tdelete config[target];\n\tawait patchConfig(config);\n}\n//#endregion\nexport { setProviderEnabled as a, setMainModel as i, patchConfig as n, setProviderOptions as o, registerProvider as r, unsetMainModel as s, getCurrentConfig as t };\n"],"names":[],"mappings":"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"}