@openpalm/ui 0.12.22 → 0.12.23

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 (302) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/B88bDQ93.js +1 -0
  3. package/build/client/_app/immutable/chunks/B88bDQ93.js.br +2 -0
  4. package/build/client/_app/immutable/chunks/B88bDQ93.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{BRX6kifW.js → BjCyXDZy.js} +1 -1
  6. package/build/client/_app/immutable/chunks/BjCyXDZy.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/BjCyXDZy.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/CAAiIhwC.js +3 -0
  9. package/build/client/_app/immutable/chunks/CAAiIhwC.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/CAAiIhwC.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{_60-pFCk.js → CP1N4Jy5.js} +1 -1
  12. package/build/client/_app/immutable/chunks/CP1N4Jy5.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/CP1N4Jy5.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/{app.BjL1fvKO.js → app.BcL08IcT.js} +2 -2
  15. package/build/client/_app/immutable/entry/app.BcL08IcT.js.br +0 -0
  16. package/build/client/_app/immutable/entry/app.BcL08IcT.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/start.CAuRWqZB.js +1 -0
  18. package/build/client/_app/immutable/entry/start.CAuRWqZB.js.br +0 -0
  19. package/build/client/_app/immutable/entry/start.CAuRWqZB.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.B7a7Tm6Z.js → 1.uNWROKRa.js} +1 -1
  21. package/build/client/_app/immutable/nodes/{1.B7a7Tm6Z.js.br → 1.uNWROKRa.js.br} +0 -0
  22. package/build/client/_app/immutable/nodes/1.uNWROKRa.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{4.DI__DjJl.js → 4.CNN_a8JB.js} +1 -1
  24. package/build/client/_app/immutable/nodes/4.CNN_a8JB.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/4.CNN_a8JB.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{5.B9AKDWT5.js → 5.rZSa9V3W.js} +1 -1
  27. package/build/client/_app/immutable/nodes/5.rZSa9V3W.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/5.rZSa9V3W.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{6.hyWOgJjN.js → 6.DUAMcwSm.js} +1 -1
  30. package/build/client/_app/immutable/nodes/6.DUAMcwSm.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/6.DUAMcwSm.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{7.nZLq6rhJ.js → 7.B1u5a8yO.js} +1 -1
  33. package/build/client/_app/immutable/nodes/7.B1u5a8yO.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/7.B1u5a8yO.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{8.DHYGH125.js → 8.DW8zKXS4.js} +1 -1
  36. package/build/client/_app/immutable/nodes/8.DW8zKXS4.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/8.DW8zKXS4.js.gz +0 -0
  38. package/build/client/_app/version.json +1 -1
  39. package/build/client/_app/version.json.br +1 -1
  40. package/build/client/_app/version.json.gz +0 -0
  41. package/build/server/chunks/1-B2LhxwPN.js +9 -0
  42. package/build/server/chunks/{1-DC1YDW9y.js.map → 1-B2LhxwPN.js.map} +1 -1
  43. package/build/server/chunks/{10-BnN-v5b4.js → 10-DQCiYDxy.js} +5 -5
  44. package/build/server/chunks/{10-BnN-v5b4.js.map → 10-DQCiYDxy.js.map} +1 -1
  45. package/build/server/chunks/{4-BnTXsRc6.js → 4-2GARyIXu.js} +3 -3
  46. package/build/server/chunks/{4-BnTXsRc6.js.map → 4-2GARyIXu.js.map} +1 -1
  47. package/build/server/chunks/{5-C26TlGBo.js → 5-BPq_SUbr.js} +3 -3
  48. package/build/server/chunks/{5-C26TlGBo.js.map → 5-BPq_SUbr.js.map} +1 -1
  49. package/build/server/chunks/{6-D1YRT-u9.js → 6-Bnw_JRXO.js} +3 -3
  50. package/build/server/chunks/{6-D1YRT-u9.js.map → 6-Bnw_JRXO.js.map} +1 -1
  51. package/build/server/chunks/{7-DB2WCCTk.js → 7-ZktGMDHm.js} +3 -3
  52. package/build/server/chunks/{7-DB2WCCTk.js.map → 7-ZktGMDHm.js.map} +1 -1
  53. package/build/server/chunks/{8-D9q3TEwk.js → 8-V3DHLq7L.js} +3 -3
  54. package/build/server/chunks/{8-D9q3TEwk.js.map → 8-V3DHLq7L.js.map} +1 -1
  55. package/build/server/chunks/{Navbar-Bx84i9hX.js → Navbar-CRs8Q1Ed.js} +3 -3
  56. package/build/server/chunks/{Navbar-Bx84i9hX.js.map → Navbar-CRs8Q1Ed.js.map} +1 -1
  57. package/build/server/chunks/{_page.svelte-Ce5yuZKH.js → _page.svelte-BtDkjht-.js} +5 -5
  58. package/build/server/chunks/{_page.svelte-Ce5yuZKH.js.map → _page.svelte-BtDkjht-.js.map} +1 -1
  59. package/build/server/chunks/{_page.svelte-DhqtAyz4.js → _page.svelte-CXr3izpr.js} +3 -3
  60. package/build/server/chunks/{_page.svelte-DhqtAyz4.js.map → _page.svelte-CXr3izpr.js.map} +1 -1
  61. package/build/server/chunks/{_page.svelte-VwZb1o-L.js → _page.svelte-D6dWiRVl.js} +5 -5
  62. package/build/server/chunks/{_page.svelte-VwZb1o-L.js.map → _page.svelte-D6dWiRVl.js.map} +1 -1
  63. package/build/server/chunks/{_page.svelte-Dlch5rzj.js → _page.svelte-Lhm6ya_b.js} +3 -3
  64. package/build/server/chunks/{_page.svelte-Dlch5rzj.js.map → _page.svelte-Lhm6ya_b.js.map} +1 -1
  65. package/build/server/chunks/{_page.svelte-1gYVQfSX.js → _page.svelte-m5t0OVcz.js} +5 -5
  66. package/build/server/chunks/{_page.svelte-1gYVQfSX.js.map → _page.svelte-m5t0OVcz.js.map} +1 -1
  67. package/build/server/chunks/{_server.ts-CYCJvxkC.js → _server.ts-7h410aJe.js} +5 -5
  68. package/build/server/chunks/{_server.ts-CYCJvxkC.js.map → _server.ts-7h410aJe.js.map} +1 -1
  69. package/build/server/chunks/{_server.ts-DHBjlBuv.js → _server.ts-B-io71lH.js} +5 -5
  70. package/build/server/chunks/{_server.ts-DHBjlBuv.js.map → _server.ts-B-io71lH.js.map} +1 -1
  71. package/build/server/chunks/{_server.ts-DyAZoRvd.js → _server.ts-B7oFBy_Y.js} +6 -6
  72. package/build/server/chunks/{_server.ts-DyAZoRvd.js.map → _server.ts-B7oFBy_Y.js.map} +1 -1
  73. package/build/server/chunks/{_server.ts-Cn7LfLF_.js → _server.ts-BEsxh5-r.js} +7 -7
  74. package/build/server/chunks/{_server.ts-Cn7LfLF_.js.map → _server.ts-BEsxh5-r.js.map} +1 -1
  75. package/build/server/chunks/{_server.ts-B1qG26BE.js → _server.ts-BFQCNuCf.js} +5 -5
  76. package/build/server/chunks/{_server.ts-B1qG26BE.js.map → _server.ts-BFQCNuCf.js.map} +1 -1
  77. package/build/server/chunks/{_server.ts-C4I0eH50.js → _server.ts-BIJomr8k.js} +5 -5
  78. package/build/server/chunks/{_server.ts-C4I0eH50.js.map → _server.ts-BIJomr8k.js.map} +1 -1
  79. package/build/server/chunks/{_server.ts-D8EweJQC.js → _server.ts-BJd_BeRX.js} +5 -5
  80. package/build/server/chunks/{_server.ts-D8EweJQC.js.map → _server.ts-BJd_BeRX.js.map} +1 -1
  81. package/build/server/chunks/{_server.ts-e-kt0L13.js → _server.ts-BLnGiLfS.js} +4 -4
  82. package/build/server/chunks/{_server.ts-e-kt0L13.js.map → _server.ts-BLnGiLfS.js.map} +1 -1
  83. package/build/server/chunks/{_server.ts-sY8nzvys.js → _server.ts-BMTnompE.js} +5 -5
  84. package/build/server/chunks/{_server.ts-sY8nzvys.js.map → _server.ts-BMTnompE.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-8b481A1c.js → _server.ts-BTeSTLAx.js} +5 -5
  86. package/build/server/chunks/{_server.ts-8b481A1c.js.map → _server.ts-BTeSTLAx.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-GB9Cj5oM.js → _server.ts-BaqsSmFS.js} +5 -5
  88. package/build/server/chunks/{_server.ts-GB9Cj5oM.js.map → _server.ts-BaqsSmFS.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-X_5reIBA.js → _server.ts-BcIPGO7x.js} +5 -5
  90. package/build/server/chunks/{_server.ts-X_5reIBA.js.map → _server.ts-BcIPGO7x.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-Dx-W9dxd.js → _server.ts-BdPGrcpF.js} +5 -5
  92. package/build/server/chunks/{_server.ts-Dx-W9dxd.js.map → _server.ts-BdPGrcpF.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-jyQMP3IC.js → _server.ts-BeXMVrJG.js} +5 -5
  94. package/build/server/chunks/{_server.ts-jyQMP3IC.js.map → _server.ts-BeXMVrJG.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-DWXKoPC3.js → _server.ts-BghreOti.js} +5 -5
  96. package/build/server/chunks/{_server.ts-DWXKoPC3.js.map → _server.ts-BghreOti.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-B9ykDkc2.js → _server.ts-Bi33i7c7.js} +2 -2
  98. package/build/server/chunks/{_server.ts-B9ykDkc2.js.map → _server.ts-Bi33i7c7.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-CN-ITxq_.js → _server.ts-BjSX-JsT.js} +6 -6
  100. package/build/server/chunks/{_server.ts-CN-ITxq_.js.map → _server.ts-BjSX-JsT.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-CQgWS2hB.js → _server.ts-BokcuCWE.js} +6 -6
  102. package/build/server/chunks/{_server.ts-CQgWS2hB.js.map → _server.ts-BokcuCWE.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-Bk-SzSGo.js → _server.ts-BwQSiREZ.js} +5 -5
  104. package/build/server/chunks/{_server.ts-Bk-SzSGo.js.map → _server.ts-BwQSiREZ.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-CAwWO268.js → _server.ts-Bw_r9OtK.js} +5 -5
  106. package/build/server/chunks/{_server.ts-CAwWO268.js.map → _server.ts-Bw_r9OtK.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-KhshtfY7.js → _server.ts-Byn8EbtL.js} +7 -7
  108. package/build/server/chunks/{_server.ts-KhshtfY7.js.map → _server.ts-Byn8EbtL.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-c9nn_lEh.js → _server.ts-C0b2kLwv.js} +5 -5
  110. package/build/server/chunks/{_server.ts-c9nn_lEh.js.map → _server.ts-C0b2kLwv.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-B9CQbSjg.js → _server.ts-C2dpWx7K.js} +4 -4
  112. package/build/server/chunks/{_server.ts-B9CQbSjg.js.map → _server.ts-C2dpWx7K.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-9qPwtSPc.js → _server.ts-C3asto5q.js} +5 -5
  114. package/build/server/chunks/{_server.ts-9qPwtSPc.js.map → _server.ts-C3asto5q.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-C9QeDhXf.js → _server.ts-C4WOD37G.js} +5 -5
  116. package/build/server/chunks/{_server.ts-C9QeDhXf.js.map → _server.ts-C4WOD37G.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-CcyDtTCy.js → _server.ts-C8LFsdDG.js} +5 -5
  118. package/build/server/chunks/{_server.ts-CcyDtTCy.js.map → _server.ts-C8LFsdDG.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-9AjUEqAT.js → _server.ts-C8xyXBY5.js} +6 -6
  120. package/build/server/chunks/{_server.ts-9AjUEqAT.js.map → _server.ts-C8xyXBY5.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-D91I-wzU.js → _server.ts-CAlt9gW0.js} +5 -5
  122. package/build/server/chunks/{_server.ts-D91I-wzU.js.map → _server.ts-CAlt9gW0.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-29oJfZHd.js → _server.ts-CBEVK-Yt.js} +2 -2
  124. package/build/server/chunks/{_server.ts-29oJfZHd.js.map → _server.ts-CBEVK-Yt.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-DhgUx_Ar.js → _server.ts-CGzgULKV.js} +5 -5
  126. package/build/server/chunks/{_server.ts-DhgUx_Ar.js.map → _server.ts-CGzgULKV.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-B_0VQmyi.js → _server.ts-CJWPhww2.js} +5 -5
  128. package/build/server/chunks/{_server.ts-B_0VQmyi.js.map → _server.ts-CJWPhww2.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-W0CmGtTj.js → _server.ts-CLt4mqCt.js} +7 -7
  130. package/build/server/chunks/{_server.ts-W0CmGtTj.js.map → _server.ts-CLt4mqCt.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-iCDhsOOY.js → _server.ts-CQH5FEPp.js} +6 -6
  132. package/build/server/chunks/{_server.ts-iCDhsOOY.js.map → _server.ts-CQH5FEPp.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-BdDIXPU0.js → _server.ts-CRY9d7-F.js} +5 -5
  134. package/build/server/chunks/{_server.ts-BdDIXPU0.js.map → _server.ts-CRY9d7-F.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-BPdeRlDI.js → _server.ts-CWNf8Ve1.js} +5 -5
  136. package/build/server/chunks/{_server.ts-BPdeRlDI.js.map → _server.ts-CWNf8Ve1.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-Ds26GwEH.js → _server.ts-C_qyw2yL.js} +5 -5
  138. package/build/server/chunks/{_server.ts-Ds26GwEH.js.map → _server.ts-C_qyw2yL.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-CwgY6ghJ.js → _server.ts-CaZ1wy9x.js} +7 -7
  140. package/build/server/chunks/{_server.ts-CwgY6ghJ.js.map → _server.ts-CaZ1wy9x.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-CdHxUlD_.js → _server.ts-Cdq3e7xA.js} +5 -5
  142. package/build/server/chunks/{_server.ts-CdHxUlD_.js.map → _server.ts-Cdq3e7xA.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-EYK0bXvj.js → _server.ts-ChI4fTd4.js} +5 -5
  144. package/build/server/chunks/{_server.ts-EYK0bXvj.js.map → _server.ts-ChI4fTd4.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-C9cnB4KZ.js → _server.ts-CiWKQbiz.js} +5 -5
  146. package/build/server/chunks/{_server.ts-C9cnB4KZ.js.map → _server.ts-CiWKQbiz.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-C0ch963P.js → _server.ts-CtVWuskm.js} +2 -2
  148. package/build/server/chunks/{_server.ts-C0ch963P.js.map → _server.ts-CtVWuskm.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-DIUdkrLE.js → _server.ts-CwPqNJOY.js} +5 -5
  150. package/build/server/chunks/{_server.ts-DIUdkrLE.js.map → _server.ts-CwPqNJOY.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-CBIx55nw.js → _server.ts-D-pLD7Xu.js} +5 -5
  152. package/build/server/chunks/{_server.ts-CBIx55nw.js.map → _server.ts-D-pLD7Xu.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-B8xyYAeq.js → _server.ts-D0RXp78c.js} +5 -5
  154. package/build/server/chunks/{_server.ts-B8xyYAeq.js.map → _server.ts-D0RXp78c.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-B__xH1cU.js → _server.ts-D9jCVXyy.js} +5 -5
  156. package/build/server/chunks/{_server.ts-B__xH1cU.js.map → _server.ts-D9jCVXyy.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-CNy4jIvv.js → _server.ts-DBFkIfX3.js} +5 -5
  158. package/build/server/chunks/{_server.ts-CNy4jIvv.js.map → _server.ts-DBFkIfX3.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-BjAWFnFv.js → _server.ts-DBRLxv1J.js} +6 -6
  160. package/build/server/chunks/{_server.ts-BjAWFnFv.js.map → _server.ts-DBRLxv1J.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-CRSZ1H_z.js → _server.ts-DH2KwFMm.js} +5 -5
  162. package/build/server/chunks/{_server.ts-CRSZ1H_z.js.map → _server.ts-DH2KwFMm.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-CibQYGvX.js → _server.ts-DN9DIE7V.js} +6 -6
  164. package/build/server/chunks/{_server.ts-CibQYGvX.js.map → _server.ts-DN9DIE7V.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-DarGs6EN.js → _server.ts-DNQDl4In.js} +5 -5
  166. package/build/server/chunks/{_server.ts-DarGs6EN.js.map → _server.ts-DNQDl4In.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-C6geMqYp.js → _server.ts-DQCc-bcg.js} +5 -5
  168. package/build/server/chunks/{_server.ts-C6geMqYp.js.map → _server.ts-DQCc-bcg.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-54pdKqwY.js → _server.ts-DVJYo8_h.js} +6 -6
  170. package/build/server/chunks/{_server.ts-54pdKqwY.js.map → _server.ts-DVJYo8_h.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-CeGOgSlg.js → _server.ts-DXMBj9CH.js} +8 -8
  172. package/build/server/chunks/{_server.ts-CeGOgSlg.js.map → _server.ts-DXMBj9CH.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-fV4HpgOz.js → _server.ts-DY8vqCzu.js} +5 -5
  174. package/build/server/chunks/{_server.ts-fV4HpgOz.js.map → _server.ts-DY8vqCzu.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-D6BJWhEf.js → _server.ts-D_iVYIT5.js} +5 -5
  176. package/build/server/chunks/{_server.ts-D6BJWhEf.js.map → _server.ts-D_iVYIT5.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-hqvYcJBt.js → _server.ts-Dc-DuHRl.js} +5 -5
  178. package/build/server/chunks/{_server.ts-hqvYcJBt.js.map → _server.ts-Dc-DuHRl.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-8R-n-zEh.js → _server.ts-DeDvsRmd.js} +5 -5
  180. package/build/server/chunks/{_server.ts-8R-n-zEh.js.map → _server.ts-DeDvsRmd.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-DGHL7uho.js → _server.ts-DgU1uBsl.js} +5 -5
  182. package/build/server/chunks/{_server.ts-DGHL7uho.js.map → _server.ts-DgU1uBsl.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-D_Zne8zk.js → _server.ts-DiUBKtYa.js} +5 -5
  184. package/build/server/chunks/{_server.ts-D_Zne8zk.js.map → _server.ts-DiUBKtYa.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-B5JZoMbG.js → _server.ts-DlONqa0N.js} +6 -6
  186. package/build/server/chunks/{_server.ts-B5JZoMbG.js.map → _server.ts-DlONqa0N.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-DdjZAsqc.js → _server.ts-Do8_4nUh.js} +5 -5
  188. package/build/server/chunks/{_server.ts-DdjZAsqc.js.map → _server.ts-Do8_4nUh.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-CuYIpIzp.js → _server.ts-DtVcRD5A.js} +5 -5
  190. package/build/server/chunks/{_server.ts-CuYIpIzp.js.map → _server.ts-DtVcRD5A.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-CHGTPklX.js → _server.ts-DueQnU1L.js} +6 -6
  192. package/build/server/chunks/{_server.ts-CHGTPklX.js.map → _server.ts-DueQnU1L.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-Crdovz8j.js → _server.ts-DvsmHJew.js} +5 -5
  194. package/build/server/chunks/{_server.ts-Crdovz8j.js.map → _server.ts-DvsmHJew.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-BtlnrMKD.js → _server.ts-DxYoYjKM.js} +5 -5
  196. package/build/server/chunks/{_server.ts-BtlnrMKD.js.map → _server.ts-DxYoYjKM.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-BxRGCjoH.js → _server.ts-Eq4SzuV_.js} +5 -5
  198. package/build/server/chunks/{_server.ts-BxRGCjoH.js.map → _server.ts-Eq4SzuV_.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-By1az2OR.js → _server.ts-KuD8Wpms.js} +5 -5
  200. package/build/server/chunks/{_server.ts-By1az2OR.js.map → _server.ts-KuD8Wpms.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-BswBNUz0.js → _server.ts-Q60q44Je.js} +5 -5
  202. package/build/server/chunks/{_server.ts-BswBNUz0.js.map → _server.ts-Q60q44Je.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CejBAnbx.js → _server.ts-RfzeE7tM.js} +2 -2
  204. package/build/server/chunks/{_server.ts-CejBAnbx.js.map → _server.ts-RfzeE7tM.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-CloVt7eS.js → _server.ts-Rigt7lcd.js} +7 -7
  206. package/build/server/chunks/{_server.ts-CloVt7eS.js.map → _server.ts-Rigt7lcd.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-CxxrQ9Wz.js → _server.ts-XhNvTVYt.js} +5 -5
  208. package/build/server/chunks/{_server.ts-CxxrQ9Wz.js.map → _server.ts-XhNvTVYt.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-CKblTbUe.js → _server.ts-Zui06dcA.js} +5 -5
  210. package/build/server/chunks/{_server.ts-CKblTbUe.js.map → _server.ts-Zui06dcA.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-ChJzwk4k.js → _server.ts-a1r-EHX0.js} +6 -6
  212. package/build/server/chunks/{_server.ts-ChJzwk4k.js.map → _server.ts-a1r-EHX0.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-D6Y4c9rj.js → _server.ts-cHc1drrp.js} +2 -2
  214. package/build/server/chunks/{_server.ts-D6Y4c9rj.js.map → _server.ts-cHc1drrp.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-CmjNZw87.js → _server.ts-eYpUsioT.js} +6 -6
  216. package/build/server/chunks/{_server.ts-CmjNZw87.js.map → _server.ts-eYpUsioT.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-BeSu9n9F.js → _server.ts-iKClbuyO.js} +5 -5
  218. package/build/server/chunks/{_server.ts-BeSu9n9F.js.map → _server.ts-iKClbuyO.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-CDHXmvId.js → _server.ts-j1haXquD.js} +5 -5
  220. package/build/server/chunks/{_server.ts-CDHXmvId.js.map → _server.ts-j1haXquD.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-cNcqERWY.js → _server.ts-k5rG5cUI.js} +7 -7
  222. package/build/server/chunks/{_server.ts-cNcqERWY.js.map → _server.ts-k5rG5cUI.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-DNag2rCU.js → _server.ts-k9P3ZBDK.js} +5 -5
  224. package/build/server/chunks/{_server.ts-DNag2rCU.js.map → _server.ts-k9P3ZBDK.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-D9yPVLtB.js → _server.ts-ll-0r5dM.js} +5 -5
  226. package/build/server/chunks/{_server.ts-D9yPVLtB.js.map → _server.ts-ll-0r5dM.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-YHTGVduj.js → _server.ts-m1RQkdUW.js} +5 -5
  228. package/build/server/chunks/{_server.ts-YHTGVduj.js.map → _server.ts-m1RQkdUW.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-DC0rWv53.js → _server.ts-nVEAwKYe.js} +5 -5
  230. package/build/server/chunks/{_server.ts-DC0rWv53.js.map → _server.ts-nVEAwKYe.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-C2NuRv8K.js → _server.ts-vZTWdH4v.js} +5 -5
  232. package/build/server/chunks/{_server.ts-C2NuRv8K.js.map → _server.ts-vZTWdH4v.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-Bc4VE_mK.js → _server.ts-vpAn0Uxn.js} +6 -6
  234. package/build/server/chunks/{_server.ts-Bc4VE_mK.js.map → _server.ts-vpAn0Uxn.js.map} +1 -1
  235. package/build/server/chunks/{addon-helpers-DmjAK3BO.js → addon-helpers-kNrSUlMe.js} +3 -3
  236. package/build/server/chunks/{addon-helpers-DmjAK3BO.js.map → addon-helpers-kNrSUlMe.js.map} +1 -1
  237. package/build/server/chunks/{akm-B44WQaeD.js → akm-IP8X7RlR.js} +2 -2
  238. package/build/server/chunks/{akm-B44WQaeD.js.map → akm-IP8X7RlR.js.map} +1 -1
  239. package/build/server/chunks/{catalog-C8yZ2uH2.js → catalog-DcLI63rn.js} +5 -5
  240. package/build/server/chunks/{catalog-C8yZ2uH2.js.map → catalog-DcLI63rn.js.map} +1 -1
  241. package/build/server/chunks/{client-Dv5ruwWL.js → client-CIUwkogU.js} +2 -2
  242. package/build/server/chunks/{client-Dv5ruwWL.js.map → client-CIUwkogU.js.map} +1 -1
  243. package/build/server/chunks/{config-BXCHMmv_.js → config-EKy5PAZU.js} +2 -2
  244. package/build/server/chunks/{config-BXCHMmv_.js.map → config-EKy5PAZU.js.map} +1 -1
  245. package/build/server/chunks/{docker-qBTgU_Qa.js → docker-BhJS_Y28.js} +2 -2
  246. package/build/server/chunks/{docker-qBTgU_Qa.js.map → docker-BhJS_Y28.js.map} +1 -1
  247. package/build/server/chunks/{endpoints-BJw6odky.js → endpoints-Dq-IqF1t.js} +2 -2
  248. package/build/server/chunks/{endpoints-BJw6odky.js.map → endpoints-Dq-IqF1t.js.map} +1 -1
  249. package/build/server/chunks/{error.svelte-Bk8x64a4.js → error.svelte-Dbj-WAaz.js} +4 -4
  250. package/build/server/chunks/{error.svelte-Bk8x64a4.js.map → error.svelte-Dbj-WAaz.js.map} +1 -1
  251. package/build/server/chunks/{helpers-DB3Oat0M.js → helpers-s8d3gE38.js} +3 -3
  252. package/build/server/chunks/{helpers-DB3Oat0M.js.map → helpers-s8d3gE38.js.map} +1 -1
  253. package/build/server/chunks/{hooks.server-DoW_3zHD.js → hooks.server-Cy1D3efR.js} +7 -7
  254. package/build/server/chunks/{hooks.server-DoW_3zHD.js.map → hooks.server-Cy1D3efR.js.map} +1 -1
  255. package/build/server/chunks/{http-C4WWfxK-.js → http-BCF8LO-V.js} +2 -2
  256. package/build/server/chunks/{http-C4WWfxK-.js.map → http-BCF8LO-V.js.map} +1 -1
  257. package/build/server/chunks/{internal-Bkw-piFD.js → internal-CcLms467.js} +3 -3
  258. package/build/server/chunks/{internal-Bkw-piFD.js.map → internal-CcLms467.js.map} +1 -1
  259. package/build/server/chunks/{migration-status-C-gFVWrV.js → migration-status-BgiG_Rm6.js} +2 -2
  260. package/build/server/chunks/{migration-status-C-gFVWrV.js.map → migration-status-BgiG_Rm6.js.map} +1 -1
  261. package/build/server/chunks/{session-cookie-DYlRFqU6.js → session-cookie-F6DkHp5H.js} +2 -2
  262. package/build/server/chunks/{session-cookie-DYlRFqU6.js.map → session-cookie-F6DkHp5H.js.map} +1 -1
  263. package/build/server/chunks/{setup-deploy-D3XucKIu.js → setup-deploy-BtgW_nbb.js} +2 -2
  264. package/build/server/chunks/{setup-deploy-D3XucKIu.js.map → setup-deploy-BtgW_nbb.js.map} +1 -1
  265. package/build/server/chunks/{src-DPd0Zos1.js → src-BN-m14sE.js} +2 -2
  266. package/build/server/chunks/{src-DPd0Zos1.js.map → src-BN-m14sE.js.map} +1 -1
  267. package/build/server/chunks/{state-CmEW57i2.js → state-BjAIjYtQ.js} +2 -2
  268. package/build/server/chunks/{state-CmEW57i2.js.map → state-BjAIjYtQ.js.map} +1 -1
  269. package/build/server/chunks/{state2-zSoANrav.js → state2-CeseXnTO.js} +2 -2
  270. package/build/server/chunks/{state2-zSoANrav.js.map → state2-CeseXnTO.js.map} +1 -1
  271. package/build/server/index.js +1 -1
  272. package/build/server/index.js.map +1 -1
  273. package/build/server/manifest.js +92 -92
  274. package/build/server/manifest.js.map +1 -1
  275. package/package.json +2 -2
  276. package/build/client/_app/immutable/chunks/BRX6kifW.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/BRX6kifW.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/BXNfEZOa.js +0 -3
  279. package/build/client/_app/immutable/chunks/BXNfEZOa.js.br +0 -0
  280. package/build/client/_app/immutable/chunks/BXNfEZOa.js.gz +0 -0
  281. package/build/client/_app/immutable/chunks/DLcBqErP.js +0 -1
  282. package/build/client/_app/immutable/chunks/DLcBqErP.js.br +0 -2
  283. package/build/client/_app/immutable/chunks/DLcBqErP.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/_60-pFCk.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/_60-pFCk.js.gz +0 -0
  286. package/build/client/_app/immutable/entry/app.BjL1fvKO.js.br +0 -0
  287. package/build/client/_app/immutable/entry/app.BjL1fvKO.js.gz +0 -0
  288. package/build/client/_app/immutable/entry/start.De0IKYiu.js +0 -1
  289. package/build/client/_app/immutable/entry/start.De0IKYiu.js.br +0 -0
  290. package/build/client/_app/immutable/entry/start.De0IKYiu.js.gz +0 -0
  291. package/build/client/_app/immutable/nodes/1.B7a7Tm6Z.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/4.DI__DjJl.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/4.DI__DjJl.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/5.B9AKDWT5.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/5.B9AKDWT5.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/6.hyWOgJjN.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/6.hyWOgJjN.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/7.nZLq6rhJ.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/7.nZLq6rhJ.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/8.DHYGH125.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/8.DHYGH125.js.gz +0 -0
  302. package/build/server/chunks/1-DC1YDW9y.js +0 -9
