@openpalm/ui 0.11.0-rc.10

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 (339) hide show
  1. package/README.md +160 -0
  2. package/build/.openpalm-ui-version +1 -0
  3. package/build/client/_app/immutable/assets/0.p3iHeEvq.css +1 -0
  4. package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/4.BakrtzGF.css +1 -0
  7. package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
  8. package/build/client/_app/immutable/assets/4.BakrtzGF.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.B0Z8tVIH.css +1 -0
  13. package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +1 -0
  14. package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
  15. package/build/client/_app/immutable/assets/7.Cucah5cY.css +1 -0
  16. package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
  17. package/build/client/_app/immutable/assets/7.Cucah5cY.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.B8fOC_pJ.css +1 -0
  22. package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
  23. package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
  24. package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +1 -0
  25. package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
  26. package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
  27. package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css +1 -0
  28. package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.br +0 -0
  29. package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.gz +0 -0
  30. package/build/client/_app/immutable/chunks/BDFsK-cU.js +5 -0
  31. package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/BOq4Y36A.js +1 -0
  34. package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/Bdvti_5C.js +1 -0
  37. package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
  40. package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
  43. package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/CJkMgfFh.js +1 -0
  46. package/build/client/_app/immutable/chunks/CJkMgfFh.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/CJkMgfFh.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/DQCVeARi.js +1 -0
  49. package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/DpdFx-ph.js +1 -0
  52. package/build/client/_app/immutable/chunks/DpdFx-ph.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/DpdFx-ph.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
  55. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
  58. package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
  59. package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  61. package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
  62. package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
  63. package/build/client/_app/immutable/entry/app.Coaz9qVz.js +2 -0
  64. package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
  65. package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
  66. package/build/client/_app/immutable/entry/start.CaHQB6hU.js +1 -0
  67. package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +1 -0
  68. package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
  69. package/build/client/_app/immutable/nodes/0.BUaVTC13.js +1 -0
  70. package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/1.DpM9NN8J.js +1 -0
  73. package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
  76. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
  79. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +18 -0
  82. package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/5.kb9iVd3S.js +4 -0
  85. package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/6.DtmDzmki.js +1 -0
  88. package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +15 -0
  91. package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +2 -0
  94. package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
  96. package/build/client/_app/version.json +1 -0
  97. package/build/client/_app/version.json.br +1 -0
  98. package/build/client/_app/version.json.gz +0 -0
  99. package/build/client/banner.png +0 -0
  100. package/build/client/fu-128.png +0 -0
  101. package/build/client/fu.png +0 -0
  102. package/build/client/logo-128.png +0 -0
  103. package/build/client/logo.png +0 -0
  104. package/build/client/setup/wizard.css +1639 -0
  105. package/build/client/setup/wizard.css.br +0 -0
  106. package/build/client/setup/wizard.css.gz +0 -0
  107. package/build/client/wizard-128.png +0 -0
  108. package/build/client/wizard.png +0 -0
  109. package/build/env.js +94 -0
  110. package/build/handler.js +1494 -0
  111. package/build/index.js +345 -0
  112. package/build/server/chunks/0-TTdZdv8o.js +9 -0
  113. package/build/server/chunks/0-TTdZdv8o.js.map +1 -0
  114. package/build/server/chunks/1-XPMbcj69.js +9 -0
  115. package/build/server/chunks/1-XPMbcj69.js.map +1 -0
  116. package/build/server/chunks/2-C2y4ydWU.js +9 -0
  117. package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
  118. package/build/server/chunks/3-BgeGdVvT.js +23 -0
  119. package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
  120. package/build/server/chunks/4-v8u4eatk.js +9 -0
  121. package/build/server/chunks/4-v8u4eatk.js.map +1 -0
  122. package/build/server/chunks/5-BkUoZ2K4.js +9 -0
  123. package/build/server/chunks/5-BkUoZ2K4.js.map +1 -0
  124. package/build/server/chunks/6-Cep4AGS2.js +9 -0
  125. package/build/server/chunks/6-Cep4AGS2.js.map +1 -0
  126. package/build/server/chunks/7-DOEFGynd.js +9 -0
  127. package/build/server/chunks/7-DOEFGynd.js.map +1 -0
  128. package/build/server/chunks/8-EJHw3wqt.js +9 -0
  129. package/build/server/chunks/8-EJHw3wqt.js.map +1 -0
  130. package/build/server/chunks/AuthGate-UhfWI3rb.js +741 -0
  131. package/build/server/chunks/AuthGate-UhfWI3rb.js.map +1 -0
  132. package/build/server/chunks/ModeSwitch-S3I-WINb.js +15 -0
  133. package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +1 -0
  134. package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
  135. package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
  136. package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
  137. package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
  138. package/build/server/chunks/_layout.svelte-CcloHuB_.js +60 -0
  139. package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +1 -0
  140. package/build/server/chunks/_page.svelte-9RQ3rYiU.js +69 -0
  141. package/build/server/chunks/_page.svelte-9RQ3rYiU.js.map +1 -0
  142. package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
  143. package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
  144. package/build/server/chunks/_page.svelte-CKARhLvT.js +408 -0
  145. package/build/server/chunks/_page.svelte-CKARhLvT.js.map +1 -0
  146. package/build/server/chunks/_page.svelte-CnZsPxgJ.js +5540 -0
  147. package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +1 -0
  148. package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
  149. package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
  150. package/build/server/chunks/_page.svelte-pxsCzB7-.js +106 -0
  151. package/build/server/chunks/_page.svelte-pxsCzB7-.js.map +1 -0
  152. package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
  153. package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
  154. package/build/server/chunks/_server.ts-5CjguYY3.js +514 -0
  155. package/build/server/chunks/_server.ts-5CjguYY3.js.map +1 -0
  156. package/build/server/chunks/_server.ts-B3tjtq2m.js +64 -0
  157. package/build/server/chunks/_server.ts-B3tjtq2m.js.map +1 -0
  158. package/build/server/chunks/_server.ts-B4N5gO26.js +70 -0
  159. package/build/server/chunks/_server.ts-B4N5gO26.js.map +1 -0
  160. package/build/server/chunks/_server.ts-B6FENZO7.js +82 -0
  161. package/build/server/chunks/_server.ts-B6FENZO7.js.map +1 -0
  162. package/build/server/chunks/_server.ts-B8JtVHLy.js +41 -0
  163. package/build/server/chunks/_server.ts-B8JtVHLy.js.map +1 -0
  164. package/build/server/chunks/_server.ts-BR9OrjcE.js +68 -0
  165. package/build/server/chunks/_server.ts-BR9OrjcE.js.map +1 -0
  166. package/build/server/chunks/_server.ts-BYVcXj0z.js +107 -0
  167. package/build/server/chunks/_server.ts-BYVcXj0z.js.map +1 -0
  168. package/build/server/chunks/_server.ts-BYdXdnje.js +97 -0
  169. package/build/server/chunks/_server.ts-BYdXdnje.js.map +1 -0
  170. package/build/server/chunks/_server.ts-BaxRyhZ8.js +44 -0
  171. package/build/server/chunks/_server.ts-BaxRyhZ8.js.map +1 -0
  172. package/build/server/chunks/_server.ts-BclZ3UFT.js +41 -0
  173. package/build/server/chunks/_server.ts-BclZ3UFT.js.map +1 -0
  174. package/build/server/chunks/_server.ts-Bd_I8GjG.js +60 -0
  175. package/build/server/chunks/_server.ts-Bd_I8GjG.js.map +1 -0
  176. package/build/server/chunks/_server.ts-Bdry_CdG.js +33 -0
  177. package/build/server/chunks/_server.ts-Bdry_CdG.js.map +1 -0
  178. package/build/server/chunks/_server.ts-Bg8OpPuA.js +65 -0
  179. package/build/server/chunks/_server.ts-Bg8OpPuA.js.map +1 -0
  180. package/build/server/chunks/_server.ts-BjrO7pvn.js +73 -0
  181. package/build/server/chunks/_server.ts-BjrO7pvn.js.map +1 -0
  182. package/build/server/chunks/_server.ts-BkoJOqrr.js +70 -0
  183. package/build/server/chunks/_server.ts-BkoJOqrr.js.map +1 -0
  184. package/build/server/chunks/_server.ts-Bl0YOh50.js +40 -0
  185. package/build/server/chunks/_server.ts-Bl0YOh50.js.map +1 -0
  186. package/build/server/chunks/_server.ts-BmZlEy27.js +55 -0
  187. package/build/server/chunks/_server.ts-BmZlEy27.js.map +1 -0
  188. package/build/server/chunks/_server.ts-Bq2S1OMq.js +163 -0
  189. package/build/server/chunks/_server.ts-Bq2S1OMq.js.map +1 -0
  190. package/build/server/chunks/_server.ts-BwHojI4i.js +59 -0
  191. package/build/server/chunks/_server.ts-BwHojI4i.js.map +1 -0
  192. package/build/server/chunks/_server.ts-C-lN2ZUO.js +33 -0
  193. package/build/server/chunks/_server.ts-C-lN2ZUO.js.map +1 -0
  194. package/build/server/chunks/_server.ts-C1DcK_rP.js +200 -0
  195. package/build/server/chunks/_server.ts-C1DcK_rP.js.map +1 -0
  196. package/build/server/chunks/_server.ts-C1y3X6iK.js +52 -0
  197. package/build/server/chunks/_server.ts-C1y3X6iK.js.map +1 -0
  198. package/build/server/chunks/_server.ts-C5s-OXCm.js +79 -0
  199. package/build/server/chunks/_server.ts-C5s-OXCm.js.map +1 -0
  200. package/build/server/chunks/_server.ts-CAKTZL2t.js +63 -0
  201. package/build/server/chunks/_server.ts-CAKTZL2t.js.map +1 -0
  202. package/build/server/chunks/_server.ts-CDtOOD3Q.js +83 -0
  203. package/build/server/chunks/_server.ts-CDtOOD3Q.js.map +1 -0
  204. package/build/server/chunks/_server.ts-CG409cWi.js +46 -0
  205. package/build/server/chunks/_server.ts-CG409cWi.js.map +1 -0
  206. package/build/server/chunks/_server.ts-CJL8da0o.js +56 -0
  207. package/build/server/chunks/_server.ts-CJL8da0o.js.map +1 -0
  208. package/build/server/chunks/_server.ts-CLBKpKeH.js +204 -0
  209. package/build/server/chunks/_server.ts-CLBKpKeH.js.map +1 -0
  210. package/build/server/chunks/_server.ts-CLiYOnOv.js +50 -0
  211. package/build/server/chunks/_server.ts-CLiYOnOv.js.map +1 -0
  212. package/build/server/chunks/_server.ts-CMvY0ZDz.js +101 -0
  213. package/build/server/chunks/_server.ts-CMvY0ZDz.js.map +1 -0
  214. package/build/server/chunks/_server.ts-CQqURrHY.js +41 -0
  215. package/build/server/chunks/_server.ts-CQqURrHY.js.map +1 -0
  216. package/build/server/chunks/_server.ts-CSgPjCYv.js +79 -0
  217. package/build/server/chunks/_server.ts-CSgPjCYv.js.map +1 -0
  218. package/build/server/chunks/_server.ts-C_fNO73y.js +44 -0
  219. package/build/server/chunks/_server.ts-C_fNO73y.js.map +1 -0
  220. package/build/server/chunks/_server.ts-CcTt5aAs.js +41 -0
  221. package/build/server/chunks/_server.ts-CcTt5aAs.js.map +1 -0
  222. package/build/server/chunks/_server.ts-CfLbEufw.js +53 -0
  223. package/build/server/chunks/_server.ts-CfLbEufw.js.map +1 -0
  224. package/build/server/chunks/_server.ts-CqHMhINi.js +53 -0
  225. package/build/server/chunks/_server.ts-CqHMhINi.js.map +1 -0
  226. package/build/server/chunks/_server.ts-CrU9r7-F.js +88 -0
  227. package/build/server/chunks/_server.ts-CrU9r7-F.js.map +1 -0
  228. package/build/server/chunks/_server.ts-CtZuKotA.js +70 -0
  229. package/build/server/chunks/_server.ts-CtZuKotA.js.map +1 -0
  230. package/build/server/chunks/_server.ts-D-sjM5kn.js +103 -0
  231. package/build/server/chunks/_server.ts-D-sjM5kn.js.map +1 -0
  232. package/build/server/chunks/_server.ts-D2wlMMJl.js +41 -0
  233. package/build/server/chunks/_server.ts-D2wlMMJl.js.map +1 -0
  234. package/build/server/chunks/_server.ts-D7L27_xI.js +65 -0
  235. package/build/server/chunks/_server.ts-D7L27_xI.js.map +1 -0
  236. package/build/server/chunks/_server.ts-DMKIHwKi.js +90 -0
  237. package/build/server/chunks/_server.ts-DMKIHwKi.js.map +1 -0
  238. package/build/server/chunks/_server.ts-DTyZan5L.js +33 -0
  239. package/build/server/chunks/_server.ts-DTyZan5L.js.map +1 -0
  240. package/build/server/chunks/_server.ts-DVekHgMN.js +96 -0
  241. package/build/server/chunks/_server.ts-DVekHgMN.js.map +1 -0
  242. package/build/server/chunks/_server.ts-DWLkr6Qg.js +54 -0
  243. package/build/server/chunks/_server.ts-DWLkr6Qg.js.map +1 -0
  244. package/build/server/chunks/_server.ts-DWN6TJv0.js +149 -0
  245. package/build/server/chunks/_server.ts-DWN6TJv0.js.map +1 -0
  246. package/build/server/chunks/_server.ts-D_dO8hvJ.js +56 -0
  247. package/build/server/chunks/_server.ts-D_dO8hvJ.js.map +1 -0
  248. package/build/server/chunks/_server.ts-Da9y6lio.js +82 -0
  249. package/build/server/chunks/_server.ts-Da9y6lio.js.map +1 -0
  250. package/build/server/chunks/_server.ts-DbO3cg55.js +54 -0
  251. package/build/server/chunks/_server.ts-DbO3cg55.js.map +1 -0
  252. package/build/server/chunks/_server.ts-DclRsTpW.js +44 -0
  253. package/build/server/chunks/_server.ts-DclRsTpW.js.map +1 -0
  254. package/build/server/chunks/_server.ts-DdlF1vjy.js +159 -0
  255. package/build/server/chunks/_server.ts-DdlF1vjy.js.map +1 -0
  256. package/build/server/chunks/_server.ts-De7IOs2z.js +759 -0
  257. package/build/server/chunks/_server.ts-De7IOs2z.js.map +1 -0
  258. package/build/server/chunks/_server.ts-DmyOp1yq.js +40 -0
  259. package/build/server/chunks/_server.ts-DmyOp1yq.js.map +1 -0
  260. package/build/server/chunks/_server.ts-DnKTcT9x.js +46 -0
  261. package/build/server/chunks/_server.ts-DnKTcT9x.js.map +1 -0
  262. package/build/server/chunks/_server.ts-Dq82kHyx.js +72 -0
  263. package/build/server/chunks/_server.ts-Dq82kHyx.js.map +1 -0
  264. package/build/server/chunks/_server.ts-DqVJ1NqI.js +55 -0
  265. package/build/server/chunks/_server.ts-DqVJ1NqI.js.map +1 -0
  266. package/build/server/chunks/_server.ts-DzWtvjem.js +46 -0
  267. package/build/server/chunks/_server.ts-DzWtvjem.js.map +1 -0
  268. package/build/server/chunks/_server.ts-EZS5Qan4.js +62 -0
  269. package/build/server/chunks/_server.ts-EZS5Qan4.js.map +1 -0
  270. package/build/server/chunks/_server.ts-I0iKpsyr.js +77 -0
  271. package/build/server/chunks/_server.ts-I0iKpsyr.js.map +1 -0
  272. package/build/server/chunks/_server.ts-P4pmd9NX.js +55 -0
  273. package/build/server/chunks/_server.ts-P4pmd9NX.js.map +1 -0
  274. package/build/server/chunks/_server.ts-UF_kxNaU.js +79 -0
  275. package/build/server/chunks/_server.ts-UF_kxNaU.js.map +1 -0
  276. package/build/server/chunks/_server.ts-b3mVtmkb.js +121 -0
  277. package/build/server/chunks/_server.ts-b3mVtmkb.js.map +1 -0
  278. package/build/server/chunks/_server.ts-dhkEt2p6.js +63 -0
  279. package/build/server/chunks/_server.ts-dhkEt2p6.js.map +1 -0
  280. package/build/server/chunks/_server.ts-eK_9jY-9.js +67 -0
  281. package/build/server/chunks/_server.ts-eK_9jY-9.js.map +1 -0
  282. package/build/server/chunks/_server.ts-fsEmx9mw.js +42 -0
  283. package/build/server/chunks/_server.ts-fsEmx9mw.js.map +1 -0
  284. package/build/server/chunks/_server.ts-l4CK3c4j.js +109 -0
  285. package/build/server/chunks/_server.ts-l4CK3c4j.js.map +1 -0
  286. package/build/server/chunks/_server.ts-otJRaSSq.js +139 -0
  287. package/build/server/chunks/_server.ts-otJRaSSq.js.map +1 -0
  288. package/build/server/chunks/_server.ts-rXhjnBtw.js +49 -0
  289. package/build/server/chunks/_server.ts-rXhjnBtw.js.map +1 -0
  290. package/build/server/chunks/_server.ts-wZ88P3nX.js +157 -0
  291. package/build/server/chunks/_server.ts-wZ88P3nX.js.map +1 -0
  292. package/build/server/chunks/_server.ts-xO4nhxDx.js +60 -0
  293. package/build/server/chunks/_server.ts-xO4nhxDx.js.map +1 -0
  294. package/build/server/chunks/_server.ts-yimewsjO.js +57 -0
  295. package/build/server/chunks/_server.ts-yimewsjO.js.map +1 -0
  296. package/build/server/chunks/addon-helpers-BpnH-GEc.js +49 -0
  297. package/build/server/chunks/addon-helpers-BpnH-GEc.js.map +1 -0
  298. package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
  299. package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
  300. package/build/server/chunks/coercion-TNFJisCC.js +34 -0
  301. package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
  302. package/build/server/chunks/config-0LFudKuE.js +121 -0
  303. package/build/server/chunks/config-0LFudKuE.js.map +1 -0
  304. package/build/server/chunks/dev-DjANv7AF.js +4389 -0
  305. package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
  306. package/build/server/chunks/docker-B23w4kr6.js +20 -0
  307. package/build/server/chunks/docker-B23w4kr6.js.map +1 -0
  308. package/build/server/chunks/endpoints-Drq_J-2Z.js +340 -0
  309. package/build/server/chunks/endpoints-Drq_J-2Z.js.map +1 -0
  310. package/build/server/chunks/error.svelte-ByNznOuj.js +16 -0
  311. package/build/server/chunks/error.svelte-ByNznOuj.js.map +1 -0
  312. package/build/server/chunks/exports-D1quPX8S.js +124 -0
  313. package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
  314. package/build/server/chunks/helpers-CX6xRBmt.js +226 -0
  315. package/build/server/chunks/helpers-CX6xRBmt.js.map +1 -0
  316. package/build/server/chunks/hooks.server-BEVMYNQ4.js +86 -0
  317. package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
  318. package/build/server/chunks/http-VqOG8hyj.js +31 -0
  319. package/build/server/chunks/http-VqOG8hyj.js.map +1 -0
  320. package/build/server/chunks/internal-CeK24Lte.js +1544 -0
  321. package/build/server/chunks/internal-CeK24Lte.js.map +1 -0
  322. package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
  323. package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
  324. package/build/server/chunks/setup-deploy-B4oSSFYi.js +529 -0
  325. package/build/server/chunks/setup-deploy-B4oSSFYi.js.map +1 -0
  326. package/build/server/chunks/src-BkvQ5Uuf.js +14082 -0
  327. package/build/server/chunks/src-BkvQ5Uuf.js.map +1 -0
  328. package/build/server/chunks/state-D7JS-l_D.js +203 -0
  329. package/build/server/chunks/state-D7JS-l_D.js.map +1 -0
  330. package/build/server/chunks/theme-state.svelte-PtPMmKGN.js +520 -0
  331. package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +1 -0
  332. package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
  333. package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
  334. package/build/server/index.js +4389 -0
  335. package/build/server/index.js.map +1 -0
  336. package/build/server/manifest.js +584 -0
  337. package/build/server/manifest.js.map +1 -0
  338. package/build/shims.js +32 -0
  339. package/package.json +68 -0
