@openpalm/ui 0.12.44-beta.4 → 0.12.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/BK-tywES.js +1 -0
  3. package/build/client/_app/immutable/chunks/BK-tywES.js.br +2 -0
  4. package/build/client/_app/immutable/chunks/BK-tywES.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{DnqsAfBD.js → BOfhzsO0.js} +1 -1
  6. package/build/client/_app/immutable/chunks/BOfhzsO0.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/BOfhzsO0.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{BJznZTLz.js → C263EwX8.js} +1 -1
  9. package/build/client/_app/immutable/chunks/C263EwX8.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/C263EwX8.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{BwflfDsq.js → CLensmFQ.js} +2 -2
  12. package/build/client/_app/immutable/chunks/CLensmFQ.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/CLensmFQ.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/{app.BA1E2ohX.js → app.kSnQAR_r.js} +2 -2
  15. package/build/client/_app/immutable/entry/app.kSnQAR_r.js.br +0 -0
  16. package/build/client/_app/immutable/entry/app.kSnQAR_r.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/start.CjknpNta.js +1 -0
  18. package/build/client/_app/immutable/entry/start.CjknpNta.js.br +0 -0
  19. package/build/client/_app/immutable/entry/start.CjknpNta.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.CzAbiYtD.js → 1.BsVZFCPI.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.BsVZFCPI.js.br +1 -0
  22. package/build/client/_app/immutable/nodes/1.BsVZFCPI.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{10.DxUSU-lz.js → 10.f9V6641a.js} +1 -1
  24. package/build/client/_app/immutable/nodes/10.f9V6641a.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/10.f9V6641a.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{4.C4___y-c.js → 4.7q4gRwAu.js} +1 -1
  27. package/build/client/_app/immutable/nodes/4.7q4gRwAu.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/4.7q4gRwAu.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{5.CwNS_H63.js → 5.0eWsC6Gy.js} +1 -1
  30. package/build/client/_app/immutable/nodes/5.0eWsC6Gy.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/5.0eWsC6Gy.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{6.Bm8-4wfw.js → 6.BhH4GsOD.js} +1 -1
  33. package/build/client/_app/immutable/nodes/6.BhH4GsOD.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/6.BhH4GsOD.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{7.DiZzljlc.js → 7.DxSYgHDg.js} +1 -1
  36. package/build/client/_app/immutable/nodes/7.DxSYgHDg.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/7.DxSYgHDg.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{8.4vwaOVRY.js → 8._je1c8Vn.js} +1 -1
  39. package/build/client/_app/immutable/nodes/8._je1c8Vn.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/8._je1c8Vn.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{9.DOM38Fxh.js → 9.CX1687Ng.js} +1 -1
  42. package/build/client/_app/immutable/nodes/9.CX1687Ng.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/9.CX1687Ng.js.gz +0 -0
  44. package/build/client/_app/version.json +1 -1
  45. package/build/client/_app/version.json.br +2 -1
  46. package/build/client/_app/version.json.gz +0 -0
  47. package/build/server/chunks/1-D1gNV4OA.js +9 -0
  48. package/build/server/chunks/{1-BvUMS98T.js.map → 1-D1gNV4OA.js.map} +1 -1
  49. package/build/server/chunks/{10-BDhR4-Uu.js → 10-C1p2XJG4.js} +6 -6
  50. package/build/server/chunks/{10-BDhR4-Uu.js.map → 10-C1p2XJG4.js.map} +1 -1
  51. package/build/server/chunks/{4-BvnjGWkC.js → 4-CoWnFM_n.js} +3 -3
  52. package/build/server/chunks/{4-BvnjGWkC.js.map → 4-CoWnFM_n.js.map} +1 -1
  53. package/build/server/chunks/{5-DvbbPyY9.js → 5-BoOkg3j-.js} +3 -3
  54. package/build/server/chunks/{5-DvbbPyY9.js.map → 5-BoOkg3j-.js.map} +1 -1
  55. package/build/server/chunks/{6-D5NC8xTz.js → 6-C2CYPs5n.js} +3 -3
  56. package/build/server/chunks/{6-D5NC8xTz.js.map → 6-C2CYPs5n.js.map} +1 -1
  57. package/build/server/chunks/{7-CL0d1m29.js → 7-CD4RFM-K.js} +3 -3
  58. package/build/server/chunks/{7-CL0d1m29.js.map → 7-CD4RFM-K.js.map} +1 -1
  59. package/build/server/chunks/{8-CMPBZc2N.js → 8-CGK5TPxb.js} +3 -3
  60. package/build/server/chunks/{8-CMPBZc2N.js.map → 8-CGK5TPxb.js.map} +1 -1
  61. package/build/server/chunks/{9-U30Z0uuM.js → 9-CwsLxJkm.js} +3 -3
  62. package/build/server/chunks/{9-U30Z0uuM.js.map → 9-CwsLxJkm.js.map} +1 -1
  63. package/build/server/chunks/{Navbar-u5KgOHs4.js → Navbar-BR0J8rAC.js} +4 -4
  64. package/build/server/chunks/{Navbar-u5KgOHs4.js.map → Navbar-BR0J8rAC.js.map} +1 -1
  65. package/build/server/chunks/{_page.svelte-Cs3LzPPH.js → _page.svelte-8cQtZj7v.js} +6 -6
  66. package/build/server/chunks/{_page.svelte-Cs3LzPPH.js.map → _page.svelte-8cQtZj7v.js.map} +1 -1
  67. package/build/server/chunks/{_page.svelte-DLFBvep9.js → _page.svelte-Bg8heLoI.js} +2 -2
  68. package/build/server/chunks/{_page.svelte-DLFBvep9.js.map → _page.svelte-Bg8heLoI.js.map} +1 -1
  69. package/build/server/chunks/{_page.svelte-CZOPXebf.js → _page.svelte-CGyQoVDs.js} +6 -6
  70. package/build/server/chunks/{_page.svelte-CZOPXebf.js.map → _page.svelte-CGyQoVDs.js.map} +1 -1
  71. package/build/server/chunks/{_page.svelte-DhDG6cI0.js → _page.svelte-CJaj_qOx.js} +3 -3
  72. package/build/server/chunks/{_page.svelte-DhDG6cI0.js.map → _page.svelte-CJaj_qOx.js.map} +1 -1
  73. package/build/server/chunks/{_page.svelte-DCfiXPeg.js → _page.svelte-CgIVqoEs.js} +4 -4
  74. package/build/server/chunks/{_page.svelte-DCfiXPeg.js.map → _page.svelte-CgIVqoEs.js.map} +1 -1
  75. package/build/server/chunks/{_page.svelte-B1WjclYR.js → _page.svelte-Dc1I8reh.js} +6 -6
  76. package/build/server/chunks/{_page.svelte-B1WjclYR.js.map → _page.svelte-Dc1I8reh.js.map} +1 -1
  77. package/build/server/chunks/{_page.svelte-BqWCR3kW.js → _page.svelte-DjJOojFy.js} +3 -3
  78. package/build/server/chunks/{_page.svelte-BqWCR3kW.js.map → _page.svelte-DjJOojFy.js.map} +1 -1
  79. package/build/server/chunks/{_server.ts-C_CBrQmR.js → _server.ts-0QNGItBX.js} +5 -5
  80. package/build/server/chunks/{_server.ts-C_CBrQmR.js.map → _server.ts-0QNGItBX.js.map} +1 -1
  81. package/build/server/chunks/{_server.ts-DJwAwijv.js → _server.ts-4G38ZiPm.js} +5 -5
  82. package/build/server/chunks/{_server.ts-DJwAwijv.js.map → _server.ts-4G38ZiPm.js.map} +1 -1
  83. package/build/server/chunks/{_server.ts-Dt3kASyU.js → _server.ts-4Xr9h6Pa.js} +5 -5
  84. package/build/server/chunks/{_server.ts-Dt3kASyU.js.map → _server.ts-4Xr9h6Pa.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-DK7QJTuM.js → _server.ts-7lvswLUR.js} +5 -5
  86. package/build/server/chunks/{_server.ts-DK7QJTuM.js.map → _server.ts-7lvswLUR.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-D7QwZV3q.js → _server.ts-8QPo43Xf.js} +5 -5
  88. package/build/server/chunks/{_server.ts-D7QwZV3q.js.map → _server.ts-8QPo43Xf.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-2_Ad34NH.js → _server.ts-B8PEGtZu.js} +5 -5
  90. package/build/server/chunks/{_server.ts-2_Ad34NH.js.map → _server.ts-B8PEGtZu.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-C-F0jSYX.js → _server.ts-B8ckfBOc.js} +5 -5
  92. package/build/server/chunks/{_server.ts-C-F0jSYX.js.map → _server.ts-B8ckfBOc.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-BmGhvEkW.js → _server.ts-BAwI28Af.js} +2 -2
  94. package/build/server/chunks/{_server.ts-BmGhvEkW.js.map → _server.ts-BAwI28Af.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-BmEuPDca.js → _server.ts-BGDMBqlE.js} +5 -5
  96. package/build/server/chunks/{_server.ts-BmEuPDca.js.map → _server.ts-BGDMBqlE.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-Ct_BmV9z.js → _server.ts-BGR9YdsG.js} +5 -5
  98. package/build/server/chunks/{_server.ts-Ct_BmV9z.js.map → _server.ts-BGR9YdsG.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-C0oFR9jI.js → _server.ts-BIdmvsMv.js} +5 -5
  100. package/build/server/chunks/{_server.ts-C0oFR9jI.js.map → _server.ts-BIdmvsMv.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-BsjlSv_u.js → _server.ts-BPOWpbse.js} +5 -5
  102. package/build/server/chunks/{_server.ts-BsjlSv_u.js.map → _server.ts-BPOWpbse.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-KnZLQFwx.js → _server.ts-BQ3TKJuk.js} +2 -2
  104. package/build/server/chunks/{_server.ts-KnZLQFwx.js.map → _server.ts-BQ3TKJuk.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-BGt_gN2P.js → _server.ts-BVN3CaiN.js} +5 -5
  106. package/build/server/chunks/{_server.ts-BGt_gN2P.js.map → _server.ts-BVN3CaiN.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-B8PKU6u7.js → _server.ts-BWo-OyxA.js} +6 -6
  108. package/build/server/chunks/{_server.ts-B8PKU6u7.js.map → _server.ts-BWo-OyxA.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-7HW0Z9O2.js → _server.ts-BadRoa1z.js} +5 -5
  110. package/build/server/chunks/{_server.ts-7HW0Z9O2.js.map → _server.ts-BadRoa1z.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-BgqEDQes.js → _server.ts-BjRpt-15.js} +5 -5
  112. package/build/server/chunks/{_server.ts-BgqEDQes.js.map → _server.ts-BjRpt-15.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-zhMuOiiX.js → _server.ts-BpHYyIAQ.js} +5 -5
  114. package/build/server/chunks/{_server.ts-zhMuOiiX.js.map → _server.ts-BpHYyIAQ.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-DfY3KSQW.js → _server.ts-BqdrhN6T.js} +6 -6
  116. package/build/server/chunks/{_server.ts-DfY3KSQW.js.map → _server.ts-BqdrhN6T.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-dZbl72KX.js → _server.ts-BuZUw21A.js} +5 -5
  118. package/build/server/chunks/{_server.ts-dZbl72KX.js.map → _server.ts-BuZUw21A.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-N0sinBIw.js → _server.ts-Buq94QaZ.js} +5 -5
  120. package/build/server/chunks/{_server.ts-N0sinBIw.js.map → _server.ts-Buq94QaZ.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-D20x68Af.js → _server.ts-BuwilXIo.js} +5 -5
  122. package/build/server/chunks/{_server.ts-D20x68Af.js.map → _server.ts-BuwilXIo.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-C6ZVknFm.js → _server.ts-Bvd-ia9u.js} +7 -7
  124. package/build/server/chunks/{_server.ts-C6ZVknFm.js.map → _server.ts-Bvd-ia9u.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-DYHr8xnf.js → _server.ts-C654vCNg.js} +5 -5
  126. package/build/server/chunks/{_server.ts-DYHr8xnf.js.map → _server.ts-C654vCNg.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-DTS32Uz1.js → _server.ts-C7FAbT1j.js} +5 -5
  128. package/build/server/chunks/{_server.ts-DTS32Uz1.js.map → _server.ts-C7FAbT1j.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-BtQTA5QT.js → _server.ts-CDRiwnDy.js} +5 -5
  130. package/build/server/chunks/{_server.ts-BtQTA5QT.js.map → _server.ts-CDRiwnDy.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-8wd8rNeG.js → _server.ts-CELMsabp.js} +5 -5
  132. package/build/server/chunks/{_server.ts-8wd8rNeG.js.map → _server.ts-CELMsabp.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-DukyiQYM.js → _server.ts-CGAgOt_d.js} +5 -5
  134. package/build/server/chunks/{_server.ts-DukyiQYM.js.map → _server.ts-CGAgOt_d.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-vEIHECmm.js → _server.ts-CJLdr-ks.js} +5 -5
  136. package/build/server/chunks/{_server.ts-vEIHECmm.js.map → _server.ts-CJLdr-ks.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-B2AVKoUw.js → _server.ts-CRTwAa3N.js} +5 -5
  138. package/build/server/chunks/{_server.ts-B2AVKoUw.js.map → _server.ts-CRTwAa3N.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-BpL2riwT.js → _server.ts-CUwTItmT.js} +7 -7
  140. package/build/server/chunks/{_server.ts-BpL2riwT.js.map → _server.ts-CUwTItmT.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-BMDzxZgO.js → _server.ts-CWz_Oxl8.js} +6 -6
  142. package/build/server/chunks/{_server.ts-BMDzxZgO.js.map → _server.ts-CWz_Oxl8.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-BwAKeO4T.js → _server.ts-Cbgo5wRt.js} +6 -6
  144. package/build/server/chunks/{_server.ts-BwAKeO4T.js.map → _server.ts-Cbgo5wRt.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-CYqAkedw.js → _server.ts-CbwHb5ED.js} +4 -4
  146. package/build/server/chunks/{_server.ts-CYqAkedw.js.map → _server.ts-CbwHb5ED.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-CGTRE_Kl.js → _server.ts-CgzPyTwl.js} +5 -5
  148. package/build/server/chunks/{_server.ts-CGTRE_Kl.js.map → _server.ts-CgzPyTwl.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-CKjtgs2f.js → _server.ts-CnKA-6OD.js} +5 -5
  150. package/build/server/chunks/{_server.ts-CKjtgs2f.js.map → _server.ts-CnKA-6OD.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-BOiQXIyo.js → _server.ts-ConZrEff.js} +5 -5
  152. package/build/server/chunks/{_server.ts-BOiQXIyo.js.map → _server.ts-ConZrEff.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-CFqsr0jm.js → _server.ts-Cq_S1dN_.js} +5 -5
  154. package/build/server/chunks/{_server.ts-CFqsr0jm.js.map → _server.ts-Cq_S1dN_.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-C7nxO7oZ.js → _server.ts-CsrnhmTb.js} +5 -5
  156. package/build/server/chunks/{_server.ts-C7nxO7oZ.js.map → _server.ts-CsrnhmTb.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-B7VTiQSO.js → _server.ts-CtaNnF4U.js} +6 -6
  158. package/build/server/chunks/{_server.ts-B7VTiQSO.js.map → _server.ts-CtaNnF4U.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-vcoDp61P.js → _server.ts-CuGyrveA.js} +5 -5
  160. package/build/server/chunks/{_server.ts-vcoDp61P.js.map → _server.ts-CuGyrveA.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-CcQA5Ice.js → _server.ts-D-jybdjv.js} +5 -5
  162. package/build/server/chunks/{_server.ts-CcQA5Ice.js.map → _server.ts-D-jybdjv.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-D-GNtHl6.js → _server.ts-D-tp2zQP.js} +6 -6
  164. package/build/server/chunks/{_server.ts-D-GNtHl6.js.map → _server.ts-D-tp2zQP.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-D_mf_j2u.js → _server.ts-D0VED1uF.js} +2 -2
  166. package/build/server/chunks/{_server.ts-D_mf_j2u.js.map → _server.ts-D0VED1uF.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-BX_f3vix.js → _server.ts-D0hW9gvU.js} +5 -5
  168. package/build/server/chunks/{_server.ts-BX_f3vix.js.map → _server.ts-D0hW9gvU.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-CfL7ZiWC.js → _server.ts-D13Tjtky.js} +2 -2
  170. package/build/server/chunks/{_server.ts-CfL7ZiWC.js.map → _server.ts-D13Tjtky.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-DfUlgZz4.js → _server.ts-D2QecBSj.js} +7 -7
  172. package/build/server/chunks/{_server.ts-DfUlgZz4.js.map → _server.ts-D2QecBSj.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-DflQe1gC.js → _server.ts-D2tB04Uo.js} +5 -5
  174. package/build/server/chunks/{_server.ts-DflQe1gC.js.map → _server.ts-D2tB04Uo.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-Cho8ae05.js → _server.ts-D4_tom-k.js} +5 -5
  176. package/build/server/chunks/{_server.ts-Cho8ae05.js.map → _server.ts-D4_tom-k.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-Vp7Rcg85.js → _server.ts-D5zW4x4G.js} +7 -7
  178. package/build/server/chunks/{_server.ts-Vp7Rcg85.js.map → _server.ts-D5zW4x4G.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-DYzKj-s4.js → _server.ts-D9pV4tLm.js} +5 -5
  180. package/build/server/chunks/{_server.ts-DYzKj-s4.js.map → _server.ts-D9pV4tLm.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-BpG4HhrA.js → _server.ts-DFzmbpC_.js} +5 -5
  182. package/build/server/chunks/{_server.ts-BpG4HhrA.js.map → _server.ts-DFzmbpC_.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-Bv6t8IPb.js → _server.ts-DH0mwAYJ.js} +5 -5
  184. package/build/server/chunks/{_server.ts-Bv6t8IPb.js.map → _server.ts-DH0mwAYJ.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-CzGsIVDJ.js → _server.ts-DIvIb0la.js} +6 -6
  186. package/build/server/chunks/{_server.ts-CzGsIVDJ.js.map → _server.ts-DIvIb0la.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-DEe2bHPR.js → _server.ts-DZ7G-dxe.js} +5 -5
  188. package/build/server/chunks/{_server.ts-DEe2bHPR.js.map → _server.ts-DZ7G-dxe.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-4yLWlsdx.js → _server.ts-D_QxAyAv.js} +5 -5
  190. package/build/server/chunks/{_server.ts-4yLWlsdx.js.map → _server.ts-D_QxAyAv.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-ByISJcCm.js → _server.ts-DhAVjiUd.js} +6 -6
  192. package/build/server/chunks/{_server.ts-ByISJcCm.js.map → _server.ts-DhAVjiUd.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-D-DoomK2.js → _server.ts-DlRhaMZr.js} +5 -5
  194. package/build/server/chunks/{_server.ts-D-DoomK2.js.map → _server.ts-DlRhaMZr.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-Ccb0Jj3i.js → _server.ts-DoGLNPhD.js} +5 -5
  196. package/build/server/chunks/{_server.ts-Ccb0Jj3i.js.map → _server.ts-DoGLNPhD.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-BY8qj87H.js → _server.ts-DsK5y38H.js} +5 -5
  198. package/build/server/chunks/{_server.ts-BY8qj87H.js.map → _server.ts-DsK5y38H.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-VH6AUIr1.js → _server.ts-Du2mXeIc.js} +6 -6
  200. package/build/server/chunks/{_server.ts-VH6AUIr1.js.map → _server.ts-Du2mXeIc.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-DBvtDu2n.js → _server.ts-DymagmXD.js} +5 -5
  202. package/build/server/chunks/{_server.ts-DBvtDu2n.js.map → _server.ts-DymagmXD.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-DYuqVy3R.js → _server.ts-Dzt_2LfE.js} +5 -5
  204. package/build/server/chunks/{_server.ts-DYuqVy3R.js.map → _server.ts-Dzt_2LfE.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-Cl9NK0rP.js → _server.ts-F0itNDlp.js} +7 -7
  206. package/build/server/chunks/{_server.ts-Cl9NK0rP.js.map → _server.ts-F0itNDlp.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-DRq4LBVr.js → _server.ts-FgPiO6C7.js} +5 -5
  208. package/build/server/chunks/{_server.ts-DRq4LBVr.js.map → _server.ts-FgPiO6C7.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-BjSWL3Il.js → _server.ts-GrWc2_wY.js} +5 -5
  210. package/build/server/chunks/{_server.ts-BjSWL3Il.js.map → _server.ts-GrWc2_wY.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-B6yiEV8m.js → _server.ts-N1-CACT6.js} +6 -6
  212. package/build/server/chunks/{_server.ts-B6yiEV8m.js.map → _server.ts-N1-CACT6.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-ClzfWwPQ.js → _server.ts-SUokTCB8.js} +5 -5
  214. package/build/server/chunks/{_server.ts-ClzfWwPQ.js.map → _server.ts-SUokTCB8.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-EtzK1JmN.js → _server.ts-SeumU7RQ.js} +5 -5
  216. package/build/server/chunks/{_server.ts-EtzK1JmN.js.map → _server.ts-SeumU7RQ.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-H96u6tSZ.js → _server.ts-UYJEwCq8.js} +5 -5
  218. package/build/server/chunks/{_server.ts-H96u6tSZ.js.map → _server.ts-UYJEwCq8.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-leyq4M-4.js → _server.ts-UZlOmrXI.js} +5 -5
  220. package/build/server/chunks/{_server.ts-leyq4M-4.js.map → _server.ts-UZlOmrXI.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-BiIgPmU3.js → _server.ts-WqCDAJIr.js} +5 -5
  222. package/build/server/chunks/{_server.ts-BiIgPmU3.js.map → _server.ts-WqCDAJIr.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-DdqZbqRJ.js → _server.ts-XnThb0jk.js} +8 -8
  224. package/build/server/chunks/{_server.ts-DdqZbqRJ.js.map → _server.ts-XnThb0jk.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-DC9-TXRd.js → _server.ts-ZaEesYhm.js} +4 -4
  226. package/build/server/chunks/{_server.ts-DC9-TXRd.js.map → _server.ts-ZaEesYhm.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-B9qSeW8F.js → _server.ts-fJtSOt2l.js} +6 -6
  228. package/build/server/chunks/{_server.ts-B9qSeW8F.js.map → _server.ts-fJtSOt2l.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-n8mvC5oW.js → _server.ts-gEMbfdbQ.js} +5 -5
  230. package/build/server/chunks/{_server.ts-n8mvC5oW.js.map → _server.ts-gEMbfdbQ.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-DkLXCLm3.js → _server.ts-mVIXOXz8.js} +6 -6
  232. package/build/server/chunks/{_server.ts-DkLXCLm3.js.map → _server.ts-mVIXOXz8.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-DiyuxN7m.js → _server.ts-nOXme96k.js} +5 -5
  234. package/build/server/chunks/{_server.ts-DiyuxN7m.js.map → _server.ts-nOXme96k.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-CDdKFVNE.js → _server.ts-rwpADfIr.js} +5 -5
  236. package/build/server/chunks/{_server.ts-CDdKFVNE.js.map → _server.ts-rwpADfIr.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-D4yiBNVB.js → _server.ts-t8LgqnI8.js} +2 -2
  238. package/build/server/chunks/{_server.ts-D4yiBNVB.js.map → _server.ts-t8LgqnI8.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-nW6q1Q-G.js → _server.ts-uK5g2dwE.js} +7 -7
  240. package/build/server/chunks/{_server.ts-nW6q1Q-G.js.map → _server.ts-uK5g2dwE.js.map} +1 -1
  241. package/build/server/chunks/{_server.ts-DDY4PL2z.js → _server.ts-xlsvzVfi.js} +5 -5
  242. package/build/server/chunks/{_server.ts-DDY4PL2z.js.map → _server.ts-xlsvzVfi.js.map} +1 -1
  243. package/build/server/chunks/{addon-helpers-Cql-Tq8H.js → addon-helpers-CpnCoaX5.js} +3 -3
  244. package/build/server/chunks/{addon-helpers-Cql-Tq8H.js.map → addon-helpers-CpnCoaX5.js.map} +1 -1
  245. package/build/server/chunks/{akm-CgK9qKdL.js → akm-DS8qIY08.js} +2 -2
  246. package/build/server/chunks/{akm-CgK9qKdL.js.map → akm-DS8qIY08.js.map} +1 -1
  247. package/build/server/chunks/{catalog-DGRp8u5A.js → catalog-BRAGF5mT.js} +5 -5
  248. package/build/server/chunks/{catalog-DGRp8u5A.js.map → catalog-BRAGF5mT.js.map} +1 -1
  249. package/build/server/chunks/{client-CwdaXUsx.js → client-WNC_rTIi.js} +2 -2
  250. package/build/server/chunks/{client-CwdaXUsx.js.map → client-WNC_rTIi.js.map} +1 -1
  251. package/build/server/chunks/{config-T9SCux1L.js → config-DaoatST3.js} +2 -2
  252. package/build/server/chunks/{config-T9SCux1L.js.map → config-DaoatST3.js.map} +1 -1
  253. package/build/server/chunks/{docker-iOCUpGp4.js → docker-CwxqEp_G.js} +2 -2
  254. package/build/server/chunks/{docker-iOCUpGp4.js.map → docker-CwxqEp_G.js.map} +1 -1
  255. package/build/server/chunks/{endpoints-BpgyaHnY.js → endpoints-BltANYH6.js} +2 -2
  256. package/build/server/chunks/{endpoints-BpgyaHnY.js.map → endpoints-BltANYH6.js.map} +1 -1
  257. package/build/server/chunks/environment-DqfL567G.js.map +1 -1
  258. package/build/server/chunks/{error.svelte-B_vdAFKV.js → error.svelte-Cepq36_V.js} +4 -4
  259. package/build/server/chunks/{error.svelte-B_vdAFKV.js.map → error.svelte-Cepq36_V.js.map} +1 -1
  260. package/build/server/chunks/{helpers-BEJZySFf.js → helpers-13WhVOMk.js} +3 -3
  261. package/build/server/chunks/{helpers-BEJZySFf.js.map → helpers-13WhVOMk.js.map} +1 -1
  262. package/build/server/chunks/{hooks.server-CWM5ejMJ.js → hooks.server-ChI0JhLw.js} +6 -6
  263. package/build/server/chunks/{hooks.server-CWM5ejMJ.js.map → hooks.server-ChI0JhLw.js.map} +1 -1
  264. package/build/server/chunks/{http-Cfjg0mI7.js → http-4BaLbiCJ.js} +2 -2
  265. package/build/server/chunks/{http-Cfjg0mI7.js.map → http-4BaLbiCJ.js.map} +1 -1
  266. package/build/server/chunks/{internal-DHhXSRaW.js → internal-l3EWtEye.js} +3 -3
  267. package/build/server/chunks/{internal-DHhXSRaW.js.map → internal-l3EWtEye.js.map} +1 -1
  268. package/build/server/chunks/{paths-BzGreWEt.js → paths-BFRLnvBp.js} +2 -2
  269. package/build/server/chunks/{paths-BzGreWEt.js.map → paths-BFRLnvBp.js.map} +1 -1
  270. package/build/server/chunks/{session-cookie-DaI-X1u7.js → session-cookie-DErsjR7e.js} +2 -2
  271. package/build/server/chunks/{session-cookie-DaI-X1u7.js.map → session-cookie-DErsjR7e.js.map} +1 -1
  272. package/build/server/chunks/{setup-deploy-Dq5ZD5Db.js → setup-deploy-D9VREk8i.js} +2 -2
  273. package/build/server/chunks/{setup-deploy-Dq5ZD5Db.js.map → setup-deploy-D9VREk8i.js.map} +1 -1
  274. package/build/server/chunks/{src-CBQKBSM9.js → src-NhUHZOQF.js} +2 -2
  275. package/build/server/chunks/src-NhUHZOQF.js.map +1 -0
  276. package/build/server/chunks/{state-BBeqCbpv.js → state-BateNC-M.js} +2 -2
  277. package/build/server/chunks/{state-BBeqCbpv.js.map → state-BateNC-M.js.map} +1 -1
  278. package/build/server/chunks/{state2-CI7lure8.js → state2-D5q73U2E.js} +2 -2
  279. package/build/server/chunks/{state2-CI7lure8.js.map → state2-D5q73U2E.js.map} +1 -1
  280. package/build/server/index.js +1 -1
  281. package/build/server/manifest.js +91 -91
  282. package/build/server/manifest.js.map +1 -1
  283. package/package.json +2 -2
  284. package/build/client/_app/immutable/chunks/AcSAasHS.js +0 -1
  285. package/build/client/_app/immutable/chunks/AcSAasHS.js.br +0 -2
  286. package/build/client/_app/immutable/chunks/AcSAasHS.js.gz +0 -0
  287. package/build/client/_app/immutable/chunks/BJznZTLz.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/BJznZTLz.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/BwflfDsq.js.br +0 -0
  290. package/build/client/_app/immutable/chunks/BwflfDsq.js.gz +0 -0
  291. package/build/client/_app/immutable/chunks/DnqsAfBD.js.br +0 -0
  292. package/build/client/_app/immutable/chunks/DnqsAfBD.js.gz +0 -0
  293. package/build/client/_app/immutable/entry/app.BA1E2ohX.js.br +0 -0
  294. package/build/client/_app/immutable/entry/app.BA1E2ohX.js.gz +0 -0
  295. package/build/client/_app/immutable/entry/start.DXV2fqTa.js +0 -1
  296. package/build/client/_app/immutable/entry/start.DXV2fqTa.js.br +0 -1
  297. package/build/client/_app/immutable/entry/start.DXV2fqTa.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/1.CzAbiYtD.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/1.CzAbiYtD.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/10.DxUSU-lz.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/10.DxUSU-lz.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/4.C4___y-c.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/4.C4___y-c.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/5.CwNS_H63.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/5.CwNS_H63.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/6.Bm8-4wfw.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/6.Bm8-4wfw.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/7.DiZzljlc.js.br +0 -0
  309. package/build/client/_app/immutable/nodes/7.DiZzljlc.js.gz +0 -0
  310. package/build/client/_app/immutable/nodes/8.4vwaOVRY.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/8.4vwaOVRY.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/9.DOM38Fxh.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/9.DOM38Fxh.js.gz +0 -0
  314. package/build/server/chunks/1-BvUMS98T.js +0 -9
  315. package/build/server/chunks/src-CBQKBSM9.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{B as e,Ct as t,E as n,F as r,G as i,H as a,I as o,J as s,L as c,P as l,Q as u,R as d,S as f,St as p,U as m,V as h,Z as g,_,_t as v,at as y,dt as b,ft as x,g as S,gt as C,h as w,i as T,it as E,j as D,lt as O,m as k,o as A,ot as j,pt as M,rt as N,st as P,u as ee,x as F,z as I}from"../chunks/B6a5LPQe.js";import{l as L}from"../chunks/BwflfDsq.js";import"../chunks/xihTtKlq.js";import{t as R}from"../chunks/BiuKIdz2.js";import{t as te}from"../chunks/BeDFZ0w6.js";import{t as ne}from"../chunks/mVxTG_mC.js";import{t as z}from"../chunks/C8Qdq8nY.js";import{n as B,t as V}from"../chunks/BFVV1YJb.js";var H=Object.fromEntries(Object.entries({"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536,"ollama/nomic-embed-text":768,"ollama/mxbai-embed-large":1024,"ollama/mxbai-embed-large-v1":1024,"ollama/all-minilm":384,"ollama/snowflake-arctic-embed":1024,"model-runner/ai/mxbai-embed-large-v1":1024,"mistral/mistral-embed":1024,"google/text-embedding-004":768,"huggingface/sentence-transformers/all-MiniLM-L6-v2":384,"huggingface/intfloat/multilingual-e5-large":1024}).map(([e,t])=>[e.slice(e.indexOf(`/`)+1),t])),U={chat:`llama3.2:latest`,embedding:`nomic-embed-text`}.chat;function W(e,t){return`addon.${e}.${t}`}var G=[{id:`ollama`,name:`Ollama`,kind:`local`,group:`recommended`,order:1,icon:`🦙`,desc:`Run open models on your hardware`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:11434`,llmModel:`llama3.2`,embModel:`nomic-embed-text`,embDims:768,canDetect:!0},{id:`huggingface`,name:`Hugging Face`,kind:`cloud`,group:`recommended`,order:2,icon:`🤗`,desc:`10,000+ open models via Inference Providers`,needsKey:!0,placeholder:`hf_...`,baseUrl:`https://router.huggingface.co/v1`,llmModel:`Qwen/Qwen3-32B`,embModel:`intfloat/multilingual-e5-large`,embDims:1024,keyPrefix:`hf_`},{id:`openai`,name:`OpenAI`,kind:`cloud`,group:`recommended`,order:3,icon:`◐`,desc:`GPT and o-series reasoning models`,needsKey:!0,placeholder:`sk-...`,baseUrl:`https://api.openai.com`,llmModel:`gpt-4o`,embModel:`text-embedding-3-small`,embDims:1536},{id:`google`,name:`Google`,kind:`cloud`,group:`recommended`,order:4,icon:`◆`,desc:`Gemini models with large context`,needsKey:!0,placeholder:`AIza...`,baseUrl:`https://generativelanguage.googleapis.com`,llmModel:`gemini-2.5-flash`,embModel:``,embDims:0,keyPrefix:`AI`},{id:`model-runner`,name:`Docker Model Runner`,kind:`local`,group:`local`,order:1,icon:`🐳`,desc:`Docker-managed model runtime`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:12434`,llmModel:`ai/llama3.2`,embModel:`ai/mxbai-embed-large-v1`,embDims:1024,canDetect:!0},{id:`lmstudio`,name:`LM Studio`,kind:`local`,group:`local`,order:2,icon:`🔬`,desc:`Desktop app for local inference`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:1234`,llmModel:`loaded-model`,embModel:``,embDims:0,canDetect:!0},{id:`groq`,name:`Groq`,kind:`cloud`,group:`cloud`,order:1,icon:`⚡`,desc:`Ultra-fast inference`,needsKey:!0,placeholder:`gsk_...`,baseUrl:`https://api.groq.com/openai`,llmModel:`llama-3.3-70b-versatile`,embModel:``,embDims:0},{id:`mistral`,name:`Mistral`,kind:`cloud`,group:`cloud`,order:2,icon:`◆`,desc:`Mistral & Codestral models`,needsKey:!0,placeholder:`...`,baseUrl:`https://api.mistral.ai`,llmModel:`mistral-large-latest`,embModel:`mistral-embed`,embDims:1024},{id:`together`,name:`Together AI`,kind:`cloud`,group:`cloud`,order:3,icon:`✦`,desc:`Open models at scale`,needsKey:!0,placeholder:`...`,baseUrl:`https://api.together.xyz`,llmModel:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,embModel:``,embDims:0},{id:`deepseek`,name:`DeepSeek`,kind:`cloud`,group:`advanced`,order:1,icon:`◎`,desc:`DeepSeek chat & reasoning`,needsKey:!0,placeholder:`sk-...`,baseUrl:`https://api.deepseek.com`,llmModel:`deepseek-chat`,embModel:``,embDims:0},{id:`xai`,name:`xAI (Grok)`,kind:`cloud`,group:`advanced`,order:2,icon:`✦`,desc:`Grok models`,needsKey:!0,placeholder:`xai-...`,baseUrl:`https://api.x.ai`,llmModel:`grok-2`,embModel:``,embDims:0},{id:`openai-compatible`,name:`Custom API server`,kind:`cloud`,group:`advanced`,order:3,icon:`~`,desc:`Connect any AI server that uses the standard OpenAI API format.`,needsKey:!1,needsUrl:!0,optionalKey:!0,placeholder:`API key (optional)`,baseUrl:``,llmModel:``,embModel:``,embDims:0}],re=new Set([`anthropic`]),ie=[{id:`api`,name:`API`,icon:`🔌`,desc:`OpenAI-compatible REST API endpoint`,locked:!0},{id:`discord`,name:`Discord`,icon:`🎮`,desc:`Connect to a Discord server`,credentials:[{key:`botToken`,label:`Bot Token`,placeholder:`Paste Discord bot token`,required:!0},{key:`applicationId`,label:`Application ID`,placeholder:`Discord application ID`,secret:!1}]},{id:`slack`,name:`Slack`,icon:`💼`,desc:`Access via Slack bot`,credentials:[{key:`slackBotToken`,label:`Bot Token`,placeholder:`xoxb-...`,required:!0},{key:`slackAppToken`,label:`App Token`,placeholder:`xapp-...`,required:!0}]}],K=[{id:`ollama`,name:`Ollama`,env:[],models:{},localUrl:`http://localhost:11434`},{id:`model-runner`,name:`Docker Model Runner`,env:[],models:{},localUrl:`http://localhost:12434`},{id:`lmstudio`,name:`LM Studio`,env:[],models:{},localUrl:`http://localhost:1234`},{id:`openai-compatible`,name:`Custom API server`,env:[],models:{},localUrl:``}];function q(e,t,n,r){let i=e=>e.available!==!1,a=W(t,r??(n?`cuda`:`cpu`)),o=W(t,`cpu`);return(e.find(e=>e.id===a&&i(e))??e.find(e=>e.default&&i(e))??e.find(e=>e.id===o&&i(e))??e.find(e=>i(e)))?.id}function J(e){return e.replace(/:.*$/,``)}function ae(e){let t=J(e);return H[e]!==void 0||H[t]!==void 0?!0:/(?:^|[-/_.])(embed|embedding|bge|gte|e5|nomic|mxbai|arctic-embed|minilm)/i.test(e)}function Y(e,t){let n=t.toLowerCase(),r=0;/instruct|chat|-it\b|\bit\b/.test(n)&&(r+=30),/coder|code/.test(n)&&(r+=8);let i=n.match(/(\d+(?:\.\d+)?)\s*x?\s*b\b/),a=i?parseFloat(i[1]):0;return e===`llm`?r+=Math.min(40,a):r+=Math.max(0,20-Math.min(20,a)),r}var oe=new Set([`ollama`,`lmstudio`,`model-runner`]);function se(e,t,n){let r=[];for(let i of t){let t=n[i.id];if(!t)continue;let a=e===`embedding`?i.embModel:i.llmModel,o=t.models.length>0?t.models:[],s=a?o.find(e=>e===a||J(e)===J(a)):void 0;for(let n of o){if(e!==`embedding`&&ae(n))continue;let a=e===`embedding`?H[n]??H[J(n)]??(n===s?i.embDims:0)??0:0;r.push({id:n,connId:i.id,providerName:i.name,baseUrl:t.baseUrl||i.baseUrl,isDefault:n===s,dims:a})}}return e===`embedding`?r.filter(e=>e.isDefault||e.dims>0):r.sort((t,n)=>!!oe.has(t.connId)-+!!oe.has(n.connId)||!!n.isDefault-+!!t.isDefault||Y(e,n.id)-Y(e,t.id))}function X(e,t,n){return e.engine?e:t?{engine:`openpalm-voice`}:{engine:n}}function ce(e,t,n){if(n)return!0;let r=e[t];return typeof r==`object`&&r?r.enabled:!!r}function le(e,t,n){let r=e[t];return typeof r==`object`&&r?String(r[n]??``):``}var ue=d(`<p class="friendly-error-body svelte-iqsgzf"> </p>`),Z=d(`<p class="friendly-error-hint svelte-iqsgzf"> </p>`),de=d(`<a target="_blank" rel="noopener noreferrer" class="friendly-error-link svelte-iqsgzf"> </a>`),Q=d(`<div class="friendly-error-links svelte-iqsgzf"></div>`),$=d(`<details class="friendly-error-details svelte-iqsgzf"><summary class="svelte-iqsgzf">Technical details</summary> <pre class="svelte-iqsgzf"> </pre></details>`),fe=d(`<div class="friendly-error svelte-iqsgzf"><div class="friendly-error-header svelte-iqsgzf"><!> <strong class="friendly-error-title svelte-iqsgzf"> </strong></div> <!> <!> <!> <!></div>`);function pe(e,n){v(n,!0);let a=A(n,`role`,3,`alert`),s=A(n,`compact`,3,!1);var d=c(),f=y(d),p=e=>{var c=fe(),d=E(c),f=E(d);V(f,{size:18});var p=j(f,2),m=E(p,!0);t(p),t(d);var h=j(d,2),g=e=>{var i=ue(),a=E(i,!0);t(i),u(()=>r(a,n.error.body)),o(e,i)};l(h,e=>{n.error.body&&e(g)});var _=j(h,2),v=e=>{var i=Z(),a=E(i,!0);t(i),u(()=>r(a,n.error.hint)),o(e,i)};l(_,e=>{n.error.hint&&e(v)});var y=j(_,2),b=e=>{var a=Q();D(a,21,()=>n.error.links,e=>e.href,(e,n)=>{var a=de(),s=E(a);t(a),u(()=>{w(a,`href`,i(n).href),r(s,`${i(n).label??``} →`)}),o(e,a)}),t(a),o(e,a)};l(y,e=>{n.error.links&&n.error.links.length>0&&e(b)});var x=j(y,2),S=e=>{var i=$(),a=j(E(i),2),s=E(a,!0);t(a),t(i),u(()=>r(s,n.error.raw)),o(e,i)};l(x,e=>{!s()&&n.error.raw&&n.error.raw!==n.error.body&&e(S)}),t(c),u(()=>{w(c,`role`,a()),r(m,n.error.title)}),o(e,c)};l(f,e=>{n.error&&e(p)}),o(e,d),C()}var me=I(`<svg aria-hidden="true" viewBox="0 0 24 24"><circle fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" cx="12" cy="12" r="3.4"></circle><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9 9l-2.6-2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M15 9l2.6-2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9 15l-2.6 2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M15 15l2.6 2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6.4 6.4l1.2-1.2"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M17.6 6.4l-1.2-1.2"></path></svg>`);function he(e,t){let n=A(t,`size`,3,20),r=A(t,`class`,3,``);var i=me();u(()=>{w(i,`width`,n()),w(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),o(e,i)}var ge={label:`Docker setup`,href:`https://docs.docker.com/get-docker/`};function _e(e){if(!e)return``;if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function ve(e,t=`generic`,n={}){let r=_e(e),i=r.toLowerCase(),a=n.providerName?`${n.providerName} didn't accept that key`:`API key rejected`;if(/\b(401|403|unauthorized|forbidden|invalid.?api.?key)\b/i.test(r))return{title:a,body:`The provider rejected the API key.`,hint:`Common causes: extra spaces, wrong account, or the key was revoked. Double-check the key and that it has access to the model you selected. Most providers show the key in their dashboard.`,raw:r};if(/\b(ENOTFOUND|ECONNREFUSED|getaddrinfo|EAI_AGAIN|EHOSTUNREACH)\b/i.test(r))return{title:`Couldn't reach the host`,body:r,hint:`Confirm the URL is correct and the service is online. For local providers (Ollama, LM Studio) make sure the server is running on this machine.`,raw:r};if(/(timeout|timed out|AbortError|ETIMEDOUT)/i.test(r))return{title:`Request timed out`,body:`The provider didn't respond in time.`,hint:`It may be slow or temporarily down. Try again in a moment.`,raw:r};if(i.includes(`docker`)||i.includes(`compose`)||i.includes(`daemon`))return{title:`Docker isn't available`,body:`OpenPalm needs Docker (with Compose v2) installed and running.`,hint:`Start Docker Desktop (macOS/Windows) or the docker daemon (Linux), then retry.`,links:[ge],raw:r};if(/EADDRINUSE/i.test(r)||/port.*in.?use/i.test(i))return{title:`A required port is already in use`,body:r,hint:`Another program is using one of OpenPalm's default ports. Quit the conflicting app, or change OpenPalm's port from the Admin Dashboard after setup.`,raw:r};if(/EACCES|EPERM|permission denied/i.test(r))return{title:`Permission denied`,body:r,hint:`OpenPalm couldn't write to its data directory. Check that ~/.openpalm/ is writable by your user.`,raw:r};switch(t){case`provider-verify`:case`model-fetch`:return{title:`Couldn't connect to the provider`,body:r||`Verification failed.`,hint:`Check the API key and base URL, then click Verify again.`,raw:r};case`setup-complete`:return{title:`Setup couldn't finish`,body:r||`Writing configuration failed.`,hint:`Check the technical details below, then retry. If the issue persists, the admin dashboard logs may help.`,raw:r};case`deploy`:case`deploy-poll`:return{title:`Deployment ran into a problem`,body:r||`One or more services failed to start.`,hint:`Image pulls can take several minutes on first install. Retry to attempt again; check Docker logs if it keeps failing.`,raw:r};case`system-check`:return{title:`System check failed`,body:r||`A required dependency is missing.`,hint:`Resolve the failing check above, then click Retry.`,raw:r};case`portal`:return{title:`Portal credential issue`,body:r||`A required field is missing or invalid.`,hint:`Confirm the bot token and other required fields are correct.`,raw:r};case`port-conflict`:return{title:`A required port is already in use`,body:r||`Another process is using one of OpenPalm's ports.`,hint:`Another program is using one of OpenPalm's default ports. Quit the conflicting app, or change OpenPalm's port from the Admin Dashboard after setup.`,raw:r};default:return{title:`Something went wrong`,body:r||`An unexpected error occurred.`,hint:`Try again. If the problem persists, check the admin dashboard logs.`,raw:r}}}var ye=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>`),be=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-seal)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>`),xe=d(`<div class="syscheck-meta svelte-1txhq2p"> </div>`),Se=d(`<div class="syscheck-hint svelte-1txhq2p"> </div> <a class="syscheck-link svelte-1txhq2p" target="_blank" rel="noopener noreferrer"> </a>`,1),Ce=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>`),we=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-seal)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>`),Te=d(`<div class="syscheck-meta svelte-1txhq2p"> </div>`),Ee=d('<div class="syscheck-hint svelte-1txhq2p">Compose v2 ships with Docker Desktop. Linux users may need to install the `docker-compose-plugin` package.</div> <a class="syscheck-link svelte-1txhq2p" href="https://docs.docker.com/compose/install/" target="_blank" rel="noopener noreferrer">Compose installation guide →</a>',1),De=d(`<div class="syscheck-row syscheck-row--ok svelte-1txhq2p"><div class="syscheck-icon svelte-1txhq2p"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">GPU detected</div> <div class="syscheck-meta svelte-1txhq2p"> </div></div></div>`),Oe=d(`<div class="syscheck-row syscheck-row--info svelte-1txhq2p"><div class="syscheck-icon svelte-1txhq2p" aria-hidden="true"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p"> </div> <div class="syscheck-meta svelte-1txhq2p"> </div> <div class="syscheck-hint svelte-1txhq2p">We can use this automatically — pick your model on the Models step.</div></div></div>`),ke=d(`<div><div class="syscheck-icon svelte-1txhq2p"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v4"></path><path d="M12 17h.01"></path><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path></svg></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p"> </div> <div class="syscheck-hint svelte-1txhq2p"><!></div></div></div>`),Ae=d(`<h2>System Check</h2> <p class="step-description">Let's make sure your machine has everything OpenPalm needs.</p> <!> <div class="syscheck-list svelte-1txhq2p" aria-live="polite"><div><div class="syscheck-icon svelte-1txhq2p"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">Docker is installed and running</div> <!></div></div> <div><div class="syscheck-icon svelte-1txhq2p"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">Docker can run multi-container apps</div> <!></div></div> <!> <!> <!></div> <div class="step-actions"><button class="btn btn-secondary" id="btn-syscheck-retry"> </button> <button class="btn btn-primary" id="btn-syscheck-next">Continue</button></div>`,1);function je(n,s){v(s,!0);let d={ollama:`Ollama`,lmstudio:`LM Studio`,"model-runner":`Docker Model Runner`},m=new Set([`ollama`,`lmstudio`,`model-runner`]),h=A(s,`isRerun`,3,!1),g=b(!0),_=b(null),x=b(null),S=M(()=>h()?[]:i(_)?.ports.filter(e=>!e.available)??[]),k=M(()=>i(S).filter(e=>e.blocking)),N=M(()=>i(k).length>0),P=M(()=>!!i(_)?.docker.ok&&!!i(_)?.compose.ok&&!i(N));function ee(e){return e===`darwin`?{label:`Install Docker Desktop for Mac`,href:`https://www.docker.com/products/docker-desktop/`}:e===`win32`?{label:`Install Docker Desktop for Windows`,href:`https://www.docker.com/products/docker-desktop/`}:{label:`Install Docker Engine for Linux`,href:`https://docs.docker.com/engine/install/`}}function F(e){return e===`darwin`||e===`win32`?`Open Docker Desktop and wait for it to finish starting, then click Retry.`:"Run `sudo systemctl start docker` (or your distro's equivalent), then click Retry."}async function I(){O(g,!0),O(x,null);try{let e=await fetch(`/api/setup/system-check`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();O(_,t,!0),t.docker.ok&&t.compose.ok&&s.onpass(),t.gpu&&s.ongpudetected?.(t.gpu)}catch(e){O(x,ve(e,`system-check`),!0),O(_,null)}finally{O(g,!1)}}T(()=>{I()});var L=Ae(),ne=j(y(L),4),z=e=>{pe(e,{get error(){return i(x)}})};l(ne,e=>{i(x)&&e(z)});var B=j(ne,2),V=E(B);let H;var U=E(V),W=E(U),G=e=>{te(e,{size:16})},re=e=>{o(e,ye())},ie=e=>{o(e,be())};l(W,e=>{i(g)?e(G):i(_)?.docker.ok?e(re,1):e(ie,-1)}),t(U);var K=j(U,2),q=j(E(K),2),J=e=>{var n=xe(),a=E(n);t(n),u(()=>r(a,`${i(_).runtime?.runtimeName??`Docker`??``} server ${i(_).docker.version??``}`)),o(e,n)},ae=e=>{var n=Se(),a=y(n),s=E(a,!0);t(a);var c=j(a,2),l=E(c);t(c),u((e,t,n)=>{r(s,e),w(c,`href`,t),r(l,`${n??``} →`)},[()=>i(_).docker.error?.includes(`not found`)||i(_).docker.error?.includes(`ENOENT`)?`Docker isn't installed yet.`:F(i(_).platform),()=>ee(i(_).platform).href,()=>ee(i(_).platform).label]),o(e,n)};l(q,e=>{i(_)?.docker.ok&&i(_).docker.version?e(J):i(_)&&!i(_).docker.ok&&e(ae,1)}),t(K),t(V);var Y=j(V,2);let oe;var se=E(Y),X=E(se),ce=e=>{te(e,{size:16})},le=e=>{o(e,Ce())},ue=e=>{o(e,we())};l(X,e=>{i(g)?e(ce):i(_)?.compose.ok?e(le,1):e(ue,-1)}),t(se);var Z=j(se,2),de=j(E(Z),2),Q=e=>{var n=Te(),a=E(n,!0);t(n),u(()=>r(a,i(_).compose.version)),o(e,n)},$=e=>{var t=Ee();p(2),o(e,t)};l(de,e=>{i(_)?.compose.ok&&i(_).compose.version?e(Q):i(_)&&!i(_).compose.ok&&e($,1)}),t(Z),t(Y);var fe=j(Y,2),me=e=>{var n=De(),a=j(E(n),2),s=j(E(a),2),c=E(s,!0);t(s),t(a),t(n),u(()=>r(c,i(_).gpu)),o(e,n)};l(fe,e=>{i(_)?.gpu&&e(me)});var ge=j(fe,2),_e=e=>{var n=c();D(y(n),17,()=>i(_).hostProviders,e=>e.provider,(e,n)=>{var a=Oe(),s=E(a),c=E(s),f=e=>{R(e,{size:18})},h=M(()=>m.has(i(n).provider)),g=e=>{he(e,{size:18})};l(c,e=>{i(h)?e(f):e(g,-1)}),t(s);var _=j(s,2),v=E(_),y=E(v);t(v);var b=j(v,2),x=E(b,!0);t(b),p(2),t(_),t(a),u(()=>{r(y,`${d[i(n).provider]??i(n).provider??``} is running`),r(x,i(n).url)}),o(e,a)}),o(e,n)};l(ge,e=>{i(_)?.hostProviders&&i(_).hostProviders.length>0&&e(_e)});var je=j(ge,2),Me=n=>{var a=ke(),s=E(a),c=E(s);t(s);var d=j(s,2),p=E(d),m=E(p);t(p);var h=j(p,2),g=E(h),v=t=>{o(t,e(`Docker is not running — start Docker and click Retry to confirm.`))},y=t=>{o(t,e(`Another program is using this port. Quit it and click Retry.`))};l(g,e=>{i(_).portCheckReliable?e(y,-1):e(v)}),t(h),t(d),t(a),u(e=>{f(a,1,`syscheck-row ${i(N)?`syscheck-row--fail`:`syscheck-row--warn`}`,`svelte-1txhq2p`),w(c,`stroke`,i(N)?`var(--s-seal)`:`var(--s-ink-2)`),r(m,`Port conflict on ${e??``}`)},[()=>i(S).map(e=>e.port).join(`, `)]),o(n,a)};l(je,e=>{i(_)&&i(S).length>0&&e(Me)}),t(B);var Ne=j(B,2),Pe=E(Ne),Fe=E(Pe,!0);t(Pe);var Ie=j(Pe,2);t(Ne),u(()=>{H=f(V,1,`syscheck-row svelte-1txhq2p`,null,H,{"syscheck-row--ok":i(_)?.docker.ok,"syscheck-row--fail":i(_)&&!i(_).docker.ok}),oe=f(Y,1,`syscheck-row svelte-1txhq2p`,null,oe,{"syscheck-row--ok":i(_)?.compose.ok,"syscheck-row--fail":i(_)&&!i(_).compose.ok}),Pe.disabled=i(g),r(Fe,i(g)?`Checking…`:`Retry checks`),Ie.disabled=i(g)||!i(P)}),a(`click`,Pe,()=>I()),a(`click`,Ie,function(...e){s.onnext?.apply(this,e)}),o(n,L),C()}h([`click`]);var Me=d(`<p class="oauth-empty svelte-1kgjxt0">Nothing more to add — you're all connected.</p>`),Ne=d(`<span class="oauth-status oauth-status--ok svelte-1kgjxt0">Connected ✓</span>`),Pe=d(`<a target="_blank" rel="noopener" class="oauth-open-link svelte-1kgjxt0">Open authorization page →</a>`),Fe=d(`<p class="oauth-instructions svelte-1kgjxt0"> </p>`),Ie=d(`<div class="oauth-polling svelte-1kgjxt0"><!> <!> <div class="oauth-waiting svelte-1kgjxt0"><!> Waiting for authorization…</div> <button type="button" class="btn-oauth-cancel svelte-1kgjxt0">Cancel</button></div>`),Le=d(`<button type="button" class="btn btn-secondary btn-sm"> </button>`),Re=d(`<span class="oauth-error svelte-1kgjxt0" role="alert"> </span>`),ze=d(`<div class="oauth-row svelte-1kgjxt0" role="listitem"><span class="oauth-name svelte-1kgjxt0"> </span> <!> <!></div>`),Be=d(`<button type="button" class="oauth-more svelte-1kgjxt0"> </button>`),Ve=d(`<!> <!>`,1),He=d(`<div class="oauth-list svelte-1kgjxt0" role="list"><!></div>`);function Ue(e,n){v(n,!0);let s=[`openai`,`google`,`github-copilot`,`groq`,`mistral`,`huggingface`],c=M(()=>n.opencodeProviders.filter(e=>re.has(e.id)||n.providerState[e.id]?.verified?!1:(n.opencodeAuth[e.id]??[]).some(e=>e.type===`oauth`)).sort((e,t)=>{let n=s.indexOf(e.id),r=s.indexOf(t.id);return(n===-1?99:n)-(r===-1?99:r)})),d=b(!1),f=M(()=>i(d)?i(c):i(c).slice(0,4)),m=M(()=>Math.max(0,i(c).length-4));function h(e){return n.providerState[e]??{selected:!1,verified:!1,verifying:!1,error:!1,apiKey:``,baseUrl:``,models:[],ollamaMode:null}}function g(e){return(n.opencodeAuth[e]??[]).findIndex(e=>e.type===`oauth`)}var _=He(),x=E(_),S=e=>{o(e,Me())},T=e=>{var s=Ve(),c=y(s);D(c,17,()=>i(f),e=>e.id,(e,s)=>{let c=M(()=>h(i(s).id)),d=M(()=>g(i(s).id));var f=ze(),m=E(f),_=E(m,!0);t(m);var v=j(m,2),y=e=>{var t=Ne();u(()=>w(t,`aria-label`,`${i(s).name??``} connected`)),o(e,t)},b=e=>{var d=Ie(),f=E(d),m=e=>{var t=Pe();u(()=>w(t,`href`,i(c).oauthUrl)),o(e,t)};l(f,e=>{i(c).oauthUrl&&e(m)});var h=j(f,2),g=e=>{var n=Fe(),a=E(n,!0);t(n),u(()=>r(a,i(c).oauthInstructions)),o(e,n)};l(h,e=>{i(c).oauthInstructions&&e(g)});var _=j(h,2);te(E(_),{}),p(),t(_);var v=j(_,2);t(d),a(`click`,v,()=>n.onoauthcancel(i(s).id)),o(e,d)},x=e=>{var l=Le(),f=E(l,!0);t(l),u(()=>{l.disabled=i(c).verifying,r(f,i(c).verifying?`Signing in…`:`Sign in`)}),a(`click`,l,()=>n.onoauthstart(i(s).id,i(d))),o(e,l)};l(v,e=>{i(c).verified?e(y):i(c).oauthPolling?e(b,1):e(x,-1)});var S=j(v,2),C=e=>{var n=Re(),a=E(n,!0);t(n),u(()=>r(a,i(c).errorMessage??`Authorization failed`)),o(e,n)};l(S,e=>{i(c).error&&!i(c).oauthPolling&&e(C)}),t(f),u(()=>{w(f,`data-provider`,i(s).id),r(_,i(s).name)}),o(e,f)});var _=j(c,2),v=e=>{var n=Be(),s=E(n,!0);t(n),u(()=>r(s,i(d)?`Show fewer`:`Show ${i(m)} more services`)),a(`click`,n,()=>{O(d,!i(d))}),o(e,n)};l(_,e=>{i(m)>0&&e(v)}),o(e,s)};l(x,e=>{i(c).length===0?e(S):e(T,-1)}),t(_),o(e,_),C()}h([`click`]);var We=d(`<p class="connected svelte-v318we" role="status"><span class="check svelte-v318we" aria-hidden="true">✓</span> Connected your AI account.</p> <button type="button" class="account-link svelte-v318we">Use a different account</button>`,1),Ge=d(`<p class="connecting svelte-v318we" role="status"><!> Connecting your AI account…</p>`),Ke=d(`<p class="lead svelte-v318we">We found an AI account on this computer.</p> <button type="button" class="btn-connect svelte-v318we" id="btn-host-import">Use this account</button> <button type="button" class="account-link svelte-v318we">Use a different account</button>`,1),qe=d(`<button type="button" class="account-link svelte-v318we">Use the account on this computer instead</button>`),Je=d(`<p class="lead svelte-v318we">Sign in to your AI service:</p> <!> <!>`,1),Ye=d(`<div class="cloud-attach svelte-v318we"><!></div>`);function Xe(e,n){v(n,!0);let r=A(n,`credentialCount`,3,0),s=A(n,`cloudProviders`,19,()=>[]),u=A(n,`opencodeProviders`,19,()=>[]),d=A(n,`opencodeAuth`,19,()=>({})),f=A(n,`providerState`,19,()=>({})),m=A(n,`hostImporting`,3,!1),h=A(n,`verifiedCount`,3,0),g=M(()=>r()>0||s().length>0),_=M(()=>h()>0),x=b(!1),S=M(()=>!i(g)||i(x));var w=Ye(),T=E(w),D=e=>{var r=c(),s=y(r),u=e=>{var t=We();a(`click`,j(y(t),2),()=>O(x,!0)),o(e,t)},d=e=>{var n=Ge();te(E(n),{}),p(),t(n),o(e,n)},f=e=>{var t=Ke(),r=j(y(t),2),i=j(r,2);a(`click`,r,function(...e){n.onhostimport?.apply(this,e)}),a(`click`,i,()=>O(x,!0)),o(e,t)};l(s,e=>{i(_)?e(u):m()?e(d,1):e(f,-1)}),o(e,r)},k=e=>{var t=Je(),r=j(y(t),2);Ue(r,{get opencodeProviders(){return u()},get opencodeAuth(){return d()},get providerState(){return f()},onoauthstart:(e,t)=>n.onoauthstart?.(e,t),onoauthcancel:e=>n.onoauthcancel?.(e)});var s=j(r,2),c=e=>{var t=qe();a(`click`,t,()=>O(x,!1)),o(e,t)};l(s,e=>{i(g)&&e(c)}),o(e,t)};l(T,e=>{i(S)?e(k,-1):e(D)}),t(w),o(e,w),C()}h([`click`]);var Ze=d(`<div class="status-row status-row--running svelte-1fl6n4z" role="status"><span class="status-icon svelte-1fl6n4z" aria-hidden="true">●</span> <span class="status-text svelte-1fl6n4z"> </span></div>`),Qe=d(`<div class="status-callout status-callout--apple svelte-1fl6n4z" role="note"><div class="callout-icon svelte-1fl6n4z" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg></div> <div class="callout-body svelte-1fl6n4z"><p class="callout-title svelte-1fl6n4z">Apple Silicon detected</p> <p class="callout-desc svelte-1fl6n4z">For best performance, install <a href="https://ollama.com/download" target="_blank" rel="noopener" class="svelte-1fl6n4z">Ollama for macOS</a> and leave it running before continuing. Once Ollama is running, click Re-check to continue.</p> <button class="btn-recheck svelte-1fl6n4z" type="button" id="btn-local-recheck">Re-check</button></div></div>`),$e=d(`<div class="status-row status-row--will-install svelte-1fl6n4z" role="status"><span class="status-icon svelte-1fl6n4z" aria-hidden="true">◎</span> <span class="status-text svelte-1fl6n4z">Will install Ollama in the stack <!>.
1
+ import{B as e,Ct as t,E as n,F as r,G as i,H as a,I as o,J as s,L as c,P as l,Q as u,R as d,S as f,St as p,U as m,V as h,Z as g,_,_t as v,at as y,dt as b,ft as x,g as S,gt as C,h as w,i as T,it as E,j as D,lt as O,m as k,o as A,ot as j,pt as M,rt as N,st as P,u as ee,x as F,z as I}from"../chunks/B6a5LPQe.js";import{l as L}from"../chunks/CLensmFQ.js";import"../chunks/xihTtKlq.js";import{t as R}from"../chunks/BiuKIdz2.js";import{t as te}from"../chunks/BeDFZ0w6.js";import{t as ne}from"../chunks/mVxTG_mC.js";import{t as z}from"../chunks/C8Qdq8nY.js";import{n as B,t as V}from"../chunks/BFVV1YJb.js";var H=Object.fromEntries(Object.entries({"openai/text-embedding-3-small":1536,"openai/text-embedding-3-large":3072,"openai/text-embedding-ada-002":1536,"ollama/nomic-embed-text":768,"ollama/mxbai-embed-large":1024,"ollama/mxbai-embed-large-v1":1024,"ollama/all-minilm":384,"ollama/snowflake-arctic-embed":1024,"model-runner/ai/mxbai-embed-large-v1":1024,"mistral/mistral-embed":1024,"google/text-embedding-004":768,"huggingface/sentence-transformers/all-MiniLM-L6-v2":384,"huggingface/intfloat/multilingual-e5-large":1024}).map(([e,t])=>[e.slice(e.indexOf(`/`)+1),t])),U={chat:`llama3.2:latest`,embedding:`nomic-embed-text`}.chat;function W(e,t){return`addon.${e}.${t}`}var G=[{id:`ollama`,name:`Ollama`,kind:`local`,group:`recommended`,order:1,icon:`🦙`,desc:`Run open models on your hardware`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:11434`,llmModel:`llama3.2`,embModel:`nomic-embed-text`,embDims:768,canDetect:!0},{id:`huggingface`,name:`Hugging Face`,kind:`cloud`,group:`recommended`,order:2,icon:`🤗`,desc:`10,000+ open models via Inference Providers`,needsKey:!0,placeholder:`hf_...`,baseUrl:`https://router.huggingface.co/v1`,llmModel:`Qwen/Qwen3-32B`,embModel:`intfloat/multilingual-e5-large`,embDims:1024,keyPrefix:`hf_`},{id:`openai`,name:`OpenAI`,kind:`cloud`,group:`recommended`,order:3,icon:`◐`,desc:`GPT and o-series reasoning models`,needsKey:!0,placeholder:`sk-...`,baseUrl:`https://api.openai.com`,llmModel:`gpt-4o`,embModel:`text-embedding-3-small`,embDims:1536},{id:`google`,name:`Google`,kind:`cloud`,group:`recommended`,order:4,icon:`◆`,desc:`Gemini models with large context`,needsKey:!0,placeholder:`AIza...`,baseUrl:`https://generativelanguage.googleapis.com`,llmModel:`gemini-2.5-flash`,embModel:``,embDims:0,keyPrefix:`AI`},{id:`model-runner`,name:`Docker Model Runner`,kind:`local`,group:`local`,order:1,icon:`🐳`,desc:`Docker-managed model runtime`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:12434`,llmModel:`ai/llama3.2`,embModel:`ai/mxbai-embed-large-v1`,embDims:1024,canDetect:!0},{id:`lmstudio`,name:`LM Studio`,kind:`local`,group:`local`,order:2,icon:`🔬`,desc:`Desktop app for local inference`,needsKey:!1,placeholder:``,baseUrl:`http://localhost:1234`,llmModel:`loaded-model`,embModel:``,embDims:0,canDetect:!0},{id:`groq`,name:`Groq`,kind:`cloud`,group:`cloud`,order:1,icon:`⚡`,desc:`Ultra-fast inference`,needsKey:!0,placeholder:`gsk_...`,baseUrl:`https://api.groq.com/openai`,llmModel:`llama-3.3-70b-versatile`,embModel:``,embDims:0},{id:`mistral`,name:`Mistral`,kind:`cloud`,group:`cloud`,order:2,icon:`◆`,desc:`Mistral & Codestral models`,needsKey:!0,placeholder:`...`,baseUrl:`https://api.mistral.ai`,llmModel:`mistral-large-latest`,embModel:`mistral-embed`,embDims:1024},{id:`together`,name:`Together AI`,kind:`cloud`,group:`cloud`,order:3,icon:`✦`,desc:`Open models at scale`,needsKey:!0,placeholder:`...`,baseUrl:`https://api.together.xyz`,llmModel:`meta-llama/Llama-3.3-70B-Instruct-Turbo`,embModel:``,embDims:0},{id:`deepseek`,name:`DeepSeek`,kind:`cloud`,group:`advanced`,order:1,icon:`◎`,desc:`DeepSeek chat & reasoning`,needsKey:!0,placeholder:`sk-...`,baseUrl:`https://api.deepseek.com`,llmModel:`deepseek-chat`,embModel:``,embDims:0},{id:`xai`,name:`xAI (Grok)`,kind:`cloud`,group:`advanced`,order:2,icon:`✦`,desc:`Grok models`,needsKey:!0,placeholder:`xai-...`,baseUrl:`https://api.x.ai`,llmModel:`grok-2`,embModel:``,embDims:0},{id:`openai-compatible`,name:`Custom API server`,kind:`cloud`,group:`advanced`,order:3,icon:`~`,desc:`Connect any AI server that uses the standard OpenAI API format.`,needsKey:!1,needsUrl:!0,optionalKey:!0,placeholder:`API key (optional)`,baseUrl:``,llmModel:``,embModel:``,embDims:0}],re=new Set([`anthropic`]),ie=[{id:`api`,name:`API`,icon:`🔌`,desc:`OpenAI-compatible REST API endpoint`,locked:!0},{id:`discord`,name:`Discord`,icon:`🎮`,desc:`Connect to a Discord server`,credentials:[{key:`botToken`,label:`Bot Token`,placeholder:`Paste Discord bot token`,required:!0},{key:`applicationId`,label:`Application ID`,placeholder:`Discord application ID`,secret:!1}]},{id:`slack`,name:`Slack`,icon:`💼`,desc:`Access via Slack bot`,credentials:[{key:`slackBotToken`,label:`Bot Token`,placeholder:`xoxb-...`,required:!0},{key:`slackAppToken`,label:`App Token`,placeholder:`xapp-...`,required:!0}]}],K=[{id:`ollama`,name:`Ollama`,env:[],models:{},localUrl:`http://localhost:11434`},{id:`model-runner`,name:`Docker Model Runner`,env:[],models:{},localUrl:`http://localhost:12434`},{id:`lmstudio`,name:`LM Studio`,env:[],models:{},localUrl:`http://localhost:1234`},{id:`openai-compatible`,name:`Custom API server`,env:[],models:{},localUrl:``}];function q(e,t,n,r){let i=e=>e.available!==!1,a=W(t,r??(n?`cuda`:`cpu`)),o=W(t,`cpu`);return(e.find(e=>e.id===a&&i(e))??e.find(e=>e.default&&i(e))??e.find(e=>e.id===o&&i(e))??e.find(e=>i(e)))?.id}function J(e){return e.replace(/:.*$/,``)}function ae(e){let t=J(e);return H[e]!==void 0||H[t]!==void 0?!0:/(?:^|[-/_.])(embed|embedding|bge|gte|e5|nomic|mxbai|arctic-embed|minilm)/i.test(e)}function Y(e,t){let n=t.toLowerCase(),r=0;/instruct|chat|-it\b|\bit\b/.test(n)&&(r+=30),/coder|code/.test(n)&&(r+=8);let i=n.match(/(\d+(?:\.\d+)?)\s*x?\s*b\b/),a=i?parseFloat(i[1]):0;return e===`llm`?r+=Math.min(40,a):r+=Math.max(0,20-Math.min(20,a)),r}var oe=new Set([`ollama`,`lmstudio`,`model-runner`]);function se(e,t,n){let r=[];for(let i of t){let t=n[i.id];if(!t)continue;let a=e===`embedding`?i.embModel:i.llmModel,o=t.models.length>0?t.models:[],s=a?o.find(e=>e===a||J(e)===J(a)):void 0;for(let n of o){if(e!==`embedding`&&ae(n))continue;let a=e===`embedding`?H[n]??H[J(n)]??(n===s?i.embDims:0)??0:0;r.push({id:n,connId:i.id,providerName:i.name,baseUrl:t.baseUrl||i.baseUrl,isDefault:n===s,dims:a})}}return e===`embedding`?r.filter(e=>e.isDefault||e.dims>0):r.sort((t,n)=>!!oe.has(t.connId)-+!!oe.has(n.connId)||!!n.isDefault-+!!t.isDefault||Y(e,n.id)-Y(e,t.id))}function X(e,t,n){return e.engine?e:t?{engine:`openpalm-voice`}:{engine:n}}function ce(e,t,n){if(n)return!0;let r=e[t];return typeof r==`object`&&r?r.enabled:!!r}function le(e,t,n){let r=e[t];return typeof r==`object`&&r?String(r[n]??``):``}var ue=d(`<p class="friendly-error-body svelte-iqsgzf"> </p>`),Z=d(`<p class="friendly-error-hint svelte-iqsgzf"> </p>`),de=d(`<a target="_blank" rel="noopener noreferrer" class="friendly-error-link svelte-iqsgzf"> </a>`),Q=d(`<div class="friendly-error-links svelte-iqsgzf"></div>`),$=d(`<details class="friendly-error-details svelte-iqsgzf"><summary class="svelte-iqsgzf">Technical details</summary> <pre class="svelte-iqsgzf"> </pre></details>`),fe=d(`<div class="friendly-error svelte-iqsgzf"><div class="friendly-error-header svelte-iqsgzf"><!> <strong class="friendly-error-title svelte-iqsgzf"> </strong></div> <!> <!> <!> <!></div>`);function pe(e,n){v(n,!0);let a=A(n,`role`,3,`alert`),s=A(n,`compact`,3,!1);var d=c(),f=y(d),p=e=>{var c=fe(),d=E(c),f=E(d);V(f,{size:18});var p=j(f,2),m=E(p,!0);t(p),t(d);var h=j(d,2),g=e=>{var i=ue(),a=E(i,!0);t(i),u(()=>r(a,n.error.body)),o(e,i)};l(h,e=>{n.error.body&&e(g)});var _=j(h,2),v=e=>{var i=Z(),a=E(i,!0);t(i),u(()=>r(a,n.error.hint)),o(e,i)};l(_,e=>{n.error.hint&&e(v)});var y=j(_,2),b=e=>{var a=Q();D(a,21,()=>n.error.links,e=>e.href,(e,n)=>{var a=de(),s=E(a);t(a),u(()=>{w(a,`href`,i(n).href),r(s,`${i(n).label??``} →`)}),o(e,a)}),t(a),o(e,a)};l(y,e=>{n.error.links&&n.error.links.length>0&&e(b)});var x=j(y,2),S=e=>{var i=$(),a=j(E(i),2),s=E(a,!0);t(a),t(i),u(()=>r(s,n.error.raw)),o(e,i)};l(x,e=>{!s()&&n.error.raw&&n.error.raw!==n.error.body&&e(S)}),t(c),u(()=>{w(c,`role`,a()),r(m,n.error.title)}),o(e,c)};l(f,e=>{n.error&&e(p)}),o(e,d),C()}var me=I(`<svg aria-hidden="true" viewBox="0 0 24 24"><circle fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" cx="12" cy="12" r="3.4"></circle><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9 9l-2.6-2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M15 9l2.6-2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M9 15l-2.6 2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M15 15l2.6 2.6"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M6.4 6.4l1.2-1.2"></path><path fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" d="M17.6 6.4l-1.2-1.2"></path></svg>`);function he(e,t){let n=A(t,`size`,3,20),r=A(t,`class`,3,``);var i=me();u(()=>{w(i,`width`,n()),w(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),o(e,i)}var ge={label:`Docker setup`,href:`https://docs.docker.com/get-docker/`};function _e(e){if(!e)return``;if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function ve(e,t=`generic`,n={}){let r=_e(e),i=r.toLowerCase(),a=n.providerName?`${n.providerName} didn't accept that key`:`API key rejected`;if(/\b(401|403|unauthorized|forbidden|invalid.?api.?key)\b/i.test(r))return{title:a,body:`The provider rejected the API key.`,hint:`Common causes: extra spaces, wrong account, or the key was revoked. Double-check the key and that it has access to the model you selected. Most providers show the key in their dashboard.`,raw:r};if(/\b(ENOTFOUND|ECONNREFUSED|getaddrinfo|EAI_AGAIN|EHOSTUNREACH)\b/i.test(r))return{title:`Couldn't reach the host`,body:r,hint:`Confirm the URL is correct and the service is online. For local providers (Ollama, LM Studio) make sure the server is running on this machine.`,raw:r};if(/(timeout|timed out|AbortError|ETIMEDOUT)/i.test(r))return{title:`Request timed out`,body:`The provider didn't respond in time.`,hint:`It may be slow or temporarily down. Try again in a moment.`,raw:r};if(i.includes(`docker`)||i.includes(`compose`)||i.includes(`daemon`))return{title:`Docker isn't available`,body:`OpenPalm needs Docker (with Compose v2) installed and running.`,hint:`Start Docker Desktop (macOS/Windows) or the docker daemon (Linux), then retry.`,links:[ge],raw:r};if(/EADDRINUSE/i.test(r)||/port.*in.?use/i.test(i))return{title:`A required port is already in use`,body:r,hint:`Another program is using one of OpenPalm's default ports. Quit the conflicting app, or change OpenPalm's port from the Admin Dashboard after setup.`,raw:r};if(/EACCES|EPERM|permission denied/i.test(r))return{title:`Permission denied`,body:r,hint:`OpenPalm couldn't write to its data directory. Check that ~/.openpalm/ is writable by your user.`,raw:r};switch(t){case`provider-verify`:case`model-fetch`:return{title:`Couldn't connect to the provider`,body:r||`Verification failed.`,hint:`Check the API key and base URL, then click Verify again.`,raw:r};case`setup-complete`:return{title:`Setup couldn't finish`,body:r||`Writing configuration failed.`,hint:`Check the technical details below, then retry. If the issue persists, the admin dashboard logs may help.`,raw:r};case`deploy`:case`deploy-poll`:return{title:`Deployment ran into a problem`,body:r||`One or more services failed to start.`,hint:`Image pulls can take several minutes on first install. Retry to attempt again; check Docker logs if it keeps failing.`,raw:r};case`system-check`:return{title:`System check failed`,body:r||`A required dependency is missing.`,hint:`Resolve the failing check above, then click Retry.`,raw:r};case`portal`:return{title:`Portal credential issue`,body:r||`A required field is missing or invalid.`,hint:`Confirm the bot token and other required fields are correct.`,raw:r};case`port-conflict`:return{title:`A required port is already in use`,body:r||`Another process is using one of OpenPalm's ports.`,hint:`Another program is using one of OpenPalm's default ports. Quit the conflicting app, or change OpenPalm's port from the Admin Dashboard after setup.`,raw:r};default:return{title:`Something went wrong`,body:r||`An unexpected error occurred.`,hint:`Try again. If the problem persists, check the admin dashboard logs.`,raw:r}}}var ye=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>`),be=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-seal)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>`),xe=d(`<div class="syscheck-meta svelte-1txhq2p"> </div>`),Se=d(`<div class="syscheck-hint svelte-1txhq2p"> </div> <a class="syscheck-link svelte-1txhq2p" target="_blank" rel="noopener noreferrer"> </a>`,1),Ce=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>`),we=I(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-seal)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>`),Te=d(`<div class="syscheck-meta svelte-1txhq2p"> </div>`),Ee=d('<div class="syscheck-hint svelte-1txhq2p">Compose v2 ships with Docker Desktop. Linux users may need to install the `docker-compose-plugin` package.</div> <a class="syscheck-link svelte-1txhq2p" href="https://docs.docker.com/compose/install/" target="_blank" rel="noopener noreferrer">Compose installation guide →</a>',1),De=d(`<div class="syscheck-row syscheck-row--ok svelte-1txhq2p"><div class="syscheck-icon svelte-1txhq2p"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">GPU detected</div> <div class="syscheck-meta svelte-1txhq2p"> </div></div></div>`),Oe=d(`<div class="syscheck-row syscheck-row--info svelte-1txhq2p"><div class="syscheck-icon svelte-1txhq2p" aria-hidden="true"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p"> </div> <div class="syscheck-meta svelte-1txhq2p"> </div> <div class="syscheck-hint svelte-1txhq2p">We can use this automatically — pick your model on the Models step.</div></div></div>`),ke=d(`<div><div class="syscheck-icon svelte-1txhq2p"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v4"></path><path d="M12 17h.01"></path><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path></svg></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p"> </div> <div class="syscheck-hint svelte-1txhq2p"><!></div></div></div>`),Ae=d(`<h2>System Check</h2> <p class="step-description">Let's make sure your machine has everything OpenPalm needs.</p> <!> <div class="syscheck-list svelte-1txhq2p" aria-live="polite"><div><div class="syscheck-icon svelte-1txhq2p"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">Docker is installed and running</div> <!></div></div> <div><div class="syscheck-icon svelte-1txhq2p"><!></div> <div class="syscheck-body svelte-1txhq2p"><div class="syscheck-title svelte-1txhq2p">Docker can run multi-container apps</div> <!></div></div> <!> <!> <!></div> <div class="step-actions"><button class="btn btn-secondary" id="btn-syscheck-retry"> </button> <button class="btn btn-primary" id="btn-syscheck-next">Continue</button></div>`,1);function je(n,s){v(s,!0);let d={ollama:`Ollama`,lmstudio:`LM Studio`,"model-runner":`Docker Model Runner`},m=new Set([`ollama`,`lmstudio`,`model-runner`]),h=A(s,`isRerun`,3,!1),g=b(!0),_=b(null),x=b(null),S=M(()=>h()?[]:i(_)?.ports.filter(e=>!e.available)??[]),k=M(()=>i(S).filter(e=>e.blocking)),N=M(()=>i(k).length>0),P=M(()=>!!i(_)?.docker.ok&&!!i(_)?.compose.ok&&!i(N));function ee(e){return e===`darwin`?{label:`Install Docker Desktop for Mac`,href:`https://www.docker.com/products/docker-desktop/`}:e===`win32`?{label:`Install Docker Desktop for Windows`,href:`https://www.docker.com/products/docker-desktop/`}:{label:`Install Docker Engine for Linux`,href:`https://docs.docker.com/engine/install/`}}function F(e){return e===`darwin`||e===`win32`?`Open Docker Desktop and wait for it to finish starting, then click Retry.`:"Run `sudo systemctl start docker` (or your distro's equivalent), then click Retry."}async function I(){O(g,!0),O(x,null);try{let e=await fetch(`/api/setup/system-check`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();O(_,t,!0),t.docker.ok&&t.compose.ok&&s.onpass(),t.gpu&&s.ongpudetected?.(t.gpu)}catch(e){O(x,ve(e,`system-check`),!0),O(_,null)}finally{O(g,!1)}}T(()=>{I()});var L=Ae(),ne=j(y(L),4),z=e=>{pe(e,{get error(){return i(x)}})};l(ne,e=>{i(x)&&e(z)});var B=j(ne,2),V=E(B);let H;var U=E(V),W=E(U),G=e=>{te(e,{size:16})},re=e=>{o(e,ye())},ie=e=>{o(e,be())};l(W,e=>{i(g)?e(G):i(_)?.docker.ok?e(re,1):e(ie,-1)}),t(U);var K=j(U,2),q=j(E(K),2),J=e=>{var n=xe(),a=E(n);t(n),u(()=>r(a,`${i(_).runtime?.runtimeName??`Docker`??``} server ${i(_).docker.version??``}`)),o(e,n)},ae=e=>{var n=Se(),a=y(n),s=E(a,!0);t(a);var c=j(a,2),l=E(c);t(c),u((e,t,n)=>{r(s,e),w(c,`href`,t),r(l,`${n??``} →`)},[()=>i(_).docker.error?.includes(`not found`)||i(_).docker.error?.includes(`ENOENT`)?`Docker isn't installed yet.`:F(i(_).platform),()=>ee(i(_).platform).href,()=>ee(i(_).platform).label]),o(e,n)};l(q,e=>{i(_)?.docker.ok&&i(_).docker.version?e(J):i(_)&&!i(_).docker.ok&&e(ae,1)}),t(K),t(V);var Y=j(V,2);let oe;var se=E(Y),X=E(se),ce=e=>{te(e,{size:16})},le=e=>{o(e,Ce())},ue=e=>{o(e,we())};l(X,e=>{i(g)?e(ce):i(_)?.compose.ok?e(le,1):e(ue,-1)}),t(se);var Z=j(se,2),de=j(E(Z),2),Q=e=>{var n=Te(),a=E(n,!0);t(n),u(()=>r(a,i(_).compose.version)),o(e,n)},$=e=>{var t=Ee();p(2),o(e,t)};l(de,e=>{i(_)?.compose.ok&&i(_).compose.version?e(Q):i(_)&&!i(_).compose.ok&&e($,1)}),t(Z),t(Y);var fe=j(Y,2),me=e=>{var n=De(),a=j(E(n),2),s=j(E(a),2),c=E(s,!0);t(s),t(a),t(n),u(()=>r(c,i(_).gpu)),o(e,n)};l(fe,e=>{i(_)?.gpu&&e(me)});var ge=j(fe,2),_e=e=>{var n=c();D(y(n),17,()=>i(_).hostProviders,e=>e.provider,(e,n)=>{var a=Oe(),s=E(a),c=E(s),f=e=>{R(e,{size:18})},h=M(()=>m.has(i(n).provider)),g=e=>{he(e,{size:18})};l(c,e=>{i(h)?e(f):e(g,-1)}),t(s);var _=j(s,2),v=E(_),y=E(v);t(v);var b=j(v,2),x=E(b,!0);t(b),p(2),t(_),t(a),u(()=>{r(y,`${d[i(n).provider]??i(n).provider??``} is running`),r(x,i(n).url)}),o(e,a)}),o(e,n)};l(ge,e=>{i(_)?.hostProviders&&i(_).hostProviders.length>0&&e(_e)});var je=j(ge,2),Me=n=>{var a=ke(),s=E(a),c=E(s);t(s);var d=j(s,2),p=E(d),m=E(p);t(p);var h=j(p,2),g=E(h),v=t=>{o(t,e(`Docker is not running — start Docker and click Retry to confirm.`))},y=t=>{o(t,e(`Another program is using this port. Quit it and click Retry.`))};l(g,e=>{i(_).portCheckReliable?e(y,-1):e(v)}),t(h),t(d),t(a),u(e=>{f(a,1,`syscheck-row ${i(N)?`syscheck-row--fail`:`syscheck-row--warn`}`,`svelte-1txhq2p`),w(c,`stroke`,i(N)?`var(--s-seal)`:`var(--s-ink-2)`),r(m,`Port conflict on ${e??``}`)},[()=>i(S).map(e=>e.port).join(`, `)]),o(n,a)};l(je,e=>{i(_)&&i(S).length>0&&e(Me)}),t(B);var Ne=j(B,2),Pe=E(Ne),Fe=E(Pe,!0);t(Pe);var Ie=j(Pe,2);t(Ne),u(()=>{H=f(V,1,`syscheck-row svelte-1txhq2p`,null,H,{"syscheck-row--ok":i(_)?.docker.ok,"syscheck-row--fail":i(_)&&!i(_).docker.ok}),oe=f(Y,1,`syscheck-row svelte-1txhq2p`,null,oe,{"syscheck-row--ok":i(_)?.compose.ok,"syscheck-row--fail":i(_)&&!i(_).compose.ok}),Pe.disabled=i(g),r(Fe,i(g)?`Checking…`:`Retry checks`),Ie.disabled=i(g)||!i(P)}),a(`click`,Pe,()=>I()),a(`click`,Ie,function(...e){s.onnext?.apply(this,e)}),o(n,L),C()}h([`click`]);var Me=d(`<p class="oauth-empty svelte-1kgjxt0">Nothing more to add — you're all connected.</p>`),Ne=d(`<span class="oauth-status oauth-status--ok svelte-1kgjxt0">Connected ✓</span>`),Pe=d(`<a target="_blank" rel="noopener" class="oauth-open-link svelte-1kgjxt0">Open authorization page →</a>`),Fe=d(`<p class="oauth-instructions svelte-1kgjxt0"> </p>`),Ie=d(`<div class="oauth-polling svelte-1kgjxt0"><!> <!> <div class="oauth-waiting svelte-1kgjxt0"><!> Waiting for authorization…</div> <button type="button" class="btn-oauth-cancel svelte-1kgjxt0">Cancel</button></div>`),Le=d(`<button type="button" class="btn btn-secondary btn-sm"> </button>`),Re=d(`<span class="oauth-error svelte-1kgjxt0" role="alert"> </span>`),ze=d(`<div class="oauth-row svelte-1kgjxt0" role="listitem"><span class="oauth-name svelte-1kgjxt0"> </span> <!> <!></div>`),Be=d(`<button type="button" class="oauth-more svelte-1kgjxt0"> </button>`),Ve=d(`<!> <!>`,1),He=d(`<div class="oauth-list svelte-1kgjxt0" role="list"><!></div>`);function Ue(e,n){v(n,!0);let s=[`openai`,`google`,`github-copilot`,`groq`,`mistral`,`huggingface`],c=M(()=>n.opencodeProviders.filter(e=>re.has(e.id)||n.providerState[e.id]?.verified?!1:(n.opencodeAuth[e.id]??[]).some(e=>e.type===`oauth`)).sort((e,t)=>{let n=s.indexOf(e.id),r=s.indexOf(t.id);return(n===-1?99:n)-(r===-1?99:r)})),d=b(!1),f=M(()=>i(d)?i(c):i(c).slice(0,4)),m=M(()=>Math.max(0,i(c).length-4));function h(e){return n.providerState[e]??{selected:!1,verified:!1,verifying:!1,error:!1,apiKey:``,baseUrl:``,models:[],ollamaMode:null}}function g(e){return(n.opencodeAuth[e]??[]).findIndex(e=>e.type===`oauth`)}var _=He(),x=E(_),S=e=>{o(e,Me())},T=e=>{var s=Ve(),c=y(s);D(c,17,()=>i(f),e=>e.id,(e,s)=>{let c=M(()=>h(i(s).id)),d=M(()=>g(i(s).id));var f=ze(),m=E(f),_=E(m,!0);t(m);var v=j(m,2),y=e=>{var t=Ne();u(()=>w(t,`aria-label`,`${i(s).name??``} connected`)),o(e,t)},b=e=>{var d=Ie(),f=E(d),m=e=>{var t=Pe();u(()=>w(t,`href`,i(c).oauthUrl)),o(e,t)};l(f,e=>{i(c).oauthUrl&&e(m)});var h=j(f,2),g=e=>{var n=Fe(),a=E(n,!0);t(n),u(()=>r(a,i(c).oauthInstructions)),o(e,n)};l(h,e=>{i(c).oauthInstructions&&e(g)});var _=j(h,2);te(E(_),{}),p(),t(_);var v=j(_,2);t(d),a(`click`,v,()=>n.onoauthcancel(i(s).id)),o(e,d)},x=e=>{var l=Le(),f=E(l,!0);t(l),u(()=>{l.disabled=i(c).verifying,r(f,i(c).verifying?`Signing in…`:`Sign in`)}),a(`click`,l,()=>n.onoauthstart(i(s).id,i(d))),o(e,l)};l(v,e=>{i(c).verified?e(y):i(c).oauthPolling?e(b,1):e(x,-1)});var S=j(v,2),C=e=>{var n=Re(),a=E(n,!0);t(n),u(()=>r(a,i(c).errorMessage??`Authorization failed`)),o(e,n)};l(S,e=>{i(c).error&&!i(c).oauthPolling&&e(C)}),t(f),u(()=>{w(f,`data-provider`,i(s).id),r(_,i(s).name)}),o(e,f)});var _=j(c,2),v=e=>{var n=Be(),s=E(n,!0);t(n),u(()=>r(s,i(d)?`Show fewer`:`Show ${i(m)} more services`)),a(`click`,n,()=>{O(d,!i(d))}),o(e,n)};l(_,e=>{i(m)>0&&e(v)}),o(e,s)};l(x,e=>{i(c).length===0?e(S):e(T,-1)}),t(_),o(e,_),C()}h([`click`]);var We=d(`<p class="connected svelte-v318we" role="status"><span class="check svelte-v318we" aria-hidden="true">✓</span> Connected your AI account.</p> <button type="button" class="account-link svelte-v318we">Use a different account</button>`,1),Ge=d(`<p class="connecting svelte-v318we" role="status"><!> Connecting your AI account…</p>`),Ke=d(`<p class="lead svelte-v318we">We found an AI account on this computer.</p> <button type="button" class="btn-connect svelte-v318we" id="btn-host-import">Use this account</button> <button type="button" class="account-link svelte-v318we">Use a different account</button>`,1),qe=d(`<button type="button" class="account-link svelte-v318we">Use the account on this computer instead</button>`),Je=d(`<p class="lead svelte-v318we">Sign in to your AI service:</p> <!> <!>`,1),Ye=d(`<div class="cloud-attach svelte-v318we"><!></div>`);function Xe(e,n){v(n,!0);let r=A(n,`credentialCount`,3,0),s=A(n,`cloudProviders`,19,()=>[]),u=A(n,`opencodeProviders`,19,()=>[]),d=A(n,`opencodeAuth`,19,()=>({})),f=A(n,`providerState`,19,()=>({})),m=A(n,`hostImporting`,3,!1),h=A(n,`verifiedCount`,3,0),g=M(()=>r()>0||s().length>0),_=M(()=>h()>0),x=b(!1),S=M(()=>!i(g)||i(x));var w=Ye(),T=E(w),D=e=>{var r=c(),s=y(r),u=e=>{var t=We();a(`click`,j(y(t),2),()=>O(x,!0)),o(e,t)},d=e=>{var n=Ge();te(E(n),{}),p(),t(n),o(e,n)},f=e=>{var t=Ke(),r=j(y(t),2),i=j(r,2);a(`click`,r,function(...e){n.onhostimport?.apply(this,e)}),a(`click`,i,()=>O(x,!0)),o(e,t)};l(s,e=>{i(_)?e(u):m()?e(d,1):e(f,-1)}),o(e,r)},k=e=>{var t=Je(),r=j(y(t),2);Ue(r,{get opencodeProviders(){return u()},get opencodeAuth(){return d()},get providerState(){return f()},onoauthstart:(e,t)=>n.onoauthstart?.(e,t),onoauthcancel:e=>n.onoauthcancel?.(e)});var s=j(r,2),c=e=>{var t=qe();a(`click`,t,()=>O(x,!1)),o(e,t)};l(s,e=>{i(g)&&e(c)}),o(e,t)};l(T,e=>{i(S)?e(k,-1):e(D)}),t(w),o(e,w),C()}h([`click`]);var Ze=d(`<div class="status-row status-row--running svelte-1fl6n4z" role="status"><span class="status-icon svelte-1fl6n4z" aria-hidden="true">●</span> <span class="status-text svelte-1fl6n4z"> </span></div>`),Qe=d(`<div class="status-callout status-callout--apple svelte-1fl6n4z" role="note"><div class="callout-icon svelte-1fl6n4z" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg></div> <div class="callout-body svelte-1fl6n4z"><p class="callout-title svelte-1fl6n4z">Apple Silicon detected</p> <p class="callout-desc svelte-1fl6n4z">For best performance, install <a href="https://ollama.com/download" target="_blank" rel="noopener" class="svelte-1fl6n4z">Ollama for macOS</a> and leave it running before continuing. Once Ollama is running, click Re-check to continue.</p> <button class="btn-recheck svelte-1fl6n4z" type="button" id="btn-local-recheck">Re-check</button></div></div>`),$e=d(`<div class="status-row status-row--will-install svelte-1fl6n4z" role="status"><span class="status-icon svelte-1fl6n4z" aria-hidden="true">◎</span> <span class="status-text svelte-1fl6n4z">Will install Ollama in the stack <!>.
2
2
  First pull downloads ~4–8 GB.</span></div>`),et=d(`<div class="status-row status-row--will-install svelte-1fl6n4z" role="status"><span class="status-icon svelte-1fl6n4z" aria-hidden="true">◎</span> <span class="status-text svelte-1fl6n4z">Will install Ollama in the stack (CPU mode). First pull downloads ~4–8 GB.</span></div>`),tt=d(`<div class="local-models-status svelte-1fl6n4z"><!></div>`);function nt(n,s){v(s,!0);let c=A(s,`hostProviders`,19,()=>[]),d=A(s,`gpuVramMb`,3,0),f=A(s,`gpuVendor`,3,``),m=A(s,`gpuName`,3,``),h=A(s,`ollamaEnabled`,3,!1),g=A(s,`selectedOllamaProfile`,3,``),_=M(()=>f()===`apple`),y=M(()=>c().length>0),b=M(()=>Math.round(d()/1024)),x=M(()=>g().endsWith(`cuda`)?`CUDA`:g().endsWith(`rocm`)?`ROCm`:`CPU`);function S(e){return e===`ollama`?`Ollama`:e===`lmstudio`?`LM Studio`:e===`model-runner`?`Docker Model Runner`:e}var w=tt(),T=E(w),D=e=>{var n=Ze(),i=j(E(n),2),a=E(i);t(i),t(n),u(e=>r(a,`Using ${e??``} already running on your machine.`),[()=>c().map(e=>S(e.provider)).join(`, `)]),o(e,n)},O=e=>{var n=Qe(),r=j(E(n),2),i=j(E(r),4);t(r),t(n),a(`click`,i,function(...e){s.onrecheck?.apply(this,e)}),o(e,n)},k=n=>{var a=$e(),s=j(E(a),2),c=j(E(s)),d=t=>{var n=e();u(()=>r(n,`(GPU: ${m()??``}, ${i(b)??``} GB, profile: ${i(x)??``})`)),o(t,n)};l(c,e=>{m()&&e(d)}),p(),t(s),t(a),o(n,a)},N=e=>{o(e,et())};l(T,e=>{i(y)?e(D):i(_)?e(O,1):h()&&d()>=8192?e(k,2):h()&&e(N,3)}),t(w),o(n,w),C()}h([`click`]);var rt=d(`<div class="s1-alert s1-alert--error svelte-z6usuj" role="alert"><span class="s1-alert-text svelte-z6usuj"> </span> <button type="button" class="s1-alert-btn svelte-z6usuj" id="btn-syscheck-retry"> </button></div>`),it=d(`<div class="s1-alert s1-alert--warn svelte-z6usuj" role="alert"><span class="s1-alert-text svelte-z6usuj">Detection timed out — results may be incomplete.</span> <button type="button" class="s1-alert-btn s1-alert-btn--warn svelte-z6usuj">Re-run detection</button> <button type="button" class="s1-dismiss svelte-z6usuj" aria-label="Dismiss">✕</button></div>`),at=d(`<div class="s1-shimmer svelte-z6usuj" aria-busy="true" aria-label="Detecting AI services…"><span class="s1-shimmer-bar svelte-z6usuj"></span> <span class="s1-shimmer-bar s1-shimmer-bar--short svelte-z6usuj"></span> <span class="s1-shimmer-bar s1-shimmer-bar--shorter svelte-z6usuj"></span></div>`),ot=d(`<div class="s1-detected-banner svelte-z6usuj" role="status"><div class="s1-detected-check svelte-z6usuj" aria-hidden="true">✓</div> <div class="s1-detected-text svelte-z6usuj"><div class="s1-detected-title svelte-z6usuj"> </div> <div class="s1-detected-sub svelte-z6usuj">We found your account on this computer. Just continue, or choose something different below.</div></div></div>`),st=d(`<button type="button" role="radio"><div class="s1-radio-dot svelte-z6usuj"><div class="s1-radio-dot-inner svelte-z6usuj"></div></div> <div class="s1-choice-body svelte-z6usuj"><div class="s1-choice-title svelte-z6usuj"> </div> <div class="s1-choice-sub svelte-z6usuj"> </div></div> <span class="s1-badge-recommended svelte-z6usuj">Recommended</span></button>`),ct=d(`<div class="s1-local-panel svelte-z6usuj" aria-live="polite"><!></div>`),lt=d(`<div class="s1-signin-panel svelte-z6usuj" aria-live="polite"><!></div>`),ut=d(`<div class="s1-empty-install-row svelte-z6usuj"><p class="s1-empty-install-hint svelte-z6usuj">No AI here? You can still continue — connect this app to an assistant
3
3
  running on another computer, or add a provider later from your dashboard.</p> <button type="button" class="s1-btn-empty-install svelte-z6usuj">I'll set this up later</button></div>`),dt=d(`<!> <div class="s1-choice-list svelte-z6usuj" role="radiogroup" aria-label="Which AI should your assistant use"><!> <button type="button" role="radio"><div class="s1-radio-dot svelte-z6usuj"><div class="s1-radio-dot-inner svelte-z6usuj"></div></div> <div class="s1-choice-icon svelte-z6usuj" aria-hidden="true"><svg viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.4" class="svelte-z6usuj"><rect x="1.5" y="2.5" width="15" height="10" rx="1.5" class="svelte-z6usuj"></rect><path d="M5.5 15.5h7M9 12.5v3" stroke-linecap="round" class="svelte-z6usuj"></path><circle cx="9" cy="7.5" r="2.5" class="svelte-z6usuj"></circle></svg></div> <div class="s1-choice-body svelte-z6usuj"><div class="s1-choice-title svelte-z6usuj">Run on this computer</div> <div class="s1-choice-sub svelte-z6usuj"><!></div></div></button> <!> <button type="button" role="radio"><div class="s1-radio-dot svelte-z6usuj"><div class="s1-radio-dot-inner svelte-z6usuj"></div></div> <div class="s1-choice-body svelte-z6usuj"><div class="s1-choice-title svelte-z6usuj"> </div> <div class="s1-choice-sub svelte-z6usuj"> </div></div></button> <!></div> <!>`,1),ft=d(`<div data-testid="step-models" class="screen-models svelte-z6usuj"><!> <!> <!></div>`);function pt(n,c){v(c,!0);let d={openai:`ChatGPT (OpenAI)`,google:`Gemini (Google)`,"github-copilot":`GitHub Copilot`,groq:`Groq`,anthropic:`Claude (Anthropic)`,mistral:`Mistral`,cohere:`Cohere`},m=A(c,`detectionLoading`,3,!1),h=A(c,`detectionTimedOut`,3,!1),g=A(c,`systemCheckError`,3,``),_=A(c,`systemCheckRetrying`,3,!1),x=A(c,`gpuVramMb`,3,0),S=A(c,`gpuVendor`,3,``),T=A(c,`gpuName`,3,``),D=A(c,`hostProviders`,19,()=>[]),k=A(c,`opencodeProviders`,19,()=>[]),N=A(c,`opencodeAuth`,19,()=>({})),ee=A(c,`providerState`,19,()=>({})),F=A(c,`ollamaEnabled`,3,!1),I=A(c,`selectedOllamaProfile`,3,``),L=A(c,`hostImporting`,3,!1),R=A(c,`verifiedCount`,3,0),te=A(c,`allowEmptyInstall`,3,!1),ne=A(c,`llmModel`,3,``),z=A(c,`llmProvider`,3,``),B=A(c,`detectedCloudConn`,3,``),V=M(()=>x()>=8192||S()===`apple`||D().length>0),H=b(!1);function U(e){return d[e]?d[e]:k().find(t=>t.id===e)?.name||e}let W=new Set([`ollama`,`lmstudio`,`llamacpp`,`localai`,`model-runner`]),G=M(()=>B()||(z()&&!W.has(z())?z():``)),re=M(()=>i(G)?U(i(G)):``),ie=M(()=>W.has(z())),K=M(()=>!!i(G)&&R()>0),q=b(P(s(()=>i(K)?`detected`:i(ie)&&z()?`local`:null)));function J(e){e===`local`&&!i(V)||(O(q,e,!0),e===`local`?c.onmodelmodechange(`local`):e===`detected`&&c.onmodelmodechange(`cloud`))}let ae=M(()=>i(q)===`local`),Y=M(()=>i(q)===`cloud`),oe=M(()=>i(K)?`Sign in to a different service`:`Sign in to a cloud AI service`),se=M(()=>i(K)?`Google Gemini, GitHub Copilot, and others`:`OpenAI, Google Gemini, GitHub Copilot, and others`);var X=ft(),ce=E(X),le=e=>{var n=rt(),i=E(n),s=E(i,!0);t(i);var l=j(i,2),d=E(l,!0);t(l),t(n),u(()=>{r(s,g()),l.disabled=_(),r(d,_()?`Checking…`:`Retry`)}),a(`click`,l,function(...e){c.onsystemcheckretry?.apply(this,e)}),o(e,n)};l(ce,e=>{g()&&e(le)});var ue=j(ce,2),Z=e=>{var n=it(),r=j(E(n),2),i=j(r,2);t(n),a(`click`,r,function(...e){c.onrecheck?.apply(this,e)}),a(`click`,i,()=>{O(H,!0)}),o(e,n)};l(ue,e=>{h()&&!i(H)&&e(Z)});var de=j(ue,2),Q=e=>{o(e,at())},$=n=>{var s=dt(),d=y(s),m=e=>{var n=ot(),a=j(E(n),2),s=E(a),c=E(s);t(s),p(2),t(a),t(n),u(()=>r(c,`${i(re)??``} is already connected — you're good to go`)),o(e,n)};l(d,e=>{R()>0&&i(K)&&e(m)});var h=j(d,2),g=E(h),_=e=>{var n=st();let s;var c=j(E(n),2),l=E(c),d=E(l,!0);t(l);var m=j(l,2),h=E(m);t(m),t(c),p(2),t(n),u(()=>{s=f(n,1,`s1-choice-row svelte-z6usuj`,null,s,{"s1-choice-row--selected":i(q)===`detected`}),w(n,`aria-checked`,i(q)===`detected`),r(d,i(re)),r(h,`Use your existing ${i(re)??``} subscription`)}),a(`click`,n,()=>J(`detected`)),o(e,n)};l(g,e=>{i(K)&&e(_)});var v=j(g,2);let b;var C=j(E(v),4),O=j(E(C),2),A=E(O),M=t=>{o(t,e(`Private & free — no account needed, no data leaves your machine`))},P=t=>{o(t,e(`Needs a more capable computer — requires 8 GB+ graphics card or Apple Silicon`))};l(A,e=>{i(V)?e(M):e(P,-1)}),t(O),t(C),t(v);var z=j(v,2),B=e=>{var n=ct();nt(E(n),{get hostProviders(){return D()},get gpuVramMb(){return x()},get gpuVendor(){return S()},get gpuName(){return T()},get ollamaEnabled(){return F()},get selectedOllamaProfile(){return I()},get onrecheck(){return c.onrecheck}}),t(n),o(e,n)};l(z,e=>{i(ae)&&e(B)});var H=j(z,2);let U;var W=j(E(H),2),G=E(W),ie=E(G,!0);t(G);var X=j(G,2),ce=E(X,!0);t(X),t(W),t(H);var le=j(H,2),ue=e=>{var n=lt();Xe(E(n),{credentialCount:0,cloudProviders:[],get opencodeProviders(){return k()},get opencodeAuth(){return N()},get providerState(){return ee()},get hostImporting(){return L()},get verifiedCount(){return R()},get onhostimport(){return c.onhostimport},onoauthstart:(e,t)=>c.onoauthstart?.(e,t),onoauthcancel:e=>c.onoauthcancel?.(e)}),t(n),o(e,n)};l(le,e=>{i(Y)&&e(ue)}),t(h);var Z=j(h,2),de=e=>{var n=ut(),r=j(E(n),2);t(n),a(`click`,r,()=>c.onallowemptyinstallchange?.(!0)),o(e,n)};l(Z,e=>{!ne()&&!te()&&e(de)}),u(()=>{b=f(v,1,`s1-choice-row svelte-z6usuj`,null,b,{"s1-choice-row--selected":i(q)===`local`,"s1-choice-row--unavailable":!i(V)}),w(v,`aria-checked`,i(q)===`local`),v.disabled=!i(V),U=f(H,1,`s1-choice-row svelte-z6usuj`,null,U,{"s1-choice-row--selected":i(q)===`cloud`}),w(H,`aria-checked`,i(q)===`cloud`),r(ie,i(oe)),r(ce,i(se))}),a(`click`,v,()=>J(`local`)),a(`click`,H,()=>J(`cloud`)),o(n,s)};l(de,e=>{m()||L()?e(Q):e($,-1)}),t(X),o(n,X),C()}h([`click`]);var mt=d(`<div class="addon-row svelte-85kisn" role="listitem"><div class="addon-row-header svelte-85kisn"><div class="addon-icon discord-icon svelte-85kisn" aria-hidden="true"><svg viewBox="0 0 24 24" fill="#5865f2" class="svelte-85kisn"><path d="M19 5.3A16 16 0 0015 4l-.2.4a14 14 0 00-4 0L10.5 4a16 16 0 00-4 1.3C4 9 3.3 12.6 3.6 16.2A16 16 0 008.5 18.7c.4-.5.8-1.1 1-1.7a9 9 0 01-1.6-.8l.4-.3a11 11 0 009.4 0l.4.3a9 9 0 01-1.6.8c.3.6.6 1.2 1 1.7a16 16 0 004.9-2.5c.4-4.2-.7-7.8-2.4-10.9zM9 14c-.8 0-1.4-.7-1.4-1.6S8.2 10.8 9 10.8s1.4.7 1.4 1.6S9.8 14 9 14zm6 0c-.8 0-1.4-.7-1.4-1.6s.6-1.6 1.4-1.6 1.4.7 1.4 1.6S15.8 14 15 14z"></path></svg></div> <div class="addon-body svelte-85kisn"><div class="addon-title svelte-85kisn">Discord</div> <div class="addon-sub svelte-85kisn">Reach your assistant from a Discord server</div></div> <div class="toggle-wrap svelte-85kisn"><label class="toggle svelte-85kisn" aria-label="Enable Discord"><input type="checkbox" class="svelte-85kisn"/> <div class="toggle-track svelte-85kisn"></div> <div class="toggle-thumb svelte-85kisn"></div></label></div></div> <div aria-live="polite"><div class="addon-panel-inner svelte-85kisn"><div class="field-group svelte-85kisn"><div><label class="field-label svelte-85kisn" for="cred-discord-botToken">Bot token</label> <input class="field-input svelte-85kisn" type="password" id="cred-discord-botToken" placeholder="Paste your bot token here" autocomplete="off"/> <p class="field-help svelte-85kisn"><a href="https://discord.com/developers/docs/quick-start/getting-started" target="_blank" rel="noopener" class="svelte-85kisn">How to create a Discord bot and get your token →</a></p></div> <div><label class="field-label svelte-85kisn" for="cred-discord-applicationId">Application ID</label> <input class="field-input svelte-85kisn" type="text" id="cred-discord-applicationId" placeholder="Your app's numeric ID" autocomplete="off"/> <p class="field-help svelte-85kisn">Found in the Discord Developer Portal under your application's General Information page.</p></div></div></div></div></div>`),ht=d(`<div class="addon-row svelte-85kisn" role="listitem"><div class="addon-row-header svelte-85kisn"><div class="addon-icon slack-icon svelte-85kisn" aria-hidden="true"><svg viewBox="0 0 24 24" class="svelte-85kisn"><path fill="#36C5F0" d="M9 13.5a2 2 0 11-2-2h2v2z"></path><path fill="#2EB67D" d="M10.5 9a2 2 0 112 2H10.5v-2z"></path><path fill="#ECB22E" d="M15 10.5a2 2 0 112 2h-2v-2z"></path><path fill="#E01E5A" d="M13.5 15a2 2 0 11-2 2v-2h2z"></path></svg></div> <div class="addon-body svelte-85kisn"><div class="addon-title svelte-85kisn">Slack</div> <div class="addon-sub svelte-85kisn">Reach your assistant from a Slack workspace</div></div> <div class="toggle-wrap svelte-85kisn"><label class="toggle svelte-85kisn" aria-label="Enable Slack"><input type="checkbox" class="svelte-85kisn"/> <div class="toggle-track svelte-85kisn"></div> <div class="toggle-thumb svelte-85kisn"></div></label></div></div> <div aria-live="polite"><div class="addon-panel-inner svelte-85kisn"><div class="field-group svelte-85kisn"><div><label class="field-label svelte-85kisn" for="cred-slack-slackBotToken">Bot token</label> <input class="field-input svelte-85kisn" type="password" id="cred-slack-slackBotToken" placeholder="xoxb-…" autocomplete="off"/></div> <div><label class="field-label svelte-85kisn" for="cred-slack-slackAppToken">App-level token</label> <input class="field-input svelte-85kisn" type="password" id="cred-slack-slackAppToken" placeholder="xapp-…" autocomplete="off"/> <p class="field-help svelte-85kisn"><a href="https://api.slack.com/quickstart" target="_blank" rel="noopener" class="svelte-85kisn">How to create a Slack app and get your tokens →</a></p></div></div></div></div></div>`),gt=d(`<div data-testid="step-extras" class="addon-list svelte-85kisn" role="list"><div class="addon-row svelte-85kisn" role="listitem"><div class="addon-row-header svelte-85kisn"><div class="addon-icon voice-icon svelte-85kisn" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="svelte-85kisn"><rect x="9" y="3" width="6" height="11" rx="3"></rect><path d="M5 11a7 7 0 0014 0M12 18v3"></path></svg></div> <div class="addon-body svelte-85kisn"><div class="addon-title svelte-85kisn">Voice</div> <div class="addon-sub svelte-85kisn">Talk to your assistant and hear it reply</div></div> <div class="toggle-wrap svelte-85kisn"><label class="toggle svelte-85kisn" aria-label="Enable Voice"><input type="checkbox" class="svelte-85kisn"/> <div class="toggle-track svelte-85kisn"></div> <div class="toggle-thumb svelte-85kisn"></div></label></div></div> <div aria-live="polite"><div class="addon-panel-inner svelte-85kisn"><p class="panel-question svelte-85kisn">How should your assistant speak?</p> <div class="voice-option svelte-85kisn"><div class="voice-option-dot svelte-85kisn"><div class="voice-option-dot-inner svelte-85kisn"></div></div> <div><div class="voice-option-text svelte-85kisn">Built-in voice — free, runs on this computer</div> <div class="voice-option-sub svelte-85kisn">No internet needed. Sounds natural, works out of the box.</div></div></div></div></div></div> <!> <!></div>`);function _t(e,n){v(n,!0);let r=A(n,`hasOpenAI`,3,!1),s=A(n,`portalSelection`,19,()=>({}));function c(){return n.modelMode===`local`||n.modelMode===`both`?`openpalm-voice`:r()?`openai-tts`:`browser-tts`}function d(){return n.modelMode===`local`||n.modelMode===`both`?`openpalm-voice`:r()?`openai-stt`:`browser-stt`}function m(){let e=!n.voiceEnabled;n.onvoiceenabledchange(e),e&&((!n.voiceTts.engine||n.voiceTts.engine===``)&&n.onchangetts({engine:c()}),(!n.voiceStt.engine||n.voiceStt.engine===``)&&n.onchangestt({engine:d()}),c()===`openpalm-voice`&&n.onchangetts({engine:`openpalm-voice`}),d()===`openpalm-voice`&&n.onchangestt({engine:`openpalm-voice`}))}function h(e,t){return ce(s(),e,t)}function g(e,t){return le(s(),e,t)}let y=M(()=>ie.filter(e=>!e.locked)),b=M(()=>i(y).find(e=>e.id===`discord`)),x=M(()=>i(y).find(e=>e.id===`slack`)),w=M(()=>h(`discord`)),T=M(()=>h(`slack`));var D=gt(),O=E(D),N=E(O),P=j(E(N),4),ee=E(P),F=E(ee);k(F),p(4),t(ee),t(P),t(N);var I=j(N,2);let L;t(O);var R=j(O,2),te=e=>{var r=mt(),s=E(r),c=j(E(s),4),l=E(c),d=E(l);k(d),p(4),t(l),t(c),t(s);var m=j(s,2);let h;var v=E(m),y=E(v),b=E(y),x=j(E(b),2);k(x),p(2),t(b);var C=j(b,2),T=j(E(C),2);k(T),p(2),t(C),t(y),t(v),t(m),t(r),u((e,t)=>{S(d,i(w)),h=f(m,1,`addon-panel svelte-85kisn`,null,h,{open:i(w)}),_(x,e),_(T,t)},[()=>g(`discord`,`botToken`),()=>g(`discord`,`applicationId`)]),a(`change`,d,()=>n.onportaltoggle(`discord`)),a(`input`,x,e=>{e.stopPropagation(),n.oncredentialchange(`discord`,`botToken`,e.currentTarget.value)}),a(`click`,x,e=>e.stopPropagation()),a(`input`,T,e=>{e.stopPropagation(),n.oncredentialchange(`discord`,`applicationId`,e.currentTarget.value)}),a(`click`,T,e=>e.stopPropagation()),o(e,r)};l(R,e=>{i(b)&&e(te)});var ne=j(R,2),z=e=>{var r=ht(),s=E(r),c=j(E(s),4),l=E(c),d=E(l);k(d),p(4),t(l),t(c),t(s);var m=j(s,2);let h;var v=E(m),y=E(v),b=E(y),x=j(E(b),2);k(x),t(b);var C=j(b,2),w=j(E(C),2);k(w),p(2),t(C),t(y),t(v),t(m),t(r),u((e,t)=>{S(d,i(T)),h=f(m,1,`addon-panel svelte-85kisn`,null,h,{open:i(T)}),_(x,e),_(w,t)},[()=>g(`slack`,`slackBotToken`),()=>g(`slack`,`slackAppToken`)]),a(`change`,d,()=>n.onportaltoggle(`slack`)),a(`input`,x,e=>{e.stopPropagation(),n.oncredentialchange(`slack`,`slackBotToken`,e.currentTarget.value)}),a(`click`,x,e=>e.stopPropagation()),a(`input`,w,e=>{e.stopPropagation(),n.oncredentialchange(`slack`,`slackAppToken`,e.currentTarget.value)}),a(`click`,w,e=>e.stopPropagation()),o(e,r)};l(ne,e=>{i(x)&&e(z)}),t(D),u(()=>{S(F,n.voiceEnabled),L=f(I,1,`addon-panel svelte-85kisn`,null,L,{open:n.voiceEnabled})}),a(`change`,F,m),o(e,D),C()}h([`change`,`input`,`click`]);var vt=d(`<div class="review-note svelte-1q74f52">No AI set up here yet — that's fine. After install you can connect this app to an
4
4
  assistant running on another computer, or add a provider, anytime from your dashboard.</div>`),yt=d(`<input class="password-value password-value--mono svelte-1q74f52" readonly=""/>`),bt=d(`<span class="password-value password-value--mono svelte-1q74f52" aria-label="Sign-in password"> </span>`),xt=d(`<span class="password-value password-value--dots svelte-1q74f52" aria-label="Sign-in password">••••••••••••••••</span>`),St=I(`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 2l12 12"></path><path d="M6.7 6.8A3 3 0 009.3 9.2M4 4.5C2.5 5.7 1.5 7 1 8c1 2.5 3.8 5 7 5a8.4 8.4 0 003-.6M7 3.1A8.4 8.4 0 018 3c3.2 0 6 2.5 7 5-.4 1-.9 1.9-1.7 2.7"></path></svg>`),Ct=I(`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1 8s2.5-5 7-5 7 5 7 5-2.5 5-7 5-7-5-7-5z"></path><circle cx="8" cy="8" r="2"></circle></svg>`),wt=I(`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 8l4 4 8-8"></path></svg>`),Tt=I(`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5" y="5" width="8" height="8" rx="1.5"></rect><path d="M3 11V3h8"></path></svg>`),Et=d(`<div class="password-block svelte-1q74f52"><p class="password-label svelte-1q74f52">Sign-in password</p> <div class="password-row svelte-1q74f52"><!> <div class="password-actions svelte-1q74f52"><button type="button" class="btn-icon svelte-1q74f52"><!></button> <button type="button" title="Copy"><!></button></div></div> <p class="password-note svelte-1q74f52">Already saved on this computer — keep a copy somewhere safe just in case.</p></div>`),Dt=d(`<div class="password-block svelte-1q74f52"><p class="password-label svelte-1q74f52">Sign-in password</p> <div class="password-row svelte-1q74f52"><span class="password-value password-value--dots svelte-1q74f52" aria-label="Sign-in password">••••••••</span> <div class="password-actions svelte-1q74f52"><span class="rerun-note svelte-1q74f52">Previously set — not changed.</span></div></div></div>`),Ot=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"><!></span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">AI</div> <div class="summary-val svelte-1q74f52"> </div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),kt=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"><!></span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">AI</div> <div class="summary-val svelte-1q74f52"> </div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),At=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"><!></span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">AI</div> <div class="summary-val svelte-1q74f52">Runs on this computer</div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),jt=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"><!></span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">AI</div> <div class="summary-val svelte-1q74f52"> </div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),Mt=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"><!></span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">Voice</div> <div class="summary-val svelte-1q74f52">On — built-in voice</div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),Nt=d(`<div class="summary-row svelte-1q74f52"><span class="summary-icon svelte-1q74f52" aria-hidden="true"> </span> <div class="summary-body svelte-1q74f52"><div class="summary-key svelte-1q74f52">Chat app</div> <div class="summary-val svelte-1q74f52"> </div></div> <button type="button" class="btn-change svelte-1q74f52">Change</button></div>`),Pt=d(`<div class="review-warning svelte-1q74f52" role="alert">⚠ System check has not passed yet — Install is disabled until Docker is confirmed available.</div>`),Ft=d(`<!> <!> <div class="summary-list svelte-1q74f52" aria-label="What's set up"><p class="summary-section-label svelte-1q74f52">What's being set up</p> <!> <!> <!></div> <!> <!> <div class="review-save-row svelte-1q74f52"><button type="button" class="btn-save svelte-1q74f52" aria-label="Save configuration as JSON file">Save configuration</button></div>`,1);function It(e,n){v(n,!0);let s=A(n,`hostProviderLabel`,3,``),c=A(n,`isRerun`,3,!1),d=A(n,`systemCheckPassed`,3,!0),h=new Set([`ollama`,`lmstudio`,`llamacpp`,`localai`,`model-runner`]);function g(e){return e?e===`openai`?`ChatGPT (OpenAI)`:e===`google`?`Gemini (Google)`:e===`github-copilot`?`GitHub Copilot`:e===`groq`?`Groq`:h.has(e)?`Runs on this computer`:G.find(t=>t.id===e)?.name??e:``}function x(e,t){return ce(n.portalSelection,e,t)}let S=M(()=>{let e=n.modelSelection.llm?.connId;return e?g(e):``}),T=M(()=>!!(n.activeTts&&!n.activeTts.startsWith(`skip-`))||!!(n.activeStt&&!n.activeStt.startsWith(`skip-`))),N=M(()=>ie.filter(e=>!e.locked&&x(e.id,e.locked))),P=b(!1),F=b(!1),I=b(!1),L=b(null);async function R(){try{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(n.uiLoginPassword),O(F,!0),setTimeout(()=>{O(F,!1)},2e3);return}throw Error(`Clipboard API unavailable`)}catch{O(I,!0),i(L)&&(i(L).focus(),i(L).select())}}function te(e){let t=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`openpalm-setup.json`,r.click(),URL.revokeObjectURL(n)}var z=Ft(),V=y(z),H=e=>{o(e,vt())};l(V,e=>{n.verifiedProviders.length===0&&e(H)});var U=j(V,2),W=e=>{var s=Et(),c=j(E(s),2),d=E(c),h=e=>{var t=yt();k(t),ee(t,e=>O(L,e),()=>i(L)),u(()=>{w(t,`type`,i(P)?`text`:`password`),_(t,n.uiLoginPassword)}),m(`focus`,t,e=>e.currentTarget.select()),o(e,t)},g=e=>{var i=bt(),a=E(i,!0);t(i),u(()=>r(a,n.uiLoginPassword)),o(e,i)},v=e=>{o(e,xt())};l(d,e=>{i(I)?e(h):i(P)?e(g,1):e(v,-1)});var y=j(d,2),b=E(y),x=E(b),S=e=>{o(e,St())},C=e=>{o(e,Ct())};l(x,e=>{i(P)?e(S):e(C,-1)}),t(b);var T=j(b,2);let D;var A=E(T),M=e=>{o(e,wt())},N=e=>{o(e,Tt())};l(A,e=>{i(F)?e(M):e(N,-1)}),t(T),t(y),t(c),p(2),t(s),u(()=>{w(b,`aria-label`,i(P)?`Hide password`:`Show password`),w(b,`title`,i(P)?`Hide`:`Show`),D=f(T,1,`btn-icon svelte-1q74f52`,null,D,{"btn-icon--copied":i(F)}),w(T,`aria-label`,i(F)?`Copied!`:`Copy password`)}),a(`click`,b,()=>{O(P,!i(P))}),a(`click`,T,()=>void R()),o(e,s)},re=e=>{o(e,Dt())};l(U,e=>{c()?e(re,-1):e(W)});var K=j(U,2),q=j(E(K),2),J=e=>{var s=Ot(),c=E(s);B(E(c),{size:16}),t(c);var l=j(c,2),d=j(E(l),2),f=E(d,!0);t(d),t(l);var p=j(l,2);t(s),u(()=>r(f,i(S))),a(`click`,p,function(...e){n.oneditmodels?.apply(this,e)}),o(e,s)},ae=e=>{var i=kt(),s=E(i);B(E(s),{size:16}),t(s);var c=j(s,2),l=j(E(c),2),d=E(l,!0);t(l),t(c);var f=j(c,2);t(i),u(e=>r(d,e),[()=>g(n.verifiedProviders[0].id)]),a(`click`,f,function(...e){n.oneditmodels?.apply(this,e)}),o(e,i)},Y=e=>{var r=At(),i=E(r);B(E(i),{size:16}),t(i);var s=j(i,4);t(r),a(`click`,s,function(...e){n.oneditmodels?.apply(this,e)}),o(e,r)},oe=e=>{var i=jt(),c=E(i);B(E(c),{size:16}),t(c);var l=j(c,2),d=j(E(l),2),f=E(d,!0);t(d),t(l);var p=j(l,2);t(i),u(e=>r(f,e),[()=>g(s())]),a(`click`,p,function(...e){n.oneditmodels?.apply(this,e)}),o(e,i)};l(q,e=>{i(S)?e(J):n.verifiedProviders.length>0?e(ae,1):n.ollamaEnabled?e(Y,2):s()&&e(oe,3)});var se=j(q,2),X=e=>{var r=Mt(),i=E(r);ne(E(i),{size:16}),t(i);var s=j(i,4);t(r),a(`click`,s,function(...e){n.oneditextras?.apply(this,e)}),o(e,r)};l(se,e=>{i(T)&&e(X)}),D(j(se,2),17,()=>i(N),e=>e.id,(e,s)=>{var c=Nt(),l=E(c),d=E(l,!0);t(l);var f=j(l,2),p=j(E(f),2),m=E(p,!0);t(p),t(f);var h=j(f,2);t(c),u(()=>{r(d,i(s).icon),r(m,i(s).name)}),a(`click`,h,function(...e){n.oneditextras?.apply(this,e)}),o(e,c)}),t(K);var le=j(K,2),ue=e=>{{let t=M(()=>ve(n.installError,`setup-complete`));pe(e,{get error(){return i(t)}})}};l(le,e=>{n.installError&&e(ue)});var Z=j(le,2),de=e=>{o(e,Pt())};l(Z,e=>{d()||e(de)});var Q=j(Z,2),$=E(Q);t(Q),a(`click`,$,()=>te(n.payload)),o(e,z),C()}h([`click`]);var Lt=d(`<span class="deploy-check"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg></span>`),Rt=d(`<span class="deploy-warning"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--s-ink-2)" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9v4"></path><path d="M12 17h.01"></path><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path></svg></span>`),zt=d(`<span class="deploy-spinner"><!></span>`),Bt=d(`<div class="deploy-service-row"><div class="deploy-service-indicator"><!></div> <div class="deploy-service-info"><span class="deploy-service-name"> </span> <span class="deploy-service-status"> </span></div> <div class="deploy-service-bar"><div></div></div></div>`),Vt=d(`<div id="deploy-failure"><!></div>`),Ht=d(`<li>The OpenPalm Voice image is ~2.4 GB — the largest piece by far. Download speed depends on your internet connection.</li> <li>The wizard waits as long as the download takes. Progress bars below show each service's state.</li>`,1),Ut=d(`<li>Container images are being downloaded for the first time.</li>`),Wt=d(`<li>You can leave this window — we'll let you know when it's ready.</li>`),Gt=d(`<li><strong>Keep this tab open while installation runs.</strong></li>`),Kt=d(`<aside class="deploy-tips" id="deploy-tips"><div class="deploy-tips-header"><span class="deploy-tips-kicker">Tips</span> <h3> </h3></div> <ul><!> <li>The admin console will be available once all services are healthy.</li> <!></ul></aside>`),qt=d(`<p class="done-subtitle">Configuration saved. Run 'openpalm start' to start services.</p>`),Jt=d(`<div class="deploy-warnings-note svelte-1orw49v" role="status" id="deploy-warnings-note"> </div>`),Yt=d(`<div class="feedback feedback--warning" role="status" id="deploy-image-warning" style="margin-top:12px"><span> </span></div>`),Xt=d(`<p class="done-close-hint svelte-1orw49v">Setup is complete. You can safely close this tab now.</p>`),Zt=d(`<span class="deploy-svc-name"> </span> <a target="_blank" rel="noopener" class="deploy-svc-link"> </a> <span class="deploy-svc-status"> </span>`,1),Qt=d(`<span class="deploy-svc-name"> </span> <span class="deploy-svc-status"> </span>`,1),$t=d(`<li><!></li>`),en=d(`<p class="done-subtitle"> </p> <!> <!> <!> <ul class="service-list" id="deploy-service-list"></ul> <div class="done-links"><a class="btn btn-primary">Open Chat</a> <a target="_blank" rel="noopener" class="btn btn-secondary">OpenCode UI</a> <a class="btn btn-secondary">Admin Dashboard</a></div>`,1),tn=d(`<div class="done-state" id="deploy-done"><div class="done-icon"><svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="var(--s-moss)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg></div> <h2> </h2> <!></div>`),nn=d(`<div class="step-actions" id="deploy-error-actions"><button class="btn btn-secondary" id="btn-deploy-back">Back to Review</button> <button class="btn btn-primary" id="btn-deploy-retry">Retry</button></div>`),rn=d(`<div class="deploy-header"><h2 id="deploy-title"> </h2> <p class="step-description" id="deploy-subtitle"> </p></div> <div class="deploy-progress-summary"><div class="deploy-progress-meta"><span class="deploy-progress-label">Progress</span> <span id="deploy-progress-value"><!></span></div> <div class="deploy-progress-bar"><div class="deploy-progress-fill" id="deploy-progress-fill"></div></div></div> <div class="deploy-services" id="deploy-services"></div> <!> <!> <!> <!>`,1);function an(n,s){v(s,!0);let c=A(s,`deployHasWarnings`,3,!1),d=M(()=>(s.deployData.deployStatus??[]).filter(e=>e.status===`warning`)),m=typeof window<`u`&&!!window.openpalm,h=typeof window<`u`&&Number(window.location.port)||3880,g=M(()=>s.deployData.ports?.admin??h),_=M(()=>s.deployData.ports?.assistant??3800),b=M(()=>({assistant:{port:i(_),label:`Assistant (OpenCode)`,path:``},admin:{port:i(g),label:`Admin Dashboard`,path:``}})),x=M(()=>s.deployData.deployStatus??[]),S=M(()=>i(x).length),T=M(()=>i(x).filter(e=>e.status===`running`).length),O=M(()=>i(S)>0?Math.round(i(T)/i(S)*100):0),k=M(()=>s.deployData.phase??`writing-config`),N=M(()=>i(x).some(e=>/^voice(-cuda|-rocm)?$/.test(e.service??``))),P=M(()=>{if(s.deployDone)return c()?`Setup Complete (with warnings)`:`Setup Complete`;if(s.deployError)return`Deployment Issue`;switch(i(k)){case`writing-config`:return`Preparing Configuration…`;case`pulling-images`:return i(N)?`Downloading Images (incl. Voice ~2.4 GB)…`:`Downloading Images…`;case`starting`:return`Starting Services…`;case`starting-voice`:return`Starting Voice Addon…`;case`ready`:return`Setup Complete`}return`Deploying…`}),ee=M(()=>{if(s.deployDone)return c()?`Setup is complete. Some services are still warming up in the background — they will be ready shortly.`:`Your OpenPalm stack is up and running.`;if(s.deployError)return`Setup could not finish starting the stack.`;switch(i(k)){case`writing-config`:return`Writing config files and validating settings.`;case`pulling-images`:return i(N)?`Downloading container images. The voice model (~2.4 GB) is the largest — on a typical home connection this step can take 10–30 minutes. The wizard will wait — keep this tab open.`:`Downloading container images — first install can take 3–8 minutes depending on connection.`;case`starting`:return`${i(T)} of ${i(S)} services running.`;case`starting-voice`:return`Pulling the voice image (~2.4 GB) and warming up Kokoro + Whisper models. First launch can take 5–30 minutes on slow connections — the wizard will wait.`;case`ready`:return`All services are up.`}return`Writing configuration and starting services.`}),I=M(()=>s.deployDone&&i(x).length===0);var R=rn(),ne=y(R),z=E(ne),B=E(z,!0);t(z);var V=j(z,2),H=E(V,!0);t(V),t(ne);var U=j(ne,2),W=E(U),G=j(E(W),2),re=E(G),ie=t=>{o(t,e(`Error`))},K=t=>{var n=e();u(()=>r(n,i(x).length>0?`100%`:``)),o(t,n)},q=t=>{var n=e();u(()=>r(n,`${i(O)??``}%`)),o(t,n)};l(re,e=>{s.deployError?e(ie):s.deployDone?e(K,1):e(q,-1)}),t(G),t(W);var J=j(W,2),ae=E(J);t(J),t(U);var Y=j(U,2);D(Y,21,()=>i(x),e=>e.service,(e,n)=>{var a=Bt(),s=E(a),c=E(s),d=e=>{o(e,Lt())},p=e=>{o(e,Rt())},m=e=>{var n=zt();te(E(n),{}),t(n),o(e,n)};l(c,e=>{i(n).status===`running`?e(d):i(n).status===`error`||i(n).status===`warning`?e(p,1):e(m,-1)}),t(s);var h=j(s,2),g=E(h),_=E(g,!0);t(g);var v=j(g,2),y=E(v,!0);t(v),t(h);var b=j(h,2),x=E(b);t(b),t(a),u(()=>{r(_,i(n).service||i(n).label||``),r(y,i(n).label||i(n).status),f(x,1,`deploy-bar-fill ${i(n).status===`running`?`complete`:i(n).status===`ready`?`ready`:i(n).status===`warning`?`warning`:i(n).status===`error`?`stopped`:`indeterminate`}`,`svelte-1orw49v`)}),o(e,a)}),t(Y);var oe=j(Y,2),se=e=>{var n=Vt(),r=E(n);{let e=M(()=>ve(s.deployError,`deploy`));pe(r,{get error(){return i(e)}})}t(n),o(e,n)};l(oe,e=>{s.deployError&&e(se)});var X=j(oe,2),ce=e=>{var n=Kt(),a=E(n),s=j(E(a),2),c=E(s,!0);t(s),t(a);var d=j(a,2),f=E(d),h=e=>{var t=Ht();p(2),o(e,t)},g=e=>{o(e,Ut())};l(f,e=>{i(N)?e(h):e(g,-1)});var _=j(f,4),v=e=>{o(e,Wt())},y=e=>{o(e,Gt())};l(_,e=>{m?e(v):e(y,-1)}),t(d),t(n),u(()=>r(c,i(N)?`First install may take 10–30 minutes`:`First startup takes a few minutes`)),o(e,n)};l(X,e=>{!s.deployDone&&!s.deployError&&e(ce)});var le=j(X,2),ue=e=>{var n=tn(),a=j(E(n),2),f=E(a,!0);t(a);var p=j(a,2),h=e=>{o(e,qt())},g=e=>{var n=en(),a=y(n),f=E(a,!0);t(a);var p=j(a,2),h=e=>{var n=Jt(),a=E(n);t(n),u(e=>r(a,`Still warming up: ${e??``}. You can finish setup now — these will be ready shortly.`),[()=>i(d).map(e=>e.label||e.service).join(`, `)]),o(e,n)};l(p,e=>{c()&&i(d).length>0&&e(h)});var g=j(p,2),v=e=>{var n=Yt(),i=E(n),a=E(i);t(i),t(n),u(()=>r(a,`⚠ ${s.deployData.imageWarning??``}`)),o(e,n)};l(g,e=>{s.deployData.imageWarning&&e(v)});var S=j(g,2),C=e=>{o(e,Xt())};l(S,e=>{m||e(C)});var T=j(S,2);D(T,21,()=>i(x),e=>e.service,(e,n)=>{let a=M(()=>i(n).service||i(n).label||``),s=M(()=>i(b)[i(a)]),c=M(()=>i(n).status===`warning`);var d=$t(),f=E(d),p=e=>{let a=M(()=>`http://127.0.0.1:`+i(s).port+i(s).path);var l=Zt(),d=y(l),f=E(d,!0);t(d);var p=j(d,2),m=E(p,!0);t(p);var h=j(p,2),g=E(h,!0);t(h),u(()=>{r(f,i(s).label),w(p,`href`,i(a)),r(m,i(a)),r(g,i(c)?i(n).label||`⚠ Warming up`:`✓ Running`)}),o(e,l)},m=e=>{var s=Qt(),l=y(s),d=E(l,!0);t(l);var f=j(l,2),p=E(f,!0);t(f),u(()=>{r(d,i(a)),r(p,i(c)?i(n).label||`⚠ Warming up`:`✓ Running`)}),o(e,s)};l(f,e=>{i(s)?e(p):e(m,-1)}),t(d),o(e,d)}),t(T);var O=j(T,2),k=E(O),A=j(k,2),N=j(A,2);t(O),u((e,t)=>{r(f,c()?`Setup is complete. Some services are still warming up in the background.`:`Your OpenPalm stack is up and running.`),w(k,`href`,e),w(A,`href`,`http://127.0.0.1:${i(_)??``}`),w(N,`href`,t)},[()=>L(`/chat`),()=>L(`/`)]),o(e,n)};l(p,e=>{i(I)?e(h):e(g,-1)}),t(n),u(()=>r(f,c()?`Setup Complete (with warnings)`:`Setup Complete`)),o(e,n)};l(le,e=>{s.deployDone&&e(ue)});var Z=j(le,2),de=e=>{var n=nn(),r=E(n),i=j(r,2);t(n),a(`click`,r,function(...e){s.onback?.apply(this,e)}),a(`click`,i,function(...e){s.onretry?.apply(this,e)}),o(e,n)};l(Z,e=>{s.deployError&&e(de)}),u(()=>{r(B,i(P)),r(H,i(ee)),f(G,1,`deploy-progress-value ${s.deployError?`deploy-progress-value--error`:``}`),F(ae,`width:${(s.deployDone&&i(x).length>0?100:s.deployDone?0:i(O))??``}%`)}),o(n,R),C()}h([`click`]);var on=d(`<div class="rerun-banner"><span>Updating existing installation</span> <a class="rerun-back-link">← Back to Admin</a></div>`),sn=d(`<div style="display:none" aria-hidden="true"><section class="step-content step-content--hidden" id="step-0" data-testid="step-system-check"><!></section></div>`),cn=d(`<div style="flex:1; padding: 32px; overflow-y: auto;"><!></div>`),ln=I(`<svg viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="12" height="12" aria-hidden="true"><path d="M2 6l3 3 5-5"></path></svg>`),un=d(`<span class="wiz-tick-num"> </span>`),dn=d(`<div><!> </div>`),fn=d(`Connect your <span class="accent">AI brain</span>`,1),pn=d(`Optional <span class="accent">extras</span>`,1),mn=d(`You're all <span class="accent">set</span>`,1),hn=d(`<div class="feedback feedback--warning" role="alert" data-testid="recommendation-alert"><span> </span></div>`),gn=d(`<section class="step-content" id="step-1"><!></section>`),_n=d(`<section class="step-content" id="step-2"><!></section>`),vn=d(`<section class="step-content" id="step-3" data-testid="step-review"><!></section>`),yn=d(`<button class="btn btn-secondary" aria-label="Back">Back</button>`),bn=d(`<div></div>`),xn=d(`<button class="btn btn-primary" id="btn-screen1-next"><!></button>`),Sn=d(`<button class="btn btn-primary" id="btn-screen2-next">Continue</button>`),Cn=d(`<button class="btn btn-primary" id="btn-install"><!></button>`),wn=d(`We found an AI account on this computer. Just hit <strong>Continue</strong> and your assistant will use it automatically.`,1),Tn=d(`You're ready. Click <strong>Install OpenPalm</strong> and it'll start up in the background. The first launch pulls a few files — this takes a minute or two. When it's done, open your browser, sign in with that password, and you're good to go. Everything can be changed later from the dashboard.`,1),En=d(`<div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M9 12l2 2 4-4"></path><circle cx="12" cy="12" r="9"></circle></svg></div> <div>Your existing connection is ready to use. No extra setup needed — just continue to the next step.</div></div> <div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M12 3l1.5 4.5H18l-3.75 2.7 1.5 4.5L12 12l-3.75 2.7 1.5-4.5L6 7.5h4.5z"></path></svg></div> <div>Want to use something different? Select another option from the list — you can switch any time from the dashboard.</div></div>`,1),Dn=d(`<div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="8" r="4"></circle><path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"></path></svg></div> <div><strong>Cloud services</strong> like ChatGPT are fast and easy — you just sign in.</div></div> <div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><rect x="3" y="4" width="18" height="12" rx="2"></rect><path d="M8 20h8M12 16v4"></path></svg></div> <div><strong>Running locally</strong> keeps everything on your computer — private, free, no internet needed.</div></div>`,1),On=d(`<div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><rect x="9" y="3" width="6" height="11" rx="3"></rect><path d="M5 11a7 7 0 0014 0M12 18v3"></path></svg></div> <div>Voice runs locally — free, no internet needed. A small model downloads the first time you use it.</div></div> <div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 8v4l3 3"></path></svg></div> <div>Setup help: <a href="https://discord.com/developers/docs/quick-start/getting-started" target="_blank" rel="noopener">How to set up a Discord bot →</a></div></div> <div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M3 12h18M3 6h18M3 18h18"></path></svg></div> <div><a href="https://api.slack.com/quickstart" target="_blank" rel="noopener">How to set up a Slack app →</a></div></div>`,1),kn=d(`<div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><rect x="3" y="11" width="18" height="10" rx="2"></rect><path d="M7 11V7a5 5 0 0110 0v4"></path></svg></div> <div>Your sign-in password is already saved on this computer — keep a copy somewhere safe just in case.</div></div> <div class="wiz-bullet"><div class="wiz-bullet-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M9 12l2 2 4-4"></path><circle cx="12" cy="12" r="9"></circle></svg></div> <div>Everything can be changed from the dashboard after install — providers, voice, portals, and more.</div></div>`,1),An=d(`<header class="wiz-topbar"><div class="wiz-wordmark"><!> <b>OpenPalm</b><span>setup</span></div> <nav class="wiz-ticker" aria-label="Setup steps"></nav></header> <div class="wiz-stage"><div class="wiz-content"><div class="wiz-content-scroll"><div class="wiz-eyebrow"><!></div> <h1 class="wiz-title"><!></h1> <p class="wiz-lede"><!></p> <!> <!></div> <footer class="wiz-footer"><div class="wiz-footer-left"><!></div> <div class="wiz-footer-right"><!></div></footer></div> <aside class="wiz-aside" aria-label="Setup guide"><div class="wiz-aside-top"><img class="wiz-mascot" src="/wizard-128.png" alt="OpenPalm setup guide"/> <div><b class="wiz-greet-name"><!></b> <span class="wiz-greet-sub"><!></span></div></div> <p class="wiz-guide-lede"><!></p> <div class="wiz-guide-bullets"><!></div> <div class="wiz-guide-privacy"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M8 1.5L2 4v4c0 3.3 2.5 5.8 6 6.5 3.5-.7 6-3.2 6-6.5V4L8 1.5z"></path></svg> <span>It's your own assistant, running right here on your computer.</span></div></aside></div>`,1),jn=d(`<main class="setup-page" aria-label="Setup wizard"><!> <!> <!></main>`);function Mn(s,d){v(d,!0);let m=b(0),h=b(0),_=b(!1),S=b(!1),k=b(`cloud`),A=b(!1),ee=b(``),F=b(!1),I=b(P({})),R=b(P([])),te=M(()=>i(I).ollama?.ollamaMode===`running`||i(R).some(e=>e.provider===`ollama`||e.provider===`lmstudio`)),ne=b(P([])),B=b(!1),V=b(P([])),H=b(P({})),re=b(0),J=b(!1),ae=b(null),Y=b(``),oe=b(!1),ce=b(0),le=b(``),ue=b(``),Z={},de={},Q=P({}),$=b(P({engine:``})),fe=b(P({engine:``})),pe=M(()=>i($).engine===`openpalm-voice`||i(fe).engine===`openpalm-voice`),me=b(P([])),he=b(``),ge=b(void 0),_e=b(void 0),ve=P({discord:{enabled:!1,botToken:``,applicationId:``},slack:{enabled:!1,slackBotToken:``,slackAppToken:``}}),ye=b(!1),be=b(P([])),xe=b(``),Se=b(``),Ce=b(!1),we=b(``),Te=b(!1),Ee=b(!1),De=b(P({})),Oe=b(!1),ke=b(!1),Ae=b(null),Me=null,Ne=b(0),Pe=M(()=>(i(B)?i(V).map(e=>e.id):G.map(e=>e.id)).filter(e=>i(I)[e]?.verified).length),Fe=M(()=>!!Q.llm?.model),Ie=M(()=>{if(i(B)){let e=i(V).filter(e=>i(I)[e.id]?.verified).map(e=>{let t=i(I)[e.id],n=G.find(t=>t.id===e.id);return{id:e.id,name:e.name??e.id,kind:`cloud`,group:``,order:0,icon:``,desc:``,baseUrl:t?.baseUrl??``,llmModel:n?.llmModel??``,embModel:n?.embModel??``,embDims:n?.embDims??0}}),t=new Set(e.map(e=>e.id)),n=G.filter(e=>!t.has(e.id)&&i(I)[e.id]?.verified).map(e=>{let t=i(I)[e.id];return{id:e.id,name:e.name,kind:e.kind,group:e.group,order:e.order,icon:e.icon,desc:e.desc,baseUrl:t?.baseUrl??e.baseUrl,llmModel:e.llmModel,embModel:e.embModel,embDims:e.embDims}});return[...e,...n]}return G.filter(e=>i(I)[e.id]?.verified)}),Le=M(()=>!!Q.llm?.model||i(J)),Re=M(()=>G.some(e=>e.id===`openai`&&i(I)[e.id]?.verified)),ze=M(()=>i(Re)?{tts:`openai-tts`,stt:`openai-stt`}:{tts:`browser-tts`,stt:`browser-stt`}),Be=M(()=>X(i($),i(pe),i(ze).tts)),Ve=M(()=>X(i(fe),i(pe),i(ze).stt)),He=M(()=>X(i($),i(pe),``)),Ue=M(()=>X(i(fe),i(pe),``)),We=M(()=>{let e=Q.llm,t=Q.embedding,n=Q.small,r={};e&&(r[e.connId]=!0),t&&(r[t.connId]=!0),n?.model&&(r[n.connId]=!0);let a=i(Ie).filter(e=>r[e.id]).map(e=>{let t=i(I)[e.id];return{id:e.id,name:e.name,provider:e.id,baseUrl:t?.baseUrl??e.baseUrl,apiKey:t?.apiKey??``}}),o=e?.connId??``,s=t?.connId??``,c=a.find(e=>e.id===o),l=a.find(e=>e.id===s),u=c?.provider??``,d=l?.provider??``,f={};i(ye)&&!i(te)&&(f.ollama=!0),(i(He).engine===`openpalm-voice`||i(Ue).engine===`openpalm-voice`)&&(f.voice=!0);let p={},m=Ke();for(let e of Object.keys(m)){let t=m[e];if(t===!0)f[e]=!0;else if(typeof t==`object`&&t){f[e]=!0;let n={};for(let e of Object.keys(t))e!==`enabled`&&t[e]&&(n[e]=String(t[e]));Object.keys(n).length>0&&(p[e]=n)}}let h={version:2,addons:f,security:{uiLoginPassword:i(ee)},connections:a};u&&e?.model&&(h.llm={provider:u,model:e.model,baseUrl:c?.baseUrl??``}),d&&t?.model&&(h.embedding={provider:d,model:t.model,dims:t.dims??1536,baseUrl:l?.baseUrl??``});let g=e=>{if(!e.engine||e.engine.startsWith(`skip-`))return;let t={enabled:!0,engine:e.engine};return e.provider&&(t.provider=e.provider),e.baseURL&&(t.baseURL=e.baseURL),e.model&&(t.model=e.model),e.voice&&(t.voice=e.voice),e.language&&(t.language=e.language),e.apiKey&&(t.apiKey=e.apiKey),t},_=g(i(He));_&&(h.tts=_);let v=g(i(Ue));return v&&(h.stt=v),(i(He).engine===`openpalm-voice`||i(Ue).engine===`openpalm-voice`)&&i(he)&&(h.voiceProfile=i(he)),i(ye)&&i(xe)&&(h.ollamaProfile=i(xe)),Object.keys(p).length>0&&(h.portalCredentials=p),i(Se).trim()&&(h.imageTag=i(Se).trim()),i(Ce)&&(h.hostAkm=!0),h});function Ge(){let e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function Ke(){let e={};for(let t of ie){let n=ve[t.id];if(t.locked)e[t.id]=!0;else if(typeof n==`object`&&n){if(n.enabled){let r={enabled:!0};if(t.credentials)for(let e of t.credentials){let t=n[e.key];t&&(r[e.key]=t)}e[t.id]=r}}else n&&(e[t.id]=!0)}return e}async function qe(){try{let e=await fetch(`/api/setup/voice-profiles`);if(!e.ok)return;let t=await e.json();if(!Array.isArray(t.profiles))return;O(me,t.profiles,!0);let n=q(t.profiles,`voice`,i(F));if(n&&O(he,n,!0),i(F)&&i(he)!==W(`voice`,`cuda`)){let e=i(me).find(e=>e.id===W(`voice`,`cuda`)&&e.available!==!1);e&&O(he,e.id,!0)}}catch{}}async function Je(){try{let e=await fetch(`/api/setup/ollama-profiles`);if(!e.ok)return;let t=await e.json();if(!Array.isArray(t.profiles))return;O(be,t.profiles,!0);let n=i(F)?t.profiles.find(e=>e.id===W(`ollama`,`cuda`)&&e.available!==!1)??t.profiles.find(e=>e.default&&e.available!==!1)??t.profiles.find(e=>e.available!==!1):t.profiles.find(e=>e.id===W(`ollama`,`cpu`)&&e.available!==!1)??t.profiles.find(e=>e.default&&e.available!==!1)??t.profiles.find(e=>e.available!==!1);t.selectedProfile&&typeof t.selectedProfile==`string`?O(xe,t.selectedProfile,!0):n&&O(xe,n.id,!0)}catch{}}function Ye(){let e={};for(let t of G)e[t.id]={selected:!1,verified:!1,verifying:!1,error:!1,apiKey:``,baseUrl:t.baseUrl??``,models:[],ollamaMode:null};O(I,e,!0)}function Xe(e){O(ye,!0);let t=i(I).ollama;t&&(t.selected=!0,t.verified=!0,t.ollamaMode=`instack`,t.baseUrl=`http://ollama:11434`,t.models.length===0&&(t.models=[U])),O(xe,q(i(be),`ollama`,i(F),e)??W(`ollama`,e??(i(F)?`cuda`:`cpu`)),!0)}let Ze=new Set([`ollama`,`lmstudio`,`llamacpp`,`localai`,`model-runner`]),Qe=b(void 0),$e=P(Q.llm&&!Ze.has(Q.llm.connId)?Q.llm.connId:``);function et(e){if(O(k,e,!0),e===`local`){Q.llm&&!Ze.has(Q.llm.connId)&&O(Qe,Q.llm,!0),i(te)||Xe();let e=at(`llm`).find(e=>Ze.has(e.connId));Q.llm=e?{connId:e.connId,model:e.id,dims:e.dims}:{connId:`ollama`,model:U,dims:0}}else e===`cloud`&&i(Qe)&&(Q.llm=i(Qe))}async function tt(){if(i(oe))return;let e;if(i(ae))e=i(ae);else try{let t=await fetch(`/api/setup/recommend`);if(!t.ok)return;let n=await t.json();if(!n.ok||!n.recommendation)return;e=n.recommendation,Array.isArray(n.hostProviders)&&O(R,n.hostProviders,!0),n.gpu&&(O(ce,n.gpu.vramMb??0,!0),O(le,n.gpu.vendor??``,!0),O(ue,n.gpu.name??``,!0))}catch{return}switch(O(oe,!0),O(ae,e,!0),e.action){case`use-cloud`:O(Y,``);break;case`use-host-providers`:O(Y,e.alert,!0),i(Et)||(O(Et,!0),await At());break;case`enable-ollama`:O(Y,e.alert,!0),Xe(e.profileVariant);break;case`connect-manually`:O(Y,e.alert,!0);break}}function nt(e){if(e){if(i($).engine!==`openpalm-voice`&&O($,{engine:`openpalm-voice`},!0),i(fe).engine!==`openpalm-voice`&&O(fe,{engine:`openpalm-voice`},!0),!i(he)){let e=q(i(me),`voice`,i(F));e&&O(he,e,!0)}}else i($).engine===`openpalm-voice`&&O($,{engine:``},!0),i(fe).engine===`openpalm-voice`&&O(fe,{engine:``},!0)}function rt(e){e<0||e>3||e>0&&!i(S)||(O(m,e,!0),e>i(h)&&O(h,e,!0),O(_,!1),e===1&&!i(jt)&&(tt(),ct(),it()))}function it(){for(let e of[`llm`,`embedding`,`small`]){if(Q[e]||e===`embedding`)continue;let t=at(e);if(t.length===0)continue;let n=t[0];Q[e]={connId:n.connId,model:n.id,dims:n.dims}}}function at(e){return se(e,i(Ie),i(I))}function ot(e,t){if(!t)return;let n=t.indexOf(`/`),r=n>0?t.slice(0,n):``,a=n>0?t.slice(n+1):t,o=at(e),s=o.find(e=>e.id===t);if(s)return{connId:s.connId,model:s.id,dims:s.dims};let c=r?o.find(e=>e.connId===r&&e.id===a):void 0;if(c)return{connId:c.connId,model:c.id,dims:c.dims};let l=o.find(e=>e.id===a);if(l)return{connId:l.connId,model:l.id,dims:l.dims};if(r&&i(Ie).some(e=>e.id===r))return{connId:r,model:a,dims:0}}function st(e){e&&(e.llm&&O(ge,e.llm,!0),e.small&&O(_e,e.small,!0),ct())}function ct(){if(i(ge)){let e=ot(`llm`,i(ge));e&&(Q.llm=e)}if(i(_e)){let e=ot(`small`,i(_e));e&&(Q.small=e)}}async function lt(){try{let e=await fetch(`/api/setup/opencode/ensure`,{method:`POST`});if(e.ok){let{ok:t}=await e.json();if(t){O(B,!0),await ut();return}}}catch{}try{let e=await fetch(`/api/setup/opencode/status`);e.ok&&(await e.json()).available&&(O(B,!0),await ut())}catch{}}async function ut(){let e=await fetch(`/api/setup/opencode/providers`);if(!e.ok)return;let t=await e.json();if(!t.available||!Array.isArray(t.providers))return;let n=t.providers,r=t.auth??{},a=new Set(Array.isArray(t.connected)?t.connected:[]),o=new Set(n.map(e=>e.id));for(let e of K)o.has(e.id)||n.push(e);O(V,n,!0),O(H,r,!0);let s={...i(I)};for(let e of n){s[e.id]||(s[e.id]={selected:!1,verified:!1,verifying:!1,error:!1,apiKey:``,baseUrl:e.localUrl??``,models:[],ollamaMode:null});let t=Object.keys(e.models??{});t.length>0&&s[e.id].models.length===0&&(s[e.id].models=t),a.has(e.id)&&(s[e.id].verified=!0)}O(I,s,!0),st(t.selectedModels)}async function dt(){try{let e=await fetch(`/api/setup/detect-providers`);if(e.ok){O(ne,(await e.json()).providers??[],!0);for(let e of i(ne)){if(!e.available)continue;let t=i(I)[e.provider];t&&(t.baseUrl=e.url,t.selected||(t.selected=!0,e.provider===`ollama`&&(t.ollamaMode=`running`)),mt(e.provider))}}}catch{O(ne,[],!0)}}async function ft(e,t,n){let r=`/api/setup/models/`+encodeURIComponent(e),i=await fetch(r,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({apiKey:n??``,baseUrl:t??``})}),a=await i.json();if(!i.ok||a.status===`recoverable_error`)throw Error(a.error??`Failed to fetch models (HTTP `+i.status+`)`);return a}async function mt(e){let t=G.find(t=>t.id===e);if(!t)return;let n=i(I)[e];if(!n)return;if(e===`ollama`&&n.ollamaMode===`instack`){n.verified=!0,n.error=!1;return}let r=(Z[e]??0)+1;Z[e]=r,n.verifying=!0,n.error=!1;let a=(n.baseUrl||t.baseUrl).trim(),o=(n.apiKey??``).trim();try{let t=await ft(e,a,o);if(Z[e]!==r)return;n.verified=!0,n.error=!1,n.models=t.models??[]}catch(t){if(Z[e]!==r)return;n.verified=!1,n.error=!0,n.errorMessage=t instanceof Error?t.message:``,n.models=[]}n.verifying=!1}async function ht(e,t){let n=i(I)[e];if(n){n.verifying=!0,n.error=!1;try{let r=await fetch(`/api/setup/opencode/provider/`+encodeURIComponent(e)+`/oauth/authorize`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({method:t})}),i=await r.json();if(!r.ok)throw Error(i.message??`OAuth failed`);n.oauthPolling=!0,n.oauthUrl=i.url??``,n.oauthInstructions=i.instructions??``,i.url&&i.method===`auto`&&window.open(i.url,`_blank`),await gt(e,t)}catch(e){n.verifying=!1,n.error=!0,n.errorMessage=e instanceof Error?e.message:`OAuth failed`,n.oauthPolling=!1}}}async function gt(e,t){let n=i(I)[e],r=new AbortController;de[e]=r;let a=AbortSignal.timeout(10*6e4),o=AbortSignal.any?AbortSignal.any([r.signal,a]):r.signal;try{let r=await fetch(`/api/setup/opencode/provider/`+encodeURIComponent(e)+`/oauth/callback`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({method:t}),signal:o}),i=await r.json().catch(()=>null);r.ok&&i?.ok?(n.verified=!0,n.error=!1):(n.error=!0,n.errorMessage=i?.message??`Authorization failed`)}catch(e){if(e instanceof Error&&e.name===`AbortError`&&r.signal.aborted)return;e instanceof Error&&e.name===`AbortError`?(n.error=!0,n.errorMessage=`Authorization timed out. Try again.`):(n.error=!0,n.errorMessage=e instanceof Error?e.message:`Authorization failed`)}finally{delete de[e],n.oauthPolling=!1,n.verifying=!1}}async function vt(){if(!i(Te)){if(O(we,``),!i(We).llm&&!i(jt)&&!i(Ee)){if(!window.confirm(`No AI is set up here. You can connect this app to an assistant running on another computer, or add a provider later from your dashboard.
@@ -1 +1 @@
1
- {"version":"0.12.44-beta.4"}
1
+ {"version":"0.12.44"}
@@ -1 +1,2 @@
1
-
1
+
2
+ �{"version":"0.12.44"}
Binary file
@@ -0,0 +1,9 @@
1
+ const index = 1;
2
+ let component_cache;
3
+ const component = async () => component_cache ??= (await import('./error.svelte-Cepq36_V.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.BsVZFCPI.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/C263EwX8.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/xihTtKlq.js"];
5
+ const stylesheets = [];
6
+ const fonts = [];
7
+
8
+ export { component, fonts, imports, index, stylesheets };
9
+ //# sourceMappingURL=1-D1gNV4OA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1-BvUMS98T.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.CzAbiYtD.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BJznZTLz.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1-D1gNV4OA.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.BsVZFCPI.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/C263EwX8.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,6 +1,6 @@
1
- import { q as classifyLocalInstall, w as composePs, m as buildComposeOptions, K as deriveLaunchStatus, Q as detectRuntime, L as deriveLocalStackState } from './src-CBQKBSM9.js';
2
- import { g as getState } from './state-BBeqCbpv.js';
3
- import { b as listRemoteStatuses } from './endpoints-BpgyaHnY.js';
1
+ import { q as classifyLocalInstall, w as composePs, m as buildComposeOptions, K as deriveLaunchStatus, Q as detectRuntime, L as deriveLocalStackState } from './src-NhUHZOQF.js';
2
+ import { g as getState } from './state-BateNC-M.js';
3
+ import { b as listRemoteStatuses } from './endpoints-BltANYH6.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -59,11 +59,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
59
59
 
60
60
  const index = 10;
61
61
  let component_cache;
62
- const component = async () => component_cache ??= (await import('./_page.svelte-DhDG6cI0.js')).default;
62
+ const component = async () => component_cache ??= (await import('./_page.svelte-CJaj_qOx.js')).default;
63
63
  const server_id = "src/routes/splash/+page.server.ts";
64
- const imports = ["_app/immutable/nodes/10.DxUSU-lz.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/C8Qdq8nY.js"];
64
+ const imports = ["_app/immutable/nodes/10.f9V6641a.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/C8Qdq8nY.js"];
65
65
  const stylesheets = ["_app/immutable/assets/10.p7qpuBHR.css"];
66
66
  const fonts = [];
67
67
 
68
68
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
69
- //# sourceMappingURL=10-BDhR4-Uu.js.map
69
+ //# sourceMappingURL=10-C1p2XJG4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"10-BDhR4-Uu.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/splash/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/10.js"],"sourcesContent":["import { $ as composePs, G as deriveLocalStackState, K as detectRuntime, N as buildComposeOptions, U as classifyLocalInstall, W as deriveLaunchStatus } from \"../../../chunks/src.js\";\nimport { t as getState } from \"../../../chunks/state.js\";\nimport { a as listRemoteStatuses } from \"../../../chunks/endpoints.js\";\n//#region src/routes/splash/+page.server.ts\nfunction parseComposePsServices(stdout) {\n\treturn stdout.split(\"\\n\").map((line) => line.trim()).filter(Boolean).flatMap((line) => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(line);\n\t\t\treturn [{\n\t\t\t\tservice: String(parsed.Service ?? parsed.Name ?? \"\"),\n\t\t\t\tstate: String(parsed.State ?? \"\"),\n\t\t\t\thealth: String(parsed.Health ?? \"\")\n\t\t\t}];\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t});\n}\nasync function load() {\n\tconst state = getState();\n\tconst installState = classifyLocalInstall(state.stackDir, state.homeDir);\n\tconst composeResult = await composePs(buildComposeOptions(state));\n\treturn { launchStatus: deriveLaunchStatus({\n\t\tlocal: {\n\t\t\tstate: deriveLocalStackState(installState, composeResult.ok ? parseComposePsServices(composeResult.stdout) : []),\n\t\t\truntime: installState === \"not_installed\" ? await detectRuntime() : void 0,\n\t\t\tdetail: { installState }\n\t\t},\n\t\tremotes: await listRemoteStatuses()\n\t}) };\n}\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/splash/_page.server.ts.js';\n\nexport const index = 10;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/splash/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/splash/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/10.DxUSU-lz.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/C8Qdq8nY.js\"];\nexport const stylesheets = [\"_app/immutable/assets/10.p7qpuBHR.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACxC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACxF,EAAE,IAAI;AACN,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,GAAG,OAAO,CAAC;AACX,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AACxD,IAAI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AACrC,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACtC,IAAI,CAAC;AACL,EAAE,CAAC,CAAC,MAAM;AACV,GAAG,OAAO,EAAE;AACZ,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,eAAe,IAAI,GAAG;AACtB,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;AACzE,CAAC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;AAC3C,EAAE,KAAK,EAAE;AACT,GAAG,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,GAAG,sBAAsB,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACnH,GAAG,OAAO,EAAE,YAAY,KAAK,eAAe,GAAG,MAAM,aAAa,EAAE,GAAG,MAAM;AAC7E,GAAG,MAAM,EAAE,EAAE,YAAY;AACzB,GAAG;AACH,EAAE,OAAO,EAAE,MAAM,kBAAkB;AACnC,EAAE,CAAC,EAAE;AACL;;;;;;;AC5BY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAyC,CAAC,EAAE;AAEvG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACrO,MAAC,WAAW,GAAG,CAAC,uCAAuC;AACvD,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"10-C1p2XJG4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/splash/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/10.js"],"sourcesContent":["import { $ as composePs, G as deriveLocalStackState, K as detectRuntime, N as buildComposeOptions, U as classifyLocalInstall, W as deriveLaunchStatus } from \"../../../chunks/src.js\";\nimport { t as getState } from \"../../../chunks/state.js\";\nimport { a as listRemoteStatuses } from \"../../../chunks/endpoints.js\";\n//#region src/routes/splash/+page.server.ts\nfunction parseComposePsServices(stdout) {\n\treturn stdout.split(\"\\n\").map((line) => line.trim()).filter(Boolean).flatMap((line) => {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(line);\n\t\t\treturn [{\n\t\t\t\tservice: String(parsed.Service ?? parsed.Name ?? \"\"),\n\t\t\t\tstate: String(parsed.State ?? \"\"),\n\t\t\t\thealth: String(parsed.Health ?? \"\")\n\t\t\t}];\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t});\n}\nasync function load() {\n\tconst state = getState();\n\tconst installState = classifyLocalInstall(state.stackDir, state.homeDir);\n\tconst composeResult = await composePs(buildComposeOptions(state));\n\treturn { launchStatus: deriveLaunchStatus({\n\t\tlocal: {\n\t\t\tstate: deriveLocalStackState(installState, composeResult.ok ? parseComposePsServices(composeResult.stdout) : []),\n\t\t\truntime: installState === \"not_installed\" ? await detectRuntime() : void 0,\n\t\t\tdetail: { installState }\n\t\t},\n\t\tremotes: await listRemoteStatuses()\n\t}) };\n}\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/splash/_page.server.ts.js';\n\nexport const index = 10;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/splash/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/splash/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/10.f9V6641a.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/C8Qdq8nY.js\"];\nexport const stylesheets = [\"_app/immutable/assets/10.p7qpuBHR.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACxC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACxF,EAAE,IAAI;AACN,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,GAAG,OAAO,CAAC;AACX,IAAI,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AACxD,IAAI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AACrC,IAAI,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACtC,IAAI,CAAC;AACL,EAAE,CAAC,CAAC,MAAM;AACV,GAAG,OAAO,EAAE;AACZ,EAAE;AACF,CAAC,CAAC,CAAC;AACH;AACA,eAAe,IAAI,GAAG;AACtB,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;AACzE,CAAC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC,OAAO,EAAE,YAAY,EAAE,kBAAkB,CAAC;AAC3C,EAAE,KAAK,EAAE;AACT,GAAG,KAAK,EAAE,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,GAAG,sBAAsB,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACnH,GAAG,OAAO,EAAE,YAAY,KAAK,eAAe,GAAG,MAAM,aAAa,EAAE,GAAG,MAAM;AAC7E,GAAG,MAAM,EAAE,EAAE,YAAY;AACzB,GAAG;AACH,EAAE,OAAO,EAAE,MAAM,kBAAkB;AACnC,EAAE,CAAC,EAAE;AACL;;;;;;;AC5BY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAyC,CAAC,EAAE;AAEvG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACrO,MAAC,WAAW,GAAG,CAAC,uCAAuC;AACvD,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 4;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-B1WjclYR.js')).default;
4
- const imports = ["_app/immutable/nodes/4.C4___y-c.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/AcSAasHS.js","_app/immutable/chunks/CKVZpD28.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/zMaWNBEE.js","_app/immutable/chunks/DnqsAfBD.js","_app/immutable/chunks/BJznZTLz.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js","_app/immutable/chunks/DI0CI0UJ.js","_app/immutable/chunks/HbvxHNCX.js"];
3
+ const component = async () => component_cache ??= (await import('./_page.svelte-Dc1I8reh.js')).default;
4
+ const imports = ["_app/immutable/nodes/4.7q4gRwAu.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/BK-tywES.js","_app/immutable/chunks/CKVZpD28.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/zMaWNBEE.js","_app/immutable/chunks/BOfhzsO0.js","_app/immutable/chunks/C263EwX8.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js","_app/immutable/chunks/DI0CI0UJ.js","_app/immutable/chunks/HbvxHNCX.js"];
5
5
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/IconSoundOn.BsTA83Hx.css","_app/immutable/assets/ChatMessage.Bir85vV2.css","_app/immutable/assets/Navbar.D3rckLpW.css","_app/immutable/assets/4.2S7Y5od3.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=4-BvnjGWkC.js.map
9
+ //# sourceMappingURL=4-CoWnFM_n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"4-BvnjGWkC.js","sources":["../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/4.C4___y-c.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/AcSAasHS.js\",\"_app/immutable/chunks/CKVZpD28.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BFVV1YJb.js\",\"_app/immutable/chunks/zMaWNBEE.js\",\"_app/immutable/chunks/DnqsAfBD.js\",\"_app/immutable/chunks/BJznZTLz.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\",\"_app/immutable/chunks/DI0CI0UJ.js\",\"_app/immutable/chunks/HbvxHNCX.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/ChatMessage.Bir85vV2.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/4.2S7Y5od3.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AACtG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5tB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AACjP,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"4-CoWnFM_n.js","sources":["../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/4.7q4gRwAu.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/BK-tywES.js\",\"_app/immutable/chunks/CKVZpD28.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BFVV1YJb.js\",\"_app/immutable/chunks/zMaWNBEE.js\",\"_app/immutable/chunks/BOfhzsO0.js\",\"_app/immutable/chunks/C263EwX8.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\",\"_app/immutable/chunks/DI0CI0UJ.js\",\"_app/immutable/chunks/HbvxHNCX.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/ChatMessage.Bir85vV2.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/4.2S7Y5od3.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AACtG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5tB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AACjP,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 5;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-Cs3LzPPH.js')).default;
4
- const imports = ["_app/immutable/nodes/5.CwNS_H63.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/DnqsAfBD.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/AcSAasHS.js","_app/immutable/chunks/BJznZTLz.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js","_app/immutable/chunks/HbvxHNCX.js"];
3
+ const component = async () => component_cache ??= (await import('./_page.svelte-8cQtZj7v.js')).default;
4
+ const imports = ["_app/immutable/nodes/5.0eWsC6Gy.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BOfhzsO0.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/BK-tywES.js","_app/immutable/chunks/C263EwX8.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js","_app/immutable/chunks/HbvxHNCX.js"];
5
5
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/IconSoundOn.BsTA83Hx.css","_app/immutable/assets/Navbar.D3rckLpW.css","_app/immutable/assets/5.B9kVBENv.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=5-DvbbPyY9.js.map
9
+ //# sourceMappingURL=5-BoOkg3j-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"5-DvbbPyY9.js","sources":["../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/endpoints/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/5.CwNS_H63.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/DnqsAfBD.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/AcSAasHS.js\",\"_app/immutable/chunks/BJznZTLz.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\",\"_app/immutable/chunks/HbvxHNCX.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/5.B9kVBENv.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkD,CAAC,EAAE;AAChH,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5kB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AAChM,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"5-BoOkg3j-.js","sources":["../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/endpoints/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/5.0eWsC6Gy.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BOfhzsO0.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/BK-tywES.js\",\"_app/immutable/chunks/C263EwX8.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\",\"_app/immutable/chunks/HbvxHNCX.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/5.B9kVBENv.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkD,CAAC,EAAE;AAChH,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5kB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AAChM,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 6;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-CZOPXebf.js')).default;
4
- const imports = ["_app/immutable/nodes/6.Bm8-4wfw.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/AcSAasHS.js","_app/immutable/chunks/BJznZTLz.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/DnqsAfBD.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js"];
3
+ const component = async () => component_cache ??= (await import('./_page.svelte-CGyQoVDs.js')).default;
4
+ const imports = ["_app/immutable/nodes/6.BhH4GsOD.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/BK-tywES.js","_app/immutable/chunks/C263EwX8.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BOfhzsO0.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js","_app/immutable/chunks/jopA0ZFl.js"];
5
5
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/IconSoundOn.BsTA83Hx.css","_app/immutable/assets/Navbar.D3rckLpW.css","_app/immutable/assets/6.BXlLAfIE.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=6-D5NC8xTz.js.map
9
+ //# sourceMappingURL=6-C2CYPs5n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"6-D5NC8xTz.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/advanced/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.Bm8-4wfw.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/AcSAasHS.js\",\"_app/immutable/chunks/BJznZTLz.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/DnqsAfBD.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/6.BXlLAfIE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AACzG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxiB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AAChM,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"6-C2CYPs5n.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/advanced/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.BhH4GsOD.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/BK-tywES.js\",\"_app/immutable/chunks/C263EwX8.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BOfhzsO0.js\",\"_app/immutable/chunks/C8Qdq8nY.js\",\"_app/immutable/chunks/mVxTG_mC.js\",\"_app/immutable/chunks/BiuKIdz2.js\",\"_app/immutable/chunks/jopA0ZFl.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/Navbar.D3rckLpW.css\",\"_app/immutable/assets/6.BXlLAfIE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AACzG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxiB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,2CAA2C,CAAC,sCAAsC;AAChM,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 7;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-DCfiXPeg.js')).default;
4
- const imports = ["_app/immutable/nodes/7.DiZzljlc.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/AcSAasHS.js","_app/immutable/chunks/BJznZTLz.js","_app/immutable/chunks/CKVZpD28.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/zMaWNBEE.js","_app/immutable/chunks/mVxTG_mC.js"];
3
+ const component = async () => component_cache ??= (await import('./_page.svelte-CgIVqoEs.js')).default;
4
+ const imports = ["_app/immutable/nodes/7.DxSYgHDg.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/BK-tywES.js","_app/immutable/chunks/C263EwX8.js","_app/immutable/chunks/CKVZpD28.js","_app/immutable/chunks/BZAs55y_.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/YN5ShA1l.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/zMaWNBEE.js","_app/immutable/chunks/mVxTG_mC.js"];
5
5
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/IconSoundOn.BsTA83Hx.css","_app/immutable/assets/ChatMessage.Bir85vV2.css","_app/immutable/assets/7.2p9IYK2G.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=7-CL0d1m29.js.map
9
+ //# sourceMappingURL=7-CD4RFM-K.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"7-CL0d1m29.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/chat/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.DiZzljlc.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/AcSAasHS.js\",\"_app/immutable/chunks/BJznZTLz.js\",\"_app/immutable/chunks/CKVZpD28.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BFVV1YJb.js\",\"_app/immutable/chunks/zMaWNBEE.js\",\"_app/immutable/chunks/mVxTG_mC.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/ChatMessage.Bir85vV2.css\",\"_app/immutable/assets/7.2p9IYK2G.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE;AACrG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,gDAAgD,CAAC,sCAAsC;AACrM,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"7-CD4RFM-K.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/chat/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.DxSYgHDg.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/BK-tywES.js\",\"_app/immutable/chunks/C263EwX8.js\",\"_app/immutable/chunks/CKVZpD28.js\",\"_app/immutable/chunks/BZAs55y_.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/YN5ShA1l.js\",\"_app/immutable/chunks/BeDFZ0w6.js\",\"_app/immutable/chunks/BFVV1YJb.js\",\"_app/immutable/chunks/zMaWNBEE.js\",\"_app/immutable/chunks/mVxTG_mC.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/IconSoundOn.BsTA83Hx.css\",\"_app/immutable/assets/ChatMessage.Bir85vV2.css\",\"_app/immutable/assets/7.2p9IYK2G.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE;AACrG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,gDAAgD,CAAC,gDAAgD,CAAC,sCAAsC;AACrM,MAAC,KAAK,GAAG;;;;"}
@@ -25,11 +25,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
25
25
 
26
26
  const index = 8;
27
27
  let component_cache;
28
- const component = async () => component_cache ??= (await import('./_page.svelte-BqWCR3kW.js')).default;
28
+ const component = async () => component_cache ??= (await import('./_page.svelte-DjJOojFy.js')).default;
29
29
  const server_id = "src/routes/login/+page.server.ts";
30
- const imports = ["_app/immutable/nodes/8.4vwaOVRY.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/AcSAasHS.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BeDFZ0w6.js"];
30
+ const imports = ["_app/immutable/nodes/8._je1c8Vn.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/BK-tywES.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BeDFZ0w6.js"];
31
31
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/8.DdhLOSFx.css"];
32
32
  const fonts = [];
33
33
 
34
34
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
35
- //# sourceMappingURL=8-CMPBZc2N.js.map
35
+ //# sourceMappingURL=8-CGK5TPxb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"8-CMPBZc2N.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import { i as redirect } from \"../../../chunks/exports.js\";\n//#region src/routes/login/+page.server.ts\n/**\n* Sanitize the post-login destination to an internal path only, defeating\n* open-redirect via `?redirectTo=//evil.com` or `/\\evil.com`.\n*/\nfunction _safeRedirect(target) {\n\tif (!target) return \"/chat\";\n\tif (!target.startsWith(\"/\") || target.startsWith(\"//\") || target.startsWith(\"/\\\\\")) return \"/chat\";\n\treturn target;\n}\nvar load = ({ locals, url }) => {\n\tconst redirectTo = _safeRedirect(url.searchParams.get(\"redirectTo\"));\n\tif (locals.role === \"admin\") redirect(302, redirectTo);\n\treturn { redirectTo };\n};\n//#endregion\nexport { _safeRedirect, load };\n","import * as server from '../entries/pages/login/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/login/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/login/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8.4vwaOVRY.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/BwflfDsq.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/AcSAasHS.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BeDFZ0w6.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/8.DdhLOSFx.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,OAAO;AAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO;AACnG,CAAC,OAAO,MAAM;AACd;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAChC,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;AACvD,CAAC,OAAO,EAAE,UAAU,EAAE;AACtB,CAAC;;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AAEtG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,sCAAsC;AACnG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"8-CGK5TPxb.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import { i as redirect } from \"../../../chunks/exports.js\";\n//#region src/routes/login/+page.server.ts\n/**\n* Sanitize the post-login destination to an internal path only, defeating\n* open-redirect via `?redirectTo=//evil.com` or `/\\evil.com`.\n*/\nfunction _safeRedirect(target) {\n\tif (!target) return \"/chat\";\n\tif (!target.startsWith(\"/\") || target.startsWith(\"//\") || target.startsWith(\"/\\\\\")) return \"/chat\";\n\treturn target;\n}\nvar load = ({ locals, url }) => {\n\tconst redirectTo = _safeRedirect(url.searchParams.get(\"redirectTo\"));\n\tif (locals.role === \"admin\") redirect(302, redirectTo);\n\treturn { redirectTo };\n};\n//#endregion\nexport { _safeRedirect, load };\n","import * as server from '../entries/pages/login/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/login/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/login/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8._je1c8Vn.js\",\"_app/immutable/chunks/B6a5LPQe.js\",\"_app/immutable/chunks/CLensmFQ.js\",\"_app/immutable/chunks/CymRgjIC.js\",\"_app/immutable/chunks/BK-tywES.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/BeDFZ0w6.js\"];\nexport const stylesheets = [\"_app/immutable/assets/Spinner.CCwieGti.css\",\"_app/immutable/assets/8.DdhLOSFx.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,OAAO;AAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,OAAO;AACnG,CAAC,OAAO,MAAM;AACd;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAChC,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;AACvD,CAAC,OAAO,EAAE,UAAU,EAAE;AACtB,CAAC;;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AAEtG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,4CAA4C,CAAC,sCAAsC;AACnG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 9;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-DLFBvep9.js')).default;
4
- const imports = ["_app/immutable/nodes/9.DOM38Fxh.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/BwflfDsq.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js"];
3
+ const component = async () => component_cache ??= (await import('./_page.svelte-Bg8heLoI.js')).default;
4
+ const imports = ["_app/immutable/nodes/9.CX1687Ng.js","_app/immutable/chunks/B6a5LPQe.js","_app/immutable/chunks/CLensmFQ.js","_app/immutable/chunks/CymRgjIC.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/BeDFZ0w6.js","_app/immutable/chunks/BFVV1YJb.js","_app/immutable/chunks/C8Qdq8nY.js","_app/immutable/chunks/mVxTG_mC.js","_app/immutable/chunks/BiuKIdz2.js"];
5
5
  const stylesheets = ["_app/immutable/assets/Spinner.CCwieGti.css","_app/immutable/assets/9.4QFZFijM.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=9-U30Z0uuM.js.map
9
+ //# sourceMappingURL=9-CwsLxJkm.js.map