@@ -1,6 +1,6 @@
1
1
  import { F as head, d as attr, e as attr_class, a9 as stringify } from './dev-D85DamNs.js';
2
- import './client-Dv5ruwWL.js';
3
- import './internal-Bkw-piFD.js';
2
+ import './client-CIUwkogU.js';
3
+ import './internal-CcLms467.js';
4
4
  import './utils-BSRjJDrZ.js';
5
5
  import 'node:module';
6
6
  import './chunk-CLZ62Ad-.js';
@@ -43,4 +43,4 @@ function _page($$renderer, $$props) {
43
43
  }
44
44
 
45
45
  export { _page as default };
46
- //# sourceMappingURL=_page.svelte-Dlch5rzj.js.map
46
+ //# sourceMappingURL=_page.svelte-Lhm6ya_b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-Dlch5rzj.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, n as attr_class, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport { n as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/icons/IconReveal.svelte\nfunction IconReveal($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n}\n//#endregion\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"s-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><div class=\"s-gate-inner svelte-zhbyfn\"><div class=\"s-gate-mark svelte-zhbyfn\">openpalm</div> <form class=\"s-gate-form svelte-zhbyfn\"><input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"s-gate-field svelte-zhbyfn\"><label for=\"admin-token\" class=\"sr-only svelte-zhbyfn\">Admin Password</label> <input id=\"admin-token\" name=\"admin-token\" class=\"s-gate-input svelte-zhbyfn\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"password\" autocomplete=\"current-password\"/> <button type=\"button\" class=\"s-gate-reveal svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\tIconReveal($$renderer, { size: 14 });\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"s-gate-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"s-gate-submit svelte-zhbyfn\" type=\"submit\" aria-label=\"Unlock Console\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`Unlock Console`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></button></form></div></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACzC,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO;AACnD,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,sHAAsH,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,4GAA4G,CAAC,CAAC;AACzW;AACA;AACA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,ohBAAohB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,mHAAmH,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACvvB,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,8FAA8F,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5K,EAGS;AACT,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACpC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_page.svelte-Lhm6ya_b.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, n as attr_class, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport { n as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/icons/IconReveal.svelte\nfunction IconReveal($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n}\n//#endregion\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"s-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><div class=\"s-gate-inner svelte-zhbyfn\"><div class=\"s-gate-mark svelte-zhbyfn\">openpalm</div> <form class=\"s-gate-form svelte-zhbyfn\"><input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"s-gate-field svelte-zhbyfn\"><label for=\"admin-token\" class=\"sr-only svelte-zhbyfn\">Admin Password</label> <input id=\"admin-token\" name=\"admin-token\" class=\"s-gate-input svelte-zhbyfn\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"password\" autocomplete=\"current-password\"/> <button type=\"button\" class=\"s-gate-reveal svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\tIconReveal($$renderer, { size: 14 });\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"s-gate-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"s-gate-submit svelte-zhbyfn\" type=\"submit\" aria-label=\"Unlock Console\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`Unlock Console`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></button></form></div></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACzC,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,OAAO;AACnD,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,sHAAsH,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,4GAA4G,CAAC,CAAC;AACzW;AACA;AACA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,ohBAAohB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,mHAAmH,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACvvB,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,8FAA8F,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5K,EAGS;AACT,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACpC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,16 +1,16 @@
1
1
  import { F as head, s as escape_html, q as ensure_array_like, e as attr_class, d as attr, p as derived } from './dev-D85DamNs.js';