@@ -0,0 +1,79 @@
1
+ import { ag as removeTaskFile, ad as readTaskFile, au as writeTaskFile, h as assertSafeTaskFilename } from './src-BkvQ5Uuf.js';
2
+ import { b as getState } from './endpoints-Drq_J-2Z.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-CX6xRBmt.js';
4
+ import './chunk-CLZ62Ad-.js';
5
+ import 'node:module';
6
+ import 'node:fs';
7
+ import 'node:path';
8
+ import 'node:child_process';
9
+ import 'node:os';
10
+ import 'buffer';
11
+ import 'node:url';
12
+ import 'node:crypto';
13
+ import 'events';
14
+ import 'fs';
15
+ import 'node:events';
16
+ import 'node:stream';
17
+ import 'node:string_decoder';
18
+ import 'path';
19
+ import 'assert';
20
+ import 'zlib';
21
+ import 'node:assert';
22
+ import 'node:fs/promises';
23
+
24
+ //#region src/routes/admin/automations/[name]/file/+server.ts
25
+ function guard(name, requestId) {
26
+ try {
27
+ assertSafeTaskFilename(name);
28
+ return null;
29
+ } catch (err) {
30
+ return errorResponse(400, "bad_request", err.message, {}, requestId);
31
+ }
32
+ }
33
+ var GET = async (event) => {
34
+ const requestId = getRequestId(event);
35
+ const authError = requireAdmin(event, requestId);
36
+ if (authError) return authError;
37
+ const name = event.params.name;
38
+ const bad = guard(name, requestId);
39
+ if (bad) return bad;
40
+ const content = readTaskFile(getState().stashDir, name);
41
+ if (content === null) return errorResponse(404, "not_found", `Task file not found: ${name}`, {}, requestId);
42
+ return jsonResponse(200, {
43
+ name,
44
+ content
45
+ }, requestId);
46
+ };
47
+ var PUT = async (event) => {
48
+ const requestId = getRequestId(event);
49
+ const authError = requireAdmin(event, requestId);
50
+ if (authError) return authError;
51
+ const name = event.params.name;
52
+ const bad = guard(name, requestId);
53
+ if (bad) return bad;
54
+ const result = await parseJsonBody(event.request);
55
+ if ("error" in result) return jsonBodyError(result, requestId);
56
+ const content = result.data.content;
57
+ if (typeof content !== "string") return errorResponse(400, "bad_request", "content must be a string", {}, requestId);
58
+ writeTaskFile(getState().stashDir, name, content);
59
+ return jsonResponse(200, {
60
+ ok: true,
61
+ name
62
+ }, requestId);
63
+ };
64
+ var DELETE = async (event) => {
65
+ const requestId = getRequestId(event);
66
+ const authError = requireAdmin(event, requestId);
67
+ if (authError) return authError;
68
+ const name = event.params.name;
69
+ const bad = guard(name, requestId);
70
+ if (bad) return bad;
71
+ removeTaskFile(getState().stashDir, name);
72
+ return jsonResponse(200, {
73
+ ok: true,
74
+ name
75
+ }, requestId);
76
+ };
77
+
78
+ export { DELETE, GET, PUT };
79
+ //# sourceMappingURL=_server.ts-C5s-OXCm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-C5s-OXCm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/file/_server.ts.js"],"sourcesContent":["import { Q as writeTaskFile, X as readTaskFile, Y as assertSafeTaskFilename, Z as removeTaskFile } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/[name]/file/+server.ts\nfunction guard(name, requestId) {\n\ttry {\n\t\tassertSafeTaskFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tconst content = readTaskFile(getState().stashDir, name);\n\tif (content === null) return errorResponse(404, \"not_found\", `Task file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tcontent\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst content = result.data.content;\n\tif (typeof content !== \"string\") return errorResponse(400, \"bad_request\", \"content must be a string\", {}, requestId);\n\twriteTaskFile(getState().stashDir, name, content);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guard(name, requestId);\n\tif (bad) return bad;\n\tremoveTaskFile(getState().stashDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { a0 as listEnabledAddonIds, $ as listAvailableAddonIds } from './src-BkvQ5Uuf.js';
2
+ import { b as getState } from './endpoints-Drq_J-2Z.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-CX6xRBmt.js';
4
+ import { p as performAddonToggle } from './addon-helpers-BpnH-GEc.js';
5
+ import './chunk-CLZ62Ad-.js';
6
+ import 'node:module';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:child_process';
10
+ import 'node:os';
11
+ import 'buffer';
12
+ import 'node:url';
13
+ import 'node:crypto';
14
+ import 'events';
15
+ import 'fs';
16
+ import 'node:events';
17
+ import 'node:stream';
18
+ import 'node:string_decoder';
19
+ import 'path';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+
25
+ //#region src/routes/admin/addons/+server.ts
26
+ function buildAddonList(availableIds, enabledIds) {
27
+ const enabledSet = new Set(enabledIds);
28
+ return availableIds.map((name) => ({
29
+ name,
30
+ enabled: enabledSet.has(name),
31
+ available: true
32
+ }));
33
+ }
34
+ var GET = async (event) => {
35
+ const requestId = getRequestId(event);
36
+ const authErr = requireAdmin(event, requestId);
37
+ if (authErr) return authErr;
38
+ const state = getState();
39
+ return jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);
40
+ };
41
+ var POST = async (event) => {
42
+ const requestId = getRequestId(event);
43
+ const authErr = requireAdmin(event, requestId);
44
+ if (authErr) return authErr;
45
+ const state = getState();
46
+ const result = await parseJsonBody(event.request);
47
+ if ("error" in result) return jsonBodyError(result, requestId);
48
+ const body = result.data;
49
+ const name = typeof body.name === "string" ? body.name.trim() : "";
50
+ if (!name) return errorResponse(400, "bad_request", "name is required", {}, requestId);
51
+ if (!listAvailableAddonIds().includes(name)) return errorResponse(404, "not_found", `Addon "${name}" is not available`, { name }, requestId);
52
+ const toggle = await performAddonToggle(state, name, typeof body.enabled === "boolean" ? body.enabled : void 0, requestId);
53
+ if (!toggle.ok) return errorResponse(500, "internal_error", toggle.error, {}, requestId);
54
+ return jsonResponse(200, {
55
+ ok: true,
56
+ addon: name,
57
+ enabled: toggle.enabled,
58
+ changed: toggle.changed
59
+ }, requestId);
60
+ };
61
+
62
+ export { GET, POST };
63
+ //# sourceMappingURL=_server.ts-CAKTZL2t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CAKTZL2t.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_server.ts.js"],"sourcesContent":["import { ot as listAvailableAddonIds, st as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../chunks/helpers.js\";\nimport { t as performAddonToggle } from \"../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/+server.ts\nfunction buildAddonList(availableIds, enabledIds) {\n\tconst enabledSet = new Set(enabledIds);\n\treturn availableIds.map((name) => ({\n\t\tname,\n\t\tenabled: enabledSet.has(name),\n\t\tavailable: true\n\t}));\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\treturn jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst name = typeof body.name === \"string\" ? body.name.trim() : \"\";\n\tif (!name) return errorResponse(400, \"bad_request\", \"name is required\", {}, requestId);\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,SAAS,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;AAClD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACvC,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACpC,EAAE,IAAI;AACN,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,SAAS,EAAE;AACb,EAAE,CAAC,CAAC;AACJ;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,qBAAqB,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAC7H;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AACnE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC7I,CAAC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;AAC3H,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC;AACzF,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,OAAO,EAAE,MAAM,CAAC;AAClB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -0,0 +1,83 @@
1
+ import { y as createLogger, J as ensureHomeDirs, K as ensureOpenCodeConfig, L as ensureOpenCodeSystemConfig, M as ensureSecrets, c as applyInstall, l as buildManagedServices, m as checkDocker, x as composeUp, k as buildComposeOptions, C as CORE_SERVICES } from './src-BkvQ5Uuf.js';
2
+ import { b as getState } from './endpoints-Drq_J-2Z.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse } from './helpers-CX6xRBmt.js';
4
+ import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
+ import './chunk-CLZ62Ad-.js';
6
+ import 'node:module';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:child_process';
10
+ import 'node:os';
11
+ import 'buffer';
12
+ import 'node:url';
13
+ import 'node:crypto';
14
+ import 'events';
15
+ import 'fs';
16
+ import 'node:events';
17
+ import 'node:stream';
18
+ import 'node:string_decoder';
19
+ import 'path';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+
25
+ //#region src/routes/admin/install/+server.ts
26
+ var logger = createLogger("install");
27
+ var POST = async (event) => {
28
+ const requestId = getRequestId(event);
29
+ logger.info("install request received", { requestId });
30
+ const authError = requireAdmin(event, requestId);
31
+ if (authError) return authError;
32
+ return withSerialQueue("admin:install", async () => {
33
+ try {
34
+ const state = getState();
35
+ logger.info("ensuring home directories and seeding config", { requestId });
36
+ ensureHomeDirs();
37
+ ensureOpenCodeConfig();
38
+ ensureOpenCodeSystemConfig();
39
+ ensureSecrets(state);
40
+ await applyInstall(state);
41
+ const managedServices = await buildManagedServices(state);
42
+ logger.info("checking Docker availability", { requestId });
43
+ const dockerCheck = await checkDocker();
44
+ let dockerResult = null;
45
+ if (dockerCheck.ok) {
46
+ logger.info("starting compose up", {
47
+ requestId,
48
+ services: managedServices
49
+ });
50
+ dockerResult = await composeUp({
51
+ ...buildComposeOptions(state),
52
+ services: managedServices
53
+ });
54
+ }
55
+ const started = [...CORE_SERVICES];
56
+ logger.info("install completed", {
57
+ requestId,
58
+ started,
59
+ dockerAvailable: dockerCheck.ok,
60
+ composeOk: dockerResult?.ok ?? null
61
+ });
62
+ return jsonResponse(200, {
63
+ ok: true,
64
+ started,
65
+ dockerAvailable: dockerCheck.ok,
66
+ composeResult: dockerResult ? {
67
+ ok: dockerResult.ok,
68
+ stderr: dockerResult.stderr
69
+ } : null
70
+ }, requestId);
71
+ } catch (err) {
72
+ const msg = err instanceof Error ? err.message : String(err);
73
+ logger.error("install failed", {
74
+ requestId,
75
+ error: msg
76
+ });
77
+ return errorResponse(500, "install_failed", msg, {}, requestId);
78
+ }
79
+ });
80
+ };
81
+
82
+ export { POST };
83
+ //# sourceMappingURL=_server.ts-CDtOOD3Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CDtOOD3Q.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { I as composeUp, Mt as CORE_SERVICES, Nt as createLogger, T as checkDocker, _ as applyInstall, ht as ensureSecrets, kt as ensureHomeDirs, mt as ensureOpenCodeConfig, pt as ensureOpenCodeSystemConfig, w as buildComposeOptions, x as buildManagedServices } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tlogger.info(\"ensuring home directories and seeding config\", { requestId });\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tensureSecrets(state);\n\t\t\tawait applyInstall(state);\n\t\t\tconst managedServices = await buildManagedServices(state);\n\t\t\tlogger.info(\"checking Docker availability\", { requestId });\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tlet dockerResult = null;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tlogger.info(\"starting compose up\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t\tdockerResult = await composeUp({\n\t\t\t\t\t...buildComposeOptions(state),\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst started = [...CORE_SERVICES];\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeOk: dockerResult?.ok ?? null\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeResult: dockerResult ? {\n\t\t\t\t\tok: dockerResult.ok,\n\t\t\t\t\tstderr: dockerResult.stderr\n\t\t\t\t} : null\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7E,GAAG,cAAc,EAAE;AACnB,GAAG,oBAAoB,EAAE;AACzB,GAAG,0BAA0B,EAAE;AAC/B,GAAG,aAAa,CAAC,KAAK,CAAC;AACvB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC5D,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,YAAY,GAAG,IAAI;AAC1B,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACvC,KAAK,SAAS;AACd,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,MAAM,SAAS,CAAC;AACnC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAClC,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,GAAG;AACH,GAAG,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC;AACrC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI;AACnC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,aAAa,EAAE,YAAY,GAAG;AAClC,KAAK,EAAE,EAAE,YAAY,CAAC,EAAE;AACxB,KAAK,MAAM,EAAE,YAAY,CAAC;AAC1B,KAAK,GAAG;AACR,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -0,0 +1,46 @@
1
+ import { a2 as loadAutomations } from './src-BkvQ5Uuf.js';
2
+ import { b as getState } from './endpoints-Drq_J-2Z.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-CX6xRBmt.js';
4
+ import './chunk-CLZ62Ad-.js';
5
+ import 'node:module';
6
+ import 'node:fs';
7
+ import 'node:path';
8
+ import 'node:child_process';
9
+ import 'node:os';
10
+ import 'buffer';
11
+ import 'node:url';
12
+ import 'node:crypto';
13
+ import 'events';
14
+ import 'fs';
15
+ import 'node:events';
16
+ import 'node:stream';
17
+ import 'node:string_decoder';
18
+ import 'path';
19
+ import 'assert';
20
+ import 'zlib';
21
+ import 'node:assert';
22
+ import 'node:fs/promises';
23
+
24
+ //#region src/routes/admin/automations/+server.ts
25
+ var GET = async (event) => {
26
+ const requestId = getRequestId(event);
27
+ const authErr = requireAdmin(event, requestId);
28
+ if (authErr) return authErr;
29
+ return jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({
30
+ name: c.name,
31
+ description: c.description,
32
+ schedule: c.schedule,
33
+ timezone: c.timezone,
34
+ enabled: c.enabled,
35
+ action: {
36
+ type: c.action.type,
37
+ content: c.action.content,
38
+ agent: c.action.agent
39
+ },
40
+ on_failure: c.on_failure,
41
+ fileName: c.fileName
42
+ })) }, requestId);
43
+ };
44
+
45
+ export { GET };
46
+ //# sourceMappingURL=_server.ts-CG409cWi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CG409cWi.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { l as loadAutomations } 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\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
@@ -0,0 +1,56 @@
1
+ import { j as json } from './exports-D1quPX8S.js';
2
+ import { r as requireAdmin, d as getRequestId } from './helpers-CX6xRBmt.js';
3
+ import './utils-BSRjJDrZ.js';
4
+ import './src-BkvQ5Uuf.js';
5
+ import './chunk-CLZ62Ad-.js';
6
+ import 'node:module';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'node:child_process';
10
+ import 'node:os';
11
+ import 'buffer';
12
+ import 'node:url';
13
+ import 'node:crypto';
14
+ import 'events';
15
+ import 'fs';
16
+ import 'node:events';
17
+ import 'node:stream';
18
+ import 'node:string_decoder';
19
+ import 'path';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+ import './endpoints-Drq_J-2Z.js';
25
+
26
+ //#region src/routes/admin/versions/releases/+server.ts
27
+ var GET = async (event) => {
28
+ const authError = requireAdmin(event, getRequestId(event));
29
+ if (authError) return authError;
30
+ try {
31
+ const res = await fetch("https://api.github.com/repos/itlackey/openpalm/releases?per_page=20", {
32
+ headers: {
33
+ "User-Agent": "openpalm-admin/1.0",
34
+ Accept: "application/vnd.github+json"
35
+ },
36
+ signal: AbortSignal.timeout(8e3)
37
+ });
38
+ if (!res.ok) return json({
39
+ releases: [],
40
+ error: `GitHub API ${res.status}`
41
+ });
42
+ return json({ releases: (await res.json()).map((r) => ({
43
+ tag: r.tag_name.replace(/^v/, ""),
44
+ prerelease: r.prerelease,
45
+ publishedAt: r.published_at
46
+ })) });
47
+ } catch (err) {
48
+ return json({
49
+ releases: [],
50
+ error: err instanceof Error ? err.message : String(err)
51
+ });
52
+ }
53
+ };
54
+
55
+ export { GET };
56
+ //# sourceMappingURL=_server.ts-CJL8da0o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CJL8da0o.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/releases/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/releases/+server.ts\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(\"https://api.github.com/repos/itlackey/openpalm/releases?per_page=20\", {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/vnd.github+json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\treleases: [],\n\t\t\terror: `GitHub API ${res.status}`\n\t\t});\n\t\treturn json({ releases: (await res.json()).map((r) => ({\n\t\t\ttag: r.tag_name.replace(/^v/, \"\"),\n\t\t\tprerelease: r.prerelease,\n\t\t\tpublishedAt: r.published_at\n\t\t})) });\n\t} catch (err) {\n\t\treturn json({\n\t\t\treleases: [],\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qEAAqE,EAAE;AACjG,GAAG,OAAO,EAAE;AACZ,IAAI,YAAY,EAAE,oBAAoB;AACtC,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC3B,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC;AACnC,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;AACzD,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACpC,GAAG,UAAU,EAAE,CAAC,CAAC,UAAU;AAC3B,GAAG,WAAW,EAAE,CAAC,CAAC;AAClB,GAAG,CAAC,CAAC,EAAE,CAAC;AACR,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -0,0 +1,204 @@
1
+ import { i as authJsonPath } from './src-BkvQ5Uuf.js';
2
+ import { b as getState } from './endpoints-Drq_J-2Z.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-CX6xRBmt.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-VqOG8hyj.js';
6
+ import { g as getCurrentConfig } from './config-0LFudKuE.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-CLBKpKeH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-CLBKpKeH.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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"}