@openpalm/ui 0.13.0-beta.6 → 0.13.0-beta.7

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 (554) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css +1 -0
  3. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css.br +3 -0
  4. package/build/client/_app/immutable/assets/4.Cd3Y_8BZ.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/6.BM7A1dW5.css +1 -0
  6. package/build/client/_app/immutable/assets/6.BM7A1dW5.css.br +0 -0
  7. package/build/client/_app/immutable/assets/6.BM7A1dW5.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{7.BTWb8aLW.css → 7.BsquVIMw.css} +1 -1
  9. package/build/client/_app/immutable/assets/7.BsquVIMw.css.br +0 -0
  10. package/build/client/_app/immutable/assets/7.BsquVIMw.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css +1 -0
  12. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css.br +0 -0
  13. package/build/client/_app/immutable/assets/QuestionCard.CSfD3z_X.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/1F1QVf3N.js +1 -0
  15. package/build/client/_app/immutable/chunks/1F1QVf3N.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/1F1QVf3N.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{DmFbAjwW.js → 92accNiq.js} +1 -1
  18. package/build/client/_app/immutable/chunks/92accNiq.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/92accNiq.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{SXdvPq3_.js → BBXQKGHA.js} +1 -1
  21. package/build/client/_app/immutable/chunks/BBXQKGHA.js.br +1 -0
  22. package/build/client/_app/immutable/chunks/BBXQKGHA.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/BE_4J5sS.js +3 -0
  24. package/build/client/_app/immutable/chunks/BE_4J5sS.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/BE_4J5sS.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{CUa5ff3d.js → BGx9HO1u.js} +1 -1
  27. package/build/client/_app/immutable/chunks/BGx9HO1u.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/BGx9HO1u.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/BdIq5WIo.js +1 -0
  30. package/build/client/_app/immutable/chunks/BdIq5WIo.js.br +5 -0
  31. package/build/client/_app/immutable/chunks/BdIq5WIo.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{BDK50g8a.js → ByiipSaR.js} +1 -1
  33. package/build/client/_app/immutable/chunks/ByiipSaR.js.br +3 -0
  34. package/build/client/_app/immutable/chunks/ByiipSaR.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{D5FtEngX.js → C4qTU5YY.js} +1 -1
  36. package/build/client/_app/immutable/chunks/C4qTU5YY.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/C4qTU5YY.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/C6rMFkms.js +14 -0
  39. package/build/client/_app/immutable/chunks/C6rMFkms.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/C6rMFkms.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/{mG6HnNbi.js → CJc9QEdG.js} +1 -1
  42. package/build/client/_app/immutable/chunks/CJc9QEdG.js.br +2 -0
  43. package/build/client/_app/immutable/chunks/CJc9QEdG.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/Clt9pCG1.js +1 -0
  45. package/build/client/_app/immutable/chunks/Clt9pCG1.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/Clt9pCG1.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/CuKFR3Qo.js +3 -0
  48. package/build/client/_app/immutable/chunks/CuKFR3Qo.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/CuKFR3Qo.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/CzKYnjEX.js +1 -0
  51. package/build/client/_app/immutable/chunks/CzKYnjEX.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CzKYnjEX.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/D1VTYdXF.js +1 -0
  54. package/build/client/_app/immutable/chunks/D1VTYdXF.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/D1VTYdXF.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/D3d8Mm8X.js +1 -0
  57. package/build/client/_app/immutable/chunks/D3d8Mm8X.js.br +1 -0
  58. package/build/client/_app/immutable/chunks/D3d8Mm8X.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/DF5Aoa59.js +1 -0
  60. package/build/client/_app/immutable/chunks/DF5Aoa59.js.br +2 -0
  61. package/build/client/_app/immutable/chunks/DF5Aoa59.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/{NR-JVJz-.js → DTAO9S6h.js} +1 -1
  63. package/build/client/_app/immutable/chunks/DTAO9S6h.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DTAO9S6h.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/DTLQuSQp.js +3 -0
  66. package/build/client/_app/immutable/chunks/DTLQuSQp.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/DTLQuSQp.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/DaRQZQEK.js +5 -0
  69. package/build/client/_app/immutable/chunks/DaRQZQEK.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DaRQZQEK.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/Dz-hw4Sz.js +5 -0
  72. package/build/client/_app/immutable/chunks/Dz-hw4Sz.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/Dz-hw4Sz.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/{hSjQday7.js → _zkFsY4j.js} +1 -1
  75. package/build/client/_app/immutable/chunks/_zkFsY4j.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/_zkFsY4j.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/mNzUu332.js +1 -0
  78. package/build/client/_app/immutable/chunks/mNzUu332.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/mNzUu332.js.gz +0 -0
  80. package/build/client/_app/immutable/entry/app.DKG33-gU.js +2 -0
  81. package/build/client/_app/immutable/entry/app.DKG33-gU.js.br +0 -0
  82. package/build/client/_app/immutable/entry/app.DKG33-gU.js.gz +0 -0
  83. package/build/client/_app/immutable/entry/start.vDtUfDrT.js +1 -0
  84. package/build/client/_app/immutable/entry/start.vDtUfDrT.js.br +1 -0
  85. package/build/client/_app/immutable/entry/start.vDtUfDrT.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/0.eA5H3idZ.js +1 -0
  87. package/build/client/_app/immutable/nodes/0.eA5H3idZ.js.br +0 -0
  88. package/build/client/_app/immutable/nodes/0.eA5H3idZ.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/1.CvKFymDh.js +1 -0
  90. package/build/client/_app/immutable/nodes/1.CvKFymDh.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/1.CvKFymDh.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/10.DFMf8WUQ.js +1 -0
  93. package/build/client/_app/immutable/nodes/10.DFMf8WUQ.js.br +0 -0
  94. package/build/client/_app/immutable/nodes/10.DFMf8WUQ.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/{11.DViPDhJG.js → 11.BZQW5Y67.js} +6 -6
  96. package/build/client/_app/immutable/nodes/11.BZQW5Y67.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/11.BZQW5Y67.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js +1 -0
  99. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/2.tmtk1Bjc.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/3.BEaeucAu.js +1 -0
  102. package/build/client/_app/immutable/nodes/3.BEaeucAu.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/3.BEaeucAu.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/4.B-36aGPk.js +1 -0
  105. package/build/client/_app/immutable/nodes/4.B-36aGPk.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/4.B-36aGPk.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/{5.CIMkqYzP.js → 5.bgdUYUlr.js} +2 -2
  108. package/build/client/_app/immutable/nodes/5.bgdUYUlr.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/5.bgdUYUlr.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/6.D0P837Li.js +2 -0
  111. package/build/client/_app/immutable/nodes/6.D0P837Li.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/6.D0P837Li.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/7.C4seSCJq.js +14 -0
  114. package/build/client/_app/immutable/nodes/7.C4seSCJq.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/7.C4seSCJq.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/8.BANf4x1v.js +1 -0
  117. package/build/client/_app/immutable/nodes/8.BANf4x1v.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/8.BANf4x1v.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/9.DCgNAMuD.js +128 -0
  120. package/build/client/_app/immutable/nodes/9.DCgNAMuD.js.br +0 -0
  121. package/build/client/_app/immutable/nodes/9.DCgNAMuD.js.gz +0 -0
  122. package/build/client/_app/version.json +1 -1
  123. package/build/client/_app/version.json.br +1 -1
  124. package/build/client/_app/version.json.gz +0 -0
  125. package/build/server/chunks/{0-BtezztJz.js → 0-D9FIO-Bk.js} +6 -6
  126. package/build/server/chunks/{0-BtezztJz.js.map → 0-D9FIO-Bk.js.map} +1 -1
  127. package/build/server/chunks/1-ItPJxTHP.js +9 -0
  128. package/build/server/chunks/{1-CvGA_TOi.js.map → 1-ItPJxTHP.js.map} +1 -1
  129. package/build/server/chunks/{10-D_ipl62-.js → 10-B4fDiATl.js} +3 -3
  130. package/build/server/chunks/{10-D_ipl62-.js.map → 10-B4fDiATl.js.map} +1 -1
  131. package/build/server/chunks/11-CZj9K6K7.js +9 -0
  132. package/build/server/chunks/{11-Bp7zXIv8.js.map → 11-CZj9K6K7.js.map} +1 -1
  133. package/build/server/chunks/{2-CQSBaE_w.js → 2-KPMSLSlE.js} +2 -2
  134. package/build/server/chunks/{2-CQSBaE_w.js.map → 2-KPMSLSlE.js.map} +1 -1
  135. package/build/server/chunks/{3-CZdWulB3.js → 3-DpC38K23.js} +10 -11
  136. package/build/server/chunks/3-DpC38K23.js.map +1 -0
  137. package/build/server/chunks/4-DrJ64j1x.js +9 -0
  138. package/build/server/chunks/4-DrJ64j1x.js.map +1 -0
  139. package/build/server/chunks/{5-CeJvfCdk.js → 5-BxzwX0rY.js} +3 -3
  140. package/build/server/chunks/{5-CeJvfCdk.js.map → 5-BxzwX0rY.js.map} +1 -1
  141. package/build/server/chunks/6-DxXeT1e3.js +9 -0
  142. package/build/server/chunks/6-DxXeT1e3.js.map +1 -0
  143. package/build/server/chunks/7-CuHe_mFY.js +9 -0
  144. package/build/server/chunks/{7-mi0k2tJn.js.map → 7-CuHe_mFY.js.map} +1 -1
  145. package/build/server/chunks/{8-DiHmrGkL.js → 8-DFD8sNRI.js} +5 -7
  146. package/build/server/chunks/8-DFD8sNRI.js.map +1 -0
  147. package/build/server/chunks/9-CVIPxN5B.js +9 -0
  148. package/build/server/chunks/9-CVIPxN5B.js.map +1 -0
  149. package/build/server/chunks/{IconActivity-DrgUhxxi.js → ChatMessage-fWnwEF6b.js} +3 -57
  150. package/build/server/chunks/ChatMessage-fWnwEF6b.js.map +1 -0
  151. package/build/server/chunks/{ChatNavbar-FJW5r496.js → ChatNavbar-CJYo_Hbc.js} +8 -8
  152. package/build/server/chunks/{ChatNavbar-FJW5r496.js.map → ChatNavbar-CJYo_Hbc.js.map} +1 -1
  153. package/build/server/chunks/IconActivity-BU1QGLAZ.js +58 -0
  154. package/build/server/chunks/IconActivity-BU1QGLAZ.js.map +1 -0
  155. package/build/server/chunks/{IconServer-w-1K5jNR.js → IconServer-DkywyVFu.js} +5 -5
  156. package/build/server/chunks/{IconServer-w-1K5jNR.js.map → IconServer-DkywyVFu.js.map} +1 -1
  157. package/build/server/chunks/{IconSoundOn-DZGaQz_p.js → IconSoundOn-DoAiK-qp.js} +8 -11
  158. package/build/server/chunks/IconSoundOn-DoAiK-qp.js.map +1 -0
  159. package/build/server/chunks/IconStop-DKVpXPKq.js +1648 -0
  160. package/build/server/chunks/IconStop-DKVpXPKq.js.map +1 -0
  161. package/build/server/chunks/QuestionCard-BCfoxMiS.js +128 -0
  162. package/build/server/chunks/QuestionCard-BCfoxMiS.js.map +1 -0
  163. package/build/server/chunks/{_layout.svelte-B-_IlE2E.js → _layout.svelte-DArOWGd3.js} +3 -3
  164. package/build/server/chunks/{_layout.svelte-B-_IlE2E.js.map → _layout.svelte-DArOWGd3.js.map} +1 -1
  165. package/build/server/chunks/{_page.svelte-DM96lwQ1.js → _page.svelte-B2cX_j9w.js} +3 -3
  166. package/build/server/chunks/{_page.svelte-DM96lwQ1.js.map → _page.svelte-B2cX_j9w.js.map} +1 -1
  167. package/build/server/chunks/{_page.svelte-CB1qUSpk.js → _page.svelte-BcpGl-vl.js} +12 -16
  168. package/build/server/chunks/_page.svelte-BcpGl-vl.js.map +1 -0
  169. package/build/server/chunks/_page.svelte-CGEtuNmS.js +192 -0
  170. package/build/server/chunks/_page.svelte-CGEtuNmS.js.map +1 -0
  171. package/build/server/chunks/{_page.svelte-CPZBh4-z.js → _page.svelte-Dpf94Jor.js} +3 -3
  172. package/build/server/chunks/{_page.svelte-CPZBh4-z.js.map → _page.svelte-Dpf94Jor.js.map} +1 -1
  173. package/build/server/chunks/{_page.svelte-GcuuPiXq.js → _page.svelte-FOm-OMQe.js} +6 -6
  174. package/build/server/chunks/_page.svelte-FOm-OMQe.js.map +1 -0
  175. package/build/server/chunks/{_page.svelte-K6kU7jIW.js → _page.svelte-S90xJHRa.js} +43 -134
  176. package/build/server/chunks/_page.svelte-S90xJHRa.js.map +1 -0
  177. package/build/server/chunks/{_page.svelte-CPo3vFZf.js → _page.svelte-qxgG6hsh.js} +10 -9
  178. package/build/server/chunks/_page.svelte-qxgG6hsh.js.map +1 -0
  179. package/build/server/chunks/{_server.ts-BCrEvrVb.js → _server.ts--F22byeV.js} +8 -8
  180. package/build/server/chunks/{_server.ts-BCrEvrVb.js.map → _server.ts--F22byeV.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-CT0jVfA6.js → _server.ts-08JCSzPu.js} +10 -10
  182. package/build/server/chunks/_server.ts-08JCSzPu.js.map +1 -0
  183. package/build/server/chunks/{_server.ts-s2Seq_VN.js → _server.ts-3bBG0DBN.js} +7 -7
  184. package/build/server/chunks/{_server.ts-s2Seq_VN.js.map → _server.ts-3bBG0DBN.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-ygmDTh5G.js → _server.ts-7pcCO8Pf.js} +8 -8
  186. package/build/server/chunks/{_server.ts-ygmDTh5G.js.map → _server.ts-7pcCO8Pf.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BJGOO9Nn.js → _server.ts-AC1zqetQ.js} +3 -3
  188. package/build/server/chunks/{_server.ts-BJGOO9Nn.js.map → _server.ts-AC1zqetQ.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-DjIJCqkv.js → _server.ts-B-uAgtQC.js} +7 -7
  190. package/build/server/chunks/{_server.ts-DjIJCqkv.js.map → _server.ts-B-uAgtQC.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-w4ncTcy1.js → _server.ts-B0MK-ynu.js} +9 -9
  192. package/build/server/chunks/{_server.ts-w4ncTcy1.js.map → _server.ts-B0MK-ynu.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-CMOAhXEC.js → _server.ts-B1vQkdVA.js} +9 -9
  194. package/build/server/chunks/{_server.ts-CMOAhXEC.js.map → _server.ts-B1vQkdVA.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-CZMdC1Kd.js → _server.ts-B3iKXyUo.js} +7 -7
  196. package/build/server/chunks/{_server.ts-CZMdC1Kd.js.map → _server.ts-B3iKXyUo.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-D3G8ICxb.js → _server.ts-B7319d6O.js} +7 -7
  198. package/build/server/chunks/{_server.ts-D3G8ICxb.js.map → _server.ts-B7319d6O.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-V-MiUhz4.js → _server.ts-BCpQ8Qdr.js} +7 -7
  200. package/build/server/chunks/{_server.ts-V-MiUhz4.js.map → _server.ts-BCpQ8Qdr.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-6QSsgi7N.js → _server.ts-BF5JzSrs.js} +7 -7
  202. package/build/server/chunks/{_server.ts-6QSsgi7N.js.map → _server.ts-BF5JzSrs.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-Df7bUUvM.js → _server.ts-BGTw6w-C.js} +8 -8
  204. package/build/server/chunks/{_server.ts-Df7bUUvM.js.map → _server.ts-BGTw6w-C.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-CU4SIH7_.js → _server.ts-BH8Y1mmb.js} +5 -5
  206. package/build/server/chunks/{_server.ts-CU4SIH7_.js.map → _server.ts-BH8Y1mmb.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-Dim_lnRX.js → _server.ts-BHaFrgm9.js} +8 -8
  208. package/build/server/chunks/{_server.ts-Dim_lnRX.js.map → _server.ts-BHaFrgm9.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-Bwt_pOeg.js → _server.ts-BKnCIXe5.js} +7 -7
  210. package/build/server/chunks/{_server.ts-Bwt_pOeg.js.map → _server.ts-BKnCIXe5.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-Blmg0cXL.js → _server.ts-BOn4TCRw.js} +8 -8
  212. package/build/server/chunks/{_server.ts-Blmg0cXL.js.map → _server.ts-BOn4TCRw.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-BQZ6mdSh.js → _server.ts-BS4UTF4H.js} +7 -7
  214. package/build/server/chunks/{_server.ts-BQZ6mdSh.js.map → _server.ts-BS4UTF4H.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-ykET4T6s.js → _server.ts-BWMJRzwx.js} +9 -9
  216. package/build/server/chunks/_server.ts-BWMJRzwx.js.map +1 -0
  217. package/build/server/chunks/{_server.ts-WZl_x3WY.js → _server.ts-B_7lGoo_.js} +7 -7
  218. package/build/server/chunks/{_server.ts-WZl_x3WY.js.map → _server.ts-B_7lGoo_.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-CtGn47WI.js → _server.ts-BaEUZaLH.js} +5 -5
  220. package/build/server/chunks/{_server.ts-CtGn47WI.js.map → _server.ts-BaEUZaLH.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-BfL_49xD.js → _server.ts-BgL3_hTS.js} +8 -8
  222. package/build/server/chunks/{_server.ts-BfL_49xD.js.map → _server.ts-BgL3_hTS.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-CoVlX74M.js → _server.ts-BgOS_sDK.js} +8 -8
  224. package/build/server/chunks/{_server.ts-CoVlX74M.js.map → _server.ts-BgOS_sDK.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-CFrPK6QO.js → _server.ts-BhA9ywuA.js} +7 -7
  226. package/build/server/chunks/{_server.ts-CFrPK6QO.js.map → _server.ts-BhA9ywuA.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-CzEoO4z1.js → _server.ts-BtZ9-ZYu.js} +3 -3
  228. package/build/server/chunks/{_server.ts-CzEoO4z1.js.map → _server.ts-BtZ9-ZYu.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-CPiybiLB.js → _server.ts-C4tBc7fm.js} +10 -10
  230. package/build/server/chunks/{_server.ts-CPiybiLB.js.map → _server.ts-C4tBc7fm.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-513m4Yqs.js → _server.ts-C5T_Zuoy.js} +8 -8
  232. package/build/server/chunks/{_server.ts-513m4Yqs.js.map → _server.ts-C5T_Zuoy.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-BcqSTHN5.js → _server.ts-CCTZbI7L.js} +8 -8
  234. package/build/server/chunks/{_server.ts-BcqSTHN5.js.map → _server.ts-CCTZbI7L.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-YcvtqJwd.js → _server.ts-CEUFtmpE.js} +8 -8
  236. package/build/server/chunks/{_server.ts-YcvtqJwd.js.map → _server.ts-CEUFtmpE.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-BNOepqUw.js → _server.ts-CFKGqT4L.js} +7 -7
  238. package/build/server/chunks/{_server.ts-BNOepqUw.js.map → _server.ts-CFKGqT4L.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-JhxhiGGc.js → _server.ts-CLMsuxkK.js} +7 -7
  240. package/build/server/chunks/{_server.ts-JhxhiGGc.js.map → _server.ts-CLMsuxkK.js.map} +1 -1
  241. package/build/server/chunks/{_server.ts-Dw7F066C.js → _server.ts-CMfz71Do.js} +7 -7
  242. package/build/server/chunks/{_server.ts-Dw7F066C.js.map → _server.ts-CMfz71Do.js.map} +1 -1
  243. package/build/server/chunks/{_server.ts-CPNIDSmd.js → _server.ts-CQeqwCqj.js} +7 -7
  244. package/build/server/chunks/{_server.ts-CPNIDSmd.js.map → _server.ts-CQeqwCqj.js.map} +1 -1
  245. package/build/server/chunks/{_server.ts-BXPj75Y1.js → _server.ts-CSBd_6yC.js} +8 -8
  246. package/build/server/chunks/{_server.ts-BXPj75Y1.js.map → _server.ts-CSBd_6yC.js.map} +1 -1
  247. package/build/server/chunks/{_server.ts-BcO0Zf4D.js → _server.ts-CSYdjKAH.js} +8 -8
  248. package/build/server/chunks/{_server.ts-BcO0Zf4D.js.map → _server.ts-CSYdjKAH.js.map} +1 -1
  249. package/build/server/chunks/{_server.ts-DVNN4NHW.js → _server.ts-CY-GNKZT.js} +7 -7
  250. package/build/server/chunks/{_server.ts-DVNN4NHW.js.map → _server.ts-CY-GNKZT.js.map} +1 -1
  251. package/build/server/chunks/{_server.ts-iFah_o1y.js → _server.ts-CYu5XSM8.js} +7 -7
  252. package/build/server/chunks/{_server.ts-iFah_o1y.js.map → _server.ts-CYu5XSM8.js.map} +1 -1
  253. package/build/server/chunks/{_server.ts-Do0cbyyq.js → _server.ts-CjeMP5Vf.js} +8 -8
  254. package/build/server/chunks/_server.ts-CjeMP5Vf.js.map +1 -0
  255. package/build/server/chunks/{_server.ts-CVvUFmDd.js → _server.ts-Cjo35hc1.js} +7 -7
  256. package/build/server/chunks/{_server.ts-CVvUFmDd.js.map → _server.ts-Cjo35hc1.js.map} +1 -1
  257. package/build/server/chunks/{_server.ts-DpnNS7XE.js → _server.ts-CkVeEW46.js} +7 -7
  258. package/build/server/chunks/{_server.ts-DpnNS7XE.js.map → _server.ts-CkVeEW46.js.map} +1 -1
  259. package/build/server/chunks/{_server.ts-BaVwMXGu.js → _server.ts-Cph8nHvr.js} +7 -7
  260. package/build/server/chunks/{_server.ts-BaVwMXGu.js.map → _server.ts-Cph8nHvr.js.map} +1 -1
  261. package/build/server/chunks/{_server.ts-BFRCkpIB.js → _server.ts-CpyfojV9.js} +8 -8
  262. package/build/server/chunks/{_server.ts-BFRCkpIB.js.map → _server.ts-CpyfojV9.js.map} +1 -1
  263. package/build/server/chunks/{_server.ts-CqK78x99.js → _server.ts-CtkA_Ld0.js} +8 -8
  264. package/build/server/chunks/{_server.ts-CqK78x99.js.map → _server.ts-CtkA_Ld0.js.map} +1 -1
  265. package/build/server/chunks/{_server.ts-DgtgUx0V.js → _server.ts-Cu48eVwM.js} +3 -3
  266. package/build/server/chunks/{_server.ts-DgtgUx0V.js.map → _server.ts-Cu48eVwM.js.map} +1 -1
  267. package/build/server/chunks/{_server.ts-C4Pel5kC.js → _server.ts-CvjVUcFR.js} +7 -7
  268. package/build/server/chunks/{_server.ts-C4Pel5kC.js.map → _server.ts-CvjVUcFR.js.map} +1 -1
  269. package/build/server/chunks/{_server.ts-Dixj3o5E.js → _server.ts-CxH-7UEc.js} +7 -7
  270. package/build/server/chunks/{_server.ts-Dixj3o5E.js.map → _server.ts-CxH-7UEc.js.map} +1 -1
  271. package/build/server/chunks/{_server.ts-Bnzq20kw.js → _server.ts-D0XsGdhx.js} +7 -7
  272. package/build/server/chunks/{_server.ts-Bnzq20kw.js.map → _server.ts-D0XsGdhx.js.map} +1 -1
  273. package/build/server/chunks/{_server.ts-DMUseo0C.js → _server.ts-D6-C5ctd.js} +8 -8
  274. package/build/server/chunks/{_server.ts-DMUseo0C.js.map → _server.ts-D6-C5ctd.js.map} +1 -1
  275. package/build/server/chunks/{_server.ts-BLXzfOzW.js → _server.ts-DQI9hYcE.js} +7 -7
  276. package/build/server/chunks/{_server.ts-BLXzfOzW.js.map → _server.ts-DQI9hYcE.js.map} +1 -1
  277. package/build/server/chunks/{_server.ts-BvtdTKYv.js → _server.ts-DQTJ_bFp.js} +8 -8
  278. package/build/server/chunks/{_server.ts-BvtdTKYv.js.map → _server.ts-DQTJ_bFp.js.map} +1 -1
  279. package/build/server/chunks/{_server.ts-B_dmjFtu.js → _server.ts-DR0kmbl9.js} +8 -8
  280. package/build/server/chunks/_server.ts-DR0kmbl9.js.map +1 -0
  281. package/build/server/chunks/{_server.ts-Bvb9c_At.js → _server.ts-DR_9WXW4.js} +9 -9
  282. package/build/server/chunks/{_server.ts-Bvb9c_At.js.map → _server.ts-DR_9WXW4.js.map} +1 -1
  283. package/build/server/chunks/{_server.ts-HHMqD_RA.js → _server.ts-DXwG4w1_.js} +5 -6
  284. package/build/server/chunks/_server.ts-DXwG4w1_.js.map +1 -0
  285. package/build/server/chunks/{_server.ts-Cgdl0C1I.js → _server.ts-DYLc6Os9.js} +7 -7
  286. package/build/server/chunks/{_server.ts-Cgdl0C1I.js.map → _server.ts-DYLc6Os9.js.map} +1 -1
  287. package/build/server/chunks/{_server.ts-DbvC6vbj.js → _server.ts-DYg52Wyj.js} +7 -7
  288. package/build/server/chunks/{_server.ts-DbvC6vbj.js.map → _server.ts-DYg52Wyj.js.map} +1 -1
  289. package/build/server/chunks/{_server.ts-D3FpBEaY.js → _server.ts-Dc1s3sLN.js} +9 -9
  290. package/build/server/chunks/_server.ts-Dc1s3sLN.js.map +1 -0
  291. package/build/server/chunks/{_server.ts-CZ3VVtAj.js → _server.ts-DcpOpD6s.js} +7 -7
  292. package/build/server/chunks/{_server.ts-CZ3VVtAj.js.map → _server.ts-DcpOpD6s.js.map} +1 -1
  293. package/build/server/chunks/{_server.ts-BrQJNRtC.js → _server.ts-DeuURP8u.js} +7 -7
  294. package/build/server/chunks/{_server.ts-BrQJNRtC.js.map → _server.ts-DeuURP8u.js.map} +1 -1
  295. package/build/server/chunks/{_server.ts-CjfZfEOL.js → _server.ts-DhcBS9KQ.js} +7 -7
  296. package/build/server/chunks/{_server.ts-CjfZfEOL.js.map → _server.ts-DhcBS9KQ.js.map} +1 -1
  297. package/build/server/chunks/{_server.ts-CuLEqJd2.js → _server.ts-DlKT-RbM.js} +9 -9
  298. package/build/server/chunks/{_server.ts-CuLEqJd2.js.map → _server.ts-DlKT-RbM.js.map} +1 -1
  299. package/build/server/chunks/{_server.ts-DZrKSBmK.js → _server.ts-DuO_GU5A.js} +7 -7
  300. package/build/server/chunks/{_server.ts-DZrKSBmK.js.map → _server.ts-DuO_GU5A.js.map} +1 -1
  301. package/build/server/chunks/{_server.ts-CGTCLl7g.js → _server.ts-DvUVX3X0.js} +8 -8
  302. package/build/server/chunks/{_server.ts-CGTCLl7g.js.map → _server.ts-DvUVX3X0.js.map} +1 -1
  303. package/build/server/chunks/{_server.ts-BQdhHsGb.js → _server.ts-DvfnkNfI.js} +8 -8
  304. package/build/server/chunks/{_server.ts-BQdhHsGb.js.map → _server.ts-DvfnkNfI.js.map} +1 -1
  305. package/build/server/chunks/{_server.ts-MBgNxLF2.js → _server.ts-DzV6EO26.js} +7 -7
  306. package/build/server/chunks/{_server.ts-MBgNxLF2.js.map → _server.ts-DzV6EO26.js.map} +1 -1
  307. package/build/server/chunks/{_server.ts-rVmsBymo.js → _server.ts-IEM_8o6U.js} +8 -8
  308. package/build/server/chunks/{_server.ts-rVmsBymo.js.map → _server.ts-IEM_8o6U.js.map} +1 -1
  309. package/build/server/chunks/{_server.ts-Cf_ZLxIl.js → _server.ts-N_mH0t0f.js} +12 -13
  310. package/build/server/chunks/_server.ts-N_mH0t0f.js.map +1 -0
  311. package/build/server/chunks/{_server.ts-DgoPOMEf.js → _server.ts-Y5pBzFz4.js} +7 -7
  312. package/build/server/chunks/{_server.ts-DgoPOMEf.js.map → _server.ts-Y5pBzFz4.js.map} +1 -1
  313. package/build/server/chunks/{_server.ts-Cp8YnPjm.js → _server.ts-ZKEBn-qW.js} +9 -9
  314. package/build/server/chunks/{_server.ts-Cp8YnPjm.js.map → _server.ts-ZKEBn-qW.js.map} +1 -1
  315. package/build/server/chunks/{_server.ts-Dy7MOoFx.js → _server.ts-fenM6Iln.js} +8 -8
  316. package/build/server/chunks/{_server.ts-Dy7MOoFx.js.map → _server.ts-fenM6Iln.js.map} +1 -1
  317. package/build/server/chunks/{_server.ts-DnonNBWq.js → _server.ts-i9TaUbWr.js} +9 -9
  318. package/build/server/chunks/{_server.ts-DnonNBWq.js.map → _server.ts-i9TaUbWr.js.map} +1 -1
  319. package/build/server/chunks/{_server.ts-CsI99fk3.js → _server.ts-iXjPBf7J.js} +8 -8
  320. package/build/server/chunks/{_server.ts-CsI99fk3.js.map → _server.ts-iXjPBf7J.js.map} +1 -1
  321. package/build/server/chunks/{_server.ts-D3EHXo-L.js → _server.ts-jqktLs6L.js} +7 -7
  322. package/build/server/chunks/{_server.ts-D3EHXo-L.js.map → _server.ts-jqktLs6L.js.map} +1 -1
  323. package/build/server/chunks/{_server.ts-DbWhKo2R.js → _server.ts-oSGbQw4A.js} +7 -7
  324. package/build/server/chunks/{_server.ts-DbWhKo2R.js.map → _server.ts-oSGbQw4A.js.map} +1 -1
  325. package/build/server/chunks/{_server.ts-m7rCPG1J.js → _server.ts-pf6WrGLo.js} +8 -8
  326. package/build/server/chunks/{_server.ts-m7rCPG1J.js.map → _server.ts-pf6WrGLo.js.map} +1 -1
  327. package/build/server/chunks/{_server.ts-B5wBYGeP.js → _server.ts-v3cF2xWi.js} +7 -7
  328. package/build/server/chunks/{_server.ts-B5wBYGeP.js.map → _server.ts-v3cF2xWi.js.map} +1 -1
  329. package/build/server/chunks/{_server.ts-DwGTXfsS.js → _server.ts-vJBq3idp.js} +3 -3
  330. package/build/server/chunks/{_server.ts-DwGTXfsS.js.map → _server.ts-vJBq3idp.js.map} +1 -1
  331. package/build/server/chunks/{_server.ts-WLMG4R7D.js → _server.ts-vlaPk3to.js} +7 -7
  332. package/build/server/chunks/{_server.ts-WLMG4R7D.js.map → _server.ts-vlaPk3to.js.map} +1 -1
  333. package/build/server/chunks/{_server.ts-CfLVH8TI.js → _server.ts-xQhNjF_X.js} +7 -7
  334. package/build/server/chunks/{_server.ts-CfLVH8TI.js.map → _server.ts-xQhNjF_X.js.map} +1 -1
  335. package/build/server/chunks/{_server.ts-D3CUgai-.js → _server.ts-yZ8CGJNE.js} +8 -8
  336. package/build/server/chunks/{_server.ts-D3CUgai-.js.map → _server.ts-yZ8CGJNE.js.map} +1 -1
  337. package/build/server/chunks/{_server.ts-B2BUFCOJ.js → _server.ts-z5C3PAAB.js} +3 -3
  338. package/build/server/chunks/{_server.ts-B2BUFCOJ.js.map → _server.ts-z5C3PAAB.js.map} +1 -1
  339. package/build/server/chunks/{_server.ts-CvkF5YMt.js → _server.ts-zt3yI2wU.js} +7 -7
  340. package/build/server/chunks/{_server.ts-CvkF5YMt.js.map → _server.ts-zt3yI2wU.js.map} +1 -1
  341. package/build/server/chunks/{addon-helpers-tZ_tAgFZ.js → addon-helpers-B7bkHg-K.js} +5 -5
  342. package/build/server/chunks/{addon-helpers-tZ_tAgFZ.js.map → addon-helpers-B7bkHg-K.js.map} +1 -1
  343. package/build/server/chunks/{admin-update-lock-ZHLAwYiV.js → admin-update-lock-B-z4UE8R.js} +3 -3
  344. package/build/server/chunks/{admin-update-lock-ZHLAwYiV.js.map → admin-update-lock-B-z4UE8R.js.map} +1 -1
  345. package/build/server/chunks/{akm-DU_4Aa4m.js → akm-C4NCZfJB.js} +3 -3
  346. package/build/server/chunks/{akm-DU_4Aa4m.js.map → akm-C4NCZfJB.js.map} +1 -1
  347. package/build/server/chunks/{catalog-B4QoA_I8.js → catalog-Czlhb_2V.js} +5 -5
  348. package/build/server/chunks/{catalog-B4QoA_I8.js.map → catalog-Czlhb_2V.js.map} +1 -1
  349. package/build/server/chunks/{client-Dn-H0hgG.js → client-HEAniq5u.js} +2 -2
  350. package/build/server/chunks/{client-Dn-H0hgG.js.map → client-HEAniq5u.js.map} +1 -1
  351. package/build/server/chunks/{compose-args2-BFOGDQne.js → compose-args2-B1cYvF5r.js} +3 -3
  352. package/build/server/chunks/compose-args2-B1cYvF5r.js.map +1 -0
  353. package/build/server/chunks/{config-DoYNsM1_.js → config-C15S-ENd.js} +2 -2
  354. package/build/server/chunks/{config-DoYNsM1_.js.map → config-C15S-ENd.js.map} +1 -1
  355. package/build/server/chunks/{constants-1vPYIIwP.js → constants-C8L-P-CF.js} +2 -2
  356. package/build/server/chunks/{constants-1vPYIIwP.js.map → constants-C8L-P-CF.js.map} +1 -1
  357. package/build/server/chunks/{docker2-BYFlumV1.js → docker2-CF7qyd1U.js} +3 -3
  358. package/build/server/chunks/docker2-CF7qyd1U.js.map +1 -0
  359. package/build/server/chunks/{docker3-CtXDh00O.js → docker3-BsPagEza.js} +2 -2
  360. package/build/server/chunks/{docker3-CtXDh00O.js.map → docker3-BsPagEza.js.map} +1 -1
  361. package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
  362. package/build/server/chunks/{error.svelte-DWK4R1_M.js → error.svelte-C-lukbaB.js} +4 -4
  363. package/build/server/chunks/{error.svelte-DWK4R1_M.js.map → error.svelte-C-lukbaB.js.map} +1 -1
  364. package/build/server/chunks/features-DltizIi4.js +79 -0
  365. package/build/server/chunks/features-DltizIi4.js.map +1 -0
  366. package/build/server/chunks/{helpers-DxodR6tq.js → helpers-DWpoPvHz.js} +17 -22
  367. package/build/server/chunks/helpers-DWpoPvHz.js.map +1 -0
  368. package/build/server/chunks/{hooks.server-Bzj8OieV.js → hooks.server-BcdEyWVU.js} +12 -12
  369. package/build/server/chunks/hooks.server-BcdEyWVU.js.map +1 -0
  370. package/build/server/chunks/{http-CfHMreaI.js → http-7E5W3vGt.js} +3 -3
  371. package/build/server/chunks/http-7E5W3vGt.js.map +1 -0
  372. package/build/server/chunks/{internal-BcbUGF7Z.js → internal-BNSUwl-r.js} +8 -4
  373. package/build/server/chunks/{internal-BcbUGF7Z.js.map → internal-BNSUwl-r.js.map} +1 -1
  374. package/build/server/chunks/{landing-DhaVkN2f.js → landing-DY53l_CN.js} +10 -12
  375. package/build/server/chunks/landing-DY53l_CN.js.map +1 -0
  376. package/build/server/chunks/{network-preset-CJ1RRnki.js → network-preset-BvVAoagy.js} +14 -13
  377. package/build/server/chunks/network-preset-BvVAoagy.js.map +1 -0
  378. package/build/server/chunks/opencode-target-DYD2zQ4l.js +203 -0
  379. package/build/server/chunks/opencode-target-DYD2zQ4l.js.map +1 -0
  380. package/build/server/chunks/{paths-Bgos728b.js → paths-BVdkvR9U.js} +2 -2
  381. package/build/server/chunks/{paths-Bgos728b.js.map → paths-BVdkvR9U.js.map} +1 -1
  382. package/build/server/chunks/{runtime-context.svelte-C5zNEC6u.js → runtime-context.svelte-CRT-b6Ae.js} +8 -11
  383. package/build/server/chunks/runtime-context.svelte-CRT-b6Ae.js.map +1 -0
  384. package/build/server/chunks/{session-cookie-C8DcD6bt.js → session-cookie-D2_H1UEW.js} +2 -2
  385. package/build/server/chunks/{session-cookie-C8DcD6bt.js.map → session-cookie-D2_H1UEW.js.map} +1 -1
  386. package/build/server/chunks/{setup-deploy-D9j0EGGd.js → setup-deploy-C1h733rH.js} +2 -2
  387. package/build/server/chunks/{setup-deploy-D9j0EGGd.js.map → setup-deploy-C1h733rH.js.map} +1 -1
  388. package/build/server/chunks/{src-DbArH65P.js → src-B2-r_9oB.js} +68 -78
  389. package/build/server/chunks/src-B2-r_9oB.js.map +1 -0
  390. package/build/server/chunks/{state-Bq8fep3F.js → state-Dkjz2T4C.js} +2 -2
  391. package/build/server/chunks/{state-Bq8fep3F.js.map → state-Dkjz2T4C.js.map} +1 -1
  392. package/build/server/chunks/{state2-Cna2OZrd.js → state2-CS9rhust.js} +2 -2
  393. package/build/server/chunks/{state2-Cna2OZrd.js.map → state2-CS9rhust.js.map} +1 -1
  394. package/build/server/chunks/{voice-state.svelte-2hAkP5Di.js → voice-state.svelte-CSmyLPRH.js} +25 -3
  395. package/build/server/chunks/voice-state.svelte-CSmyLPRH.js.map +1 -0
  396. package/build/server/index.js +1 -1
  397. package/build/server/manifest.js +94 -122
  398. package/build/server/manifest.js.map +1 -1
  399. package/package.json +3 -3
  400. package/build/client/_app/immutable/assets/4.B2m7mOkq.css +0 -1
  401. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.br +0 -0
  402. package/build/client/_app/immutable/assets/4.B2m7mOkq.css.gz +0 -0
  403. package/build/client/_app/immutable/assets/6.CmRPKjbq.css +0 -1
  404. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.br +0 -0
  405. package/build/client/_app/immutable/assets/6.CmRPKjbq.css.gz +0 -0
  406. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.br +0 -0
  407. package/build/client/_app/immutable/assets/7.BTWb8aLW.css.gz +0 -0
  408. package/build/client/_app/immutable/chunks/BDK50g8a.js.br +0 -0
  409. package/build/client/_app/immutable/chunks/BDK50g8a.js.gz +0 -0
  410. package/build/client/_app/immutable/chunks/BX_cLEyR.js +0 -1
  411. package/build/client/_app/immutable/chunks/BX_cLEyR.js.br +0 -0
  412. package/build/client/_app/immutable/chunks/BX_cLEyR.js.gz +0 -0
  413. package/build/client/_app/immutable/chunks/ByFgZDEl.js +0 -1
  414. package/build/client/_app/immutable/chunks/ByFgZDEl.js.br +0 -0
  415. package/build/client/_app/immutable/chunks/ByFgZDEl.js.gz +0 -0
  416. package/build/client/_app/immutable/chunks/BzIvC31O.js +0 -3
  417. package/build/client/_app/immutable/chunks/BzIvC31O.js.br +0 -0
  418. package/build/client/_app/immutable/chunks/BzIvC31O.js.gz +0 -0
  419. package/build/client/_app/immutable/chunks/C718MJXm.js +0 -5
  420. package/build/client/_app/immutable/chunks/C718MJXm.js.br +0 -0
  421. package/build/client/_app/immutable/chunks/C718MJXm.js.gz +0 -0
  422. package/build/client/_app/immutable/chunks/CUa5ff3d.js.br +0 -0
  423. package/build/client/_app/immutable/chunks/CUa5ff3d.js.gz +0 -0
  424. package/build/client/_app/immutable/chunks/Cnz20Kyu.js +0 -3
  425. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.br +0 -0
  426. package/build/client/_app/immutable/chunks/Cnz20Kyu.js.gz +0 -0
  427. package/build/client/_app/immutable/chunks/CoOosFtk.js +0 -3
  428. package/build/client/_app/immutable/chunks/CoOosFtk.js.br +0 -0
  429. package/build/client/_app/immutable/chunks/CoOosFtk.js.gz +0 -0
  430. package/build/client/_app/immutable/chunks/D5FtEngX.js.br +0 -0
  431. package/build/client/_app/immutable/chunks/D5FtEngX.js.gz +0 -0
  432. package/build/client/_app/immutable/chunks/DBHgGGCD.js +0 -1
  433. package/build/client/_app/immutable/chunks/DBHgGGCD.js.br +0 -0
  434. package/build/client/_app/immutable/chunks/DBHgGGCD.js.gz +0 -0
  435. package/build/client/_app/immutable/chunks/DBaSfL95.js +0 -1
  436. package/build/client/_app/immutable/chunks/DBaSfL95.js.br +0 -0
  437. package/build/client/_app/immutable/chunks/DBaSfL95.js.gz +0 -0
  438. package/build/client/_app/immutable/chunks/DfZbBavE.js +0 -1
  439. package/build/client/_app/immutable/chunks/DfZbBavE.js.br +0 -1
  440. package/build/client/_app/immutable/chunks/DfZbBavE.js.gz +0 -0
  441. package/build/client/_app/immutable/chunks/DmFbAjwW.js.br +0 -3
  442. package/build/client/_app/immutable/chunks/DmFbAjwW.js.gz +0 -0
  443. package/build/client/_app/immutable/chunks/NR-JVJz-.js.br +0 -0
  444. package/build/client/_app/immutable/chunks/NR-JVJz-.js.gz +0 -0
  445. package/build/client/_app/immutable/chunks/R6GPcDBF.js +0 -14
  446. package/build/client/_app/immutable/chunks/R6GPcDBF.js.br +0 -0
  447. package/build/client/_app/immutable/chunks/R6GPcDBF.js.gz +0 -0
  448. package/build/client/_app/immutable/chunks/SXdvPq3_.js.br +0 -0
  449. package/build/client/_app/immutable/chunks/SXdvPq3_.js.gz +0 -0
  450. package/build/client/_app/immutable/chunks/c0lkYAgh.js +0 -5
  451. package/build/client/_app/immutable/chunks/c0lkYAgh.js.br +0 -0
  452. package/build/client/_app/immutable/chunks/c0lkYAgh.js.gz +0 -0
  453. package/build/client/_app/immutable/chunks/hSjQday7.js.br +0 -0
  454. package/build/client/_app/immutable/chunks/hSjQday7.js.gz +0 -0
  455. package/build/client/_app/immutable/chunks/mG6HnNbi.js.br +0 -0
  456. package/build/client/_app/immutable/chunks/mG6HnNbi.js.gz +0 -0
  457. package/build/client/_app/immutable/chunks/ra5AJhOl.js +0 -1
  458. package/build/client/_app/immutable/chunks/ra5AJhOl.js.br +0 -2
  459. package/build/client/_app/immutable/chunks/ra5AJhOl.js.gz +0 -0
  460. package/build/client/_app/immutable/entry/app.SHrJgM4c.js +0 -2
  461. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.br +0 -0
  462. package/build/client/_app/immutable/entry/app.SHrJgM4c.js.gz +0 -0
  463. package/build/client/_app/immutable/entry/start.CM0OuHkF.js +0 -1
  464. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.br +0 -0
  465. package/build/client/_app/immutable/entry/start.CM0OuHkF.js.gz +0 -0
  466. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js +0 -1
  467. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.br +0 -0
  468. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.gz +0 -0
  469. package/build/client/_app/immutable/nodes/1.BRotfm1G.js +0 -1
  470. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.br +0 -2
  471. package/build/client/_app/immutable/nodes/1.BRotfm1G.js.gz +0 -0
  472. package/build/client/_app/immutable/nodes/10.CtHRQW64.js +0 -1
  473. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.br +0 -0
  474. package/build/client/_app/immutable/nodes/10.CtHRQW64.js.gz +0 -0
  475. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.br +0 -0
  476. package/build/client/_app/immutable/nodes/11.DViPDhJG.js.gz +0 -0
  477. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js +0 -1
  478. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.br +0 -0
  479. package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.gz +0 -0
  480. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js +0 -1
  481. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.br +0 -0
  482. package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.gz +0 -0
  483. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js +0 -6
  484. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.br +0 -0
  485. package/build/client/_app/immutable/nodes/4.B1PIKbh6.js.gz +0 -0
  486. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.br +0 -0
  487. package/build/client/_app/immutable/nodes/5.CIMkqYzP.js.gz +0 -0
  488. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js +0 -2
  489. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.br +0 -0
  490. package/build/client/_app/immutable/nodes/6.U9QsdKdj.js.gz +0 -0
  491. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js +0 -14
  492. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.br +0 -0
  493. package/build/client/_app/immutable/nodes/7.Dvpg6Lol.js.gz +0 -0
  494. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js +0 -1
  495. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.br +0 -0
  496. package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.gz +0 -0
  497. package/build/client/_app/immutable/nodes/9.zlIImD-K.js +0 -128
  498. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.br +0 -0
  499. package/build/client/_app/immutable/nodes/9.zlIImD-K.js.gz +0 -0
  500. package/build/server/chunks/1-CvGA_TOi.js +0 -9
  501. package/build/server/chunks/11-Bp7zXIv8.js +0 -9
  502. package/build/server/chunks/3-CZdWulB3.js.map +0 -1
  503. package/build/server/chunks/4-4bobZFC9.js +0 -9
  504. package/build/server/chunks/4-4bobZFC9.js.map +0 -1
  505. package/build/server/chunks/6-sGxxEzTB.js +0 -9
  506. package/build/server/chunks/6-sGxxEzTB.js.map +0 -1
  507. package/build/server/chunks/7-mi0k2tJn.js +0 -9
  508. package/build/server/chunks/8-DiHmrGkL.js.map +0 -1
  509. package/build/server/chunks/9-DB22e_yA.js +0 -9
  510. package/build/server/chunks/9-DB22e_yA.js.map +0 -1
  511. package/build/server/chunks/IconActivity-DrgUhxxi.js.map +0 -1
  512. package/build/server/chunks/IconSoundOn-DZGaQz_p.js.map +0 -1
  513. package/build/server/chunks/IconStop-BPbovgch.js +0 -956
  514. package/build/server/chunks/IconStop-BPbovgch.js.map +0 -1
  515. package/build/server/chunks/_page.svelte-CB1qUSpk.js.map +0 -1
  516. package/build/server/chunks/_page.svelte-CPo3vFZf.js.map +0 -1
  517. package/build/server/chunks/_page.svelte-F3gki1Uz.js +0 -155
  518. package/build/server/chunks/_page.svelte-F3gki1Uz.js.map +0 -1
  519. package/build/server/chunks/_page.svelte-GcuuPiXq.js.map +0 -1
  520. package/build/server/chunks/_page.svelte-K6kU7jIW.js.map +0 -1
  521. package/build/server/chunks/_server.ts-B_dmjFtu.js.map +0 -1
  522. package/build/server/chunks/_server.ts-BmRwgrKB.js +0 -67
  523. package/build/server/chunks/_server.ts-BmRwgrKB.js.map +0 -1
  524. package/build/server/chunks/_server.ts-CT0jVfA6.js.map +0 -1
  525. package/build/server/chunks/_server.ts-Cf_ZLxIl.js.map +0 -1
  526. package/build/server/chunks/_server.ts-CixURe5F.js +0 -49
  527. package/build/server/chunks/_server.ts-CixURe5F.js.map +0 -1
  528. package/build/server/chunks/_server.ts-CyIO3STA.js +0 -73
  529. package/build/server/chunks/_server.ts-CyIO3STA.js.map +0 -1
  530. package/build/server/chunks/_server.ts-CzIZ-UYy.js +0 -113
  531. package/build/server/chunks/_server.ts-CzIZ-UYy.js.map +0 -1
  532. package/build/server/chunks/_server.ts-D3FpBEaY.js.map +0 -1
  533. package/build/server/chunks/_server.ts-Do0cbyyq.js.map +0 -1
  534. package/build/server/chunks/_server.ts-HHMqD_RA.js.map +0 -1
  535. package/build/server/chunks/_server.ts-ykET4T6s.js.map +0 -1
  536. package/build/server/chunks/compose-args2-BFOGDQne.js.map +0 -1
  537. package/build/server/chunks/connections-api-DlEoE3-k.js +0 -35
  538. package/build/server/chunks/connections-api-DlEoE3-k.js.map +0 -1
  539. package/build/server/chunks/docker2-BYFlumV1.js.map +0 -1
  540. package/build/server/chunks/endpoints-IFTldlrt.js +0 -473
  541. package/build/server/chunks/endpoints-IFTldlrt.js.map +0 -1
  542. package/build/server/chunks/features-BW-bVsl8.js +0 -118
  543. package/build/server/chunks/features-BW-bVsl8.js.map +0 -1
  544. package/build/server/chunks/helpers-DxodR6tq.js.map +0 -1
  545. package/build/server/chunks/hooks.server-Bzj8OieV.js.map +0 -1
  546. package/build/server/chunks/http-CfHMreaI.js.map +0 -1
  547. package/build/server/chunks/landing-DhaVkN2f.js.map +0 -1
  548. package/build/server/chunks/network-preset-CJ1RRnki.js.map +0 -1
  549. package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js.map +0 -1
  550. package/build/server/chunks/src-DbArH65P.js.map +0 -1
  551. package/build/server/chunks/voice-state.svelte-2hAkP5Di.js.map +0 -1
  552. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css → ChatMessage.BdXOPwBm.css} +0 -0
  553. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css.br → ChatMessage.BdXOPwBm.css.br} +0 -0
  554. /package/build/client/_app/immutable/assets/{IconActivity.BdXOPwBm.css.gz → ChatMessage.BdXOPwBm.css.gz} +0 -0
