@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,159 @@
1
+ import { $ as listAvailableAddonIds, V as getRegistryAddonConfig, ac as readStackSecretEnv, at as writeStackSecretEnv, y as createLogger } from './src-FpMyngcw.js';
2
+ import { b as getState } from './endpoints-L7Wjvq44.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, h as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-5jd3ccud.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/addons/[name]/credentials/+server.ts
25
+ var logger = createLogger("addons.name.credentials");
26
+ /**
27
+ * Parse a `.env.schema` file into structured fields.
28
+ *
29
+ * Schema conventions:
30
+ * - Lines starting with `#` are comments; consecutive comment lines
31
+ * accumulate as the *description* of the next KEY=VALUE line.
32
+ * - `# @sensitive` marks the next field as sensitive (renders as a
33
+ * password input and is masked on GET).
34
+ * - `# ---` resets the accumulator (used as a section separator).
35
+ * - `KEY=DEFAULT` declares the field; default may be empty.
36
+ */
37
+ function parseEnvSchema(text) {
38
+ const fields = [];
39
+ let commentBuffer = [];
40
+ let sensitive = false;
41
+ for (const rawLine of text.split(/\r?\n/)) {
42
+ const line = rawLine.trim();
43
+ if (!line) continue;
44
+ if (line.startsWith("#")) {
45
+ const body = line.slice(1).trim();
46
+ if (body === "---") {
47
+ commentBuffer = [];
48
+ sensitive = false;
49
+ continue;
50
+ }
51
+ if (body.startsWith("@")) {
52
+ if (/\B@sensitive\b/.test(body)) sensitive = true;
53
+ continue;
54
+ }
55
+ commentBuffer.push(body);
56
+ continue;
57
+ }
58
+ const eq = line.indexOf("=");
59
+ if (eq <= 0) continue;
60
+ const key = line.slice(0, eq).trim();
61
+ if (!key) continue;
62
+ const def = line.slice(eq + 1).trim();
63
+ fields.push({
64
+ key,
65
+ sensitive,
66
+ description: commentBuffer.join(" ").trim(),
67
+ default: def
68
+ });
69
+ commentBuffer = [];
70
+ sensitive = false;
71
+ }
72
+ return fields;
73
+ }
74
+ var GET = async (event) => {
75
+ const requestId = getRequestId(event);
76
+ const authErr = requireAdmin(event, requestId);
77
+ if (authErr) return authErr;
78
+ const state = getState();
79
+ const name = event.params.name;
80
+ if (!listAvailableAddonIds().includes(name)) return errorResponse(404, "not_found", `Addon "${name}" is not available`, { name }, requestId);
81
+ let config;
82
+ try {
83
+ config = getRegistryAddonConfig(state.homeDir, name);
84
+ } catch (error) {
85
+ logger.error("schema read failed", {
86
+ name,
87
+ error: String(error),
88
+ requestId
89
+ });
90
+ return errorResponse(500, "internal_error", `Addon "${name}" schema is unavailable`, {}, requestId);
91
+ }
92
+ const schemaFields = parseEnvSchema(config.envSchema);
93
+ const secretEnv = readStackSecretEnv(state.stackDir);
94
+ return jsonResponse(200, {
95
+ name,
96
+ fields: schemaFields.map((f) => {
97
+ const set = (secretEnv[f.key] ?? "").length > 0;
98
+ return {
99
+ key: f.key,
100
+ sensitive: f.sensitive,
101
+ description: f.description,
102
+ default: f.default,
103
+ set,
104
+ secret: {
105
+ envKey: f.key,
106
+ present: set
107
+ },
108
+ value: ""
109
+ };
110
+ })
111
+ }, requestId);
112
+ };
113
+ var POST = async (event) => {
114
+ const requestId = getRequestId(event);
115
+ const authErr = requireAdmin(event, requestId);
116
+ if (authErr) return authErr;
117
+ const state = getState();
118
+ const name = event.params.name;
119
+ if (!listAvailableAddonIds().includes(name)) return errorResponse(404, "not_found", `Addon "${name}" is not available`, { name }, requestId);
120
+ const parsed = await parseJsonBody(event.request);
121
+ if ("error" in parsed) return jsonBodyError(parsed, requestId);
122
+ const valuesRaw = parsed.data.values ?? {};
123
+ let config;
124
+ try {
125
+ config = getRegistryAddonConfig(state.homeDir, name);
126
+ } catch (error) {
127
+ logger.error("schema read failed (post)", {
128
+ name,
129
+ error: String(error),
130
+ requestId
131
+ });
132
+ return errorResponse(500, "internal_error", `Addon "${name}" schema is unavailable`, {}, requestId);
133
+ }
134
+ const allowedKeys = new Set(parseEnvSchema(config.envSchema).map((f) => f.key));
135
+ const updates = {};
136
+ for (const [k, v] of Object.entries(valuesRaw)) {
137
+ if (!allowedKeys.has(k)) continue;
138
+ updates[k] = typeof v === "string" ? v : "";
139
+ }
140
+ if (Object.keys(updates).length === 0) return errorResponse(400, "bad_request", "no schema-declared keys supplied", {}, requestId);
141
+ try {
142
+ writeStackSecretEnv(state, updates);
143
+ } catch (err) {
144
+ logger.error("write failed", {
145
+ name,
146
+ error: String(err),
147
+ requestId
148
+ });
149
+ return errorResponse(500, "internal_error", err instanceof Error ? err.message : "write failed", {}, requestId);
150
+ }
151
+ return jsonResponse(200, {
152
+ ok: true,
153
+ name,
154
+ updated: Object.keys(updates).sort()
155
+ }, requestId);
156
+ };
157
+
158
+ export { GET, POST };
159
+ //# sourceMappingURL=_server.ts-hMTx0DC3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-hMTx0DC3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/credentials/_server.ts.js"],"sourcesContent":["import { Nt as createLogger, at as getRegistryAddonConfig, ot as listAvailableAddonIds, vt as readStackSecretEnv, yt as writeStackSecretEnv } 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/addons/[name]/credentials/+server.ts\nvar logger = createLogger(\"addons.name.credentials\");\n/**\n* Parse a `.env.schema` file into structured fields.\n*\n* Schema conventions:\n* - Lines starting with `#` are comments; consecutive comment lines\n* accumulate as the *description* of the next KEY=VALUE line.\n* - `# @sensitive` marks the next field as sensitive (renders as a\n* password input and is masked on GET).\n* - `# ---` resets the accumulator (used as a section separator).\n* - `KEY=DEFAULT` declares the field; default may be empty.\n*/\nfunction parseEnvSchema(text) {\n\tconst fields = [];\n\tlet commentBuffer = [];\n\tlet sensitive = false;\n\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\tconst line = rawLine.trim();\n\t\tif (!line) continue;\n\t\tif (line.startsWith(\"#\")) {\n\t\t\tconst body = line.slice(1).trim();\n\t\t\tif (body === \"---\") {\n\t\t\t\tcommentBuffer = [];\n\t\t\t\tsensitive = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body.startsWith(\"@\")) {\n\t\t\t\tif (/\\B@sensitive\\b/.test(body)) sensitive = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcommentBuffer.push(body);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq <= 0) continue;\n\t\tconst key = line.slice(0, eq).trim();\n\t\tif (!key) continue;\n\t\tconst def = line.slice(eq + 1).trim();\n\t\tfields.push({\n\t\t\tkey,\n\t\t\tsensitive,\n\t\t\tdescription: commentBuffer.join(\" \").trim(),\n\t\t\tdefault: def\n\t\t});\n\t\tcommentBuffer = [];\n\t\tsensitive = false;\n\t}\n\treturn fields;\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\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(state.homeDir, name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tfields: schemaFields.map((f) => {\n\t\t\tconst set = (secretEnv[f.key] ?? \"\").length > 0;\n\t\t\treturn {\n\t\t\t\tkey: f.key,\n\t\t\t\tsensitive: f.sensitive,\n\t\t\t\tdescription: f.description,\n\t\t\t\tdefault: f.default,\n\t\t\t\tset,\n\t\t\t\tsecret: {\n\t\t\t\t\tenvKey: f.key,\n\t\t\t\t\tpresent: set\n\t\t\t\t},\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t})\n\t}, 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 name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst valuesRaw = parsed.data.values ?? {};\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(state.homeDir, name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed (post)\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst allowedKeys = new Set(parseEnvSchema(config.envSchema).map((f) => f.key));\n\tconst updates = {};\n\tfor (const [k, v] of Object.entries(valuesRaw)) {\n\t\tif (!allowedKeys.has(k)) continue;\n\t\tupdates[k] = typeof v === \"string\" ? v : \"\";\n\t}\n\tif (Object.keys(updates).length === 0) return errorResponse(400, \"bad_request\", \"no schema-declared keys supplied\", {}, requestId);\n\ttry {\n\t\twriteStackSecretEnv(state, updates);\n\t} catch (err) {\n\t\tlogger.error(\"write failed\", {\n\t\t\tname,\n\t\t\terror: String(err),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", err instanceof Error ? err.message : \"write failed\", {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname,\n\t\tupdated: Object.keys(updates).sort()\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { y as createLogger } from './src-FpMyngcw.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, h as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-5jd3ccud.js';
3
+ import './chunk-CLZ62Ad-.js';
4
+ import 'node:module';
5
+ import 'node:fs';
6
+ import 'node:path';
7
+ import 'node:child_process';
8
+ import 'node:os';
9
+ import 'buffer';
10
+ import 'node:url';
11
+ import 'node:crypto';
12
+ import 'events';
13
+ import 'fs';
14
+ import 'node:events';
15
+ import 'node:stream';
16
+ import 'node:string_decoder';
17
+ import 'path';
18
+ import 'assert';
19
+ import 'zlib';
20
+ import 'node:assert';
21
+ import 'node:fs/promises';
22
+ import './endpoints-L7Wjvq44.js';
23
+
24
+ //#region src/routes/admin/opencode/providers/[id]/auth/+server.ts
25
+ var logger = createLogger("opencode.auth");
26
+ var MAX_API_KEY_LENGTH = 512;
27
+ var API_KEY_PATTERN = /^[\x20-\x7E]+$/;
28
+ var OAUTH_SESSION_TTL_MS = 6e5;
29
+ var MAX_PROVIDER_ID_LENGTH = 128;
30
+ var PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;
31
+ function validateApiKey(key) {
32
+ if (key.length > MAX_API_KEY_LENGTH) return "API key exceeds maximum length";
33
+ if (!API_KEY_PATTERN.test(key)) return "API key contains invalid characters";
34
+ return null;
35
+ }
36
+ var oauthSessions = /* @__PURE__ */ new Map();
37
+ function purgeExpiredSessions() {
38
+ const now = Date.now();
39
+ for (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);
40
+ }
41
+ var GET = async (event) => {
42
+ const requestId = getRequestId(event);
43
+ const authError = requireAdmin(event, requestId);
44
+ if (authError) return authError;
45
+ const pollToken = event.url.searchParams.get("pollToken");
46
+ if (!pollToken) return errorResponse(400, "bad_request", "pollToken query parameter is required", {}, requestId);
47
+ purgeExpiredSessions();
48
+ const session = oauthSessions.get(pollToken);
49
+ if (!session) return errorResponse(404, "not_found", "Poll session not found or expired", {}, requestId);
50
+ if (event.params.id !== session.providerId) return errorResponse(400, "bad_request", "Provider ID does not match poll session", {}, requestId);
51
+ if ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {
52
+ oauthSessions.delete(pollToken);
53
+ logger.info("oauth authorization completed", {
54
+ providerId: session.providerId,
55
+ requestId
56
+ });
57
+ return jsonResponse(200, {
58
+ status: "complete",
59
+ message: "Authorization successful"
60
+ }, requestId);
61
+ }
62
+ if (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {
63
+ oauthSessions.delete(pollToken);
64
+ return jsonResponse(200, {
65
+ status: "error",
66
+ message: "Authorization session expired"
67
+ }, requestId);
68
+ }
69
+ return jsonResponse(200, {
70
+ status: "pending",
71
+ message: "Waiting for authorization..."
72
+ }, requestId);
73
+ };
74
+ var POST = async (event) => {
75
+ const requestId = getRequestId(event);
76
+ const authError = requireAdmin(event, requestId);
77
+ if (authError) return authError;
78
+ const result = await parseJsonBody(event.request);
79
+ if ("error" in result) return jsonBodyError(result, requestId);
80
+ const body = result.data;
81
+ const providerId = event.params.id;
82
+ const mode = typeof body.mode === "string" ? body.mode : "";
83
+ if (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, "bad_request", "Invalid provider ID", {}, requestId);
84
+ purgeExpiredSessions();
85
+ if (mode === "api_key") {
86
+ const apiKey = typeof body.apiKey === "string" ? body.apiKey.trim() : "";
87
+ if (!apiKey) return errorResponse(400, "bad_request", "apiKey is required for api_key mode", {}, requestId);
88
+ const keyError = validateApiKey(apiKey);
89
+ if (keyError) return errorResponse(400, "bad_request", keyError, {}, requestId);
90
+ const result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);
91
+ if (!result.ok) {
92
+ logger.warn("provider api key save failed", {
93
+ providerId,
94
+ requestId,
95
+ error: result.code
96
+ });
97
+ return errorResponse(result.status, result.code, result.message, {}, requestId);
98
+ }
99
+ logger.info("provider API key saved to OpenCode auth.json", {
100
+ providerId,
101
+ requestId
102
+ });
103
+ return jsonResponse(200, {
104
+ ok: true,
105
+ mode: "api_key"
106
+ }, requestId);
107
+ }
108
+ if (mode === "oauth") {
109
+ if (typeof body.methodIndex !== "undefined" && (typeof body.methodIndex !== "number" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, "bad_request", "methodIndex must be a non-negative integer", {}, requestId);
110
+ const methodIndex = typeof body.methodIndex === "number" ? body.methodIndex : 0;
111
+ const result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);
112
+ if (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);
113
+ const data = result.data;
114
+ const pollToken = crypto.randomUUID();
115
+ oauthSessions.set(pollToken, {
116
+ providerId,
117
+ methodIndex,
118
+ createdAt: Date.now()
119
+ });
120
+ logger.info("oauth authorization started", {
121
+ providerId,
122
+ methodIndex,
123
+ requestId
124
+ });
125
+ return jsonResponse(200, {
126
+ ok: true,
127
+ mode: "oauth",
128
+ pollToken,
129
+ url: data.url,
130
+ method: data.method,
131
+ instructions: data.instructions
132
+ }, requestId);
133
+ }
134
+ return errorResponse(400, "bad_request", "mode must be api_key or oauth", {}, requestId);
135
+ };
136
+ /**
137
+ * DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by
138
+ * removing its credential from OpenCode's auth.json.
139
+ */
140
+ var DELETE = async (event) => {
141
+ const requestId = getRequestId(event);
142
+ const authError = requireAdmin(event, requestId);
143
+ if (authError) return authError;
144
+ const providerId = event.params.id ?? "";
145
+ if (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, "bad_request", "Invalid provider ID", {}, requestId);
146
+ const result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: "DELETE" });
147
+ if (!result.ok) {
148
+ logger.warn("provider disconnect failed", {
149
+ providerId,
150
+ requestId,
151
+ error: result.code
152
+ });
153
+ return errorResponse(result.status, result.code, result.message, {}, requestId);
154
+ }
155
+ logger.info("provider credential removed via OpenCode /auth DELETE", {
156
+ providerId,
157
+ requestId
158
+ });
159
+ return jsonResponse(200, { ok: true }, requestId);
160
+ };
161
+
162
+ export { DELETE, GET, POST };
163
+ //# sourceMappingURL=_server.ts-l_HoZ2_I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-l_HoZ2_I.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { Nt as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, 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/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { j as json } from './exports-D1quPX8S.js';
2
+ import { spawn } from 'node:child_process';
3
+ import './utils-BSRjJDrZ.js';
4
+
5
+ //#region src/routes/api/setup/opencode/ensure/+server.ts
6
+ /**
7
+ * POST /api/setup/opencode/ensure
8
+ *
9
+ * Ensures an OpenCode server is running for the setup wizard.
10
+ * 1. Checks the configured OP_OPENCODE_URL / OP_ASSISTANT_PORT first.
11
+ * 2. If unreachable, starts a dedicated `opencode serve` subprocess via the SDK.
12
+ * 3. Returns { ok, url, started } — client updates its OP_OPENCODE_URL accordingly.
13
+ *
14
+ * No auth required — called during pre-setup wizard initialization.
15
+ */
16
+ var _url = null;
17
+ var _proc = null;
18
+ function killWizardOpencode() {
19
+ const proc = _proc;
20
+ if (proc && proc.exitCode === null && proc.pid) try {
21
+ proc.kill("SIGTERM");
22
+ } catch {}
23
+ }
24
+ if (!globalThis.__opWizardOpencodeReaper) {
25
+ globalThis.__opWizardOpencodeReaper = true;
26
+ process.on("SIGTERM", killWizardOpencode);
27
+ process.on("SIGINT", killWizardOpencode);
28
+ process.on("exit", killWizardOpencode);
29
+ }
30
+ async function checkReachable(url) {
31
+ try {
32
+ return (await fetch(`${url}/provider`, { signal: AbortSignal.timeout(2e3) })).ok;
33
+ } catch {
34
+ return false;
35
+ }
36
+ }
37
+ function spawnOpencodeServer() {
38
+ return new Promise((resolve, reject) => {
39
+ const proc = spawn("opencode", [
40
+ "serve",
41
+ "--hostname=127.0.0.1",
42
+ "--port=0"
43
+ ], {
44
+ env: process.env,
45
+ stdio: [
46
+ "ignore",
47
+ "pipe",
48
+ "pipe"
49
+ ]
50
+ });
51
+ _proc = proc;
52
+ const timer = setTimeout(() => {
53
+ proc.kill();
54
+ reject(/* @__PURE__ */ new Error("Timed out waiting for OpenCode server to start (15s)"));
55
+ }, 15e3);
56
+ let out = "";
57
+ proc.stdout?.on("data", (chunk) => {
58
+ out += chunk.toString();
59
+ for (const line of out.split("\n")) if (line.includes("server listening")) {
60
+ const m = line.match(/on\s+(https?:\/\/[^\s]+)/);
61
+ if (m) {
62
+ clearTimeout(timer);
63
+ resolve(m[1]);
64
+ }
65
+ }
66
+ });
67
+ proc.on("exit", (code) => {
68
+ clearTimeout(timer);
69
+ if (code !== 0) reject(/* @__PURE__ */ new Error(`OpenCode exited (code ${code}). Output: ${out.slice(0, 300)}`));
70
+ });
71
+ proc.on("error", (err) => {
72
+ clearTimeout(timer);
73
+ reject(err);
74
+ });
75
+ });
76
+ }
77
+ var POST = async () => {
78
+ const configuredUrl = process.env.OP_OPENCODE_URL ?? process.env.OP_ASSISTANT_URL ?? `http://localhost:${process.env.OP_ASSISTANT_PORT ?? "3800"}`;
79
+ if (await checkReachable(configuredUrl)) return json({
80
+ ok: true,
81
+ url: configuredUrl,
82
+ started: false
83
+ });
84
+ if (_url && await checkReachable(_url)) return json({
85
+ ok: true,
86
+ url: _url,
87
+ started: false
88
+ });
89
+ try {
90
+ const url = await spawnOpencodeServer();
91
+ _url = url;
92
+ process.env.OP_OPENCODE_URL = url;
93
+ return json({
94
+ ok: true,
95
+ url,
96
+ started: true
97
+ });
98
+ } catch (err) {
99
+ return json({
100
+ ok: false,
101
+ error: err instanceof Error ? err.message : "Failed to start OpenCode"
102
+ });
103
+ }
104
+ };
105
+
106
+ export { POST };
107
+ //# sourceMappingURL=_server.ts-uLRX2uy0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-uLRX2uy0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/ensure/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { spawn } from \"node:child_process\";\n//#region src/routes/api/setup/opencode/ensure/+server.ts\n/**\n* POST /api/setup/opencode/ensure\n*\n* Ensures an OpenCode server is running for the setup wizard.\n* 1. Checks the configured OP_OPENCODE_URL / OP_ASSISTANT_PORT first.\n* 2. If unreachable, starts a dedicated `opencode serve` subprocess via the SDK.\n* 3. Returns { ok, url, started } — client updates its OP_OPENCODE_URL accordingly.\n*\n* No auth required — called during pre-setup wizard initialization.\n*/\nvar _url = null;\nvar _proc = null;\nfunction killWizardOpencode() {\n\tconst proc = _proc;\n\tif (proc && proc.exitCode === null && proc.pid) try {\n\t\tproc.kill(\"SIGTERM\");\n\t} catch {}\n}\nif (!globalThis.__opWizardOpencodeReaper) {\n\tglobalThis.__opWizardOpencodeReaper = true;\n\tprocess.on(\"SIGTERM\", killWizardOpencode);\n\tprocess.on(\"SIGINT\", killWizardOpencode);\n\tprocess.on(\"exit\", killWizardOpencode);\n}\nasync function checkReachable(url) {\n\ttry {\n\t\treturn (await fetch(`${url}/provider`, { signal: AbortSignal.timeout(2e3) })).ok;\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction spawnOpencodeServer() {\n\treturn new Promise((resolve, reject) => {\n\t\tconst proc = spawn(\"opencode\", [\n\t\t\t\"serve\",\n\t\t\t\"--hostname=127.0.0.1\",\n\t\t\t\"--port=0\"\n\t\t], {\n\t\t\tenv: process.env,\n\t\t\tstdio: [\n\t\t\t\t\"ignore\",\n\t\t\t\t\"pipe\",\n\t\t\t\t\"pipe\"\n\t\t\t]\n\t\t});\n\t\t_proc = proc;\n\t\tconst timer = setTimeout(() => {\n\t\t\tproc.kill();\n\t\t\treject(/* @__PURE__ */ new Error(\"Timed out waiting for OpenCode server to start (15s)\"));\n\t\t}, 15e3);\n\t\tlet out = \"\";\n\t\tproc.stdout?.on(\"data\", (chunk) => {\n\t\t\tout += chunk.toString();\n\t\t\tfor (const line of out.split(\"\\n\")) if (line.includes(\"server listening\")) {\n\t\t\t\tconst m = line.match(/on\\s+(https?:\\/\\/[^\\s]+)/);\n\t\t\t\tif (m) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tresolve(m[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tproc.on(\"exit\", (code) => {\n\t\t\tclearTimeout(timer);\n\t\t\tif (code !== 0) reject(/* @__PURE__ */ new Error(`OpenCode exited (code ${code}). Output: ${out.slice(0, 300)}`));\n\t\t});\n\t\tproc.on(\"error\", (err) => {\n\t\t\tclearTimeout(timer);\n\t\t\treject(err);\n\t\t});\n\t});\n}\nvar POST = async () => {\n\tconst configuredUrl = process.env.OP_OPENCODE_URL ?? process.env.OP_ASSISTANT_URL ?? `http://localhost:${process.env.OP_ASSISTANT_PORT ?? \"3800\"}`;\n\tif (await checkReachable(configuredUrl)) return json({\n\t\tok: true,\n\t\turl: configuredUrl,\n\t\tstarted: false\n\t});\n\tif (_url && await checkReachable(_url)) return json({\n\t\tok: true,\n\t\turl: _url,\n\t\tstarted: false\n\t});\n\ttry {\n\t\tconst url = await spawnOpencodeServer();\n\t\t_url = url;\n\t\tprocess.env.OP_OPENCODE_URL = url;\n\t\treturn json({\n\t\t\tok: true,\n\t\t\turl,\n\t\t\tstarted: true\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: err instanceof Error ? err.message : \"Failed to start OpenCode\"\n\t\t});\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}