@openpalm/ui 0.12.44-beta.1 → 0.12.44-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/{Bhud-GR1.js → BKCtXWas.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BKCtXWas.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BKCtXWas.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/BhtySIxX.js +1 -0
  6. package/build/client/_app/immutable/chunks/BhtySIxX.js.br +2 -0
  7. package/build/client/_app/immutable/chunks/BhtySIxX.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/D-Fd43HU.js +3 -0
  9. package/build/client/_app/immutable/chunks/D-Fd43HU.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/D-Fd43HU.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{LsB77yTS.js → odiNZBok.js} +1 -1
  12. package/build/client/_app/immutable/chunks/odiNZBok.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/odiNZBok.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/{app.BzfWaaQ8.js → app.B4QXVY5C.js} +2 -2
  15. package/build/client/_app/immutable/entry/app.B4QXVY5C.js.br +0 -0
  16. package/build/client/_app/immutable/entry/app.B4QXVY5C.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/start.DEZonG8f.js +1 -0
  18. package/build/client/_app/immutable/entry/start.DEZonG8f.js.br +0 -0
  19. package/build/client/_app/immutable/entry/start.DEZonG8f.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.yUvA3bf-.js → 1.zdgwnkll.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.zdgwnkll.js.br +2 -0
  22. package/build/client/_app/immutable/nodes/1.zdgwnkll.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{10.oruhTgxj.js → 10.DIo8JL3K.js} +1 -1
  24. package/build/client/_app/immutable/nodes/10.DIo8JL3K.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/10.DIo8JL3K.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{4.DxtxXsgr.js → 4.CMr3pbmP.js} +1 -1
  27. package/build/client/_app/immutable/nodes/4.CMr3pbmP.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/4.CMr3pbmP.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{5.DcqaAEUv.js → 5.DFnVNk42.js} +1 -1
  30. package/build/client/_app/immutable/nodes/5.DFnVNk42.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/5.DFnVNk42.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{6.J_nlhUWJ.js → 6.BHz3oYHQ.js} +1 -1
  33. package/build/client/_app/immutable/nodes/6.BHz3oYHQ.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/6.BHz3oYHQ.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{7.Bg3L7Akr.js → 7.BtYu1NBj.js} +1 -1
  36. package/build/client/_app/immutable/nodes/7.BtYu1NBj.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/7.BtYu1NBj.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{8.CwcATm2B.js → 8.BSEbjvqM.js} +1 -1
  39. package/build/client/_app/immutable/nodes/8.BSEbjvqM.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/8.BSEbjvqM.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{9.DqdwmnRO.js → 9.CkZQS54v.js} +1 -1
  42. package/build/client/_app/immutable/nodes/9.CkZQS54v.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/9.CkZQS54v.js.gz +0 -0
  44. package/build/client/_app/version.json +1 -1
  45. package/build/client/_app/version.json.br +0 -0
  46. package/build/client/_app/version.json.gz +0 -0
  47. package/build/server/chunks/1-CBSvcbcR.js +9 -0
  48. package/build/server/chunks/{1-DCMAG8oP.js.map → 1-CBSvcbcR.js.map} +1 -1
  49. package/build/server/chunks/{10-Df3aCo18.js → 10-B6OcWgRh.js} +6 -6
  50. package/build/server/chunks/{10-Df3aCo18.js.map → 10-B6OcWgRh.js.map} +1 -1
  51. package/build/server/chunks/{4-Cio1msLR.js → 4-C5OowV4P.js} +3 -3
  52. package/build/server/chunks/{4-Cio1msLR.js.map → 4-C5OowV4P.js.map} +1 -1
  53. package/build/server/chunks/{5-CnBRUBct.js → 5-C3z33Kel.js} +3 -3
  54. package/build/server/chunks/{5-CnBRUBct.js.map → 5-C3z33Kel.js.map} +1 -1
  55. package/build/server/chunks/{6-Bp7T2ksy.js → 6-CTZDDb7P.js} +3 -3
  56. package/build/server/chunks/{6-Bp7T2ksy.js.map → 6-CTZDDb7P.js.map} +1 -1
  57. package/build/server/chunks/{7-LCl-s-HQ.js → 7-CYOthDsD.js} +3 -3
  58. package/build/server/chunks/{7-LCl-s-HQ.js.map → 7-CYOthDsD.js.map} +1 -1
  59. package/build/server/chunks/{8-Duu9B8xz.js → 8-CnvFjK3Q.js} +3 -3
  60. package/build/server/chunks/{8-Duu9B8xz.js.map → 8-CnvFjK3Q.js.map} +1 -1
  61. package/build/server/chunks/{9-DLsxrZsi.js → 9-B-Pes-kN.js} +3 -3
  62. package/build/server/chunks/{9-DLsxrZsi.js.map → 9-B-Pes-kN.js.map} +1 -1
  63. package/build/server/chunks/{Navbar-DXehQOc0.js → Navbar-EaMalVM8.js} +4 -4
  64. package/build/server/chunks/{Navbar-DXehQOc0.js.map → Navbar-EaMalVM8.js.map} +1 -1
  65. package/build/server/chunks/{_page.svelte-DEwF1daH.js → _page.svelte-BLfHfErj.js} +3 -3
  66. package/build/server/chunks/{_page.svelte-DEwF1daH.js.map → _page.svelte-BLfHfErj.js.map} +1 -1
  67. package/build/server/chunks/{_page.svelte-CxxHp5Bp.js → _page.svelte-BcmGVh1D.js} +6 -6
  68. package/build/server/chunks/{_page.svelte-CxxHp5Bp.js.map → _page.svelte-BcmGVh1D.js.map} +1 -1
  69. package/build/server/chunks/{_page.svelte-Yb3coswS.js → _page.svelte-C0SUSu9_.js} +2 -2
  70. package/build/server/chunks/{_page.svelte-Yb3coswS.js.map → _page.svelte-C0SUSu9_.js.map} +1 -1
  71. package/build/server/chunks/{_page.svelte-DrgnYbml.js → _page.svelte-C9vEEY_y.js} +3 -3
  72. package/build/server/chunks/{_page.svelte-DrgnYbml.js.map → _page.svelte-C9vEEY_y.js.map} +1 -1
  73. package/build/server/chunks/{_page.svelte-BA0547pN.js → _page.svelte-CU9DqEl4.js} +4 -4
  74. package/build/server/chunks/{_page.svelte-BA0547pN.js.map → _page.svelte-CU9DqEl4.js.map} +1 -1
  75. package/build/server/chunks/{_page.svelte-5baO9iyK.js → _page.svelte-DYbPitCk.js} +6 -6
  76. package/build/server/chunks/{_page.svelte-5baO9iyK.js.map → _page.svelte-DYbPitCk.js.map} +1 -1
  77. package/build/server/chunks/{_page.svelte-BepiQBc-.js → _page.svelte-bfmi4TFI.js} +6 -6
  78. package/build/server/chunks/{_page.svelte-BepiQBc-.js.map → _page.svelte-bfmi4TFI.js.map} +1 -1
  79. package/build/server/chunks/{_server.ts-D0_JMXN1.js → _server.ts-1uNJogSG.js} +6 -6
  80. package/build/server/chunks/{_server.ts-D0_JMXN1.js.map → _server.ts-1uNJogSG.js.map} +1 -1
  81. package/build/server/chunks/{_server.ts-geZDsKTP.js → _server.ts-6U5VN79P.js} +5 -5
  82. package/build/server/chunks/{_server.ts-geZDsKTP.js.map → _server.ts-6U5VN79P.js.map} +1 -1
  83. package/build/server/chunks/{_server.ts-BGsvEvu9.js → _server.ts-9VcePdaY.js} +5 -5
  84. package/build/server/chunks/{_server.ts-BGsvEvu9.js.map → _server.ts-9VcePdaY.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-DeLKOA4-.js → _server.ts-B2_JPh3v.js} +6 -6
  86. package/build/server/chunks/{_server.ts-DeLKOA4-.js.map → _server.ts-B2_JPh3v.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-BELvPs_k.js → _server.ts-B7DRhmjo.js} +5 -5
  88. package/build/server/chunks/{_server.ts-BELvPs_k.js.map → _server.ts-B7DRhmjo.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-CqWSOtxK.js → _server.ts-B7szQHio.js} +5 -5
  90. package/build/server/chunks/{_server.ts-CqWSOtxK.js.map → _server.ts-B7szQHio.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-CzR2TPe8.js → _server.ts-B9KsvJWP.js} +2 -2
  92. package/build/server/chunks/{_server.ts-CzR2TPe8.js.map → _server.ts-B9KsvJWP.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-C_DO0Ftr.js → _server.ts-BB6_r6xt.js} +5 -5
  94. package/build/server/chunks/{_server.ts-C_DO0Ftr.js.map → _server.ts-BB6_r6xt.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-CU3zftLu.js → _server.ts-BDEx48zi.js} +7 -7
  96. package/build/server/chunks/{_server.ts-CU3zftLu.js.map → _server.ts-BDEx48zi.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-BDbsveUi.js → _server.ts-BGmHZpt-.js} +5 -5
  98. package/build/server/chunks/{_server.ts-BDbsveUi.js.map → _server.ts-BGmHZpt-.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-CxYl2xGu.js → _server.ts-BJ5XMm2C.js} +5 -5
  100. package/build/server/chunks/{_server.ts-CxYl2xGu.js.map → _server.ts-BJ5XMm2C.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-Cf-yCszV.js → _server.ts-BQbzONXj.js} +8 -8
  102. package/build/server/chunks/{_server.ts-Cf-yCszV.js.map → _server.ts-BQbzONXj.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-CzyBR2a8.js → _server.ts-BTOWT6Pj.js} +6 -6
  104. package/build/server/chunks/{_server.ts-CzyBR2a8.js.map → _server.ts-BTOWT6Pj.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-CaSSzKVX.js → _server.ts-BUGZjc1d.js} +7 -7
  106. package/build/server/chunks/{_server.ts-CaSSzKVX.js.map → _server.ts-BUGZjc1d.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-hQ7mur1Z.js → _server.ts-BVyvLZ8E.js} +5 -5
  108. package/build/server/chunks/{_server.ts-hQ7mur1Z.js.map → _server.ts-BVyvLZ8E.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-klfXYrm4.js → _server.ts-BWJMaUtE.js} +7 -7
  110. package/build/server/chunks/{_server.ts-klfXYrm4.js.map → _server.ts-BWJMaUtE.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-BNdagqq9.js → _server.ts-BW_HzK-a.js} +5 -5
  112. package/build/server/chunks/{_server.ts-BNdagqq9.js.map → _server.ts-BW_HzK-a.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-ChsNnPmH.js → _server.ts-BWypoe2Q.js} +5 -5
  114. package/build/server/chunks/{_server.ts-ChsNnPmH.js.map → _server.ts-BWypoe2Q.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-BQFCofo4.js → _server.ts-BfjPHxLv.js} +6 -6
  116. package/build/server/chunks/{_server.ts-BQFCofo4.js.map → _server.ts-BfjPHxLv.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-DS9Jiq2f.js → _server.ts-Bh1wk7Oe.js} +5 -5
  118. package/build/server/chunks/{_server.ts-DS9Jiq2f.js.map → _server.ts-Bh1wk7Oe.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-BLJr2vLF.js → _server.ts-BiEZHu3M.js} +5 -5
  120. package/build/server/chunks/{_server.ts-BLJr2vLF.js.map → _server.ts-BiEZHu3M.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-DI6kW0eE.js → _server.ts-BjT4r9Wa.js} +5 -5
  122. package/build/server/chunks/{_server.ts-DI6kW0eE.js.map → _server.ts-BjT4r9Wa.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-CsZ0LLQR.js → _server.ts-BlleO4Iw.js} +2 -2
  124. package/build/server/chunks/{_server.ts-CsZ0LLQR.js.map → _server.ts-BlleO4Iw.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-B3DJEhsd.js → _server.ts-BolPEljP.js} +5 -5
  126. package/build/server/chunks/{_server.ts-B3DJEhsd.js.map → _server.ts-BolPEljP.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-BalGxcUy.js → _server.ts-BovKiZyj.js} +5 -5
  128. package/build/server/chunks/{_server.ts-BalGxcUy.js.map → _server.ts-BovKiZyj.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-C59ps8Uu.js → _server.ts-Bq0mGTzm.js} +2 -2
  130. package/build/server/chunks/{_server.ts-C59ps8Uu.js.map → _server.ts-Bq0mGTzm.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-wGFs2HkT.js → _server.ts-BvwsgMFF.js} +6 -6
  132. package/build/server/chunks/{_server.ts-wGFs2HkT.js.map → _server.ts-BvwsgMFF.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-g0BbGNAX.js → _server.ts-C2QKIf40.js} +5 -5
  134. package/build/server/chunks/{_server.ts-g0BbGNAX.js.map → _server.ts-C2QKIf40.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-CC8UT-aQ.js → _server.ts-C6l3MXrV.js} +6 -6
  136. package/build/server/chunks/{_server.ts-CC8UT-aQ.js.map → _server.ts-C6l3MXrV.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-DU6TUWT3.js → _server.ts-C8GxF-_G.js} +5 -5
  138. package/build/server/chunks/{_server.ts-DU6TUWT3.js.map → _server.ts-C8GxF-_G.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-Bo4ClGRF.js → _server.ts-C8sb_Suo.js} +5 -5
  140. package/build/server/chunks/{_server.ts-Bo4ClGRF.js.map → _server.ts-C8sb_Suo.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-Dsh27B3Z.js → _server.ts-C9mD-8vS.js} +5 -5
  142. package/build/server/chunks/{_server.ts-Dsh27B3Z.js.map → _server.ts-C9mD-8vS.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-tq2dNNbN.js → _server.ts-CJ4jkWDq.js} +7 -7
  144. package/build/server/chunks/{_server.ts-tq2dNNbN.js.map → _server.ts-CJ4jkWDq.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-lwLT9E1c.js → _server.ts-CKLDsxBS.js} +5 -5
  146. package/build/server/chunks/{_server.ts-lwLT9E1c.js.map → _server.ts-CKLDsxBS.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-CSUWdntH.js → _server.ts-CLxzAtpC.js} +4 -4
  148. package/build/server/chunks/{_server.ts-CSUWdntH.js.map → _server.ts-CLxzAtpC.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-wAbzD60l.js → _server.ts-CPB3MKf1.js} +5 -5
  150. package/build/server/chunks/{_server.ts-wAbzD60l.js.map → _server.ts-CPB3MKf1.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-DYcGYDNd.js → _server.ts-CQgRj4ox.js} +2 -2
  152. package/build/server/chunks/{_server.ts-DYcGYDNd.js.map → _server.ts-CQgRj4ox.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-Dh9Lcgpj.js → _server.ts-CTBIEb1p.js} +5 -5
  154. package/build/server/chunks/{_server.ts-Dh9Lcgpj.js.map → _server.ts-CTBIEb1p.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-C35TfzRb.js → _server.ts-CXKIRU1E.js} +5 -5
  156. package/build/server/chunks/{_server.ts-C35TfzRb.js.map → _server.ts-CXKIRU1E.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-Re5cOSnu.js → _server.ts-Cb_iNzbZ.js} +5 -5
  158. package/build/server/chunks/{_server.ts-Re5cOSnu.js.map → _server.ts-Cb_iNzbZ.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-CPU8v1BR.js → _server.ts-CclnQ7yP.js} +5 -5
  160. package/build/server/chunks/{_server.ts-CPU8v1BR.js.map → _server.ts-CclnQ7yP.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-_FZlxHLt.js → _server.ts-CcwkfNiY.js} +6 -6
  162. package/build/server/chunks/{_server.ts-_FZlxHLt.js.map → _server.ts-CcwkfNiY.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-znB9ktGZ.js → _server.ts-CglyXcFV.js} +6 -6
  164. package/build/server/chunks/{_server.ts-znB9ktGZ.js.map → _server.ts-CglyXcFV.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-BCwfNBe4.js → _server.ts-CmHau90Y.js} +7 -7
  166. package/build/server/chunks/{_server.ts-BCwfNBe4.js.map → _server.ts-CmHau90Y.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-BVTKO23J.js → _server.ts-Cq3pSH4z.js} +5 -5
  168. package/build/server/chunks/{_server.ts-BVTKO23J.js.map → _server.ts-Cq3pSH4z.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-BVOhl22s.js → _server.ts-CqWWaZdK.js} +5 -5
  170. package/build/server/chunks/{_server.ts-BVOhl22s.js.map → _server.ts-CqWWaZdK.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-BKfbdQe4.js → _server.ts-CrbNy-Pb.js} +5 -5
  172. package/build/server/chunks/{_server.ts-BKfbdQe4.js.map → _server.ts-CrbNy-Pb.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-CxQhPFPR.js → _server.ts-Crw2xWbv.js} +5 -5
  174. package/build/server/chunks/{_server.ts-CxQhPFPR.js.map → _server.ts-Crw2xWbv.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-BPGJljCx.js → _server.ts-CsHRyjzd.js} +5 -5
  176. package/build/server/chunks/{_server.ts-BPGJljCx.js.map → _server.ts-CsHRyjzd.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-B1DOllix.js → _server.ts-CwuQkRpj.js} +5 -5
  178. package/build/server/chunks/{_server.ts-B1DOllix.js.map → _server.ts-CwuQkRpj.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-BckKj2RR.js → _server.ts-CzDHz-gR.js} +5 -5
  180. package/build/server/chunks/{_server.ts-BckKj2RR.js.map → _server.ts-CzDHz-gR.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-1FXQtb4w.js → _server.ts-D0Lp30px.js} +6 -6
  182. package/build/server/chunks/{_server.ts-1FXQtb4w.js.map → _server.ts-D0Lp30px.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-sBsGq4A6.js → _server.ts-D1WNknML.js} +5 -5
  184. package/build/server/chunks/{_server.ts-sBsGq4A6.js.map → _server.ts-D1WNknML.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-Cmsmb4Wg.js → _server.ts-D5IqNNpP.js} +5 -5
  186. package/build/server/chunks/{_server.ts-Cmsmb4Wg.js.map → _server.ts-D5IqNNpP.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts--M6zklFD.js → _server.ts-D77ujqKm.js} +5 -5
  188. package/build/server/chunks/{_server.ts--M6zklFD.js.map → _server.ts-D77ujqKm.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-CKKFhF5c.js → _server.ts-D9LioPhs.js} +5 -5
  190. package/build/server/chunks/{_server.ts-CKKFhF5c.js.map → _server.ts-D9LioPhs.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-BUtK84ap.js → _server.ts-DCyIbOG5.js} +5 -5
  192. package/build/server/chunks/{_server.ts-BUtK84ap.js.map → _server.ts-DCyIbOG5.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-CYdtF-Oj.js → _server.ts-DEGt2NQH.js} +2 -2
  194. package/build/server/chunks/{_server.ts-CYdtF-Oj.js.map → _server.ts-DEGt2NQH.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-DtSN_Pj_.js → _server.ts-DFcjup7N.js} +5 -5
  196. package/build/server/chunks/{_server.ts-DtSN_Pj_.js.map → _server.ts-DFcjup7N.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-Bet43jR0.js → _server.ts-DIa1O4fP.js} +5 -5
  198. package/build/server/chunks/{_server.ts-Bet43jR0.js.map → _server.ts-DIa1O4fP.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts--Ceqd2WE.js → _server.ts-DKwzDUeB.js} +5 -5
  200. package/build/server/chunks/{_server.ts--Ceqd2WE.js.map → _server.ts-DKwzDUeB.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-D4JGK0QP.js → _server.ts-DLZc86ci.js} +5 -5
  202. package/build/server/chunks/{_server.ts-D4JGK0QP.js.map → _server.ts-DLZc86ci.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CQrfRj8N.js → _server.ts-DM1ae7YM.js} +5 -5
  204. package/build/server/chunks/{_server.ts-CQrfRj8N.js.map → _server.ts-DM1ae7YM.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-C3490u1b.js → _server.ts-DMWqjfC6.js} +5 -5
  206. package/build/server/chunks/{_server.ts-C3490u1b.js.map → _server.ts-DMWqjfC6.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-BtLYUDzj.js → _server.ts-DMcRqwAG.js} +5 -5
  208. package/build/server/chunks/{_server.ts-BtLYUDzj.js.map → _server.ts-DMcRqwAG.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-CtvT47Xu.js → _server.ts-DOmdUrxT.js} +5 -5
  210. package/build/server/chunks/{_server.ts-CtvT47Xu.js.map → _server.ts-DOmdUrxT.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-DGcv6sJ_.js → _server.ts-DT3zo083.js} +5 -5
  212. package/build/server/chunks/{_server.ts-DGcv6sJ_.js.map → _server.ts-DT3zo083.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-CbaNyOju.js → _server.ts-DTLC83_O.js} +6 -6
  214. package/build/server/chunks/{_server.ts-CbaNyOju.js.map → _server.ts-DTLC83_O.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-CsTbeSw4.js → _server.ts-DaEMaG6P.js} +5 -5
  216. package/build/server/chunks/{_server.ts-CsTbeSw4.js.map → _server.ts-DaEMaG6P.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-1VnB_zTi.js → _server.ts-Db_cWgB9.js} +5 -5
  218. package/build/server/chunks/{_server.ts-1VnB_zTi.js.map → _server.ts-Db_cWgB9.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-B_Ao3jKR.js → _server.ts-Dja0PGr_.js} +4 -4
  220. package/build/server/chunks/{_server.ts-B_Ao3jKR.js.map → _server.ts-Dja0PGr_.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-CiLhfe6v.js → _server.ts-DnmRZ13E.js} +5 -5
  222. package/build/server/chunks/{_server.ts-CiLhfe6v.js.map → _server.ts-DnmRZ13E.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-DZpXwaol.js → _server.ts-Dnzmfl4e.js} +7 -7
  224. package/build/server/chunks/{_server.ts-DZpXwaol.js.map → _server.ts-Dnzmfl4e.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-CnRF2FTy.js → _server.ts-Dv0jRAA5.js} +5 -5
  226. package/build/server/chunks/{_server.ts-CnRF2FTy.js.map → _server.ts-Dv0jRAA5.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-BXBpXyWa.js → _server.ts-Dw10jZFp.js} +6 -6
  228. package/build/server/chunks/{_server.ts-BXBpXyWa.js.map → _server.ts-Dw10jZFp.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-Bo4CNFok.js → _server.ts-Of5aGuzq.js} +5 -5
  230. package/build/server/chunks/{_server.ts-Bo4CNFok.js.map → _server.ts-Of5aGuzq.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-B_AhTEnZ.js → _server.ts-_rap8oWt.js} +5 -5
  232. package/build/server/chunks/{_server.ts-B_AhTEnZ.js.map → _server.ts-_rap8oWt.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-3h2q6PSm.js → _server.ts-mr-bAV39.js} +5 -5
  234. package/build/server/chunks/{_server.ts-3h2q6PSm.js.map → _server.ts-mr-bAV39.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-D_Yg4vmb.js → _server.ts-o5426IQN.js} +5 -5
  236. package/build/server/chunks/{_server.ts-D_Yg4vmb.js.map → _server.ts-o5426IQN.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-BpffJpda.js → _server.ts-tmlPD-eh.js} +6 -6
  238. package/build/server/chunks/{_server.ts-BpffJpda.js.map → _server.ts-tmlPD-eh.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-FIhP3rP2.js → _server.ts-x3Bsd3bn.js} +5 -5
  240. package/build/server/chunks/{_server.ts-FIhP3rP2.js.map → _server.ts-x3Bsd3bn.js.map} +1 -1
  241. package/build/server/chunks/{_server.ts-D4XmVZJ4.js → _server.ts-zEqGaSIH.js} +5 -5
  242. package/build/server/chunks/{_server.ts-D4XmVZJ4.js.map → _server.ts-zEqGaSIH.js.map} +1 -1
  243. package/build/server/chunks/{addon-helpers-CSLmpVvc.js → addon-helpers-DuwUG5zT.js} +3 -3
  244. package/build/server/chunks/{addon-helpers-CSLmpVvc.js.map → addon-helpers-DuwUG5zT.js.map} +1 -1
  245. package/build/server/chunks/{akm-DNLDHCwh.js → akm-De9RlHPs.js} +2 -2
  246. package/build/server/chunks/{akm-DNLDHCwh.js.map → akm-De9RlHPs.js.map} +1 -1
  247. package/build/server/chunks/{catalog-CdR7Wj1D.js → catalog-CqywldZX.js} +5 -5
  248. package/build/server/chunks/{catalog-CdR7Wj1D.js.map → catalog-CqywldZX.js.map} +1 -1
  249. package/build/server/chunks/{client-NFGJbQ3k.js → client-B4GBqzNo.js} +2 -2
  250. package/build/server/chunks/{client-NFGJbQ3k.js.map → client-B4GBqzNo.js.map} +1 -1
  251. package/build/server/chunks/{config-Bye6wp0D.js → config-CTUYWLn1.js} +2 -2
  252. package/build/server/chunks/{config-Bye6wp0D.js.map → config-CTUYWLn1.js.map} +1 -1
  253. package/build/server/chunks/{docker-5uVS-X5X.js → docker-B8xhUjS8.js} +2 -2
  254. package/build/server/chunks/{docker-5uVS-X5X.js.map → docker-B8xhUjS8.js.map} +1 -1
  255. package/build/server/chunks/{endpoints-fj6vLytr.js → endpoints-B5kqgVQo.js} +2 -2
  256. package/build/server/chunks/{endpoints-fj6vLytr.js.map → endpoints-B5kqgVQo.js.map} +1 -1
  257. package/build/server/chunks/environment-DqfL567G.js.map +1 -1
  258. package/build/server/chunks/{error.svelte-BPkJ6gIp.js → error.svelte-xAKyJNbq.js} +4 -4
  259. package/build/server/chunks/{error.svelte-BPkJ6gIp.js.map → error.svelte-xAKyJNbq.js.map} +1 -1
  260. package/build/server/chunks/{helpers-DVEMTWLn.js → helpers-C_e8wlRS.js} +3 -3
  261. package/build/server/chunks/{helpers-DVEMTWLn.js.map → helpers-C_e8wlRS.js.map} +1 -1
  262. package/build/server/chunks/{hooks.server-BSmmsl0w.js → hooks.server-fHofpso1.js} +6 -6
  263. package/build/server/chunks/{hooks.server-BSmmsl0w.js.map → hooks.server-fHofpso1.js.map} +1 -1
  264. package/build/server/chunks/{http-bQ4RFNBK.js → http-Djg8zk5F.js} +2 -2
  265. package/build/server/chunks/{http-bQ4RFNBK.js.map → http-Djg8zk5F.js.map} +1 -1
  266. package/build/server/chunks/{internal-cpIacC7F.js → internal-WU1JOrpW.js} +3 -3
  267. package/build/server/chunks/{internal-cpIacC7F.js.map → internal-WU1JOrpW.js.map} +1 -1
  268. package/build/server/chunks/{paths-MW9ysoMk.js → paths-GbFdQntr.js} +2 -2
  269. package/build/server/chunks/{paths-MW9ysoMk.js.map → paths-GbFdQntr.js.map} +1 -1
  270. package/build/server/chunks/{session-cookie-BAxjlSkH.js → session-cookie-D7LD9nNB.js} +2 -2
  271. package/build/server/chunks/{session-cookie-BAxjlSkH.js.map → session-cookie-D7LD9nNB.js.map} +1 -1
  272. package/build/server/chunks/{setup-deploy-BIIvFN9q.js → setup-deploy-jgBJ2_dg.js} +2 -2
  273. package/build/server/chunks/{setup-deploy-BIIvFN9q.js.map → setup-deploy-jgBJ2_dg.js.map} +1 -1
  274. package/build/server/chunks/{src-Uz3Zxy35.js → src-O9QA_b9U.js} +2 -2
  275. package/build/server/chunks/{src-Uz3Zxy35.js.map → src-O9QA_b9U.js.map} +1 -1
  276. package/build/server/chunks/{state-eIzoC5pj.js → state-DjoSRCLN.js} +2 -2
  277. package/build/server/chunks/{state-eIzoC5pj.js.map → state-DjoSRCLN.js.map} +1 -1
  278. package/build/server/chunks/{state2-DbU_rmIT.js → state2-Bf2xxcc7.js} +2 -2
  279. package/build/server/chunks/{state2-DbU_rmIT.js.map → state2-Bf2xxcc7.js.map} +1 -1
  280. package/build/server/index.js +1 -1
  281. package/build/server/manifest.js +91 -91
  282. package/build/server/manifest.js.map +1 -1
  283. package/package.json +2 -2
  284. package/build/client/_app/immutable/chunks/Bhud-GR1.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/Bhud-GR1.js.gz +0 -0
  286. package/build/client/_app/immutable/chunks/DrvGzM4Z.js +0 -3
  287. package/build/client/_app/immutable/chunks/DrvGzM4Z.js.br +0 -0
  288. package/build/client/_app/immutable/chunks/DrvGzM4Z.js.gz +0 -0
  289. package/build/client/_app/immutable/chunks/GIj5Q39H.js +0 -1
  290. package/build/client/_app/immutable/chunks/GIj5Q39H.js.br +0 -2
  291. package/build/client/_app/immutable/chunks/GIj5Q39H.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/LsB77yTS.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/LsB77yTS.js.gz +0 -0
  294. package/build/client/_app/immutable/entry/app.BzfWaaQ8.js.br +0 -0
  295. package/build/client/_app/immutable/entry/app.BzfWaaQ8.js.gz +0 -0
  296. package/build/client/_app/immutable/entry/start.C64BpBzV.js +0 -1
  297. package/build/client/_app/immutable/entry/start.C64BpBzV.js.br +0 -1
  298. package/build/client/_app/immutable/entry/start.C64BpBzV.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/1.yUvA3bf-.js.br +0 -2
  300. package/build/client/_app/immutable/nodes/1.yUvA3bf-.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/10.oruhTgxj.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/10.oruhTgxj.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/4.DxtxXsgr.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/4.DxtxXsgr.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/5.DcqaAEUv.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/5.DcqaAEUv.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/6.J_nlhUWJ.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/6.J_nlhUWJ.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/7.Bg3L7Akr.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/7.Bg3L7Akr.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/8.CwcATm2B.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/8.CwcATm2B.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/9.DqdwmnRO.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/9.DqdwmnRO.js.gz +0 -0
  315. package/build/server/chunks/1-DCMAG8oP.js +0 -9
@@ -1,6 +1,6 @@
1
- import { ax as readStackEnv } from './src-Uz3Zxy35.js';
2
- import { g as getState } from './state-eIzoC5pj.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DVEMTWLn.js';
1
+ import { ax as readStackEnv } from './src-O9QA_b9U.js';
2
+ import { g as getState } from './state-DjoSRCLN.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-C_e8wlRS.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-fj6vLytr.js';
25
+ import './endpoints-B5kqgVQo.js';
26
26
 
27
27
  //#region src/routes/api/transcribe/+server.ts
28
28
  var DEFAULT_MODEL = "whisper-1";
@@ -89,4 +89,4 @@ var POST = async (event) => {
89
89
  };
90
90
 
91
91
  export { POST };
92
- //# sourceMappingURL=_server.ts-Re5cOSnu.js.map
92
+ //# sourceMappingURL=_server.ts-Cb_iNzbZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Re5cOSnu.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/transcribe/_server.ts.js"],"sourcesContent":["import { Vt as readStackEnv } 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/api/transcribe/+server.ts\nvar DEFAULT_MODEL = \"whisper-1\";\nvar UPSTREAM_TIMEOUT_MS = 6e4;\nfunction redactKey(s) {\n\treturn s.replace(/(sk-[A-Za-z0-9_-]{4,})/g, \"sk-***\").replace(/(hf_[A-Za-z0-9_-]{4,})/gi, \"hf_***\").replace(/(Bearer\\s+)[A-Za-z0-9._-]+/gi, \"$1***\");\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst stackEnv = readStackEnv(getState().homeDir);\n\tconst sttBaseURL = (stackEnv.OP_STT_BASE_URL || process.env.OP_STT_BASE_URL || \"\").trim();\n\tconst sttModel = (stackEnv.OP_STT_MODEL || process.env.OP_STT_MODEL || \"\").trim() || DEFAULT_MODEL;\n\tconst sttLanguageEnv = (stackEnv.OP_STT_LANGUAGE || process.env.OP_STT_LANGUAGE || \"\").trim();\n\tconst sttApiKey = (process.env.OP_STT_API_KEY ?? \"\").trim();\n\tif (!sttBaseURL) return errorResponse(503, \"stt_not_configured\", \"Configure an STT engine in Admin → Voice settings.\", {}, requestId);\n\tlet inboundForm;\n\ttry {\n\t\tinboundForm = await event.request.formData();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Body must be multipart/form-data\", {}, requestId);\n\t}\n\tconst audio = inboundForm.get(\"audio\");\n\tif (!(audio instanceof Blob)) return errorResponse(400, \"bad_request\", \"Missing \\\"audio\\\" field (Blob)\", {}, requestId);\n\tconst languageReq = inboundForm.get(\"language\");\n\tconst promptReq = inboundForm.get(\"prompt\");\n\tconst language = typeof languageReq === \"string\" && languageReq.trim() ? languageReq.trim() : sttLanguageEnv;\n\tconst outForm = new FormData();\n\tconst filename = audio.name || \"recording.webm\";\n\toutForm.append(\"file\", audio, filename);\n\toutForm.append(\"model\", sttModel);\n\toutForm.append(\"response_format\", \"json\");\n\tif (language) outForm.append(\"language\", language);\n\tif (typeof promptReq === \"string\" && promptReq.trim()) outForm.append(\"prompt\", promptReq.trim());\n\tconst upstreamUrl = sttBaseURL.replace(/\\/+$/, \"\") + \"/v1/audio/transcriptions\";\n\tconst headers = {};\n\tif (sttApiKey) headers[\"authorization\"] = `Bearer ${sttApiKey}`;\n\tlet upstream;\n\ttry {\n\t\tupstream = await fetch(upstreamUrl, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: outForm,\n\t\t\tsignal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)\n\t\t});\n\t} catch (err) {\n\t\treturn errorResponse(502, \"upstream_error\", `Could not reach STT endpoint: ${redactKey(err instanceof Error ? err.message : String(err))}`, { upstream: upstreamUrl }, requestId);\n\t}\n\tif (!upstream.ok) {\n\t\tconst snippet = redactKey(await upstream.text().catch(() => \"\")).slice(0, 500);\n\t\treturn errorResponse(502, \"upstream_error\", `STT endpoint returned ${upstream.status}`, {\n\t\t\tupstreamStatus: upstream.status,\n\t\t\tbody: snippet\n\t\t}, requestId);\n\t}\n\tlet payload;\n\ttry {\n\t\tpayload = await upstream.json();\n\t} catch {\n\t\treturn errorResponse(502, \"upstream_error\", \"STT endpoint returned a non-JSON response\", { upstreamStatus: upstream.status }, requestId);\n\t}\n\treturn jsonResponse(200, { text: typeof payload?.text === \"string\" ? payload.text : \"\" }, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Cb_iNzbZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/transcribe/_server.ts.js"],"sourcesContent":["import { Vt as readStackEnv } 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/api/transcribe/+server.ts\nvar DEFAULT_MODEL = \"whisper-1\";\nvar UPSTREAM_TIMEOUT_MS = 6e4;\nfunction redactKey(s) {\n\treturn s.replace(/(sk-[A-Za-z0-9_-]{4,})/g, \"sk-***\").replace(/(hf_[A-Za-z0-9_-]{4,})/gi, \"hf_***\").replace(/(Bearer\\s+)[A-Za-z0-9._-]+/gi, \"$1***\");\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst stackEnv = readStackEnv(getState().homeDir);\n\tconst sttBaseURL = (stackEnv.OP_STT_BASE_URL || process.env.OP_STT_BASE_URL || \"\").trim();\n\tconst sttModel = (stackEnv.OP_STT_MODEL || process.env.OP_STT_MODEL || \"\").trim() || DEFAULT_MODEL;\n\tconst sttLanguageEnv = (stackEnv.OP_STT_LANGUAGE || process.env.OP_STT_LANGUAGE || \"\").trim();\n\tconst sttApiKey = (process.env.OP_STT_API_KEY ?? \"\").trim();\n\tif (!sttBaseURL) return errorResponse(503, \"stt_not_configured\", \"Configure an STT engine in Admin → Voice settings.\", {}, requestId);\n\tlet inboundForm;\n\ttry {\n\t\tinboundForm = await event.request.formData();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Body must be multipart/form-data\", {}, requestId);\n\t}\n\tconst audio = inboundForm.get(\"audio\");\n\tif (!(audio instanceof Blob)) return errorResponse(400, \"bad_request\", \"Missing \\\"audio\\\" field (Blob)\", {}, requestId);\n\tconst languageReq = inboundForm.get(\"language\");\n\tconst promptReq = inboundForm.get(\"prompt\");\n\tconst language = typeof languageReq === \"string\" && languageReq.trim() ? languageReq.trim() : sttLanguageEnv;\n\tconst outForm = new FormData();\n\tconst filename = audio.name || \"recording.webm\";\n\toutForm.append(\"file\", audio, filename);\n\toutForm.append(\"model\", sttModel);\n\toutForm.append(\"response_format\", \"json\");\n\tif (language) outForm.append(\"language\", language);\n\tif (typeof promptReq === \"string\" && promptReq.trim()) outForm.append(\"prompt\", promptReq.trim());\n\tconst upstreamUrl = sttBaseURL.replace(/\\/+$/, \"\") + \"/v1/audio/transcriptions\";\n\tconst headers = {};\n\tif (sttApiKey) headers[\"authorization\"] = `Bearer ${sttApiKey}`;\n\tlet upstream;\n\ttry {\n\t\tupstream = await fetch(upstreamUrl, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: outForm,\n\t\t\tsignal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)\n\t\t});\n\t} catch (err) {\n\t\treturn errorResponse(502, \"upstream_error\", `Could not reach STT endpoint: ${redactKey(err instanceof Error ? err.message : String(err))}`, { upstream: upstreamUrl }, requestId);\n\t}\n\tif (!upstream.ok) {\n\t\tconst snippet = redactKey(await upstream.text().catch(() => \"\")).slice(0, 500);\n\t\treturn errorResponse(502, \"upstream_error\", `STT endpoint returned ${upstream.status}`, {\n\t\t\tupstreamStatus: upstream.status,\n\t\t\tbody: snippet\n\t\t}, requestId);\n\t}\n\tlet payload;\n\ttry {\n\t\tpayload = await upstream.json();\n\t} catch {\n\t\treturn errorResponse(502, \"upstream_error\", \"STT endpoint returned a non-JSON response\", { upstreamStatus: upstream.status }, requestId);\n\t}\n\treturn jsonResponse(200, { text: typeof payload?.text === \"string\" ? payload.text : \"\" }, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, B as composeStats, m as buildComposeOptions } from './src-Uz3Zxy35.js';
2
- import { g as getState } from './state-eIzoC5pj.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DVEMTWLn.js';
1
+ import { o as checkDocker, B as composeStats, m as buildComposeOptions } from './src-O9QA_b9U.js';
2
+ import { g as getState } from './state-DjoSRCLN.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-C_e8wlRS.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-fj6vLytr.js';
25
+ import './endpoints-B5kqgVQo.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-CPU8v1BR.js.map
47
+ //# sourceMappingURL=_server.ts-CclnQ7yP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CPU8v1BR.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { J as checkDocker, N as buildComposeOptions, rt 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-CclnQ7yP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { J as checkDocker, N as buildComposeOptions, rt 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,6 +1,6 @@
1
- import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-DVEMTWLn.js';
2
- import { s as sessionCookieHeader } from './session-cookie-BAxjlSkH.js';
3
- import './src-Uz3Zxy35.js';
1
+ import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-C_e8wlRS.js';
2
+ import { s as sessionCookieHeader } from './session-cookie-D7LD9nNB.js';
3
+ import './src-O9QA_b9U.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-fj6vLytr.js';
26
- import './state-eIzoC5pj.js';
25
+ import './endpoints-B5kqgVQo.js';
26
+ import './state-DjoSRCLN.js';
27
27
 
28
28
  //#region src/routes/admin/auth/session/+server.ts
29
29
  /**
@@ -61,4 +61,4 @@ var POST = async (event) => {
61
61
  };
62
62
 
63
63
  export { POST };
64
- //# sourceMappingURL=_server.ts-_FZlxHLt.js.map
64
+ //# sourceMappingURL=_server.ts-CcwkfNiY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-_FZlxHLt.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,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,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-CcwkfNiY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,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,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { ac as listAvailableAddonIds, ae as listEnabledAddonIds, a4 as getRegistryAddonConfig, F as createLogger } from './src-Uz3Zxy35.js';
2
- import { g as getState } from './state-eIzoC5pj.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-DVEMTWLn.js';
4
- import { p as performAddonToggle } from './addon-helpers-CSLmpVvc.js';
1
+ import { ac as listAvailableAddonIds, ae as listEnabledAddonIds, a4 as getRegistryAddonConfig, F as createLogger } from './src-O9QA_b9U.js';
2
+ import { g as getState } from './state-DjoSRCLN.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-C_e8wlRS.js';
4
+ import { p as performAddonToggle } from './addon-helpers-DuwUG5zT.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-fj6vLytr.js';
26
+ import './endpoints-B5kqgVQo.js';
27
27
 
28
28
  //#region src/routes/admin/addons/[name]/+server.ts
29
29
  var logger = createLogger("addons.name");
@@ -73,4 +73,4 @@ var POST = async (event) => {
73
73
  };
74
74
 
75
75
  export { GET, POST };
76
- //# sourceMappingURL=_server.ts-znB9ktGZ.js.map
76
+ //# sourceMappingURL=_server.ts-CglyXcFV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-znB9ktGZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/_server.ts.js"],"sourcesContent":["import { Et as listEnabledAddonIds, Tt as listAvailableAddonIds, dn as createLogger, wt as getRegistryAddonConfig } 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 performAddonToggle } from \"../../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/[name]/+server.ts\nvar logger = createLogger(\"addons.name\");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst enabled = listEnabledAddonIds(state.homeDir).includes(name);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"failed to read addon schema\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tenabled,\n\t\tconfig\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CglyXcFV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/_server.ts.js"],"sourcesContent":["import { Et as listEnabledAddonIds, Tt as listAvailableAddonIds, dn as createLogger, wt as getRegistryAddonConfig } 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 performAddonToggle } from \"../../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/[name]/+server.ts\nvar logger = createLogger(\"addons.name\");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst enabled = listEnabledAddonIds(state.homeDir).includes(name);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"failed to read addon schema\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tenabled,\n\t\tconfig\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { O as detectLocalProviders, F as createLogger } from './src-Uz3Zxy35.js';
2
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, k as jsonResponse, e as errorResponse, g as getOpenCodeClient } from './helpers-DVEMTWLn.js';
3
- import { b as setProviderOptions, p as patchConfig, a as setProviderEnabled, g as getCurrentConfig, r as registerProvider, s as setMainModel } from './config-Bye6wp0D.js';
1
+ import { O as detectLocalProviders, F as createLogger } from './src-O9QA_b9U.js';
2
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, k as jsonResponse, e as errorResponse, g as getOpenCodeClient } from './helpers-C_e8wlRS.js';
3
+ import { b as setProviderOptions, p as patchConfig, a as setProviderEnabled, g as getCurrentConfig, r as registerProvider, s as setMainModel } from './config-CTUYWLn1.js';
4
4
  import { a as asStringOrEmpty, p as parseHeaders, d as updateNumberOption, u as updateBooleanOption, c as parseModels, b as buildModelConfig } from './_helpers-B_lb4-jB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -23,10 +23,10 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-fj6vLytr.js';
27
- import './state-eIzoC5pj.js';
26
+ import './endpoints-B5kqgVQo.js';
27
+ import './state-DjoSRCLN.js';
28
28
  import './coercion-TNFJisCC.js';
29
- import './http-bQ4RFNBK.js';
29
+ import './http-Djg8zk5F.js';
30
30
 
31
31
  //#region src/routes/admin/providers/[id]/+server.ts
32
32
  var logger = createLogger("admin.providers.patch");
@@ -200,4 +200,4 @@ var PATCH = async (event) => {
200
200
  };
201
201
 
202
202
  export { PATCH };
203
- //# sourceMappingURL=_server.ts-BCwfNBe4.js.map
203
+ //# sourceMappingURL=_server.ts-CmHau90Y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BCwfNBe4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_id_/_server.ts.js"],"sourcesContent":["import { dn as createLogger, u as detectLocalProviders } from \"../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { a as setProviderEnabled, i as setMainModel, n as patchConfig, o as setProviderOptions, r as registerProvider, t as getCurrentConfig } from \"../../../../../chunks/config.js\";\nimport { a as parseModels, i as parseHeaders, n as buildModelConfig, o as updateBooleanOption, s as updateNumberOption, t as asStringOrEmpty } from \"../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/[id]/+server.ts\nvar logger = createLogger(\"admin.providers.patch\");\n/** Allowed format for a custom provider id */\nvar CUSTOM_PROVIDER_ID_PATTERN = /^[a-z0-9_-]+$/;\nvar LOCAL_PROVIDER_LABELS = {\n\tollama: \"Local Ollama\",\n\tlmstudio: \"Local LM Studio\",\n\t\"model-runner\": \"Docker Model Runner\"\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst kind = typeof body.kind === \"string\" ? body.kind : \"\";\n\tif (kind === \"options\") try {\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst enterpriseUrl = asStringOrEmpty(body.enterpriseUrl);\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headers));\n\t\tconst nextOptions = {};\n\t\tupdateNumberOption(nextOptions, \"timeout\", asStringOrEmpty(body.timeout));\n\t\tupdateBooleanOption(nextOptions, \"setCacheKey\", body.setCacheKey === \"on\" || body.setCacheKey === true);\n\t\tawait setProviderOptions(providerId, {\n\t\t\tbaseURL: baseURL || void 0,\n\t\t\tenterpriseUrl: enterpriseUrl || void 0,\n\t\t\ttimeout: typeof nextOptions.timeout === \"number\" ? nextOptions.timeout : void 0,\n\t\t\tsetCacheKey: nextOptions.setCacheKey === true,\n\t\t\theaders: headers && Object.keys(headers).length > 0 ? headers : null\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Provider settings saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"toggle\") try {\n\t\tconst nextState = asStringOrEmpty(body.enabled) === \"true\" || body.enabled === true;\n\t\tawait patchConfig(setProviderEnabled(await getCurrentConfig(), providerId, nextState));\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: nextState ? \"Provider enabled for model selection.\" : \"Provider disabled for this workspace.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-local\") try {\n\t\tif (!Object.prototype.hasOwnProperty.call(LOCAL_PROVIDER_LABELS, providerId)) return errorResponse(400, \"bad_request\", \"provider must be one of: ollama, lmstudio, model-runner\", {}, requestId);\n\t\tconst match = (await detectLocalProviders()).find((d) => d.provider === providerId);\n\t\tif (!match || !match.available) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: `No reachable ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} endpoint found.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst existingEntry = ((await getCurrentConfig()).provider ?? {})[providerId];\n\t\tconst existingOptions = existingEntry?.options ?? {};\n\t\tawait registerProvider(providerId, {\n\t\t\tnpm: typeof existingEntry?.npm === \"string\" ? existingEntry.npm : \"@ai-sdk/openai-compatible\",\n\t\t\tname: typeof existingEntry?.name === \"string\" ? existingEntry.name : LOCAL_PROVIDER_LABELS[providerId] ?? providerId,\n\t\t\toptions: {\n\t\t\t\t...existingOptions,\n\t\t\t\tbaseURL: match.url\n\t\t\t}\n\t\t}, true);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: `Registered ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} at ${match.url}.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-custom\") try {\n\t\tconst displayName = asStringOrEmpty(body.displayName);\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst apiKey = asStringOrEmpty(body.apiKey);\n\t\tconst confirmOverwrite = asStringOrEmpty(body.confirmOverwrite) === \"true\";\n\t\tif (!CUSTOM_PROVIDER_ID_PATTERN.test(providerId)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Use a lowercase provider id with letters, numbers, hyphens, or underscores.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tif (!displayName || !baseURL) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Display name and base URL are required for a custom provider.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst models = parseModels(asStringOrEmpty(body.modelsJson));\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headersJson));\n\t\tconst entry = {\n\t\t\tnpm: \"@ai-sdk/openai-compatible\",\n\t\t\tname: displayName,\n\t\t\toptions: {\n\t\t\t\tbaseURL,\n\t\t\t\t...Object.keys(headers).length > 0 ? { headers } : {}\n\t\t\t}\n\t\t};\n\t\tif (models.length > 0) entry.models = Object.fromEntries(models.map((m) => [m.id, buildModelConfig(m)]));\n\t\tif ((await registerProvider(providerId, entry, confirmOverwrite)).alreadyExists) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"A provider with this ID already exists. Enable overwrite to replace it.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tif (apiKey) try {\n\t\t\tconst authResult = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\t\tif (!authResult.ok) logger.warn(\"custom provider apiKey save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\tcode: authResult.code,\n\t\t\t\tmessage: authResult.message,\n\t\t\t\trequestId\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.warn(\"custom provider apiKey threw\", {\n\t\t\t\tproviderId,\n\t\t\t\terror: String(err),\n\t\t\t\trequestId\n\t\t\t});\n\t\t}\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Custom provider saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"set-model\") try {\n\t\tconst modelId = asStringOrEmpty(body.modelId);\n\t\tconst target = asStringOrEmpty(body.target);\n\t\tif (!modelId || target !== \"model\" && target !== \"small_model\") return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider model before saving it.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tawait setMainModel(providerId, modelId, target);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: target === \"model\" ? \"Main model updated for this project.\" : \"Small model updated for lightweight tasks.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", `Unknown kind \"${kind}\". Expected: options, toggle, register-local, register-custom, set-model`, {}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CmHau90Y.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_id_/_server.ts.js"],"sourcesContent":["import { dn as createLogger, u as detectLocalProviders } from \"../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { a as setProviderEnabled, i as setMainModel, n as patchConfig, o as setProviderOptions, r as registerProvider, t as getCurrentConfig } from \"../../../../../chunks/config.js\";\nimport { a as parseModels, i as parseHeaders, n as buildModelConfig, o as updateBooleanOption, s as updateNumberOption, t as asStringOrEmpty } from \"../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/[id]/+server.ts\nvar logger = createLogger(\"admin.providers.patch\");\n/** Allowed format for a custom provider id */\nvar CUSTOM_PROVIDER_ID_PATTERN = /^[a-z0-9_-]+$/;\nvar LOCAL_PROVIDER_LABELS = {\n\tollama: \"Local Ollama\",\n\tlmstudio: \"Local LM Studio\",\n\t\"model-runner\": \"Docker Model Runner\"\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst kind = typeof body.kind === \"string\" ? body.kind : \"\";\n\tif (kind === \"options\") try {\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst enterpriseUrl = asStringOrEmpty(body.enterpriseUrl);\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headers));\n\t\tconst nextOptions = {};\n\t\tupdateNumberOption(nextOptions, \"timeout\", asStringOrEmpty(body.timeout));\n\t\tupdateBooleanOption(nextOptions, \"setCacheKey\", body.setCacheKey === \"on\" || body.setCacheKey === true);\n\t\tawait setProviderOptions(providerId, {\n\t\t\tbaseURL: baseURL || void 0,\n\t\t\tenterpriseUrl: enterpriseUrl || void 0,\n\t\t\ttimeout: typeof nextOptions.timeout === \"number\" ? nextOptions.timeout : void 0,\n\t\t\tsetCacheKey: nextOptions.setCacheKey === true,\n\t\t\theaders: headers && Object.keys(headers).length > 0 ? headers : null\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Provider settings saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"toggle\") try {\n\t\tconst nextState = asStringOrEmpty(body.enabled) === \"true\" || body.enabled === true;\n\t\tawait patchConfig(setProviderEnabled(await getCurrentConfig(), providerId, nextState));\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: nextState ? \"Provider enabled for model selection.\" : \"Provider disabled for this workspace.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-local\") try {\n\t\tif (!Object.prototype.hasOwnProperty.call(LOCAL_PROVIDER_LABELS, providerId)) return errorResponse(400, \"bad_request\", \"provider must be one of: ollama, lmstudio, model-runner\", {}, requestId);\n\t\tconst match = (await detectLocalProviders()).find((d) => d.provider === providerId);\n\t\tif (!match || !match.available) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: `No reachable ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} endpoint found.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst existingEntry = ((await getCurrentConfig()).provider ?? {})[providerId];\n\t\tconst existingOptions = existingEntry?.options ?? {};\n\t\tawait registerProvider(providerId, {\n\t\t\tnpm: typeof existingEntry?.npm === \"string\" ? existingEntry.npm : \"@ai-sdk/openai-compatible\",\n\t\t\tname: typeof existingEntry?.name === \"string\" ? existingEntry.name : LOCAL_PROVIDER_LABELS[providerId] ?? providerId,\n\t\t\toptions: {\n\t\t\t\t...existingOptions,\n\t\t\t\tbaseURL: match.url\n\t\t\t}\n\t\t}, true);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: `Registered ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} at ${match.url}.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-custom\") try {\n\t\tconst displayName = asStringOrEmpty(body.displayName);\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst apiKey = asStringOrEmpty(body.apiKey);\n\t\tconst confirmOverwrite = asStringOrEmpty(body.confirmOverwrite) === \"true\";\n\t\tif (!CUSTOM_PROVIDER_ID_PATTERN.test(providerId)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Use a lowercase provider id with letters, numbers, hyphens, or underscores.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tif (!displayName || !baseURL) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Display name and base URL are required for a custom provider.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst models = parseModels(asStringOrEmpty(body.modelsJson));\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headersJson));\n\t\tconst entry = {\n\t\t\tnpm: \"@ai-sdk/openai-compatible\",\n\t\t\tname: displayName,\n\t\t\toptions: {\n\t\t\t\tbaseURL,\n\t\t\t\t...Object.keys(headers).length > 0 ? { headers } : {}\n\t\t\t}\n\t\t};\n\t\tif (models.length > 0) entry.models = Object.fromEntries(models.map((m) => [m.id, buildModelConfig(m)]));\n\t\tif ((await registerProvider(providerId, entry, confirmOverwrite)).alreadyExists) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"A provider with this ID already exists. Enable overwrite to replace it.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tif (apiKey) try {\n\t\t\tconst authResult = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\t\tif (!authResult.ok) logger.warn(\"custom provider apiKey save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\tcode: authResult.code,\n\t\t\t\tmessage: authResult.message,\n\t\t\t\trequestId\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.warn(\"custom provider apiKey threw\", {\n\t\t\t\tproviderId,\n\t\t\t\terror: String(err),\n\t\t\t\trequestId\n\t\t\t});\n\t\t}\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Custom provider saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"set-model\") try {\n\t\tconst modelId = asStringOrEmpty(body.modelId);\n\t\tconst target = asStringOrEmpty(body.target);\n\t\tif (!modelId || target !== \"model\" && target !== \"small_model\") return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider model before saving it.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tawait setMainModel(providerId, modelId, target);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: target === \"model\" ? \"Main model updated for this project.\" : \"Small model updated for lightweight tasks.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", `Unknown kind \"${kind}\". Expected: options, toggle, register-local, register-custom, set-model`, {}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { F as createLogger, c as applyInstall, o as checkDocker, d as applyStack, m as buildComposeOptions } from './src-Uz3Zxy35.js';
2
- import { g as getState } from './state-eIzoC5pj.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-DVEMTWLn.js';
1
+ import { F as createLogger, c as applyInstall, o as checkDocker, d as applyStack, m as buildComposeOptions } from './src-O9QA_b9U.js';
2
+ import { g as getState } from './state-DjoSRCLN.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-C_e8wlRS.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-fj6vLytr.js';
26
+ import './endpoints-B5kqgVQo.js';
27
27
 
28
28
  //#region src/routes/admin/install/+server.ts
29
29
  var logger = createLogger("install");
@@ -76,4 +76,4 @@ var POST = async (event) => {
76
76
  };
77
77
 
78
78
  export { POST };
79
- //# sourceMappingURL=_server.ts-BVTKO23J.js.map
79
+ //# sourceMappingURL=_server.ts-Cq3pSH4z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BVTKO23J.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { J as checkDocker, N as buildComposeOptions, P as applyInstall, dn as createLogger, q as applyStack } 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\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tawait applyInstall(state);\n\t\t\tif (!(await checkDocker()).ok) {\n\t\t\t\tlogger.info(\"install completed (Docker unavailable — stack not started)\", { requestId });\n\t\t\t\treturn jsonResponse(200, {\n\t\t\t\t\tok: true,\n\t\t\t\t\tstarted: [],\n\t\t\t\t\tfailed: [],\n\t\t\t\t\tdockerAvailable: false,\n\t\t\t\t\toverallSuccess: true\n\t\t\t\t}, requestId);\n\t\t\t}\n\t\t\tconst stackResult = await applyStack({ kind: \"all\" }, buildComposeOptions(state));\n\t\t\tconst overallSuccess = stackResult.ok;\n\t\t\tconst status = stackResult.ok ? 200 : 502;\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: true,\n\t\t\t\toverallSuccess,\n\t\t\t\tstartedCount: stackResult.started.length,\n\t\t\t\tfailedCount: stackResult.failed.length\n\t\t\t});\n\t\t\treturn jsonResponse(status, {\n\t\t\t\tok: overallSuccess,\n\t\t\t\tstarted: stackResult.started,\n\t\t\t\tfailed: stackResult.failed,\n\t\t\t\tdockerAvailable: true,\n\t\t\t\toverallSuccess,\n\t\t\t\t...stackResult.error ? { error: stackResult.error } : {}\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAClC,IAAI,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE,EAAE,SAAS,EAAE,CAAC;AAC5F,IAAI,OAAO,YAAY,CAAC,GAAG,EAAE;AAC7B,KAAK,EAAE,EAAE,IAAI;AACb,KAAK,OAAO,EAAE,EAAE;AAChB,KAAK,MAAM,EAAE,EAAE;AACf,KAAK,eAAe,EAAE,KAAK;AAC3B,KAAK,cAAc,EAAE;AACrB,KAAK,EAAE,SAAS,CAAC;AACjB,GAAG;AACH,GAAG,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpF,GAAG,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE;AACxC,GAAG,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG;AAC5C,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,eAAe,EAAE,IAAI;AACzB,IAAI,cAAc;AAClB,IAAI,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AAC5C,IAAI,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;AACpC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,MAAM,EAAE;AAC/B,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,WAAW,CAAC,OAAO;AAChC,IAAI,MAAM,EAAE,WAAW,CAAC,MAAM;AAC9B,IAAI,eAAe,EAAE,IAAI;AACzB,IAAI,cAAc;AAClB,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG;AAC1D,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-Cq3pSH4z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { J as checkDocker, N as buildComposeOptions, P as applyInstall, dn as createLogger, q as applyStack } 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\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tawait applyInstall(state);\n\t\t\tif (!(await checkDocker()).ok) {\n\t\t\t\tlogger.info(\"install completed (Docker unavailable — stack not started)\", { requestId });\n\t\t\t\treturn jsonResponse(200, {\n\t\t\t\t\tok: true,\n\t\t\t\t\tstarted: [],\n\t\t\t\t\tfailed: [],\n\t\t\t\t\tdockerAvailable: false,\n\t\t\t\t\toverallSuccess: true\n\t\t\t\t}, requestId);\n\t\t\t}\n\t\t\tconst stackResult = await applyStack({ kind: \"all\" }, buildComposeOptions(state));\n\t\t\tconst overallSuccess = stackResult.ok;\n\t\t\tconst status = stackResult.ok ? 200 : 502;\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: true,\n\t\t\t\toverallSuccess,\n\t\t\t\tstartedCount: stackResult.started.length,\n\t\t\t\tfailedCount: stackResult.failed.length\n\t\t\t});\n\t\t\treturn jsonResponse(status, {\n\t\t\t\tok: overallSuccess,\n\t\t\t\tstarted: stackResult.started,\n\t\t\t\tfailed: stackResult.failed,\n\t\t\t\tdockerAvailable: true,\n\t\t\t\toverallSuccess,\n\t\t\t\t...stackResult.error ? { error: stackResult.error } : {}\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAClC,IAAI,MAAM,CAAC,IAAI,CAAC,4DAA4D,EAAE,EAAE,SAAS,EAAE,CAAC;AAC5F,IAAI,OAAO,YAAY,CAAC,GAAG,EAAE;AAC7B,KAAK,EAAE,EAAE,IAAI;AACb,KAAK,OAAO,EAAE,EAAE;AAChB,KAAK,MAAM,EAAE,EAAE;AACf,KAAK,eAAe,EAAE,KAAK;AAC3B,KAAK,cAAc,EAAE;AACrB,KAAK,EAAE,SAAS,CAAC;AACjB,GAAG;AACH,GAAG,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpF,GAAG,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE;AACxC,GAAG,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG;AAC5C,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,eAAe,EAAE,IAAI;AACzB,IAAI,cAAc;AAClB,IAAI,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AAC5C,IAAI,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC;AACpC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,MAAM,EAAE;AAC/B,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,WAAW,CAAC,OAAO;AAChC,IAAI,MAAM,EAAE,WAAW,CAAC,MAAM;AAC9B,IAAI,eAAe,EAAE,IAAI;AACzB,IAAI,cAAc;AAClB,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG;AAC1D,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { g as getOpenCodeClient } from './helpers-DVEMTWLn.js';
2
+ import { g as getOpenCodeClient } from './helpers-C_e8wlRS.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-Uz3Zxy35.js';
4
+ import './src-O9QA_b9U.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,8 +23,8 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-fj6vLytr.js';
27
- import './state-eIzoC5pj.js';
26
+ import './endpoints-B5kqgVQo.js';
27
+ import './state-DjoSRCLN.js';
28
28
 
29
29
  //#region src/routes/api/setup/opencode/status/+server.ts
30
30
  var GET = async () => {
@@ -42,4 +42,4 @@ var GET = async () => {
42
42
  };
43
43
 
44
44
  export { GET };
45
- //# sourceMappingURL=_server.ts-BVOhl22s.js.map
45
+ //# sourceMappingURL=_server.ts-CqWWaZdK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BVOhl22s.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/status/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: await getOpenCodeClient().isAvailable()\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: false\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,iBAAiB,EAAE,CAAC,WAAW;AACnD,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-CqWWaZdK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/status/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: await getOpenCodeClient().isAvailable()\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: false\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,iBAAiB,EAAE,CAAC,WAAW;AACnD,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -1,5 +1,5 @@
1
- import { F as createLogger } from './src-Uz3Zxy35.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-DVEMTWLn.js';
1
+ import { F as createLogger } from './src-O9QA_b9U.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-C_e8wlRS.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-fj6vLytr.js';
25
- import './state-eIzoC5pj.js';
24
+ import './endpoints-B5kqgVQo.js';
25
+ import './state-DjoSRCLN.js';
26
26
 
27
27
  //#region src/routes/admin/opencode/providers/[id]/auth/+server.ts
28
28
  var logger = createLogger("opencode.auth");
@@ -163,4 +163,4 @@ var DELETE = async (event) => {
163
163
  };
164
164
 
165
165
  export { DELETE, GET, POST };
166
- //# sourceMappingURL=_server.ts-BKfbdQe4.js.map
166
+ //# sourceMappingURL=_server.ts-CrbNy-Pb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BKfbdQe4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { dn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CrbNy-Pb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { dn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { aR as summarizeBackups, ad as listBackupDirs, ap as pruneBackupDirs, F as createLogger } from './src-Uz3Zxy35.js';
2
- import { g as getState } from './state-eIzoC5pj.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-DVEMTWLn.js';
1
+ import { aR as summarizeBackups, ad as listBackupDirs, ap as pruneBackupDirs, F as createLogger } from './src-O9QA_b9U.js';
2
+ import { g as getState } from './state-DjoSRCLN.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-C_e8wlRS.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-fj6vLytr.js';
25
+ import './endpoints-B5kqgVQo.js';
26
26
 
27
27
  //#region src/routes/admin/backups/+server.ts
28
28
  var logger = createLogger("backups-admin");
@@ -86,4 +86,4 @@ var POST = async (event) => {
86
86
  };
87
87
 
88
88
  export { GET, POST };
89
- //# sourceMappingURL=_server.ts-CxQhPFPR.js.map
89
+ //# sourceMappingURL=_server.ts-Crw2xWbv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CxQhPFPR.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { cn as listBackupDirs, dn as createLogger, ln as pruneBackupDirs, un as summarizeBackups } 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/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\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\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;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;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;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,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-Crw2xWbv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { cn as listBackupDirs, dn as createLogger, ln as pruneBackupDirs, un as summarizeBackups } 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/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\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\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;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;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;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,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
@@ -1,5 +1,5 @@
1
- import { o as checkDocker, a2 as getDockerEvents } from './src-Uz3Zxy35.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-DVEMTWLn.js';
1
+ import { o as checkDocker, a2 as getDockerEvents } from './src-O9QA_b9U.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-C_e8wlRS.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-fj6vLytr.js';
25
- import './state-eIzoC5pj.js';
24
+ import './endpoints-B5kqgVQo.js';
25
+ import './state-DjoSRCLN.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-BPGJljCx.js.map
47
+ //# sourceMappingURL=_server.ts-CsHRyjzd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BPGJljCx.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { J as checkDocker, ot 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-CsHRyjzd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { J as checkDocker, ot 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;;;;"}