@@ -1,473 +0,0 @@
1
- import { ax as readStackEnv, au as readSecret } from './src-DbArH65P.js';
2
- import { g as getState } from './state-Bq8fep3F.js';
3
- import { existsSync, readFileSync, mkdirSync, writeFileSync, chmodSync, unlinkSync } from 'node:fs';
4
- import { dirname } from 'node:path';
5
- import { randomUUID } from 'node:crypto';
6
-
7
- //#region src/lib/server/basic-auth.ts
8
- /**
9
- * Shared HTTP Basic-auth encoding for host-UI → OpenCode/guardian calls.
10
- *
11
- * PR #564 P2-1: every host forwarder MUST send the exact same UTF-8 byte
12
- * sequence the assistant and guardian expect. Two divergences caused correct
13
- * passwords to 401 from the host:
14
- * - `btoa()` is Latin-1-only and throws / corrupts on non-Latin-1 bytes
15
- * (accents, CJK, emoji). Encode UTF-8 first (matches the guardian's
16
- * `Buffer.from(..., 'utf-8')`).
17
- * - the file-backed password was `.trim()`-ed, stripping surrounding spaces,
18
- * while the assistant entrypoint (`$(cat)`) and the guardian strip only
19
- * trailing newlines. Use `stripTrailingNewlines` so a password like
20
- * `"päss 🔒 "` authenticates identically everywhere.
21
- */
22
- /** OpenCode's server default Basic-auth username (the shipped assistant compose never overrides it). */
23
- var DEFAULT_OPENCODE_USERNAME$1 = "opencode";
24
- /** UTF-8-safe Basic auth header — identical byte sequence to the guardian's encoder. */
25
- function basicAuthHeader(username, password) {
26
- return `Basic ${Buffer.from(`${username}:${password}`, "utf-8").toString("base64")}`;
27
- }
28
- /**
29
- * Strip only trailing newlines from a file-backed secret, matching the
30
- * assistant entrypoint's `$(cat file)` and the guardian's reader. Surrounding
31
- * spaces/tabs are preserved so the bytes match across every consumer.
32
- */
33
- function stripTrailingNewlines(value) {
34
- return value.replace(/\n+$/, "");
35
- }
36
- //#endregion
37
- //#region src/lib/server/endpoints.ts
38
- /**
39
- * Assistant connections — list of OpenCode servers the UI can target, with
40
- * one marked active. The internal model uses "connection" language (plan
41
- * ui-runtime-modes-plan.md §6.6, Phase 2 / #486); the on-disk file keeps its
42
- * historical name and schema keys — `endpoints.json` with
43
- * `{ activeId, endpoints }` — and is NEVER renamed or migrated.
44
- *
45
- * The "default" entry is synthesized from environment (OP_OPENCODE_URL /
46
- * OP_ASSISTANT_URL / OP_ASSISTANT_PORT) and cannot be deleted. User-added
47
- * connections are persisted to a JSON file in the config directory (it's
48
- * user-owned configuration, not service state — see Phase 5 / D4 in
49
- * docs/technical/auth-and-proxy-refactor-plan.md).
50
- *
51
- * File: ${configDir}/endpoints.json (mode 0600)
52
- * Shape: { activeId: string | null, endpoints: ConnectionEntry[] }
53
- * - activeId === null or "default" → use the env-derived default
54
- * - activeId === "<id>" → use the matching user entry (falls back to default if not found)
55
- *
56
- * Legacy path: ${dataDir}/admin/endpoints.json. Old installs are
57
- * migrated lazily on first read by maybeMigrateLegacyEndpointsFile().
58
- */
59
- /**
60
- * Read-time kind defaulting (plan §6.6): a user-persisted record without a
61
- * `kind` key is a remote OpenCode connection — that is the only thing the
62
- * pre-Phase-2 UI let users add. Explicit kinds pass through untouched.
63
- */
64
- function kindOf(entry) {
65
- return entry.kind ?? "remote-opencode";
66
- }
67
- var DEFAULT_ID = "default";
68
- /**
69
- * OpenCode's server default Basic-auth username. The shipped assistant compose
70
- * never overrides OPENCODE_SERVER_USERNAME, and the guardian's upstream auth
71
- * sends `opencode:<password>`, so every host-UI forwarder must default here or
72
- * a correct password 401s (PR #564 r3566888629). User-added connections may
73
- * still carry an explicit username.
74
- */
75
- var DEFAULT_OPENCODE_USERNAME = DEFAULT_OPENCODE_USERNAME$1;
76
- var LOCAL_ELECTRON_ID = "local-electron";
77
- var remoteStatusCache = null;
78
- function endpointsPath() {
79
- return `${getState().configDir}/endpoints.json`;
80
- }
81
- /**
82
- * Legacy path used before Phase 5 of the auth/proxy refactor.
83
- * See docs/technical/auth-and-proxy-refactor-plan.md § Phase 5 / D4.
84
- */
85
- function legacyEndpointsPath() {
86
- return `${getState().dataDir}/admin/endpoints.json`;
87
- }
88
- /**
89
- * One-shot lazy migration from the legacy data/ path to the new config/ path.
90
- *
91
- * Phase 5 of docs/technical/auth-and-proxy-refactor-plan.md (D6 step 3):
92
- * - If the new path already exists → no-op (already migrated).
93
- * - If the legacy path doesn't exist → no-op (fresh install).
94
- * - Otherwise copy contents to the new path (mode 0600), then unlink legacy.
95
- *
96
- * If the migration fails partway, the legacy file is left in place so reads
97
- * fall back to it for the remainder of this session. Idempotent across
98
- * process restarts because the existence check makes it a no-op after the
99
- * first successful run.
100
- */
101
- function maybeMigrateLegacyEndpointsFile() {
102
- const newPath = endpointsPath();
103
- if (existsSync(newPath)) return;
104
- const oldPath = legacyEndpointsPath();
105
- if (!existsSync(oldPath)) return;
106
- try {
107
- mkdirSync(dirname(newPath), { recursive: true });
108
- writeFileSync(newPath, readFileSync(oldPath), { mode: 384 });
109
- try {
110
- chmodSync(newPath, 384);
111
- } catch {}
112
- unlinkSync(oldPath);
113
- } catch (e) {
114
- console.warn("[endpoints] Failed to migrate legacy endpoints.json from data/ to config/. Leaving the old file in place; reads will fall back to it for this session.", e);
115
- }
116
- }
117
- function localRuntimePath() {
118
- return `${getState().dataDir}/local-opencode.runtime.json`;
119
- }
120
- /**
121
- * Read the Electron-written runtime.json each time it's needed. The file is
122
- * 0600 and is rewritten on each Electron launch (random password per launch),
123
- * so callers must NOT cache the result.
124
- */
125
- function readLocalRuntime() {
126
- const path = localRuntimePath();
127
- if (!existsSync(path)) return null;
128
- try {
129
- const parsed = JSON.parse(readFileSync(path, "utf-8"));
130
- if (!parsed || typeof parsed.url !== "string" || !parsed.url) return null;
131
- return {
132
- url: parsed.url,
133
- username: typeof parsed.username === "string" ? parsed.username : void 0,
134
- password: typeof parsed.password === "string" ? parsed.password : void 0,
135
- pid: typeof parsed.pid === "number" ? parsed.pid : void 0,
136
- startedAt: typeof parsed.startedAt === "string" ? parsed.startedAt : void 0
137
- };
138
- } catch (e) {
139
- console.warn("[endpoints] Failed to parse local-opencode.runtime.json:", e);
140
- return null;
141
- }
142
- }
143
- function localEndpoint() {
144
- const rt = readLocalRuntime();
145
- if (!rt) return null;
146
- return {
147
- id: LOCAL_ELECTRON_ID,
148
- label: "OpenPalm Admin",
149
- url: normalizeBrowserFacingUrl(rt.url),
150
- username: rt.username || DEFAULT_OPENCODE_USERNAME,
151
- ...rt.password ? { password: rt.password } : {},
152
- kind: "local-opencode",
153
- isDefault: false,
154
- isLocal: true
155
- };
156
- }
157
- function normalizeBrowserFacingUrl(raw) {
158
- try {
159
- const url = new URL(raw);
160
- url.username = "";
161
- url.password = "";
162
- const host = url.hostname.toLowerCase().replace(/^\[|\]$/g, "");
163
- if (host === "0.0.0.0" || host === "::") url.hostname = "127.0.0.1";
164
- return url.toString().replace(/\/$/, "");
165
- } catch {
166
- return raw;
167
- }
168
- }
169
- /** Strip legacy URL userinfo before a connection reaches a serializer or view. */
170
- function redactEndpointUrlUserinfo(raw) {
171
- return normalizeBrowserFacingUrl(raw);
172
- }
173
- function redactEntryUrl(entry) {
174
- const url = redactEndpointUrlUserinfo(entry.url);
175
- return url === entry.url ? entry : {
176
- ...entry,
177
- url
178
- };
179
- }
180
- function readFile() {
181
- maybeMigrateLegacyEndpointsFile();
182
- let path = endpointsPath();
183
- if (!existsSync(path)) {
184
- const legacy = legacyEndpointsPath();
185
- if (!existsSync(legacy)) return {
186
- activeId: null,
187
- endpoints: []
188
- };
189
- path = legacy;
190
- }
191
- try {
192
- const parsed = JSON.parse(readFileSync(path, "utf-8"));
193
- return {
194
- activeId: typeof parsed.activeId === "string" ? parsed.activeId : null,
195
- endpoints: Array.isArray(parsed.endpoints) ? parsed.endpoints.filter(isValidEntry).map(redactEntryUrl) : []
196
- };
197
- } catch (e) {
198
- console.warn("[endpoints] Failed to parse endpoints.json, resetting:", e);
199
- return {
200
- activeId: null,
201
- endpoints: []
202
- };
203
- }
204
- }
205
- function isValidEntry(e) {
206
- if (!e || typeof e !== "object") return false;
207
- const o = e;
208
- return typeof o.id === "string" && typeof o.label === "string" && typeof o.url === "string";
209
- }
210
- function writeFile(data) {
211
- const path = endpointsPath();
212
- mkdirSync(dirname(path), { recursive: true });
213
- const safeData = {
214
- ...data,
215
- endpoints: data.endpoints.map(redactEntryUrl)
216
- };
217
- writeFileSync(path, JSON.stringify(safeData, null, 2), {
218
- encoding: "utf-8",
219
- mode: 384
220
- });
221
- try {
222
- chmodSync(path, 384);
223
- } catch {}
224
- }
225
- function defaultEndpoint() {
226
- const persisted = readStackEnv(getState().homeDir);
227
- const url = process.env.OP_OPENCODE_URL ?? process.env.OP_ASSISTANT_URL ?? `http://127.0.0.1:${process.env.OP_ASSISTANT_PORT ?? persisted.OP_ASSISTANT_PORT ?? "3800"}`;
228
- const username = process.env.OPENCODE_SERVER_USERNAME || DEFAULT_OPENCODE_USERNAME;
229
- const presetPassword = /^(true|1|yes)$/i.test((persisted.OPENCODE_AUTH ?? process.env.OPENCODE_AUTH ?? "").trim()) ? ((raw) => raw ? stripTrailingNewlines(raw) : void 0)(readSecret(getState().homeDir, "op_opencode_password") ?? void 0) || process.env.OP_OPENCODE_PASSWORD : void 0;
230
- const password = process.env.OPENCODE_SERVER_PASSWORD || presetPassword || void 0;
231
- return {
232
- id: DEFAULT_ID,
233
- label: "Local Assistant",
234
- url: normalizeBrowserFacingUrl(url),
235
- username,
236
- password,
237
- kind: "local-opencode",
238
- isDefault: true
239
- };
240
- }
241
- /**
242
- * Discriminated validator that callers (admin routes) use to surface
243
- * specific error messages. Plain HTTP is allowed for any host — OpenPalm is
244
- * LAN-first, so remote instances on a private network are reached over http://.
245
- */
246
- function validateEndpointUrl(input) {
247
- let u;
248
- try {
249
- u = new URL(input.trim());
250
- } catch {
251
- return {
252
- ok: false,
253
- reason: "invalid_url"
254
- };
255
- }
256
- if (u.protocol !== "http:" && u.protocol !== "https:") return {
257
- ok: false,
258
- reason: "invalid_scheme"
259
- };
260
- if (!u.hostname) return {
261
- ok: false,
262
- reason: "missing_host"
263
- };
264
- if (u.username || u.password) return {
265
- ok: false,
266
- reason: "userinfo_not_allowed"
267
- };
268
- if (u.search || u.hash) return {
269
- ok: false,
270
- reason: "unexpected_query_or_fragment"
271
- };
272
- return {
273
- ok: true,
274
- url: u.toString().replace(/\/$/, "")
275
- };
276
- }
277
- /**
278
- * Validate a URL string — must be http(s) with a host. Returns the normalized
279
- * URL or null. For finer-grained errors, use `validateEndpointUrl`.
280
- */
281
- function normalizeEndpointUrl(input) {
282
- const result = validateEndpointUrl(input);
283
- return result.ok ? result.url : null;
284
- }
285
- /**
286
- * Returns: [local-electron (if Electron is running it), default, ...user entries].
287
- * The local-electron entry is synthesized at call time from
288
- * state/local-opencode.runtime.json — never persisted to endpoints.json.
289
- */
290
- function listConnections() {
291
- const { endpoints } = readFile();
292
- const local = localEndpoint();
293
- return [
294
- ...local ? [local] : [],
295
- defaultEndpoint(),
296
- ...endpoints.map((e) => ({
297
- ...e,
298
- kind: kindOf(e),
299
- isDefault: false
300
- }))
301
- ];
302
- }
303
- /**
304
- * Returns the active connection, falling back to the default if no active id
305
- * is set OR if the active id is `local-electron` but the runtime.json isn't
306
- * there (e.g. the Electron child died). Re-reads runtime.json each call so a
307
- * password rotated by a new Electron launch is picked up immediately.
308
- */
309
- function getActiveConnection() {
310
- const { activeId, endpoints } = readFile();
311
- if (activeId === LOCAL_ELECTRON_ID) {
312
- const local = localEndpoint();
313
- if (local) return local;
314
- return defaultEndpoint();
315
- }
316
- if (!activeId || activeId === DEFAULT_ID) return defaultEndpoint();
317
- const found = endpoints.find((e) => e.id === activeId);
318
- if (!found) return defaultEndpoint();
319
- return {
320
- ...found,
321
- kind: kindOf(found),
322
- isDefault: false
323
- };
324
- }
325
- function setActiveConnectionId(id) {
326
- const data = readFile();
327
- if (!id || id === DEFAULT_ID) data.activeId = null;
328
- else if (id === LOCAL_ELECTRON_ID) {
329
- if (!localEndpoint()) throw new Error("Local OpenCode is not running (Electron only)");
330
- data.activeId = LOCAL_ELECTRON_ID;
331
- } else {
332
- if (!data.endpoints.some((e) => e.id === id)) throw new Error(`Endpoint not found: ${id}`);
333
- data.activeId = id;
334
- }
335
- writeFile(data);
336
- return getActiveConnection();
337
- }
338
- /**
339
- * User-addable connection kinds (#486 D2). `local-opencode` is reserved for
340
- * synthesized entries (the env-derived default, the Electron local-runtime
341
- * entry) and is never accepted from a write path.
342
- */
343
- var USER_ADDABLE_CONNECTION_KINDS = ["remote-opencode", "openpalm-client-api"];
344
- /**
345
- * Normalize a guardian ('openpalm-client-api'-kind) connection URL so it
346
- * always ends in `/oc` — the guardian's direct-ingress base path
347
- * (#486 D2). Operates on an ALREADY `normalizeEndpointUrl`-ed string (no
348
- * trailing slash), so only the `/oc` suffix logic is needed here.
349
- *
350
- * `packages/client/src/lib/connections/url-policy.ts` carries a deliberate
351
- * CLIENT-side twin (`normalizeGuardianUrl`) with the same rule — the client
352
- * artifact may not import host code and vice versa, so this is the same
353
- * accepted duplication as `validateConnectionUrl`/`validateEndpointUrl`.
354
- * Both are pinned by their own tests.
355
- */
356
- function normalizeGuardianOcUrl(url) {
357
- return url.endsWith("/oc") ? url : `${url}/oc`;
358
- }
359
- function assertAddableKind(kind) {
360
- if (kind === void 0) return;
361
- if (!USER_ADDABLE_CONNECTION_KINDS.includes(kind)) throw new Error("Invalid connection kind");
362
- }
363
- function addConnection(input) {
364
- const label = input.label.trim();
365
- if (!label) throw new Error("Label is required");
366
- let url = normalizeEndpointUrl(input.url);
367
- if (!url) throw new Error("URL must be a valid http(s) URL");
368
- assertAddableKind(input.kind);
369
- if (input.kind === "openpalm-client-api") url = normalizeGuardianOcUrl(url);
370
- const data = readFile();
371
- const entry = {
372
- id: randomUUID(),
373
- label,
374
- url,
375
- ...input.password ? { password: input.password } : {},
376
- ...input.kind ? { kind: input.kind } : {}
377
- };
378
- data.endpoints.push(entry);
379
- writeFile(data);
380
- return entry;
381
- }
382
- function updateConnection(id, patch) {
383
- if (id === DEFAULT_ID) throw new Error("Cannot edit the default endpoint");
384
- if (id === LOCAL_ELECTRON_ID) throw new Error("Cannot edit the local Electron OpenCode entry (it is ephemeral and per-launch)");
385
- assertAddableKind(patch.kind);
386
- const data = readFile();
387
- const idx = data.endpoints.findIndex((e) => e.id === id);
388
- if (idx === -1) throw new Error(`Endpoint not found: ${id}`);
389
- const next = { ...data.endpoints[idx] };
390
- if (patch.label !== void 0) {
391
- const label = patch.label.trim();
392
- if (!label) throw new Error("Label cannot be empty");
393
- next.label = label;
394
- }
395
- if (patch.url !== void 0) {
396
- const url = normalizeEndpointUrl(patch.url);
397
- if (!url) throw new Error("URL must be a valid http(s) URL");
398
- next.url = url;
399
- }
400
- if (patch.password === null) delete next.password;
401
- else if (typeof patch.password === "string") next.password = patch.password;
402
- if (patch.kind !== void 0) next.kind = patch.kind;
403
- if (next.kind === "openpalm-client-api") next.url = normalizeGuardianOcUrl(next.url);
404
- data.endpoints[idx] = next;
405
- writeFile(data);
406
- return next;
407
- }
408
- function deleteConnection(id) {
409
- if (id === DEFAULT_ID) throw new Error("Cannot delete the default endpoint");
410
- if (id === LOCAL_ELECTRON_ID) throw new Error("Cannot delete the local Electron OpenCode entry (managed by Electron lifecycle)");
411
- const data = readFile();
412
- const idx = data.endpoints.findIndex((e) => e.id === id);
413
- if (idx === -1) throw new Error(`Endpoint not found: ${id}`);
414
- data.endpoints.splice(idx, 1);
415
- if (data.activeId === id) data.activeId = null;
416
- writeFile(data);
417
- }
418
- async function probeEndpoint(endpoint) {
419
- const headers = new Headers();
420
- if (endpoint.password) {
421
- const username = endpoint.username ?? DEFAULT_OPENCODE_USERNAME;
422
- headers.set("authorization", basicAuthHeader(username, endpoint.password));
423
- }
424
- const probeUrl = endpoint.kind === "openpalm-client-api" ? `${endpoint.url}/session` : endpoint.url;
425
- try {
426
- const response = await fetch(probeUrl, {
427
- method: "GET",
428
- headers,
429
- redirect: "manual",
430
- signal: AbortSignal.timeout(2e3)
431
- });
432
- if (response.status === 401 || response.status === 403) return {
433
- id: endpoint.id,
434
- name: endpoint.label,
435
- url: endpoint.url,
436
- state: "unauthorized",
437
- detail: `HTTP ${response.status}`
438
- };
439
- if (response.ok || response.status >= 300 && response.status < 400) return {
440
- id: endpoint.id,
441
- name: endpoint.label,
442
- url: endpoint.url,
443
- state: "accessible"
444
- };
445
- return {
446
- id: endpoint.id,
447
- name: endpoint.label,
448
- url: endpoint.url,
449
- state: "unreachable",
450
- detail: `HTTP ${response.status}`
451
- };
452
- } catch (error) {
453
- return {
454
- id: endpoint.id,
455
- name: endpoint.label,
456
- url: endpoint.url,
457
- state: "unreachable",
458
- detail: error instanceof Error ? error.message : String(error)
459
- };
460
- }
461
- }
462
- async function listRemoteStatuses() {
463
- if (remoteStatusCache && remoteStatusCache.expiresAt > Date.now()) return remoteStatusCache.value.map((status) => ({ ...status }));
464
- const statuses = await Promise.all(listConnections().map((endpoint) => probeEndpoint(endpoint)));
465
- remoteStatusCache = {
466
- value: statuses,
467
- expiresAt: Date.now() + 5e3
468
- };
469
- return statuses.map((status) => ({ ...status }));
470
- }
471
-
472
- export { USER_ADDABLE_CONNECTION_KINDS as U, addConnection as a, basicAuthHeader as b, listRemoteStatuses as c, deleteConnection as d, getActiveConnection as g, listConnections as l, redactEndpointUrlUserinfo as r, setActiveConnectionId as s, updateConnection as u, validateEndpointUrl as v };
473
- //# sourceMappingURL=endpoints-IFTldlrt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoints-IFTldlrt.js","sources":["../../../.svelte-kit/adapter-node/chunks/endpoints.js"],"sourcesContent":["import { Y as readStackEnv, it as readSecret } from \"./compose-args.js\";\nimport \"./src.js\";\nimport { t as getState } from \"./state.js\";\nimport { chmodSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\n//#region src/lib/server/basic-auth.ts\n/**\n* Shared HTTP Basic-auth encoding for host-UI → OpenCode/guardian calls.\n*\n* PR #564 P2-1: every host forwarder MUST send the exact same UTF-8 byte\n* sequence the assistant and guardian expect. Two divergences caused correct\n* passwords to 401 from the host:\n* - `btoa()` is Latin-1-only and throws / corrupts on non-Latin-1 bytes\n* (accents, CJK, emoji). Encode UTF-8 first (matches the guardian's\n* `Buffer.from(..., 'utf-8')`).\n* - the file-backed password was `.trim()`-ed, stripping surrounding spaces,\n* while the assistant entrypoint (`$(cat)`) and the guardian strip only\n* trailing newlines. Use `stripTrailingNewlines` so a password like\n* `\"päss 🔒 \"` authenticates identically everywhere.\n*/\n/** OpenCode's server default Basic-auth username (the shipped assistant compose never overrides it). */\nvar DEFAULT_OPENCODE_USERNAME$1 = \"opencode\";\n/** UTF-8-safe Basic auth header — identical byte sequence to the guardian's encoder. */\nfunction basicAuthHeader(username, password) {\n\treturn `Basic ${Buffer.from(`${username}:${password}`, \"utf-8\").toString(\"base64\")}`;\n}\n/**\n* Strip only trailing newlines from a file-backed secret, matching the\n* assistant entrypoint's `$(cat file)` and the guardian's reader. Surrounding\n* spaces/tabs are preserved so the bytes match across every consumer.\n*/\nfunction stripTrailingNewlines(value) {\n\treturn value.replace(/\\n+$/, \"\");\n}\n//#endregion\n//#region src/lib/server/endpoints.ts\n/**\n* Assistant connections — list of OpenCode servers the UI can target, with\n* one marked active. The internal model uses \"connection\" language (plan\n* ui-runtime-modes-plan.md §6.6, Phase 2 / #486); the on-disk file keeps its\n* historical name and schema keys — `endpoints.json` with\n* `{ activeId, endpoints }` — and is NEVER renamed or migrated.\n*\n* The \"default\" entry is synthesized from environment (OP_OPENCODE_URL /\n* OP_ASSISTANT_URL / OP_ASSISTANT_PORT) and cannot be deleted. User-added\n* connections are persisted to a JSON file in the config directory (it's\n* user-owned configuration, not service state — see Phase 5 / D4 in\n* docs/technical/auth-and-proxy-refactor-plan.md).\n*\n* File: ${configDir}/endpoints.json (mode 0600)\n* Shape: { activeId: string | null, endpoints: ConnectionEntry[] }\n* - activeId === null or \"default\" → use the env-derived default\n* - activeId === \"<id>\" → use the matching user entry (falls back to default if not found)\n*\n* Legacy path: ${dataDir}/admin/endpoints.json. Old installs are\n* migrated lazily on first read by maybeMigrateLegacyEndpointsFile().\n*/\n/**\n* Read-time kind defaulting (plan §6.6): a user-persisted record without a\n* `kind` key is a remote OpenCode connection — that is the only thing the\n* pre-Phase-2 UI let users add. Explicit kinds pass through untouched.\n*/\nfunction kindOf(entry) {\n\treturn entry.kind ?? \"remote-opencode\";\n}\nvar DEFAULT_ID = \"default\";\n/**\n* OpenCode's server default Basic-auth username. The shipped assistant compose\n* never overrides OPENCODE_SERVER_USERNAME, and the guardian's upstream auth\n* sends `opencode:<password>`, so every host-UI forwarder must default here or\n* a correct password 401s (PR #564 r3566888629). User-added connections may\n* still carry an explicit username.\n*/\nvar DEFAULT_OPENCODE_USERNAME = DEFAULT_OPENCODE_USERNAME$1;\nvar LOCAL_ELECTRON_ID = \"local-electron\";\nvar remoteStatusCache = null;\nfunction endpointsPath() {\n\treturn `${getState().configDir}/endpoints.json`;\n}\n/**\n* Legacy path used before Phase 5 of the auth/proxy refactor.\n* See docs/technical/auth-and-proxy-refactor-plan.md § Phase 5 / D4.\n*/\nfunction legacyEndpointsPath() {\n\treturn `${getState().dataDir}/admin/endpoints.json`;\n}\n/**\n* One-shot lazy migration from the legacy data/ path to the new config/ path.\n*\n* Phase 5 of docs/technical/auth-and-proxy-refactor-plan.md (D6 step 3):\n* - If the new path already exists → no-op (already migrated).\n* - If the legacy path doesn't exist → no-op (fresh install).\n* - Otherwise copy contents to the new path (mode 0600), then unlink legacy.\n*\n* If the migration fails partway, the legacy file is left in place so reads\n* fall back to it for the remainder of this session. Idempotent across\n* process restarts because the existence check makes it a no-op after the\n* first successful run.\n*/\nfunction maybeMigrateLegacyEndpointsFile() {\n\tconst newPath = endpointsPath();\n\tif (existsSync(newPath)) return;\n\tconst oldPath = legacyEndpointsPath();\n\tif (!existsSync(oldPath)) return;\n\ttry {\n\t\tmkdirSync(dirname(newPath), { recursive: true });\n\t\twriteFileSync(newPath, readFileSync(oldPath), { mode: 384 });\n\t\ttry {\n\t\t\tchmodSync(newPath, 384);\n\t\t} catch {}\n\t\tunlinkSync(oldPath);\n\t} catch (e) {\n\t\tconsole.warn(\"[endpoints] Failed to migrate legacy endpoints.json from data/ to config/. Leaving the old file in place; reads will fall back to it for this session.\", e);\n\t}\n}\nfunction localRuntimePath() {\n\treturn `${getState().dataDir}/local-opencode.runtime.json`;\n}\n/**\n* Read the Electron-written runtime.json each time it's needed. The file is\n* 0600 and is rewritten on each Electron launch (random password per launch),\n* so callers must NOT cache the result.\n*/\nfunction readLocalRuntime() {\n\tconst path = localRuntimePath();\n\tif (!existsSync(path)) return null;\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\tif (!parsed || typeof parsed.url !== \"string\" || !parsed.url) return null;\n\t\treturn {\n\t\t\turl: parsed.url,\n\t\t\tusername: typeof parsed.username === \"string\" ? parsed.username : void 0,\n\t\t\tpassword: typeof parsed.password === \"string\" ? parsed.password : void 0,\n\t\t\tpid: typeof parsed.pid === \"number\" ? parsed.pid : void 0,\n\t\t\tstartedAt: typeof parsed.startedAt === \"string\" ? parsed.startedAt : void 0\n\t\t};\n\t} catch (e) {\n\t\tconsole.warn(\"[endpoints] Failed to parse local-opencode.runtime.json:\", e);\n\t\treturn null;\n\t}\n}\nfunction localEndpoint() {\n\tconst rt = readLocalRuntime();\n\tif (!rt) return null;\n\treturn {\n\t\tid: LOCAL_ELECTRON_ID,\n\t\tlabel: \"OpenPalm Admin\",\n\t\turl: normalizeBrowserFacingUrl(rt.url),\n\t\tusername: rt.username || DEFAULT_OPENCODE_USERNAME,\n\t\t...rt.password ? { password: rt.password } : {},\n\t\tkind: \"local-opencode\",\n\t\tisDefault: false,\n\t\tisLocal: true\n\t};\n}\nfunction normalizeBrowserFacingUrl(raw) {\n\ttry {\n\t\tconst url = new URL(raw);\n\t\turl.username = \"\";\n\t\turl.password = \"\";\n\t\tconst host = url.hostname.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n\t\tif (host === \"0.0.0.0\" || host === \"::\") url.hostname = \"127.0.0.1\";\n\t\treturn url.toString().replace(/\\/$/, \"\");\n\t} catch {\n\t\treturn raw;\n\t}\n}\n/** Strip legacy URL userinfo before a connection reaches a serializer or view. */\nfunction redactEndpointUrlUserinfo(raw) {\n\treturn normalizeBrowserFacingUrl(raw);\n}\nfunction redactEntryUrl(entry) {\n\tconst url = redactEndpointUrlUserinfo(entry.url);\n\treturn url === entry.url ? entry : {\n\t\t...entry,\n\t\turl\n\t};\n}\nfunction readFile() {\n\tmaybeMigrateLegacyEndpointsFile();\n\tlet path = endpointsPath();\n\tif (!existsSync(path)) {\n\t\tconst legacy = legacyEndpointsPath();\n\t\tif (!existsSync(legacy)) return {\n\t\t\tactiveId: null,\n\t\t\tendpoints: []\n\t\t};\n\t\tpath = legacy;\n\t}\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\treturn {\n\t\t\tactiveId: typeof parsed.activeId === \"string\" ? parsed.activeId : null,\n\t\t\tendpoints: Array.isArray(parsed.endpoints) ? parsed.endpoints.filter(isValidEntry).map(redactEntryUrl) : []\n\t\t};\n\t} catch (e) {\n\t\tconsole.warn(\"[endpoints] Failed to parse endpoints.json, resetting:\", e);\n\t\treturn {\n\t\t\tactiveId: null,\n\t\t\tendpoints: []\n\t\t};\n\t}\n}\nfunction isValidEntry(e) {\n\tif (!e || typeof e !== \"object\") return false;\n\tconst o = e;\n\treturn typeof o.id === \"string\" && typeof o.label === \"string\" && typeof o.url === \"string\";\n}\nfunction writeFile(data) {\n\tconst path = endpointsPath();\n\tmkdirSync(dirname(path), { recursive: true });\n\tconst safeData = {\n\t\t...data,\n\t\tendpoints: data.endpoints.map(redactEntryUrl)\n\t};\n\twriteFileSync(path, JSON.stringify(safeData, null, 2), {\n\t\tencoding: \"utf-8\",\n\t\tmode: 384\n\t});\n\ttry {\n\t\tchmodSync(path, 384);\n\t} catch {}\n}\nfunction defaultEndpoint() {\n\tconst persisted = readStackEnv(getState().homeDir);\n\tconst url = process.env.OP_OPENCODE_URL ?? process.env.OP_ASSISTANT_URL ?? `http://127.0.0.1:${process.env.OP_ASSISTANT_PORT ?? persisted.OP_ASSISTANT_PORT ?? \"3800\"}`;\n\tconst username = process.env.OPENCODE_SERVER_USERNAME || DEFAULT_OPENCODE_USERNAME;\n\tconst presetPassword = /^(true|1|yes)$/i.test((persisted.OPENCODE_AUTH ?? process.env.OPENCODE_AUTH ?? \"\").trim()) ? ((raw) => raw ? stripTrailingNewlines(raw) : void 0)(readSecret(getState().homeDir, \"op_opencode_password\") ?? void 0) || process.env.OP_OPENCODE_PASSWORD : void 0;\n\tconst password = process.env.OPENCODE_SERVER_PASSWORD || presetPassword || void 0;\n\treturn {\n\t\tid: DEFAULT_ID,\n\t\tlabel: \"Local Assistant\",\n\t\turl: normalizeBrowserFacingUrl(url),\n\t\tusername,\n\t\tpassword,\n\t\tkind: \"local-opencode\",\n\t\tisDefault: true\n\t};\n}\n/**\n* Discriminated validator that callers (admin routes) use to surface\n* specific error messages. Plain HTTP is allowed for any host — OpenPalm is\n* LAN-first, so remote instances on a private network are reached over http://.\n*/\nfunction validateEndpointUrl(input) {\n\tlet u;\n\ttry {\n\t\tu = new URL(input.trim());\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"invalid_url\"\n\t\t};\n\t}\n\tif (u.protocol !== \"http:\" && u.protocol !== \"https:\") return {\n\t\tok: false,\n\t\treason: \"invalid_scheme\"\n\t};\n\tif (!u.hostname) return {\n\t\tok: false,\n\t\treason: \"missing_host\"\n\t};\n\tif (u.username || u.password) return {\n\t\tok: false,\n\t\treason: \"userinfo_not_allowed\"\n\t};\n\tif (u.search || u.hash) return {\n\t\tok: false,\n\t\treason: \"unexpected_query_or_fragment\"\n\t};\n\treturn {\n\t\tok: true,\n\t\turl: u.toString().replace(/\\/$/, \"\")\n\t};\n}\n/**\n* Validate a URL string — must be http(s) with a host. Returns the normalized\n* URL or null. For finer-grained errors, use `validateEndpointUrl`.\n*/\nfunction normalizeEndpointUrl(input) {\n\tconst result = validateEndpointUrl(input);\n\treturn result.ok ? result.url : null;\n}\n/**\n* Returns: [local-electron (if Electron is running it), default, ...user entries].\n* The local-electron entry is synthesized at call time from\n* state/local-opencode.runtime.json — never persisted to endpoints.json.\n*/\nfunction listConnections() {\n\tconst { endpoints } = readFile();\n\tconst local = localEndpoint();\n\treturn [\n\t\t...local ? [local] : [],\n\t\tdefaultEndpoint(),\n\t\t...endpoints.map((e) => ({\n\t\t\t...e,\n\t\t\tkind: kindOf(e),\n\t\t\tisDefault: false\n\t\t}))\n\t];\n}\n/**\n* Returns the active connection, falling back to the default if no active id\n* is set OR if the active id is `local-electron` but the runtime.json isn't\n* there (e.g. the Electron child died). Re-reads runtime.json each call so a\n* password rotated by a new Electron launch is picked up immediately.\n*/\nfunction getActiveConnection() {\n\tconst { activeId, endpoints } = readFile();\n\tif (activeId === LOCAL_ELECTRON_ID) {\n\t\tconst local = localEndpoint();\n\t\tif (local) return local;\n\t\treturn defaultEndpoint();\n\t}\n\tif (!activeId || activeId === DEFAULT_ID) return defaultEndpoint();\n\tconst found = endpoints.find((e) => e.id === activeId);\n\tif (!found) return defaultEndpoint();\n\treturn {\n\t\t...found,\n\t\tkind: kindOf(found),\n\t\tisDefault: false\n\t};\n}\nfunction setActiveConnectionId(id) {\n\tconst data = readFile();\n\tif (!id || id === DEFAULT_ID) data.activeId = null;\n\telse if (id === LOCAL_ELECTRON_ID) {\n\t\tif (!localEndpoint()) throw new Error(\"Local OpenCode is not running (Electron only)\");\n\t\tdata.activeId = LOCAL_ELECTRON_ID;\n\t} else {\n\t\tif (!data.endpoints.some((e) => e.id === id)) throw new Error(`Endpoint not found: ${id}`);\n\t\tdata.activeId = id;\n\t}\n\twriteFile(data);\n\treturn getActiveConnection();\n}\n/**\n* User-addable connection kinds (#486 D2). `local-opencode` is reserved for\n* synthesized entries (the env-derived default, the Electron local-runtime\n* entry) and is never accepted from a write path.\n*/\nvar USER_ADDABLE_CONNECTION_KINDS = [\"remote-opencode\", \"openpalm-client-api\"];\n/**\n* Normalize a guardian ('openpalm-client-api'-kind) connection URL so it\n* always ends in `/oc` — the guardian's direct-ingress base path\n* (#486 D2). Operates on an ALREADY `normalizeEndpointUrl`-ed string (no\n* trailing slash), so only the `/oc` suffix logic is needed here.\n*\n* `packages/client/src/lib/connections/url-policy.ts` carries a deliberate\n* CLIENT-side twin (`normalizeGuardianUrl`) with the same rule — the client\n* artifact may not import host code and vice versa, so this is the same\n* accepted duplication as `validateConnectionUrl`/`validateEndpointUrl`.\n* Both are pinned by their own tests.\n*/\nfunction normalizeGuardianOcUrl(url) {\n\treturn url.endsWith(\"/oc\") ? url : `${url}/oc`;\n}\nfunction assertAddableKind(kind) {\n\tif (kind === void 0) return;\n\tif (!USER_ADDABLE_CONNECTION_KINDS.includes(kind)) throw new Error(\"Invalid connection kind\");\n}\nfunction addConnection(input) {\n\tconst label = input.label.trim();\n\tif (!label) throw new Error(\"Label is required\");\n\tlet url = normalizeEndpointUrl(input.url);\n\tif (!url) throw new Error(\"URL must be a valid http(s) URL\");\n\tassertAddableKind(input.kind);\n\tif (input.kind === \"openpalm-client-api\") url = normalizeGuardianOcUrl(url);\n\tconst data = readFile();\n\tconst entry = {\n\t\tid: randomUUID(),\n\t\tlabel,\n\t\turl,\n\t\t...input.password ? { password: input.password } : {},\n\t\t...input.kind ? { kind: input.kind } : {}\n\t};\n\tdata.endpoints.push(entry);\n\twriteFile(data);\n\treturn entry;\n}\nfunction updateConnection(id, patch) {\n\tif (id === DEFAULT_ID) throw new Error(\"Cannot edit the default endpoint\");\n\tif (id === LOCAL_ELECTRON_ID) throw new Error(\"Cannot edit the local Electron OpenCode entry (it is ephemeral and per-launch)\");\n\tassertAddableKind(patch.kind);\n\tconst data = readFile();\n\tconst idx = data.endpoints.findIndex((e) => e.id === id);\n\tif (idx === -1) throw new Error(`Endpoint not found: ${id}`);\n\tconst next = { ...data.endpoints[idx] };\n\tif (patch.label !== void 0) {\n\t\tconst label = patch.label.trim();\n\t\tif (!label) throw new Error(\"Label cannot be empty\");\n\t\tnext.label = label;\n\t}\n\tif (patch.url !== void 0) {\n\t\tconst url = normalizeEndpointUrl(patch.url);\n\t\tif (!url) throw new Error(\"URL must be a valid http(s) URL\");\n\t\tnext.url = url;\n\t}\n\tif (patch.password === null) delete next.password;\n\telse if (typeof patch.password === \"string\") next.password = patch.password;\n\tif (patch.kind !== void 0) next.kind = patch.kind;\n\tif (next.kind === \"openpalm-client-api\") next.url = normalizeGuardianOcUrl(next.url);\n\tdata.endpoints[idx] = next;\n\twriteFile(data);\n\treturn next;\n}\nfunction deleteConnection(id) {\n\tif (id === DEFAULT_ID) throw new Error(\"Cannot delete the default endpoint\");\n\tif (id === LOCAL_ELECTRON_ID) throw new Error(\"Cannot delete the local Electron OpenCode entry (managed by Electron lifecycle)\");\n\tconst data = readFile();\n\tconst idx = data.endpoints.findIndex((e) => e.id === id);\n\tif (idx === -1) throw new Error(`Endpoint not found: ${id}`);\n\tdata.endpoints.splice(idx, 1);\n\tif (data.activeId === id) data.activeId = null;\n\twriteFile(data);\n}\nasync function probeEndpoint(endpoint) {\n\tconst headers = new Headers();\n\tif (endpoint.password) {\n\t\tconst username = endpoint.username ?? DEFAULT_OPENCODE_USERNAME;\n\t\theaders.set(\"authorization\", basicAuthHeader(username, endpoint.password));\n\t}\n\tconst probeUrl = endpoint.kind === \"openpalm-client-api\" ? `${endpoint.url}/session` : endpoint.url;\n\ttry {\n\t\tconst response = await fetch(probeUrl, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders,\n\t\t\tredirect: \"manual\",\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t});\n\t\tif (response.status === 401 || response.status === 403) return {\n\t\t\tid: endpoint.id,\n\t\t\tname: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tstate: \"unauthorized\",\n\t\t\tdetail: `HTTP ${response.status}`\n\t\t};\n\t\tif (response.ok || response.status >= 300 && response.status < 400) return {\n\t\t\tid: endpoint.id,\n\t\t\tname: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tstate: \"accessible\"\n\t\t};\n\t\treturn {\n\t\t\tid: endpoint.id,\n\t\t\tname: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tstate: \"unreachable\",\n\t\t\tdetail: `HTTP ${response.status}`\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tid: endpoint.id,\n\t\t\tname: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tstate: \"unreachable\",\n\t\t\tdetail: error instanceof Error ? error.message : String(error)\n\t\t};\n\t}\n}\nasync function listRemoteStatuses() {\n\tif (remoteStatusCache && remoteStatusCache.expiresAt > Date.now()) return remoteStatusCache.value.map((status) => ({ ...status }));\n\tconst statuses = await Promise.all(listConnections().map((endpoint) => probeEndpoint(endpoint)));\n\tremoteStatusCache = {\n\t\tvalue: statuses,\n\t\texpiresAt: Date.now() + 5e3\n\t};\n\treturn statuses.map((status) => ({ ...status }));\n}\n//#endregion\nexport { listConnections as a, setActiveConnectionId as c, basicAuthHeader as d, getActiveConnection as i, updateConnection as l, addConnection as n, listRemoteStatuses as o, deleteConnection as r, redactEndpointUrlUserinfo as s, USER_ADDABLE_CONNECTION_KINDS as t, validateEndpointUrl as u };\n"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- import { aL as resolveClientAppPort, P as PLATFORM_VERSION } from './src-DbArH65P.js';
2
-
3
- var package_default = {
4
- version: "0.13.0-beta.6"};
5
- //#endregion
6
- //#region src/lib/server/features.ts
7
- /**
8
- * Server runtime context — RuntimeContext v2 (plan ui-runtime-modes-plan.md
9
- * §6.1, issue #509). Computed server-side on every request via
10
- * +layout.server.ts and served publicly at GET /api/runtime (the
11
- * contract-version handshake for remote/hosted clients).
12
- *
13
- * hostMode resolution (Phase 1):
14
- * OP_UI_HOST_MODE (explicit) → that mode
15
- * else OP_INSIDE_ELECTRON=1 → 'electron-host' (legacy, injected by
16
- * packages/electron/src/main.ts)
17
- * else OP_ENABLE_ADMIN=1 → 'host-ui' (legacy, local dev / openpalm admin)
18
- * else → 'pwa-static' baseline
19
- */
20
- var HOST_MODES = [
21
- "electron-host",
22
- "host-ui",
23
- "assistant-container",
24
- "pwa-static"
25
- ];
26
- function isUiHostMode(value) {
27
- return HOST_MODES.includes(value);
28
- }
29
- function resolveHostMode() {
30
- const explicit = process.env.OP_UI_HOST_MODE?.trim() ?? "";
31
- if (isUiHostMode(explicit)) return explicit;
32
- if (process.env.OP_INSIDE_ELECTRON === "1") return "electron-host";
33
- if (process.env.OP_ENABLE_ADMIN === "1") return "host-ui";
34
- return "pwa-static";
35
- }
36
- /** Capabilities of a host-capable process (electron-host / host-ui). Note:
37
- * never 'connections:single' — that marker is the assistant-container
38
- * branch key in resolveCapabilities() (plan §6.2). */
39
- var HOST_MODE_CAPABILITIES = [
40
- "chat",
41
- "connections:read",
42
- "connections:manage",
43
- "connections:switch",
44
- "assistant-settings:read",
45
- "assistant-settings:write",
46
- ...[
47
- "host:setup",
48
- "host:stack:read",
49
- "host:stack:write",
50
- "host:containers",
51
- "host:addons",
52
- "host:updates",
53
- "host:logs",
54
- "host:secrets",
55
- "host:recovery",
56
- "host:akm-sharing"
57
- ]
58
- ];
59
- var SERVER_CAPABILITIES = {
60
- "electron-host": HOST_MODE_CAPABILITIES,
61
- "host-ui": HOST_MODE_CAPABILITIES,
62
- "assistant-container": [
63
- "connections:single",
64
- "chat",
65
- "assistant-settings:read",
66
- "assistant-settings:write"
67
- ],
68
- "pwa-static": [
69
- "chat",
70
- "connections:read",
71
- "connections:manage",
72
- "connections:switch",
73
- "pwa:install"
74
- ]
75
- };
76
- /** Route pointers per mode — current-truth URLs. Phase 2 (#486) moved
77
- * connections to /connections; Phase 4 moved the host dashboard to /host
78
- * (/admin/* is a dead namespace — router 404, no alias). */
79
- function routesForMode(mode) {
80
- switch (mode) {
81
- case "electron-host":
82
- case "host-ui": return {
83
- chat: "/chat",
84
- connections: "/connections",
85
- host: "/host",
86
- setup: "/setup"
87
- };
88
- case "assistant-container": return { chat: "/chat" };
89
- case "pwa-static": return {
90
- chat: "/chat",
91
- connections: "/connections"
92
- };
93
- }
94
- }
95
- function computeServerRuntimeContext(event) {
96
- const hostMode = resolveHostMode();
97
- const isHostCapable = hostMode === "electron-host" || hostMode === "host-ui";
98
- const clientAppUrl = hostMode === "assistant-container" ? void 0 : `http://127.0.0.1:${resolveClientAppPort(process.env)}`;
99
- return {
100
- version: 2,
101
- hostMode,
102
- serverCapabilities: [...SERVER_CAPABILITIES[hostMode]],
103
- publicBaseUrl: event.url?.origin ?? "",
104
- uiVersion: package_default.version,
105
- skeletonVersion: process.env.OP_SKELETON_VERSION?.trim() || PLATFORM_VERSION,
106
- activeConnectionMode: hostMode === "assistant-container" ? "single" : "multi",
107
- ...clientAppUrl !== void 0 ? { clientAppUrl } : {},
108
- routes: routesForMode(hostMode),
109
- security: {
110
- hostAdminLoopbackOnly: true,
111
- requiresHttpsForRemoteConnections: hostMode === "pwa-static",
112
- csrfMode: isHostCapable ? "loopback-origin" : hostMode === "assistant-container" ? "same-site" : "bearer-token"
113
- }
114
- };
115
- }
116
-
117
- export { computeServerRuntimeContext as c };
118
- //# sourceMappingURL=features-BW-bVsl8.js.map