2
2
  import 'node:module';
3
3
  import { o as endpointsService } from './IconMic-DK0ZRKNm.js';
4
- import { N as Navbar } from './Navbar-Bx84i9hX.js';
4
+ import { N as Navbar } from './Navbar-CRs8Q1Ed.js';
5
5
  import { I as IconLock } from './IconLock-DHiqGiiZ.js';
6
6
  import './theme-state.svelte-DshW_ZYI.js';
7
7
  import './Spinner-jfNKSy3m.js';
8
- import './client-Dv5ruwWL.js';
9
- import './internal-Bkw-piFD.js';
8
+ import './client-CIUwkogU.js';
9
+ import './internal-CcLms467.js';
10
10
  import './utils-BSRjJDrZ.js';
11
11
  import './chunk-CLZ62Ad-.js';
12
12
  import './features.svelte-DsfDrPnq.js';
13
- import './state2-zSoANrav.js';
13
+ import './state2-CeseXnTO.js';
14
14
  import './IconLogo-Iv-7q8aY.js';
15
15
 
16
16
  //#region src/routes/admin/endpoints/+page.svelte
@@ -73,4 +73,4 @@ function _page($$renderer, $$props) {
73
73
  }
74
74
 
75
75
  export { _page as default };
76
- //# sourceMappingURL=_page.svelte-1gYVQfSX.js.map
76
+ //# sourceMappingURL=_page.svelte-m5t0OVcz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-1gYVQfSX.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/endpoints/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, s as head } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { c as endpointsService } from \"../../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../../chunks/Navbar.js\";\nimport { t as IconLock } from \"../../../../chunks/IconLock.js\";\n//#region src/routes/admin/endpoints/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet deletingId = null;\n\t\tconst endpoints = derived(() => endpointsService.endpoints);\n\t\tconst active = derived(() => endpointsService.active);\n\t\thead(\"m7qpzt\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Assistant Endpoints — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <main class=\"page svelte-m7qpzt\"><header class=\"page-header svelte-m7qpzt\"><h1 class=\"svelte-m7qpzt\">Assistant Endpoints</h1> <p class=\"lede svelte-m7qpzt\">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes\n from the environment (set by the launcher) and cannot be deleted. Add more endpoints to\n switch between stacks at any time.</p></header> `);\n\t\tif (endpointsService.error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"alert error svelte-m7qpzt\" role=\"alert\">${escape_html(endpointsService.error)}</div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <section class=\"endpoints-list svelte-m7qpzt\" aria-label=\"Configured endpoints\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(endpoints());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet ep = each_array[$$index];\n\t\t\t$$renderer.push(`<article${attr_class(\"endpoint-card svelte-m7qpzt\", void 0, { \"active\": ep.id === active()?.id })}><div class=\"endpoint-main svelte-m7qpzt\"><div class=\"endpoint-title svelte-m7qpzt\"><span class=\"endpoint-label svelte-m7qpzt\">${escape_html(ep.label)}</span> `);\n\t\t\tif (ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge default svelte-m7qpzt\">Default</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.id === active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge active svelte-m7qpzt\">Active</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.hasPassword) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge password svelte-m7qpzt\" title=\"Server password configured\">`);\n\t\t\t\tIconLock($$renderer, { size: 11 });\n\t\t\t\t$$renderer.push(`<!----></span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"endpoint-url svelte-m7qpzt\">${escape_html(ep.url)}</div></div> <div class=\"endpoint-actions svelte-m7qpzt\">`);\n\t\t\tif (ep.id !== active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary btn-sm\">Use this</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (!ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-secondary btn-sm\">Edit</button> <button type=\"button\" class=\"btn btn-danger btn-sm svelte-m7qpzt\"${attr(\"disabled\", deletingId === ep.id, true)}>${escape_html(deletingId === ep.id ? \"Removing…\" : \"Remove\")}</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></article>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> `);\n\t\t$$renderer.push(\"<!--[0-->\");\n\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary\">+ Add endpoint</button>`);\n\t\t$$renderer.push(`<!--]--></main>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_page.svelte-m5t0OVcz.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/endpoints/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, s as head } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { c as endpointsService } from \"../../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../../chunks/Navbar.js\";\nimport { t as IconLock } from \"../../../../chunks/IconLock.js\";\n//#region src/routes/admin/endpoints/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet deletingId = null;\n\t\tconst endpoints = derived(() => endpointsService.endpoints);\n\t\tconst active = derived(() => endpointsService.active);\n\t\thead(\"m7qpzt\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Assistant Endpoints — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <main class=\"page svelte-m7qpzt\"><header class=\"page-header svelte-m7qpzt\"><h1 class=\"svelte-m7qpzt\">Assistant Endpoints</h1> <p class=\"lede svelte-m7qpzt\">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes\n from the environment (set by the launcher) and cannot be deleted. Add more endpoints to\n switch between stacks at any time.</p></header> `);\n\t\tif (endpointsService.error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"alert error svelte-m7qpzt\" role=\"alert\">${escape_html(endpointsService.error)}</div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <section class=\"endpoints-list svelte-m7qpzt\" aria-label=\"Configured endpoints\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(endpoints());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet ep = each_array[$$index];\n\t\t\t$$renderer.push(`<article${attr_class(\"endpoint-card svelte-m7qpzt\", void 0, { \"active\": ep.id === active()?.id })}><div class=\"endpoint-main svelte-m7qpzt\"><div class=\"endpoint-title svelte-m7qpzt\"><span class=\"endpoint-label svelte-m7qpzt\">${escape_html(ep.label)}</span> `);\n\t\t\tif (ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge default svelte-m7qpzt\">Default</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.id === active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge active svelte-m7qpzt\">Active</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.hasPassword) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge password svelte-m7qpzt\" title=\"Server password configured\">`);\n\t\t\t\tIconLock($$renderer, { size: 11 });\n\t\t\t\t$$renderer.push(`<!----></span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"endpoint-url svelte-m7qpzt\">${escape_html(ep.url)}</div></div> <div class=\"endpoint-actions svelte-m7qpzt\">`);\n\t\t\tif (ep.id !== active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary btn-sm\">Use this</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (!ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-secondary btn-sm\">Edit</button> <button type=\"button\" class=\"btn btn-danger btn-sm svelte-m7qpzt\"${attr(\"disabled\", deletingId === ep.id, true)}>${escape_html(deletingId === ep.id ? \"Removing…\" : \"Remove\")}</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></article>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> `);\n\t\t$$renderer.push(\"<!--[0-->\");\n\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary\">+ Add endpoint</button>`);\n\t\t$$renderer.push(`<!--]--></main>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ai as isSetupComplete, aO as resolveStackDir, a4 as getAddonProfileSelection, c as annotateAddonProfileAvailability, a5 as getAddonProfiles } from './src-DPd0Zos1.js';
3
- import { g as getState } from './state-CmEW57i2.js';
4
- import { r as requireAdmin, d as getRequestId } from './helpers-DB3Oat0M.js';
2
+ import { ai as isSetupComplete, aO as resolveStackDir, a4 as getAddonProfileSelection, c as annotateAddonProfileAvailability, a5 as getAddonProfiles } from './src-BN-m14sE.js';
3
+ import { g as getState } from './state-BjAIjYtQ.js';
4
+ import { r as requireAdmin, d as getRequestId } from './helpers-s8d3gE38.js';
5
5
  import './utils-BSRjJDrZ.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -24,7 +24,7 @@ import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
26
  import 'node:os';
27
- import './endpoints-BJw6odky.js';
27
+ import './endpoints-Dq-IqF1t.js';
28
28
 
29
29
  //#region src/routes/api/setup/voice-profiles/+server.ts
30
30
  var GET = async (event) => {
@@ -41,4 +41,4 @@ var GET = async (event) => {
41
41
  };
42
42
 
43
43
  export { GET };
44
- //# sourceMappingURL=_server.ts-CYCJvxkC.js.map
44
+ //# sourceMappingURL=_server.ts-7h410aJe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CYCJvxkC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/voice-profiles/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { bt as getAddonProfileSelection, en as resolveStackDir, ut as isSetupComplete, vt as annotateAddonProfileAvailability, xt as getAddonProfiles } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/voice-profiles/+server.ts\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst state = getState();\n\treturn json({\n\t\tok: true,\n\t\tprofiles: await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"voice\")),\n\t\tselectedProfile: getAddonProfileSelection(state.stackDir, \"voice\")\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5F,EAAE,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO;AACnE,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-7h410aJe.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/voice-profiles/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { bt as getAddonProfileSelection, en as resolveStackDir, ut as isSetupComplete, vt as annotateAddonProfileAvailability, xt as getAddonProfiles } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/voice-profiles/+server.ts\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst state = getState();\n\treturn json({\n\t\tok: true,\n\t\tprofiles: await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"voice\")),\n\t\tselectedProfile: getAddonProfileSelection(state.stackDir, \"voice\")\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5F,EAAE,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO;AACnE,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, v as composePs, m as buildComposeOptions, n as buildManagedServices } from './src-DPd0Zos1.js';
2
- import { g as getState } from './state-CmEW57i2.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { o as checkDocker, v as composePs, m as buildComposeOptions, n as buildManagedServices } from './src-BN-m14sE.js';
2
+ import { g as getState } from './state-BjAIjYtQ.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-s8d3gE38.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-BJw6odky.js';
25
+ import './endpoints-Dq-IqF1t.js';
26
26
 
27
27
  //#region src/routes/admin/containers/list/+server.ts
28
28
  var GET = async (event) => {
@@ -67,4 +67,4 @@ var GET = async (event) => {
67
67
  };
68
68
 
69
69
  export { GET };
70
- //# sourceMappingURL=_server.ts-DHBjlBuv.js.map
70
+ //# sourceMappingURL=_server.ts-B-io71lH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DHBjlBuv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/list/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, V as buildManagedServices, X as checkDocker, tt as composePs } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/list/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tlet dockerContainers = null;\n\tif (dockerCheck.ok) {\n\t\tconst ps = await composePs(buildComposeOptions(state));\n\t\tif (ps.ok && ps.stdout.trim()) try {\n\t\t\tdockerContainers = ps.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[containers.list] Failed to parse docker compose ps output\", e);\n\t\t\tdockerContainers = null;\n\t\t}\n\t}\n\tif (dockerContainers) {\n\t\tconst dockerStateByService = /* @__PURE__ */ new Map();\n\t\tfor (const c of dockerContainers) if (c.Service && c.State) dockerStateByService.set(c.Service, c.State);\n\t\tfor (const service of Object.keys(state.services)) {\n\t\t\tconst dockerState = dockerStateByService.get(service);\n\t\t\tif (dockerState) state.services[service] = dockerState === \"running\" ? \"running\" : \"stopped\";\n\t\t}\n\t}\n\tlet managedServices;\n\ttry {\n\t\tmanagedServices = await buildManagedServices(state);\n\t} catch {\n\t\tmanagedServices = Object.keys(state.services);\n\t}\n\tconst managedSet = new Set(managedServices);\n\tconst containers = {};\n\tfor (const [name, status] of Object.entries(state.services)) if (managedSet.has(name)) containers[name] = status;\n\treturn jsonResponse(200, {\n\t\tcontainers,\n\t\tdockerContainers,\n\t\tdockerAvailable: dockerCheck.ok,\n\t\tmanagedServices\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AACrC,GAAG,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,CAAC;AAChF,GAAG,gBAAgB,GAAG,IAAI;AAC1B,EAAE;AACF,CAAC;AACD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AACxD,EAAE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;AAC1G,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,GAAG,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AACxD,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/F,EAAE;AACF,CAAC;AACD,CAAC,IAAI,eAAe;AACpB,CAAC,IAAI;AACL,EAAE,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,CAAC;AACD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AACjH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,UAAU;AACZ,EAAE,gBAAgB;AAClB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;AACjC,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-B-io71lH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/list/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, V as buildManagedServices, X as checkDocker, tt as composePs } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/list/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tlet dockerContainers = null;\n\tif (dockerCheck.ok) {\n\t\tconst ps = await composePs(buildComposeOptions(state));\n\t\tif (ps.ok && ps.stdout.trim()) try {\n\t\t\tdockerContainers = ps.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[containers.list] Failed to parse docker compose ps output\", e);\n\t\t\tdockerContainers = null;\n\t\t}\n\t}\n\tif (dockerContainers) {\n\t\tconst dockerStateByService = /* @__PURE__ */ new Map();\n\t\tfor (const c of dockerContainers) if (c.Service && c.State) dockerStateByService.set(c.Service, c.State);\n\t\tfor (const service of Object.keys(state.services)) {\n\t\t\tconst dockerState = dockerStateByService.get(service);\n\t\t\tif (dockerState) state.services[service] = dockerState === \"running\" ? \"running\" : \"stopped\";\n\t\t}\n\t}\n\tlet managedServices;\n\ttry {\n\t\tmanagedServices = await buildManagedServices(state);\n\t} catch {\n\t\tmanagedServices = Object.keys(state.services);\n\t}\n\tconst managedSet = new Set(managedServices);\n\tconst containers = {};\n\tfor (const [name, status] of Object.entries(state.services)) if (managedSet.has(name)) containers[name] = status;\n\treturn jsonResponse(200, {\n\t\tcontainers,\n\t\tdockerContainers,\n\t\tdockerAvailable: dockerCheck.ok,\n\t\tmanagedServices\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AACrC,GAAG,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,CAAC;AAChF,GAAG,gBAAgB,GAAG,IAAI;AAC1B,EAAE;AACF,CAAC;AACD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AACxD,EAAE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;AAC1G,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,GAAG,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AACxD,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/F,EAAE;AACF,CAAC;AACD,CAAC,IAAI,eAAe;AACpB,CAAC,IAAI;AACL,EAAE,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,CAAC;AACD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AACjH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,UAAU;AACZ,EAAE,gBAAgB;AAClB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;AACjC,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,7 +1,7 @@
1
- import { g as getState } from './state-CmEW57i2.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DB3Oat0M.js';
3
- import { d as detectEmbeddingSettings } from './akm-B44WQaeD.js';
4
- import './src-DPd0Zos1.js';
1
+ import { g as getState } from './state-BjAIjYtQ.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-s8d3gE38.js';
3
+ import { d as detectEmbeddingSettings } from './akm-IP8X7RlR.js';
4
+ import './src-BN-m14sE.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-BJw6odky.js';
26
+ import './endpoints-Dq-IqF1t.js';
27
27
 
28
28
  //#region src/routes/admin/akm/embedding/detect/+server.ts
29
29
  var POST = async (event) => {
@@ -36,4 +36,4 @@ var POST = async (event) => {
36
36
  };
37
37
 
38
38
  export { POST };
39
- //# sourceMappingURL=_server.ts-DyAZoRvd.js.map
39
+ //# sourceMappingURL=_server.ts-B7oFBy_Y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DyAZoRvd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/detect/_server.ts.js"],"sourcesContent":["import { t as getState } from \"../../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../chunks/helpers.js\";\nimport { t as detectEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/detect/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst detected = await detectEmbeddingSettings(getState());\n\tif (!detected.ok) return errorResponse(404, \"embedding_not_detected\", detected.message, {}, requestId);\n\treturn jsonResponse(200, detected, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACvG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC9C;;;;"}
1
+ {"version":3,"file":"_server.ts-B7oFBy_Y.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/detect/_server.ts.js"],"sourcesContent":["import { t as getState } from \"../../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../chunks/helpers.js\";\nimport { t as detectEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/detect/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst detected = await detectEmbeddingSettings(getState());\n\tif (!detected.ok) return errorResponse(404, \"embedding_not_detected\", detected.message, {}, requestId);\n\treturn jsonResponse(200, detected, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACvG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC9C;;;;"}
@@ -1,9 +1,9 @@
1
- import { ac as importHostOpenCode, O as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-DPd0Zos1.js';
2
- import { g as getState } from './state-CmEW57i2.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { ac as importHostOpenCode, O as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-BN-m14sE.js';
2
+ import { g as getState } from './state-BjAIjYtQ.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-s8d3gE38.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
- import { o as opencodeFetch } from './http-C4WWfxK-.js';
6
- import { c as composeRestart } from './docker-qBTgU_Qa.js';
5
+ import { o as opencodeFetch } from './http-BCF8LO-V.js';
6
+ import { c as composeRestart } from './docker-BhJS_Y28.js';
7
7
  import { existsSync, readFileSync } from 'node:fs';
8
8
  import './chunk-CLZ62Ad-.js';
9
9
  import 'node:module';
@@ -25,7 +25,7 @@ import 'zlib';
25
25
  import 'node:assert';
26
26
  import 'node:fs/promises';
27
27
  import 'node:os';
28
- import './endpoints-BJw6odky.js';
28
+ import './endpoints-Dq-IqF1t.js';
29
29
 
30
30
  //#region src/routes/admin/providers/import-host/+server.ts
31
31
  /**
@@ -157,4 +157,4 @@ var POST = async (event) => {
157
157
  };
158
158
 
159
159
  export { POST };
160
- //# sourceMappingURL=_server.ts-Cn7LfLF_.js.map
160
+ //# sourceMappingURL=_server.ts-BEsxh5-r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Cn7LfLF_.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, X as checkDocker, Yt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-BEsxh5-r.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, X as checkDocker, Yt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, z as composeStats, m as buildComposeOptions } from './src-DPd0Zos1.js';
2
- import { g as getState } from './state-CmEW57i2.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { o as checkDocker, z as composeStats, m as buildComposeOptions } from './src-BN-m14sE.js';
2
+ import { g as getState } from './state-BjAIjYtQ.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-s8d3gE38.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-BJw6odky.js';
25
+ import './endpoints-Dq-IqF1t.js';
26
26
 
27
27
  //#region src/routes/admin/containers/stats/+server.ts
28
28
  var GET = async (event) => {
@@ -44,4 +44,4 @@ var GET = async (event) => {
44
44
  };
45
45
 
46
46
  export { GET };
47
- //# sourceMappingURL=_server.ts-B1qG26BE.js.map
47
+ //# sourceMappingURL=_server.ts-BFQCNuCf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-B1qG26BE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, X as checkDocker, at as composeStats } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/stats/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeStats(buildComposeOptions(state));\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get container stats: ${result.stderr}`, {}, requestId);\n\tlet stats = [];\n\tif (result.stdout.trim()) try {\n\t\tstats = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.stats] Failed to parse Docker stats output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker stats output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { stats }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC;AAC3E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/C;;;;"}
1
+ {"version":3,"file":"_server.ts-BFQCNuCf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, X as checkDocker, at as composeStats } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/stats/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeStats(buildComposeOptions(state));\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get container stats: ${result.stderr}`, {}, requestId);\n\tlet stats = [];\n\tif (result.stdout.trim()) try {\n\t\tstats = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.stats] Failed to parse Docker stats output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker stats output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { stats }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC;AAC3E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/C;;;;"}
@@ -1,5 +1,5 @@
1
- import { o as checkDocker, a8 as getDockerEvents } from './src-DPd0Zos1.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { o as checkDocker, a8 as getDockerEvents } from './src-BN-m14sE.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-s8d3gE38.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import './provider-constants-DPrj3yBX.js';
@@ -21,8 +21,8 @@ import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
23
  import 'node:os';
24
- import './endpoints-BJw6odky.js';
25
- import './state-CmEW57i2.js';
24
+ import './endpoints-Dq-IqF1t.js';
25
+ import './state-BjAIjYtQ.js';
26
26
 
27
27
  //#region src/routes/admin/containers/events/+server.ts
28
28
  var GET = async (event) => {
@@ -44,4 +44,4 @@ var GET = async (event) => {
44
44
  };
45
45
 
46
46
  export { GET };
47
- //# sourceMappingURL=_server.ts-C4I0eH50.js.map
47
+ //# sourceMappingURL=_server.ts-BIJomr8k.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C4I0eH50.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { X as checkDocker, ct as getDockerEvents } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/events/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst since = event.url.searchParams.get(\"since\") || \"1h\";\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await getDockerEvents(\"openpalm\", since);\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get Docker events: ${result.stderr}`, {}, requestId);\n\tlet events = [];\n\tif (result.stdout.trim()) try {\n\t\tevents = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.events] Failed to parse Docker events output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker events output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { events }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1D,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC;AAC7E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;AAChD;;;;"}
1
+ {"version":3,"file":"_server.ts-BIJomr8k.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { X as checkDocker, ct as getDockerEvents } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/events/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst since = event.url.searchParams.get(\"since\") || \"1h\";\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await getDockerEvents(\"openpalm\", since);\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get Docker events: ${result.stderr}`, {}, requestId);\n\tlet events = [];\n\tif (result.stdout.trim()) try {\n\t\tevents = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.events] Failed to parse Docker events output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker events output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { events }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1D,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC;AAC7E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;AAChD;;;;"}
@@ -1,6 +1,6 @@
1
- import { ao as loadAutomations } from './src-DPd0Zos1.js';
2
- import { g as getState } from './state-CmEW57i2.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { ao as loadAutomations } from './src-BN-m14sE.js';
2
+ import { g as getState } from './state-BjAIjYtQ.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-s8d3gE38.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-BJw6odky.js';
25
+ import './endpoints-Dq-IqF1t.js';
26
26
 
27
27
  //#region src/routes/admin/automations/+server.ts
28
28
  var GET = async (event) => {
@@ -46,4 +46,4 @@ var GET = async (event) => {
46
46
  };
47
47
 
48
48
  export { GET };
49
- //# sourceMappingURL=_server.ts-D8EweJQC.js.map
49
+ //# sourceMappingURL=_server.ts-BJd_BeRX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-D8EweJQC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { f as loadAutomations } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
1
+ {"version":3,"file":"_server.ts-BJd_BeRX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { f as loadAutomations } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ai as isSetupComplete, aO as resolveStackDir, o as checkDocker } from './src-DPd0Zos1.js';
3
- import { g as getState } from './state-CmEW57i2.js';
4
- import { g as getDeployState, s as startDeploy } from './setup-deploy-D3XucKIu.js';
2
+ import { ai as isSetupComplete, aO as resolveStackDir, o as checkDocker } from './src-BN-m14sE.js';
3
+ import { g as getState } from './state-BjAIjYtQ.js';
4
+ import { g as getDeployState, s as startDeploy } from './setup-deploy-BtgW_nbb.js';
5
5
  import './utils-BSRjJDrZ.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -47,4 +47,4 @@ var POST = async () => {
47
47
  };
48
48
 
49
49
  export { POST };
50
- //# sourceMappingURL=_server.ts-e-kt0L13.js.map
50
+ //# sourceMappingURL=_server.ts-BLnGiLfS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-e-kt0L13.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/retry-deploy/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { X as checkDocker, en as resolveStackDir, ut as isSetupComplete } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { i as startDeploy, t as getDeployState } from \"../../../../../chunks/setup-deploy.js\";\n//#region src/routes/api/setup/retry-deploy/+server.ts\nvar POST = async () => {\n\tif (isSetupComplete(resolveStackDir())) return json({\n\t\tok: false,\n\t\terror: \"setup_complete\",\n\t\tmessage: \"Setup is already complete.\"\n\t}, { status: 409 });\n\tif (!(await checkDocker()).ok) return json({\n\t\tok: false,\n\t\terror: \"docker_unavailable\",\n\t\tmessage: \"Docker isn't running. Start Docker, then retry deploy.\"\n\t}, { status: 503 });\n\tif (getDeployState(getState()).deploying) return json({\n\t\tok: false,\n\t\terror: \"install_in_progress\",\n\t\tmessage: \"A deploy is already running.\"\n\t}, { status: 409 });\n\tstartDeploy(getState());\n\treturn json({ ok: true });\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,IAAI,GAAG,YAAY;AACvB,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACrD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,gBAAgB;AACzB,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC;AAC5C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,oBAAoB;AAC7B,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AACvD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,qBAAqB;AAC9B,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC1B;;;;"}
1
+ {"version":3,"file":"_server.ts-BLnGiLfS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/retry-deploy/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { X as checkDocker, en as resolveStackDir, ut as isSetupComplete } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { i as startDeploy, t as getDeployState } from \"../../../../../chunks/setup-deploy.js\";\n//#region src/routes/api/setup/retry-deploy/+server.ts\nvar POST = async () => {\n\tif (isSetupComplete(resolveStackDir())) return json({\n\t\tok: false,\n\t\terror: \"setup_complete\",\n\t\tmessage: \"Setup is already complete.\"\n\t}, { status: 409 });\n\tif (!(await checkDocker()).ok) return json({\n\t\tok: false,\n\t\terror: \"docker_unavailable\",\n\t\tmessage: \"Docker isn't running. Start Docker, then retry deploy.\"\n\t}, { status: 503 });\n\tif (getDeployState(getState()).deploying) return json({\n\t\tok: false,\n\t\terror: \"install_in_progress\",\n\t\tmessage: \"A deploy is already running.\"\n\t}, { status: 409 });\n\tstartDeploy(getState());\n\treturn json({ ok: true });\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,IAAI,GAAG,YAAY;AACvB,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACrD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,gBAAgB;AACzB,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC;AAC5C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,oBAAoB;AAC7B,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AACvD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,KAAK,EAAE,qBAAqB;AAC9B,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC1B;;;;"}
@@ -1,6 +1,6 @@
1
- import { F as createLogger, af as isAllowedService, o as checkDocker, D as composeStop, m as buildComposeOptions } from './src-DPd0Zos1.js';
2
- import { g as getState } from './state-CmEW57i2.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-DB3Oat0M.js';
1
+ import { F as createLogger, af as isAllowedService, o as checkDocker, D as composeStop, m as buildComposeOptions } from './src-BN-m14sE.js';
2
+ import { g as getState } from './state-BjAIjYtQ.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-s8d3gE38.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-BJw6odky.js';
26
+ import './endpoints-Dq-IqF1t.js';
27
27
 
28
28
  //#region src/routes/admin/containers/down/+server.ts
29
29
  var logger = createLogger("containers-down");
@@ -53,4 +53,4 @@ var POST = async (event) => {
53
53
  };
54
54
 
55
55
  export { POST };
56
- //# sourceMappingURL=_server.ts-sY8nzvys.js.map
56
+ //# sourceMappingURL=_server.ts-BMTnompE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-sY8nzvys.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, O as isAllowedService, X as checkDocker, hn as createLogger, ot as composeStop } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-BMTnompE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, O as isAllowedService, X as checkDocker, hn as createLogger, ot as composeStop } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { a2 as formatForDisplay, aG as readVersions, a as ALL_VERSION_KEYS, b3 as writeVersions, P as PLATFORM_VERSION } from './src-DPd0Zos1.js';
3
- import { g as getState } from './state-CmEW57i2.js';
4
- import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-DB3Oat0M.js';
2
+ import { a2 as formatForDisplay, aG as readVersions, a as ALL_VERSION_KEYS, b3 as writeVersions, P as PLATFORM_VERSION } from './src-BN-m14sE.js';
3
+ import { g as getState } from './state-BjAIjYtQ.js';
4
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-s8d3gE38.js';
5
5
  import './utils-BSRjJDrZ.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -24,7 +24,7 @@ import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
26
  import 'node:os';
27
- import './endpoints-BJw6odky.js';
27
+ import './endpoints-Dq-IqF1t.js';
28
28
 
29
29
  //#region src/routes/admin/versions/+server.ts
30
30
  /**
@@ -86,4 +86,4 @@ var PATCH = async (event) => {
86
86
  };
87
87
 
88
88
  export { GET, PATCH };
89
- //# sourceMappingURL=_server.ts-8b481A1c.js.map
89
+ //# sourceMappingURL=_server.ts-BTeSTLAx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-8b481A1c.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { Ft as writeVersions, Nt as ALL_VERSION_KEYS, Pt as readVersions, an as PLATFORM_VERSION, on as formatForDisplay } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/+server.ts\n/**\n* GET /admin/versions — read the stack's version pins from stack.env.\n*\n* Returns every key in ALL_VERSION_KEYS (Docker image tags + npm package pins),\n* falling back to documented defaults for any that are unset, plus the running\n* control-plane version (PLATFORM_VERSION) for the read-only header line.\n*\n* No Docker Hub / npm registry lookups — version selection is now a plain\n* stack.env edit (exact tags / \"latest\" / \"next\" for images; semver ranges for\n* npm packages). Update detection is the operator's call, not a poll.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\treturn json({\n\t\tversions: readVersions(state),\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION)\n\t});\n};\n/**\n* PATCH /admin/versions — write version pins to stack.env.\n*\n* Body: `{ versions: Record<string, string> }`. Every key is validated against\n* the ALL_VERSION_KEYS allowlist before writing, so a typo or hostile caller\n* cannot smuggle arbitrary env into the stack config. The change takes effect on\n* the next `POST /admin/update` (recreate), which the UI fires right after.\n*/\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst allowed = new Set(ALL_VERSION_KEYS);\n\tconst updates = {};\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!allowed.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown version key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Version for ${key} must be a string`, {}, requestId);\n\t\tupdates[key] = value;\n\t}\n\twriteVersions(state, updates);\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;AAC/B,EAAE,eAAe,EAAE,gBAAgB,CAAC,gBAAgB;AACpD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK;AAC7B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ;AAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/I,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC;AAC1C,CAAC,MAAM,OAAO,GAAG,EAAE;AACnB,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACtD,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvH,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACzI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AACtB,CAAC;AACD,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9B,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK;AAC9B,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-BTeSTLAx.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { Ft as writeVersions, Nt as ALL_VERSION_KEYS, Pt as readVersions, an as PLATFORM_VERSION, on as formatForDisplay } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/+server.ts\n/**\n* GET /admin/versions — read the stack's version pins from stack.env.\n*\n* Returns every key in ALL_VERSION_KEYS (Docker image tags + npm package pins),\n* falling back to documented defaults for any that are unset, plus the running\n* control-plane version (PLATFORM_VERSION) for the read-only header line.\n*\n* No Docker Hub / npm registry lookups — version selection is now a plain\n* stack.env edit (exact tags / \"latest\" / \"next\" for images; semver ranges for\n* npm packages). Update detection is the operator's call, not a poll.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\treturn json({\n\t\tversions: readVersions(state),\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION)\n\t});\n};\n/**\n* PATCH /admin/versions — write version pins to stack.env.\n*\n* Body: `{ versions: Record<string, string> }`. Every key is validated against\n* the ALL_VERSION_KEYS allowlist before writing, so a typo or hostile caller\n* cannot smuggle arbitrary env into the stack config. The change takes effect on\n* the next `POST /admin/update` (recreate), which the UI fires right after.\n*/\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst allowed = new Set(ALL_VERSION_KEYS);\n\tconst updates = {};\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!allowed.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown version key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Version for ${key} must be a string`, {}, requestId);\n\t\tupdates[key] = value;\n\t}\n\twriteVersions(state, updates);\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;AAC/B,EAAE,eAAe,EAAE,gBAAgB,CAAC,gBAAgB;AACpD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK;AAC7B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ;AAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/I,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC;AAC1C,CAAC,MAAM,OAAO,GAAG,EAAE;AACnB,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACtD,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvH,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACzI,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AACtB,CAAC;AACD,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9B,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK;AAC9B,EAAE,CAAC;AACH;;;;"}