@openpalm/ui 0.11.2 → 0.11.3-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/C-sSVbJo.js +1 -0
  3. package/build/client/_app/immutable/chunks/C-sSVbJo.js.br +2 -0
  4. package/build/client/_app/immutable/chunks/C-sSVbJo.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/C6H1sfn1.js +1 -0
  6. package/build/client/_app/immutable/chunks/C6H1sfn1.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/C6H1sfn1.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/D9LRIz_I.js +5 -0
  9. package/build/client/_app/immutable/chunks/D9LRIz_I.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/D9LRIz_I.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/MWgo-EQN.js +3 -0
  12. package/build/client/_app/immutable/chunks/MWgo-EQN.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/MWgo-EQN.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/{app.jhM1F9Lz.js → app.BKTyb7ZQ.js} +2 -2
  15. package/build/client/_app/immutable/entry/app.BKTyb7ZQ.js.br +0 -0
  16. package/build/client/_app/immutable/entry/app.BKTyb7ZQ.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/start.CN6C9_iJ.js +1 -0
  18. package/build/client/_app/immutable/entry/start.CN6C9_iJ.js.br +0 -0
  19. package/build/client/_app/immutable/entry/start.CN6C9_iJ.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.CAM0_CnR.js → 1.BAxAehbc.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.BAxAehbc.js.br +0 -0
  22. package/build/client/_app/immutable/nodes/1.BAxAehbc.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{4.BInZ_Tt5.js → 4.Ds_EDXAF.js} +1 -1
  24. package/build/client/_app/immutable/nodes/4.Ds_EDXAF.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/{4.BInZ_Tt5.js.gz → 4.Ds_EDXAF.js.gz} +0 -0
  26. package/build/client/_app/immutable/nodes/{5.e3eblL7D.js → 5.BKi1GIpv.js} +1 -1
  27. package/build/client/_app/immutable/nodes/5.BKi1GIpv.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/5.BKi1GIpv.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{6.D6wSITV7.js → 6.BmmaVwNn.js} +1 -1
  30. package/build/client/_app/immutable/nodes/6.BmmaVwNn.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/6.BmmaVwNn.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{7.C1W_OsSf.js → 7.AqCKkpbO.js} +1 -1
  33. package/build/client/_app/immutable/nodes/7.AqCKkpbO.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/{7.C1W_OsSf.js.gz → 7.AqCKkpbO.js.gz} +0 -0
  35. package/build/client/_app/immutable/nodes/{8.9E6jSDDa.js → 8.CGV3MiHo.js} +1 -1
  36. package/build/client/_app/immutable/nodes/8.CGV3MiHo.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/8.CGV3MiHo.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{9.CutxJ3jN.js → 9.CFQabEMi.js} +3 -3
  39. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.gz +0 -0
  41. package/build/client/_app/version.json +1 -1
  42. package/build/client/_app/version.json.br +1 -1
  43. package/build/client/_app/version.json.gz +0 -0
  44. package/build/server/chunks/1-CN4IyeuK.js +9 -0
  45. package/build/server/chunks/{1-DGZd-zFK.js.map → 1-CN4IyeuK.js.map} +1 -1
  46. package/build/server/chunks/4-CSC3dcY8.js +9 -0
  47. package/build/server/chunks/{4-D9UtUsJp.js.map → 4-CSC3dcY8.js.map} +1 -1
  48. package/build/server/chunks/5-kcs1qRfH.js +9 -0
  49. package/build/server/chunks/{5-B_4lRh2I.js.map → 5-kcs1qRfH.js.map} +1 -1
  50. package/build/server/chunks/{6-BLnRcxu-.js → 6-hGDLkIgU.js} +3 -3
  51. package/build/server/chunks/{6-BLnRcxu-.js.map → 6-hGDLkIgU.js.map} +1 -1
  52. package/build/server/chunks/7-CxrtjAcR.js +9 -0
  53. package/build/server/chunks/{7-Ce9mKDNS.js.map → 7-CxrtjAcR.js.map} +1 -1
  54. package/build/server/chunks/{8-DZdi94I7.js → 8-B4b9vc3y.js} +3 -3
  55. package/build/server/chunks/{8-DZdi94I7.js.map → 8-B4b9vc3y.js.map} +1 -1
  56. package/build/server/chunks/{9-DbwaI7nh.js → 9-CGVsBC0_.js} +2 -2
  57. package/build/server/chunks/{9-DbwaI7nh.js.map → 9-CGVsBC0_.js.map} +1 -1
  58. package/build/server/chunks/{Navbar-BHPXjl1A.js → Navbar-Dvgl5XIe.js} +6 -3
  59. package/build/server/chunks/Navbar-Dvgl5XIe.js.map +1 -0
  60. package/build/server/chunks/_page.svelte-B0M8mXzs.js.map +1 -1
  61. package/build/server/chunks/{_page.svelte-CXkNPL1p.js → _page.svelte-BJdYPF2B.js} +5 -5
  62. package/build/server/chunks/{_page.svelte-CXkNPL1p.js.map → _page.svelte-BJdYPF2B.js.map} +1 -1
  63. package/build/server/chunks/{_page.svelte-BXZROSm4.js → _page.svelte-Cb4lQ28_.js} +5 -5
  64. package/build/server/chunks/{_page.svelte-BXZROSm4.js.map → _page.svelte-Cb4lQ28_.js.map} +1 -1
  65. package/build/server/chunks/{_page.svelte-Cp6aBilY.js → _page.svelte-DBPaePBZ.js} +5 -5
  66. package/build/server/chunks/{_page.svelte-Cp6aBilY.js.map → _page.svelte-DBPaePBZ.js.map} +1 -1
  67. package/build/server/chunks/{_page.svelte-Ra8DEIk0.js → _page.svelte-Dm9-lf4l.js} +3 -3
  68. package/build/server/chunks/{_page.svelte-Ra8DEIk0.js.map → _page.svelte-Dm9-lf4l.js.map} +1 -1
  69. package/build/server/chunks/{_page.svelte-C4_2jNl6.js → _page.svelte-e0BQyOr0.js} +6 -6
  70. package/build/server/chunks/{_page.svelte-C4_2jNl6.js.map → _page.svelte-e0BQyOr0.js.map} +1 -1
  71. package/build/server/chunks/{_server.ts-OVKLVpsS.js → _server.ts-3bIOrNCW.js} +4 -4
  72. package/build/server/chunks/{_server.ts-OVKLVpsS.js.map → _server.ts-3bIOrNCW.js.map} +1 -1
  73. package/build/server/chunks/{_server.ts-IJ68pRcj.js → _server.ts-6j35W-bb.js} +5 -5
  74. package/build/server/chunks/{_server.ts-IJ68pRcj.js.map → _server.ts-6j35W-bb.js.map} +1 -1
  75. package/build/server/chunks/{_server.ts-Cix_DzOZ.js → _server.ts-7Wf3G6xc.js} +4 -4
  76. package/build/server/chunks/{_server.ts-Cix_DzOZ.js.map → _server.ts-7Wf3G6xc.js.map} +1 -1
  77. package/build/server/chunks/{_server.ts-5pMviGH3.js → _server.ts-B3DUJf6P.js} +16 -4
  78. package/build/server/chunks/_server.ts-B3DUJf6P.js.map +1 -0
  79. package/build/server/chunks/{_server.ts-DuJ8w3d8.js → _server.ts-B8V8xLOX.js} +4 -4
  80. package/build/server/chunks/{_server.ts-DuJ8w3d8.js.map → _server.ts-B8V8xLOX.js.map} +1 -1
  81. package/build/server/chunks/{_server.ts-C901uAGV.js → _server.ts-BGZDhLXh.js} +8 -7
  82. package/build/server/chunks/_server.ts-BGZDhLXh.js.map +1 -0
  83. package/build/server/chunks/{_server.ts-CyUtNvIJ.js → _server.ts-BOha2L_A.js} +4 -4
  84. package/build/server/chunks/{_server.ts-CyUtNvIJ.js.map → _server.ts-BOha2L_A.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-6KmCyX4_.js → _server.ts-BPBMdkDE.js} +6 -6
  86. package/build/server/chunks/{_server.ts-6KmCyX4_.js.map → _server.ts-BPBMdkDE.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-BJqeSuwW.js → _server.ts-BTFkcp50.js} +4 -4
  88. package/build/server/chunks/{_server.ts-BJqeSuwW.js.map → _server.ts-BTFkcp50.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-D5gUeFJE.js → _server.ts-BU9Dy6Ga.js} +5 -5
  90. package/build/server/chunks/{_server.ts-D5gUeFJE.js.map → _server.ts-BU9Dy6Ga.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-DiJOVzSl.js → _server.ts-B_PD1-BE.js} +4 -4
  92. package/build/server/chunks/{_server.ts-DiJOVzSl.js.map → _server.ts-B_PD1-BE.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-crIb-8QZ.js → _server.ts-BbzfnU5x.js} +5 -5
  94. package/build/server/chunks/{_server.ts-crIb-8QZ.js.map → _server.ts-BbzfnU5x.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-Bvp4YpaT.js → _server.ts-Bc4WPPlv.js} +6 -6
  96. package/build/server/chunks/{_server.ts-Bvp4YpaT.js.map → _server.ts-Bc4WPPlv.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-zCuG209p.js → _server.ts-BkpQZcF0.js} +4 -4
  98. package/build/server/chunks/{_server.ts-zCuG209p.js.map → _server.ts-BkpQZcF0.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-ByXfEYZ3.js → _server.ts-ByC7qKzo.js} +4 -4
  100. package/build/server/chunks/{_server.ts-ByXfEYZ3.js.map → _server.ts-ByC7qKzo.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-MVqFnsqa.js → _server.ts-C1m2Gw5U.js} +4 -4
  102. package/build/server/chunks/{_server.ts-MVqFnsqa.js.map → _server.ts-C1m2Gw5U.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-C_JYwlDL.js → _server.ts-C2-tZdFx.js} +4 -4
  104. package/build/server/chunks/{_server.ts-C_JYwlDL.js.map → _server.ts-C2-tZdFx.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-CK0Rxw5K.js → _server.ts-C2qehtMf.js} +4 -4
  106. package/build/server/chunks/{_server.ts-CK0Rxw5K.js.map → _server.ts-C2qehtMf.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-BH3-HO5r.js → _server.ts-CF-JUFSB.js} +6 -6
  108. package/build/server/chunks/{_server.ts-BH3-HO5r.js.map → _server.ts-CF-JUFSB.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-Dhzz7tHs.js → _server.ts-CGHhMNs3.js} +5 -5
  110. package/build/server/chunks/{_server.ts-Dhzz7tHs.js.map → _server.ts-CGHhMNs3.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-o9s65uGr.js → _server.ts-CP6bZaJJ.js} +4 -4
  112. package/build/server/chunks/{_server.ts-o9s65uGr.js.map → _server.ts-CP6bZaJJ.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-RHuSC2x-.js → _server.ts-CS7JXLT-.js} +4 -4
  114. package/build/server/chunks/{_server.ts-RHuSC2x-.js.map → _server.ts-CS7JXLT-.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-DFJDEcdK.js → _server.ts-CSZYdKIz.js} +2 -2
  116. package/build/server/chunks/{_server.ts-DFJDEcdK.js.map → _server.ts-CSZYdKIz.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-B8jv4dTo.js → _server.ts-CS_9GHcK.js} +4 -4
  118. package/build/server/chunks/{_server.ts-B8jv4dTo.js.map → _server.ts-CS_9GHcK.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-CjcbK3K2.js → _server.ts-CXZAOFJM.js} +4 -4
  120. package/build/server/chunks/{_server.ts-CjcbK3K2.js.map → _server.ts-CXZAOFJM.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-BRaaz800.js → _server.ts-ChEUjFy2.js} +4 -4
  122. package/build/server/chunks/{_server.ts-BRaaz800.js.map → _server.ts-ChEUjFy2.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-BmCX_RO-.js → _server.ts-CnU909WV.js} +5 -5
  124. package/build/server/chunks/{_server.ts-BmCX_RO-.js.map → _server.ts-CnU909WV.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-C6CQ4cXn.js → _server.ts-Cnjv0PV3.js} +4 -4
  126. package/build/server/chunks/{_server.ts-C6CQ4cXn.js.map → _server.ts-Cnjv0PV3.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-C6xE00MS.js → _server.ts-Ctm2JarS.js} +4 -4
  128. package/build/server/chunks/{_server.ts-C6xE00MS.js.map → _server.ts-Ctm2JarS.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-CkyeWLQD.js → _server.ts-CuWvzlxI.js} +5 -5
  130. package/build/server/chunks/{_server.ts-CkyeWLQD.js.map → _server.ts-CuWvzlxI.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-c5vxACJj.js → _server.ts-D-CG_91w.js} +4 -4
  132. package/build/server/chunks/{_server.ts-c5vxACJj.js.map → _server.ts-D-CG_91w.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-XII8m8Um.js → _server.ts-D-p2Hm9n.js} +2 -2
  134. package/build/server/chunks/{_server.ts-XII8m8Um.js.map → _server.ts-D-p2Hm9n.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-BqQPs0i_.js → _server.ts-D-s-9ge-.js} +3 -3
  136. package/build/server/chunks/{_server.ts-BqQPs0i_.js.map → _server.ts-D-s-9ge-.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-D4X4auyD.js → _server.ts-D2KqxMre.js} +4 -4
  138. package/build/server/chunks/{_server.ts-D4X4auyD.js.map → _server.ts-D2KqxMre.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-D8sMZCw-.js → _server.ts-D2iTW5_-.js} +4 -4
  140. package/build/server/chunks/{_server.ts-D8sMZCw-.js.map → _server.ts-D2iTW5_-.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-CqlfB-aA.js → _server.ts-D5p0zu-y.js} +4 -4
  142. package/build/server/chunks/{_server.ts-CqlfB-aA.js.map → _server.ts-D5p0zu-y.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-DhyOE-KP.js → _server.ts-D86uN0DZ.js} +2 -2
  144. package/build/server/chunks/{_server.ts-DhyOE-KP.js.map → _server.ts-D86uN0DZ.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-CIcZeBAF.js → _server.ts-D8p-Zc8Z.js} +4 -4
  146. package/build/server/chunks/{_server.ts-CIcZeBAF.js.map → _server.ts-D8p-Zc8Z.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-BRAfEDvT.js → _server.ts-D9bBTzrV.js} +4 -4
  148. package/build/server/chunks/{_server.ts-BRAfEDvT.js.map → _server.ts-D9bBTzrV.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-X6kwNmZX.js → _server.ts-DJLROGuC.js} +4 -4
  150. package/build/server/chunks/{_server.ts-X6kwNmZX.js.map → _server.ts-DJLROGuC.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-BHIP51pX.js → _server.ts-DKKKZx7q.js} +4 -4
  152. package/build/server/chunks/{_server.ts-BHIP51pX.js.map → _server.ts-DKKKZx7q.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-DxDXTfuq.js → _server.ts-DP-NPkMD.js} +4 -4
  154. package/build/server/chunks/{_server.ts-DxDXTfuq.js.map → _server.ts-DP-NPkMD.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-CK8sJWT2.js → _server.ts-D_da58Nk.js} +5 -5
  156. package/build/server/chunks/{_server.ts-CK8sJWT2.js.map → _server.ts-D_da58Nk.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-CKf5jMDy.js → _server.ts-DaLBPART.js} +4 -4
  158. package/build/server/chunks/{_server.ts-CKf5jMDy.js.map → _server.ts-DaLBPART.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-CrRcF8Ie.js → _server.ts-DgRjI1W8.js} +4 -4
  160. package/build/server/chunks/{_server.ts-CrRcF8Ie.js.map → _server.ts-DgRjI1W8.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-B4Atr7Pb.js → _server.ts-DjfCGqvA.js} +4 -4
  162. package/build/server/chunks/{_server.ts-B4Atr7Pb.js.map → _server.ts-DjfCGqvA.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-CaSXmkds.js → _server.ts-Dkk8XP3m.js} +4 -4
  164. package/build/server/chunks/{_server.ts-CaSXmkds.js.map → _server.ts-Dkk8XP3m.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-C5cUQhLR.js → _server.ts-Dl07R_n2.js} +5 -5
  166. package/build/server/chunks/{_server.ts-C5cUQhLR.js.map → _server.ts-Dl07R_n2.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-C90P5trG.js → _server.ts-Do2sgBif.js} +8 -7
  168. package/build/server/chunks/_server.ts-Do2sgBif.js.map +1 -0
  169. package/build/server/chunks/{_server.ts-BHxlYhmn.js → _server.ts-DrJ5_e35.js} +2 -2
  170. package/build/server/chunks/{_server.ts-BHxlYhmn.js.map → _server.ts-DrJ5_e35.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-CXkRiweb.js → _server.ts-Ds9OIz3V.js} +4 -4
  172. package/build/server/chunks/{_server.ts-CXkRiweb.js.map → _server.ts-Ds9OIz3V.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-CPo93T4Q.js → _server.ts-DuMzNLkr.js} +6 -6
  174. package/build/server/chunks/{_server.ts-CPo93T4Q.js.map → _server.ts-DuMzNLkr.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-CWhPqSHs.js → _server.ts-Dv1tbIPB.js} +4 -4
  176. package/build/server/chunks/{_server.ts-CWhPqSHs.js.map → _server.ts-Dv1tbIPB.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-DseLSghB.js → _server.ts-DvES1wiN.js} +4 -4
  178. package/build/server/chunks/{_server.ts-DseLSghB.js.map → _server.ts-DvES1wiN.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-Bwx3Gjwd.js → _server.ts-DwufWrL8.js} +4 -4
  180. package/build/server/chunks/{_server.ts-Bwx3Gjwd.js.map → _server.ts-DwufWrL8.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-DE0m1Q4L.js → _server.ts-DypIhw8E.js} +4 -4
  182. package/build/server/chunks/{_server.ts-DE0m1Q4L.js.map → _server.ts-DypIhw8E.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-BRefcV0Z.js → _server.ts-I_df3rNy.js} +2 -2
  184. package/build/server/chunks/{_server.ts-BRefcV0Z.js.map → _server.ts-I_df3rNy.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-BHZefY3G.js → _server.ts-JqtP_8OZ.js} +4 -4
  186. package/build/server/chunks/{_server.ts-BHZefY3G.js.map → _server.ts-JqtP_8OZ.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-fDATxtr3.js → _server.ts-KbEJb9iF.js} +4 -4
  188. package/build/server/chunks/{_server.ts-fDATxtr3.js.map → _server.ts-KbEJb9iF.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-DPhVV-jJ.js → _server.ts-KdUnJtGx.js} +4 -4
  190. package/build/server/chunks/{_server.ts-DPhVV-jJ.js.map → _server.ts-KdUnJtGx.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-BGUpdnPV.js → _server.ts-LnGYpCfy.js} +4 -4
  192. package/build/server/chunks/{_server.ts-BGUpdnPV.js.map → _server.ts-LnGYpCfy.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-HwlPZi53.js → _server.ts-MPuOqnb6.js} +5 -5
  194. package/build/server/chunks/{_server.ts-HwlPZi53.js.map → _server.ts-MPuOqnb6.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-CFtUB8Hj.js → _server.ts-Q2jLnu8r.js} +4 -4
  196. package/build/server/chunks/{_server.ts-CFtUB8Hj.js.map → _server.ts-Q2jLnu8r.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-B3N5nJb3.js → _server.ts-URmO6EQw.js} +4 -4
  198. package/build/server/chunks/{_server.ts-B3N5nJb3.js.map → _server.ts-URmO6EQw.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-Dq4ZhGok.js → _server.ts-XOD7SUR4.js} +4 -4
  200. package/build/server/chunks/{_server.ts-Dq4ZhGok.js.map → _server.ts-XOD7SUR4.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-CN5s8RLB.js → _server.ts-XQi6MDkU.js} +6 -6
  202. package/build/server/chunks/{_server.ts-CN5s8RLB.js.map → _server.ts-XQi6MDkU.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CnCzNcH9.js → _server.ts-lwKsNmQt.js} +4 -4
  204. package/build/server/chunks/{_server.ts-CnCzNcH9.js.map → _server.ts-lwKsNmQt.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-DDFiq1Ud.js → _server.ts-m1ayiB8O.js} +4 -4
  206. package/build/server/chunks/{_server.ts-DDFiq1Ud.js.map → _server.ts-m1ayiB8O.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-CdM6LezY.js → _server.ts-qmijt9h5.js} +4 -4
  208. package/build/server/chunks/{_server.ts-CdM6LezY.js.map → _server.ts-qmijt9h5.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-DxDpkTu4.js → _server.ts-t7MfsyTJ.js} +4 -4
  210. package/build/server/chunks/{_server.ts-DxDpkTu4.js.map → _server.ts-t7MfsyTJ.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-CKlHRDZS.js → _server.ts-z2KYSfCP.js} +4 -4
  212. package/build/server/chunks/{_server.ts-CKlHRDZS.js.map → _server.ts-z2KYSfCP.js.map} +1 -1
  213. package/build/server/chunks/{addon-helpers-BY7Y68Or.js → addon-helpers-xb9eIaVn.js} +2 -2
  214. package/build/server/chunks/{addon-helpers-BY7Y68Or.js.map → addon-helpers-xb9eIaVn.js.map} +1 -1
  215. package/build/server/chunks/{client-ArAeRoxk.js → client-s1A2mBfJ.js} +28 -3
  216. package/build/server/chunks/{client-ArAeRoxk.js.map → client-s1A2mBfJ.js.map} +1 -1
  217. package/build/server/chunks/{config-CjX55Ht6.js → config-0V4UPT81.js} +2 -2
  218. package/build/server/chunks/{config-CjX55Ht6.js.map → config-0V4UPT81.js.map} +1 -1
  219. package/build/server/chunks/{docker-NqrL9zHp.js → docker-CKOdzi6A.js} +2 -2
  220. package/build/server/chunks/{docker-NqrL9zHp.js.map → docker-CKOdzi6A.js.map} +1 -1
  221. package/build/server/chunks/{endpoints-Ci6CJJnc.js → endpoints-uSe3ORbp.js} +2 -2
  222. package/build/server/chunks/{endpoints-Ci6CJJnc.js.map → endpoints-uSe3ORbp.js.map} +1 -1
  223. package/build/server/chunks/{environment-Bpg55mjq.js → environment-CmkLMh24.js} +2 -2
  224. package/build/server/chunks/{environment-Bpg55mjq.js.map → environment-CmkLMh24.js.map} +1 -1
  225. package/build/server/chunks/{error.svelte-CpFwRtRX.js → error.svelte-B9_N1bPe.js} +4 -4
  226. package/build/server/chunks/{error.svelte-CpFwRtRX.js.map → error.svelte-B9_N1bPe.js.map} +1 -1
  227. package/build/server/chunks/{helpers-BqYJlSJg.js → helpers-D4ot6bJ_.js} +3 -3
  228. package/build/server/chunks/{helpers-BqYJlSJg.js.map → helpers-D4ot6bJ_.js.map} +1 -1
  229. package/build/server/chunks/{hooks.server-CRMfHyDz.js → hooks.server-CksTzt9Y.js} +5 -5
  230. package/build/server/chunks/{hooks.server-CRMfHyDz.js.map → hooks.server-CksTzt9Y.js.map} +1 -1
  231. package/build/server/chunks/{http-CghRhEH6.js → http-DWdG8RlO.js} +2 -2
  232. package/build/server/chunks/{http-CghRhEH6.js.map → http-DWdG8RlO.js.map} +1 -1
  233. package/build/server/chunks/{internal-W1HfYnMF.js → internal-BFPFXx52.js} +3 -3
  234. package/build/server/chunks/{internal-W1HfYnMF.js.map → internal-BFPFXx52.js.map} +1 -1
  235. package/build/server/chunks/{session-cookie-BGqzaS8B.js → session-cookie-CY2ZiP5t.js} +2 -2
  236. package/build/server/chunks/{session-cookie-BGqzaS8B.js.map → session-cookie-CY2ZiP5t.js.map} +1 -1
  237. package/build/server/chunks/{setup-deploy-Cg9faOlI.js → setup-deploy-CN1g3_cR.js} +2 -7
  238. package/build/server/chunks/setup-deploy-CN1g3_cR.js.map +1 -0
  239. package/build/server/chunks/{src-b3nBkyhY.js → src-DkGZ5D6n.js} +855 -855
  240. package/build/server/chunks/{src-b3nBkyhY.js.map → src-DkGZ5D6n.js.map} +1 -1
  241. package/build/server/chunks/{state-BIeW4-XD.js → state-CP5gULgb.js} +2 -2
  242. package/build/server/chunks/{state-BIeW4-XD.js.map → state-CP5gULgb.js.map} +1 -1
  243. package/build/server/index.js +2 -2
  244. package/build/server/manifest.js +79 -79
  245. package/build/server/manifest.js.map +1 -1
  246. package/package.json +2 -2
  247. package/build/client/_app/immutable/chunks/5ZqlzR7j.js +0 -3
  248. package/build/client/_app/immutable/chunks/5ZqlzR7j.js.br +0 -0
  249. package/build/client/_app/immutable/chunks/5ZqlzR7j.js.gz +0 -0
  250. package/build/client/_app/immutable/chunks/Bu0cBnLr.js +0 -1
  251. package/build/client/_app/immutable/chunks/Bu0cBnLr.js.br +0 -2
  252. package/build/client/_app/immutable/chunks/Bu0cBnLr.js.gz +0 -0
  253. package/build/client/_app/immutable/chunks/CEPSqAnS.js +0 -1
  254. package/build/client/_app/immutable/chunks/CEPSqAnS.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/CEPSqAnS.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/ltAtEuyp.js +0 -5
  257. package/build/client/_app/immutable/chunks/ltAtEuyp.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/ltAtEuyp.js.gz +0 -0
  259. package/build/client/_app/immutable/entry/app.jhM1F9Lz.js.br +0 -0
  260. package/build/client/_app/immutable/entry/app.jhM1F9Lz.js.gz +0 -0
  261. package/build/client/_app/immutable/entry/start.Dc1B22-x.js +0 -1
  262. package/build/client/_app/immutable/entry/start.Dc1B22-x.js.br +0 -1
  263. package/build/client/_app/immutable/entry/start.Dc1B22-x.js.gz +0 -0
  264. package/build/client/_app/immutable/nodes/1.CAM0_CnR.js.br +0 -1
  265. package/build/client/_app/immutable/nodes/1.CAM0_CnR.js.gz +0 -0
  266. package/build/client/_app/immutable/nodes/4.BInZ_Tt5.js.br +0 -0
  267. package/build/client/_app/immutable/nodes/5.e3eblL7D.js.br +0 -0
  268. package/build/client/_app/immutable/nodes/5.e3eblL7D.js.gz +0 -0
  269. package/build/client/_app/immutable/nodes/6.D6wSITV7.js.br +0 -0
  270. package/build/client/_app/immutable/nodes/6.D6wSITV7.js.gz +0 -0
  271. package/build/client/_app/immutable/nodes/7.C1W_OsSf.js.br +0 -0
  272. package/build/client/_app/immutable/nodes/8.9E6jSDDa.js.br +0 -0
  273. package/build/client/_app/immutable/nodes/8.9E6jSDDa.js.gz +0 -0
  274. package/build/client/_app/immutable/nodes/9.CutxJ3jN.js.br +0 -0
  275. package/build/client/_app/immutable/nodes/9.CutxJ3jN.js.gz +0 -0
  276. package/build/server/chunks/1-DGZd-zFK.js +0 -9
  277. package/build/server/chunks/4-D9UtUsJp.js +0 -9
  278. package/build/server/chunks/5-B_4lRh2I.js +0 -9
  279. package/build/server/chunks/7-Ce9mKDNS.js +0 -9
  280. package/build/server/chunks/Navbar-BHPXjl1A.js.map +0 -1
  281. package/build/server/chunks/_server.ts-5pMviGH3.js.map +0 -1
  282. package/build/server/chunks/_server.ts-C901uAGV.js.map +0 -1
  283. package/build/server/chunks/_server.ts-C90P5trG.js.map +0 -1
  284. package/build/server/chunks/setup-deploy-Cg9faOlI.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { b as getState } from './endpoints-Ci6CJJnc.js';
2
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { b as getState } from './endpoints-uSe3ORbp.js';
2
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-D4ot6bJ_.js';
3
3
  import { execFile } from 'node:child_process';
4
- import './src-b3nBkyhY.js';
4
+ import './src-DkGZ5D6n.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import 'node:fs';
@@ -98,4 +98,4 @@ var GET = async (event) => {
98
98
  };
99
99
 
100
100
  export { GET };
101
- //# sourceMappingURL=_server.ts-CWhPqSHs.js.map
101
+ //# sourceMappingURL=_server.ts-Dv1tbIPB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CWhPqSHs.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\n//#region src/routes/admin/akm/health/+server.ts\n/**\n* GET /admin/akm/health — AKM runtime health + index stats for the dashboard.\n*\n* Runs the `akm` CLI (health + info) against the STACK's stash/state by pointing\n* AKM_* env at this OP_HOME, NOT the operator's personal ~/akm. Fails soft:\n* if the CLI is missing or errors, returns { available: false } so the dashboard\n* can show an \"unavailable\" state instead of breaking.\n*/\nfunction runAkm(args, env, timeoutMs) {\n\treturn new Promise((resolve) => {\n\t\texecFile(\"akm\", args, {\n\t\t\ttimeout: timeoutMs,\n\t\t\tenv,\n\t\t\tmaxBuffer: 4 * 1024 * 1024\n\t\t}, (error, stdout) => {\n\t\t\tresolve({\n\t\t\t\tok: !error,\n\t\t\t\tstdout: stdout?.toString() ?? \"\"\n\t\t\t});\n\t\t});\n\t});\n}\nfunction safeParse(s) {\n\ttry {\n\t\tconst v = JSON.parse(s);\n\t\treturn v && typeof v === \"object\" ? v : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\tconst state = getState();\n\tconst env = {\n\t\t...process.env,\n\t\tAKM_STASH_DIR: state.stashDir,\n\t\tAKM_DATA_DIR: `${state.dataDir}/akm/data`,\n\t\tAKM_CONFIG_DIR: `${state.configDir}/akm`\n\t};\n\tconst [health, info] = await Promise.all([runAkm([\n\t\t\"health\",\n\t\t\"--json\",\n\t\t\"--quiet\"\n\t], env, 8e3), runAkm([\n\t\t\"info\",\n\t\t\"--json\",\n\t\t\"--quiet\"\n\t], env, 8e3)]);\n\tconst parsedHealth = safeParse(health.stdout);\n\tconst parsedInfo = safeParse(info.stdout);\n\tif (!parsedHealth && !parsedInfo) return jsonResponse(200, {\n\t\tavailable: false,\n\t\treason: \"akm CLI unavailable\"\n\t}, requestId);\n\tconst checks = Array.isArray(parsedHealth?.hardChecks) ? parsedHealth.hardChecks : [];\n\tconst checkCounts = {\n\t\tpass: 0,\n\t\twarn: 0,\n\t\tfail: 0\n\t};\n\tfor (const c of checks) if (c.status === \"pass\") checkCounts.pass++;\n\telse if (c.status === \"warn\") checkCounts.warn++;\n\telse checkCounts.fail++;\n\treturn jsonResponse(200, {\n\t\tavailable: true,\n\t\tstatus: parsedHealth?.status ?? \"unknown\",\n\t\tok: typeof parsedHealth?.ok === \"boolean\" ? parsedHealth.ok : null,\n\t\tchecks: checkCounts,\n\t\tmetrics: parsedHealth?.metrics ?? null,\n\t\tindex: parsedInfo?.indexStats ?? null\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Dv1tbIPB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\n//#region src/routes/admin/akm/health/+server.ts\n/**\n* GET /admin/akm/health — AKM runtime health + index stats for the dashboard.\n*\n* Runs the `akm` CLI (health + info) against the STACK's stash/state by pointing\n* AKM_* env at this OP_HOME, NOT the operator's personal ~/akm. Fails soft:\n* if the CLI is missing or errors, returns { available: false } so the dashboard\n* can show an \"unavailable\" state instead of breaking.\n*/\nfunction runAkm(args, env, timeoutMs) {\n\treturn new Promise((resolve) => {\n\t\texecFile(\"akm\", args, {\n\t\t\ttimeout: timeoutMs,\n\t\t\tenv,\n\t\t\tmaxBuffer: 4 * 1024 * 1024\n\t\t}, (error, stdout) => {\n\t\t\tresolve({\n\t\t\t\tok: !error,\n\t\t\t\tstdout: stdout?.toString() ?? \"\"\n\t\t\t});\n\t\t});\n\t});\n}\nfunction safeParse(s) {\n\ttry {\n\t\tconst v = JSON.parse(s);\n\t\treturn v && typeof v === \"object\" ? v : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\tconst state = getState();\n\tconst env = {\n\t\t...process.env,\n\t\tAKM_STASH_DIR: state.stashDir,\n\t\tAKM_DATA_DIR: `${state.dataDir}/akm/data`,\n\t\tAKM_CONFIG_DIR: `${state.configDir}/akm`\n\t};\n\tconst [health, info] = await Promise.all([runAkm([\n\t\t\"health\",\n\t\t\"--json\",\n\t\t\"--quiet\"\n\t], env, 8e3), runAkm([\n\t\t\"info\",\n\t\t\"--json\",\n\t\t\"--quiet\"\n\t], env, 8e3)]);\n\tconst parsedHealth = safeParse(health.stdout);\n\tconst parsedInfo = safeParse(info.stdout);\n\tif (!parsedHealth && !parsedInfo) return jsonResponse(200, {\n\t\tavailable: false,\n\t\treason: \"akm CLI unavailable\"\n\t}, requestId);\n\tconst checks = Array.isArray(parsedHealth?.hardChecks) ? parsedHealth.hardChecks : [];\n\tconst checkCounts = {\n\t\tpass: 0,\n\t\twarn: 0,\n\t\tfail: 0\n\t};\n\tfor (const c of checks) if (c.status === \"pass\") checkCounts.pass++;\n\telse if (c.status === \"warn\") checkCounts.warn++;\n\telse checkCounts.fail++;\n\treturn jsonResponse(200, {\n\t\tavailable: true,\n\t\tstatus: parsedHealth?.status ?? \"unknown\",\n\t\tok: typeof parsedHealth?.ok === \"boolean\" ? parsedHealth.ok : null,\n\t\tchecks: checkCounts,\n\t\tmetrics: parsedHealth?.metrics ?? null,\n\t\tindex: parsedInfo?.indexStats ?? null\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { y as createLogger, a1 as isAllowedService, m as checkDocker, t as composeRestart, k as buildComposeOptions } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { y as createLogger, a1 as isAllowedService, m as checkDocker, t as composeRestart, k as buildComposeOptions } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -50,4 +50,4 @@ var POST = async (event) => {
50
50
  };
51
51
 
52
52
  export { POST };
53
- //# sourceMappingURL=_server.ts-DseLSghB.js.map
53
+ //# sourceMappingURL=_server.ts-DvES1wiN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DseLSghB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/restart/_server.ts.js"],"sourcesContent":["import { D as checkDocker, E as buildComposeOptions, P as composeRestart, Rt as createLogger, X as isAllowedService } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/restart/+server.ts\nvar logger = createLogger(\"containers-restart\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container restart request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:restart\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeRestart([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"running\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to restart service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"running\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC;AAC5C,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,0BAA0B,EAAE,YAAY;AAChE,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACxH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DvES1wiN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/restart/_server.ts.js"],"sourcesContent":["import { E as buildComposeOptions, F as isAllowedService, I as checkDocker, Rt as createLogger, U as composeRestart } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/restart/+server.ts\nvar logger = createLogger(\"containers-restart\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container restart request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:restart\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeRestart([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"running\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to restart service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"running\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC;AAC5C,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,0BAA0B,EAAE,YAAY;AAChE,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACxH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { I as disableHostAkmSharing, Z as getHostAkmSharingStatus, J as enableHostAkmSharing } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-BqYJlSJg.js';
1
+ import { I as disableHostAkmSharing, Z as getHostAkmSharingStatus, J as enableHostAkmSharing } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-D4ot6bJ_.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -61,4 +61,4 @@ var DELETE = async (event) => {
61
61
  };
62
62
 
63
63
  export { DELETE, GET, PUT };
64
- //# sourceMappingURL=_server.ts-Bwx3Gjwd.js.map
64
+ //# sourceMappingURL=_server.ts-DwufWrL8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Bwx3Gjwd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/host-sharing/_server.ts.js"],"sourcesContent":["import { G as getHostAkmSharingStatus, U as disableHostAkmSharing, W as enableHostAkmSharing } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/host-sharing/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(getState()) }, requestId);\n};\nvar PUT = 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 opts = result.data;\n\tconst writable = opts.writable === void 0 ? true : opts.writable === true;\n\tconst importProfiles = opts.importProfiles === true;\n\tconst state = getState();\n\ttry {\n\t\tconst { profilesImported } = enableHostAkmSharing(state, {\n\t\t\twritable,\n\t\t\timportProfiles\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tsharing: getHostAkmSharingStatus(state),\n\t\t\tprofilesImported\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn errorResponse(409, \"conflict\", err.message, {}, requestId);\n\t}\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tdisableHostAkmSharing(state);\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(state) }, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\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,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AACtF;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,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;AAC1E,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI;AACpD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE;AAC3D,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC1C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACnE,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,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,qBAAqB,CAAC,KAAK,CAAC;AAC7B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;AACjF;;;;"}
1
+ {"version":3,"file":"_server.ts-DwufWrL8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/host-sharing/_server.ts.js"],"sourcesContent":["import { A as getHostAkmSharingStatus, O as disableHostAkmSharing, k as enableHostAkmSharing } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/host-sharing/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(getState()) }, requestId);\n};\nvar PUT = 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 opts = result.data;\n\tconst writable = opts.writable === void 0 ? true : opts.writable === true;\n\tconst importProfiles = opts.importProfiles === true;\n\tconst state = getState();\n\ttry {\n\t\tconst { profilesImported } = enableHostAkmSharing(state, {\n\t\t\twritable,\n\t\t\timportProfiles\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tsharing: getHostAkmSharingStatus(state),\n\t\t\tprofilesImported\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn errorResponse(409, \"conflict\", err.message, {}, requestId);\n\t}\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tdisableHostAkmSharing(state);\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(state) }, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\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,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AACtF;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,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;AAC1E,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI;AACpD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE;AAC3D,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC1C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACnE,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,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,qBAAqB,CAAC,KAAK,CAAC;AAC7B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;AACjF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { g as getOpenCodeClient } from './helpers-BqYJlSJg.js';
2
+ import { g as getOpenCodeClient } from './helpers-D4ot6bJ_.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-b3nBkyhY.js';
4
+ import './src-DkGZ5D6n.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import 'node:fs';
@@ -21,7 +21,7 @@ import 'assert';
21
21
  import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
- import './endpoints-Ci6CJJnc.js';
24
+ import './endpoints-uSe3ORbp.js';
25
25
 
26
26
  //#region src/routes/api/setup/opencode/status/+server.ts
27
27
  var GET = async () => {
@@ -39,4 +39,4 @@ var GET = async () => {
39
39
  };
40
40
 
41
41
  export { GET };
42
- //# sourceMappingURL=_server.ts-DE0m1Q4L.js.map
42
+ //# sourceMappingURL=_server.ts-DypIhw8E.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DE0m1Q4L.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-DypIhw8E.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
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { G as detectHostOpenCode, $ as hostAkmStashPath, a2 as isHostAkmAvailable, y as createLogger } from './src-b3nBkyhY.js';
2
+ import { G as detectHostOpenCode, $ as hostAkmStashPath, a2 as isHostAkmAvailable, y as createLogger } from './src-DkGZ5D6n.js';
3
3
  import { homedir } from 'node:os';
4
4
  import './utils-BSRjJDrZ.js';
5
5
  import './chunk-CLZ62Ad-.js';
@@ -62,4 +62,4 @@ var GET = () => {
62
62
  };
63
63
 
64
64
  export { GET };
65
- //# sourceMappingURL=_server.ts-BRefcV0Z.js.map
65
+ //# sourceMappingURL=_server.ts-I_df3rNy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BRefcV0Z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/host-status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { K as hostAkmStashPath, Rt as createLogger, q as isHostAkmAvailable, t as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { homedir } from \"node:os\";\n//#region src/routes/api/setup/host-status/+server.ts\nvar logger = createLogger(\"admin:host-status\");\nvar GET = () => {\n\ttry {\n\t\tconst status = detectHostOpenCode();\n\t\tconst home = homedir();\n\t\tconst akmStashPath = hostAkmStashPath();\n\t\tconst hostAkmAvailable = isHostAkmAvailable();\n\t\treturn json({\n\t\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\t\tproviderCount: status.providerCount,\n\t\t\tcredentialCount: status.credentialCount,\n\t\t\tmodelPreferences: status.modelPreferences,\n\t\t\timageTag: \"latest\",\n\t\t\thostAkmAvailable,\n\t\t\thostAkmPaths: {\n\t\t\t\tstash: akmStashPath,\n\t\t\t\tdata: `${home}/.local/share/akm`,\n\t\t\t\tstate: `${home}/.local/state/akm`,\n\t\t\t\tconfig: `${home}/.config/akm`\n\t\t\t}\n\t\t});\n\t} catch (err) {\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\tconst stack = err instanceof Error ? err.stack : void 0;\n\t\tlogger.warn(\"failed to detect host openpalm/openpalm state\", {\n\t\t\terror: message,\n\t\t\tstack\n\t\t});\n\t\treturn json({\n\t\t\tdetected: false,\n\t\t\tproviderCount: 0,\n\t\t\tcredentialCount: 0,\n\t\t\timageTag: \"latest\",\n\t\t\thostAkmAvailable: false,\n\t\t\twarning: `Could not detect host OpenCode state: ${message}`\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC;AAC3C,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,kBAAkB,EAAE;AACrC,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,MAAM,YAAY,GAAG,gBAAgB,EAAE;AACzC,EAAE,MAAM,gBAAgB,GAAG,kBAAkB,EAAE;AAC/C,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AACnE,GAAG,aAAa,EAAE,MAAM,CAAC,aAAa;AACtC,GAAG,eAAe,EAAE,MAAM,CAAC,eAAe;AAC1C,GAAG,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;AAC5C,GAAG,QAAQ,EAAE,QAAQ;AACrB,GAAG,gBAAgB;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,KAAK,EAAE,YAAY;AACvB,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACrC,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;AAChC;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM;AACzD,EAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;AAC/D,GAAG,KAAK,EAAE,OAAO;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,KAAK;AAClB,GAAG,aAAa,EAAE,CAAC;AACnB,GAAG,eAAe,EAAE,CAAC;AACrB,GAAG,QAAQ,EAAE,QAAQ;AACrB,GAAG,gBAAgB,EAAE,KAAK;AAC1B,GAAG,OAAO,EAAE,CAAC,sCAAsC,EAAE,OAAO,CAAC;AAC7D,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-I_df3rNy.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/host-status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { M as isHostAkmAvailable, Rt as createLogger, j as hostAkmStashPath, t as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { homedir } from \"node:os\";\n//#region src/routes/api/setup/host-status/+server.ts\nvar logger = createLogger(\"admin:host-status\");\nvar GET = () => {\n\ttry {\n\t\tconst status = detectHostOpenCode();\n\t\tconst home = homedir();\n\t\tconst akmStashPath = hostAkmStashPath();\n\t\tconst hostAkmAvailable = isHostAkmAvailable();\n\t\treturn json({\n\t\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\t\tproviderCount: status.providerCount,\n\t\t\tcredentialCount: status.credentialCount,\n\t\t\tmodelPreferences: status.modelPreferences,\n\t\t\timageTag: \"latest\",\n\t\t\thostAkmAvailable,\n\t\t\thostAkmPaths: {\n\t\t\t\tstash: akmStashPath,\n\t\t\t\tdata: `${home}/.local/share/akm`,\n\t\t\t\tstate: `${home}/.local/state/akm`,\n\t\t\t\tconfig: `${home}/.config/akm`\n\t\t\t}\n\t\t});\n\t} catch (err) {\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\tconst stack = err instanceof Error ? err.stack : void 0;\n\t\tlogger.warn(\"failed to detect host openpalm/openpalm state\", {\n\t\t\terror: message,\n\t\t\tstack\n\t\t});\n\t\treturn json({\n\t\t\tdetected: false,\n\t\t\tproviderCount: 0,\n\t\t\tcredentialCount: 0,\n\t\t\timageTag: \"latest\",\n\t\t\thostAkmAvailable: false,\n\t\t\twarning: `Could not detect host OpenCode state: ${message}`\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,mBAAmB,CAAC;AAC3C,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,kBAAkB,EAAE;AACrC,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,MAAM,YAAY,GAAG,gBAAgB,EAAE;AACzC,EAAE,MAAM,gBAAgB,GAAG,kBAAkB,EAAE;AAC/C,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AACnE,GAAG,aAAa,EAAE,MAAM,CAAC,aAAa;AACtC,GAAG,eAAe,EAAE,MAAM,CAAC,eAAe;AAC1C,GAAG,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;AAC5C,GAAG,QAAQ,EAAE,QAAQ;AACrB,GAAG,gBAAgB;AACnB,GAAG,YAAY,EAAE;AACjB,IAAI,KAAK,EAAE,YAAY;AACvB,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACpC,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACrC,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY;AAChC;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAClE,EAAE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM;AACzD,EAAE,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;AAC/D,GAAG,KAAK,EAAE,OAAO;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,KAAK;AAClB,GAAG,aAAa,EAAE,CAAC;AACnB,GAAG,eAAe,EAAE,CAAC;AACrB,GAAG,QAAQ,EAAE,QAAQ;AACrB,GAAG,gBAAgB,EAAE,KAAK;AAC1B,GAAG,OAAO,EAAE,CAAC,sCAAsC,EAAE,OAAO,CAAC;AAC7D,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { r as requireAdmin, d as getRequestId } from './helpers-BqYJlSJg.js';
2
+ import { r as requireAdmin, d as getRequestId } from './helpers-D4ot6bJ_.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-b3nBkyhY.js';
4
+ import './src-DkGZ5D6n.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import 'node:fs';
@@ -21,7 +21,7 @@ import 'assert';
21
21
  import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
- import './endpoints-Ci6CJJnc.js';
24
+ import './endpoints-uSe3ORbp.js';
25
25
 
26
26
  //#region src/routes/admin/versions/ui/+server.ts
27
27
  var UI_PACKAGE = "@openpalm/ui";
@@ -79,4 +79,4 @@ var GET = async (event) => {
79
79
  };
80
80
 
81
81
  export { GET };
82
- //# sourceMappingURL=_server.ts-BHZefY3G.js.map
82
+ //# sourceMappingURL=_server.ts-JqtP_8OZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BHZefY3G.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/ui/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { f as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/ui/+server.ts\nvar UI_PACKAGE = \"@openpalm/ui\";\nvar NPM_REGISTRY = \"https://registry.npmjs.org\";\nvar MAX_VERSIONS = 20;\n/**\n* List published `@openpalm/ui` npm versions for the admin \"UI build\" picker.\n*\n* The UI is independently versioned and distributed via npm (not GitHub release\n* assets), so this is the authoritative source of installable UI builds — the\n* selected version is POSTed to /admin/ui-version, which seeds it from npm.\n* Returns newest-first; 404 (package not yet published) yields an empty list.\n*/\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(`${NPM_REGISTRY}/${UI_PACKAGE}`, {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (res.status === 404) return json({\n\t\t\tversions: [],\n\t\t\tdistTags: {}\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\tversions: [],\n\t\t\tdistTags: {},\n\t\t\terror: `npm registry ${res.status}`\n\t\t});\n\t\tconst packument = await res.json();\n\t\tconst distTags = packument[\"dist-tags\"] ?? {};\n\t\tconst versionToTag = /* @__PURE__ */ new Map();\n\t\tfor (const [tag, version] of Object.entries(distTags)) versionToTag.set(version, tag);\n\t\tconst time = packument.time ?? {};\n\t\treturn json({\n\t\t\tversions: Object.keys(packument.versions ?? {}).map((version) => ({\n\t\t\t\tversion,\n\t\t\t\tprerelease: version.includes(\"-\"),\n\t\t\t\tpublishedAt: time[version] ?? null,\n\t\t\t\tdistTag: versionToTag.get(version) ?? null\n\t\t\t})).sort((a, b) => (b.publishedAt ?? \"\").localeCompare(a.publishedAt ?? \"\")).slice(0, MAX_VERSIONS),\n\t\t\tdistTags\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tversions: [],\n\t\t\tdistTags: {},\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,UAAU,GAAG,cAAc;AAC/B,IAAI,YAAY,GAAG,4BAA4B;AAC/C,IAAI,YAAY,GAAG,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;AAC3D,GAAG,OAAO,EAAE;AACZ,IAAI,YAAY,EAAE,oBAAoB;AACtC,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC;AACJ,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC;AACtC,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC3B,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC;AACrC,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/C,EAAE,MAAM,YAAY,mBAAmB,IAAI,GAAG,EAAE;AAChD,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACvF,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE;AACnC,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AACrE,IAAI,OAAO;AACX,IAAI,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrC,IAAI,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACtC,IAAI,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AACtG,GAAG;AACH,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-JqtP_8OZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/ui/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { f as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/ui/+server.ts\nvar UI_PACKAGE = \"@openpalm/ui\";\nvar NPM_REGISTRY = \"https://registry.npmjs.org\";\nvar MAX_VERSIONS = 20;\n/**\n* List published `@openpalm/ui` npm versions for the admin \"UI build\" picker.\n*\n* The UI is independently versioned and distributed via npm (not GitHub release\n* assets), so this is the authoritative source of installable UI builds — the\n* selected version is POSTed to /admin/ui-version, which seeds it from npm.\n* Returns newest-first; 404 (package not yet published) yields an empty list.\n*/\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(`${NPM_REGISTRY}/${UI_PACKAGE}`, {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (res.status === 404) return json({\n\t\t\tversions: [],\n\t\t\tdistTags: {}\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\tversions: [],\n\t\t\tdistTags: {},\n\t\t\terror: `npm registry ${res.status}`\n\t\t});\n\t\tconst packument = await res.json();\n\t\tconst distTags = packument[\"dist-tags\"] ?? {};\n\t\tconst versionToTag = /* @__PURE__ */ new Map();\n\t\tfor (const [tag, version] of Object.entries(distTags)) versionToTag.set(version, tag);\n\t\tconst time = packument.time ?? {};\n\t\treturn json({\n\t\t\tversions: Object.keys(packument.versions ?? {}).map((version) => ({\n\t\t\t\tversion,\n\t\t\t\tprerelease: version.includes(\"-\"),\n\t\t\t\tpublishedAt: time[version] ?? null,\n\t\t\t\tdistTag: versionToTag.get(version) ?? null\n\t\t\t})).sort((a, b) => (b.publishedAt ?? \"\").localeCompare(a.publishedAt ?? \"\")).slice(0, MAX_VERSIONS),\n\t\t\tdistTags\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tversions: [],\n\t\t\tdistTags: {},\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,UAAU,GAAG,cAAc;AAC/B,IAAI,YAAY,GAAG,4BAA4B;AAC/C,IAAI,YAAY,GAAG,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;AAC3D,GAAG,OAAO,EAAE;AACZ,IAAI,YAAY,EAAE,oBAAoB;AACtC,IAAI,MAAM,EAAE;AACZ,IAAI;AACJ,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC;AACJ,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,OAAO,IAAI,CAAC;AACtC,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC3B,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC;AACrC,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AACpC,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/C,EAAE,MAAM,YAAY,mBAAmB,IAAI,GAAG,EAAE;AAChD,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACvF,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE;AACnC,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AACrE,IAAI,OAAO;AACX,IAAI,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrC,IAAI,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;AACtC,IAAI,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AACtG,GAAG;AACH,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,QAAQ,EAAE,EAAE;AACf,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as deleteEndpoint, v as validateEndpointUrl, u as updateEndpoint } from './endpoints-Ci6CJJnc.js';
2
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, w as withAdminBody } from './helpers-BqYJlSJg.js';
3
- import './src-b3nBkyhY.js';
1
+ import { d as deleteEndpoint, v as validateEndpointUrl, u as updateEndpoint } from './endpoints-uSe3ORbp.js';
2
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, w as withAdminBody } from './helpers-D4ot6bJ_.js';
3
+ import './src-DkGZ5D6n.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -67,4 +67,4 @@ var DELETE = async (event) => {
67
67
  };
68
68
 
69
69
  export { DELETE, PATCH };
70
- //# sourceMappingURL=_server.ts-fDATxtr3.js.map
70
+ //# sourceMappingURL=_server.ts-KbEJb9iF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-fDATxtr3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/_id_/_server.ts.js"],"sourcesContent":["import { n as deleteEndpoint, o as updateEndpoint, s as validateEndpointUrl } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, m as withAdminBody, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/[id]/+server.ts\nvar PATCH = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = event.params.id;\n\tconst patch = {};\n\tif (typeof body.label === \"string\") patch.label = body.label;\n\tif (typeof body.url === \"string\") {\n\t\tconst urlCheck = validateEndpointUrl(body.url);\n\t\tif (!urlCheck.ok) {\n\t\t\tif (urlCheck.reason === \"http_not_allowed\") return errorResponse(400, \"http_not_allowed\", \"Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.\", {}, requestId);\n\t\t\treturn errorResponse(400, \"invalid_endpoint\", \"URL must be a valid http(s) URL\", {}, requestId);\n\t\t}\n\t\tpatch.url = urlCheck.url;\n\t}\n\tif (body.password === null) patch.password = null;\n\telse if (typeof body.password === \"string\") patch.password = body.password;\n\ttry {\n\t\tconst entry = updateEndpoint(id, patch);\n\t\treturn jsonResponse(200, { endpoint: {\n\t\t\tid: entry.id,\n\t\t\tlabel: entry.label,\n\t\t\turl: entry.url,\n\t\t\tisDefault: false,\n\t\t\thasPassword: Boolean(entry.password)\n\t\t} }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to update endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n});\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst id = event.params.id;\n\ttry {\n\t\tdeleteEndpoint(id);\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to delete endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, PATCH };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-KbEJb9iF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/_id_/_server.ts.js"],"sourcesContent":["import { n as deleteEndpoint, o as updateEndpoint, s as validateEndpointUrl } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, m as withAdminBody, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/[id]/+server.ts\nvar PATCH = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = event.params.id;\n\tconst patch = {};\n\tif (typeof body.label === \"string\") patch.label = body.label;\n\tif (typeof body.url === \"string\") {\n\t\tconst urlCheck = validateEndpointUrl(body.url);\n\t\tif (!urlCheck.ok) {\n\t\t\tif (urlCheck.reason === \"http_not_allowed\") return errorResponse(400, \"http_not_allowed\", \"Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.\", {}, requestId);\n\t\t\treturn errorResponse(400, \"invalid_endpoint\", \"URL must be a valid http(s) URL\", {}, requestId);\n\t\t}\n\t\tpatch.url = urlCheck.url;\n\t}\n\tif (body.password === null) patch.password = null;\n\telse if (typeof body.password === \"string\") patch.password = body.password;\n\ttry {\n\t\tconst entry = updateEndpoint(id, patch);\n\t\treturn jsonResponse(200, { endpoint: {\n\t\t\tid: entry.id,\n\t\t\tlabel: entry.label,\n\t\t\turl: entry.url,\n\t\t\tisDefault: false,\n\t\t\thasPassword: Boolean(entry.password)\n\t\t} }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to update endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n});\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst id = event.params.id;\n\ttry {\n\t\tdeleteEndpoint(id);\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to delete endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, PATCH };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { y as createLogger } from './src-b3nBkyhY.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-BqYJlSJg.js';
1
+ import { y as createLogger } from './src-DkGZ5D6n.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-D4ot6bJ_.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import 'node:fs';
@@ -19,7 +19,7 @@ import 'assert';
19
19
  import 'zlib';
20
20
  import 'node:assert';
21
21
  import 'node:fs/promises';
22
- import './endpoints-Ci6CJJnc.js';
22
+ import './endpoints-uSe3ORbp.js';
23
23
 
24
24
  //#region src/routes/admin/opencode/providers/[id]/auth/+server.ts
25
25
  var logger = createLogger("opencode.auth");
@@ -160,4 +160,4 @@ var DELETE = async (event) => {
160
160
  };
161
161
 
162
162
  export { DELETE, GET, POST };
163
- //# sourceMappingURL=_server.ts-DPhVV-jJ.js.map
163
+ //# sourceMappingURL=_server.ts-KdUnJtGx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DPhVV-jJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { Rt as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } 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-KdUnJtGx.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { Rt as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } 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 { ac as readAutomationLogs } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { ac as readAutomationLogs } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -47,4 +47,4 @@ var GET = async (event) => {
47
47
  };
48
48
 
49
49
  export { GET };
50
- //# sourceMappingURL=_server.ts-BGUpdnPV.js.map
50
+ //# sourceMappingURL=_server.ts-LnGYpCfy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BGUpdnPV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/log/_server.ts.js"],"sourcesContent":["import { f as readAutomationLogs } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/[name]/log/+server.ts\nvar SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\\.ya?ml)?$/;\nvar DEFAULT_LIMIT = 50;\nvar MAX_LIMIT = 500;\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 rawName = event.params.name ?? \"\";\n\tconst taskId = rawName.replace(/\\.ya?ml$/, \"\");\n\tif (!SAFE_NAME_RE.test(rawName) || rawName.includes(\"..\") || rawName.includes(\"/\")) return errorResponse(400, \"invalid_input\", \"name must match /^[a-zA-Z0-9._-]+$/\", {}, requestId);\n\tconst limitParam = event.url.searchParams.get(\"limit\");\n\tlet limit = DEFAULT_LIMIT;\n\tif (limitParam !== null) {\n\t\tconst parsed = Number.parseInt(limitParam, 10);\n\t\tif (!Number.isFinite(parsed) || parsed <= 0) return errorResponse(400, \"invalid_input\", \"limit must be a positive integer\", {}, requestId);\n\t\tlimit = Math.min(parsed, MAX_LIMIT);\n\t}\n\treturn jsonResponse(200, {\n\t\tname: taskId,\n\t\tlines: readAutomationLogs(taskId, state.dataDir, limit)\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,+BAA+B;AAClD,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,SAAS,GAAG,GAAG;AAChB,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxC,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AACrL,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACvD,CAAC,IAAI,KAAK,GAAG,aAAa;AAC1B,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;AAChD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACrC,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK;AACxD,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-LnGYpCfy.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/log/_server.ts.js"],"sourcesContent":["import { f as readAutomationLogs } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/[name]/log/+server.ts\nvar SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\\.ya?ml)?$/;\nvar DEFAULT_LIMIT = 50;\nvar MAX_LIMIT = 500;\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 rawName = event.params.name ?? \"\";\n\tconst taskId = rawName.replace(/\\.ya?ml$/, \"\");\n\tif (!SAFE_NAME_RE.test(rawName) || rawName.includes(\"..\") || rawName.includes(\"/\")) return errorResponse(400, \"invalid_input\", \"name must match /^[a-zA-Z0-9._-]+$/\", {}, requestId);\n\tconst limitParam = event.url.searchParams.get(\"limit\");\n\tlet limit = DEFAULT_LIMIT;\n\tif (limitParam !== null) {\n\t\tconst parsed = Number.parseInt(limitParam, 10);\n\t\tif (!Number.isFinite(parsed) || parsed <= 0) return errorResponse(400, \"invalid_input\", \"limit must be a positive integer\", {}, requestId);\n\t\tlimit = Math.min(parsed, MAX_LIMIT);\n\t}\n\treturn jsonResponse(200, {\n\t\tname: taskId,\n\t\tlines: readAutomationLogs(taskId, state.dataDir, limit)\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,+BAA+B;AAClD,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,SAAS,GAAG,GAAG;AAChB,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxC,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AACrL,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACvD,CAAC,IAAI,KAAK,GAAG,aAAa;AAC1B,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;AAChD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACrC,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK;AACxD,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-BqYJlSJg.js';
2
- import { s as sessionCookieHeader } from './session-cookie-BGqzaS8B.js';
3
- import './src-b3nBkyhY.js';
1
+ import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-D4ot6bJ_.js';
2
+ import { s as sessionCookieHeader } from './session-cookie-CY2ZiP5t.js';
3
+ import './src-DkGZ5D6n.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -20,7 +20,7 @@ import 'assert';
20
20
  import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
- import './endpoints-Ci6CJJnc.js';
23
+ import './endpoints-uSe3ORbp.js';
24
24
 
25
25
  //#region src/routes/admin/auth/login/+server.ts
26
26
  var POST = async (event) => {
@@ -51,4 +51,4 @@ var POST = async (event) => {
51
51
  };
52
52
 
53
53
  export { POST };
54
- //# sourceMappingURL=_server.ts-HwlPZi53.js.map
54
+ //# sourceMappingURL=_server.ts-MPuOqnb6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-HwlPZi53.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { g as createSession, i as errorResponse, o as getRequestId, p as safeTokenCompare, s as getUiLoginPassword } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/login/+server.ts\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({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\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;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;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,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-MPuOqnb6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { g as createSession, i as errorResponse, o as getRequestId, p as safeTokenCompare, s as getUiLoginPassword } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/login/+server.ts\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({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\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;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;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,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,6 +1,6 @@
1
- import { m as checkDocker, v as composeStats, k as buildComposeOptions } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { m as checkDocker, v as composeStats, k as buildComposeOptions } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -41,4 +41,4 @@ var GET = async (event) => {
41
41
  };
42
42
 
43
43
  export { GET };
44
- //# sourceMappingURL=_server.ts-CFtUB8Hj.js.map
44
+ //# sourceMappingURL=_server.ts-Q2jLnu8r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CFtUB8Hj.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { D as checkDocker, E as buildComposeOptions, I as composeStats } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } 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-Q2jLnu8r.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { E as buildComposeOptions, G as composeStats, I as checkDocker } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } 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 { y as createLogger, a1 as isAllowedService, m as checkDocker, w as composeStop, k as buildComposeOptions } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { y as createLogger, a1 as isAllowedService, m as checkDocker, w as composeStop, k as buildComposeOptions } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -50,4 +50,4 @@ var POST = async (event) => {
50
50
  };
51
51
 
52
52
  export { POST };
53
- //# sourceMappingURL=_server.ts-B3N5nJb3.js.map
53
+ //# sourceMappingURL=_server.ts-URmO6EQw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-B3N5nJb3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { D as checkDocker, E as buildComposeOptions, L as composeStop, Rt as createLogger, X as isAllowedService } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-URmO6EQw.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { E as buildComposeOptions, F as isAllowedService, I as checkDocker, K as composeStop, Rt as createLogger } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as parseJsonBody, f as requireAdmin, i as errorResponse, l as jsonBodyError, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { y as createLogger, m as checkDocker, k as buildComposeOptions, s as composePull, l as buildManagedServices, x as composeUp } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { y as createLogger, m as checkDocker, k as buildComposeOptions, s as composePull, l as buildManagedServices, x as composeUp } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -70,4 +70,4 @@ var POST = async (event) => {
70
70
  };
71
71
 
72
72
  export { POST };
73
- //# sourceMappingURL=_server.ts-Dq4ZhGok.js.map
73
+ //# sourceMappingURL=_server.ts-XOD7SUR4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Dq4ZhGok.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/pull/_server.ts.js"],"sourcesContent":["import { C as buildManagedServices, D as checkDocker, E as buildComposeOptions, N as composePull, R as composeUp, Rt as createLogger } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/pull/+server.ts\nvar logger = createLogger(\"containers-pull\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"pull request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:pull\", async () => {\n\t\tconst state = getState();\n\t\tconst dockerCheck = await checkDocker();\n\t\tif (!dockerCheck.ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", { stderr: dockerCheck.stderr }, requestId);\n\t\tconst composeOpts = buildComposeOptions(state);\n\t\tlogger.info(\"pulling images\", { requestId });\n\t\tconst pullResult = await composePull(composeOpts);\n\t\tif (!pullResult.ok) {\n\t\t\tlogger.error(\"image pull failed\", {\n\t\t\t\trequestId,\n\t\t\t\tstderr: pullResult.stderr\n\t\t\t});\n\t\t\treturn errorResponse(502, \"pull_failed\", \"Failed to pull images\", { stderr: pullResult.stderr }, requestId);\n\t\t}\n\t\tlogger.info(\"recreating containers\", { requestId });\n\t\tconst managedServices = await buildManagedServices(state);\n\t\tconst upResult = await composeUp({\n\t\t\t...composeOpts,\n\t\t\tservices: managedServices,\n\t\t\tforceRecreate: true\n\t\t});\n\t\tif (!upResult.ok) {\n\t\t\tlogger.error(\"compose up failed after pull\", {\n\t\t\t\trequestId,\n\t\t\t\tstderr: upResult.stderr\n\t\t\t});\n\t\t\treturn errorResponse(502, \"up_failed\", \"Images pulled but failed to recreate containers\", { stderr: upResult.stderr }, requestId);\n\t\t}\n\t\tlogger.info(\"pull completed\", {\n\t\t\trequestId,\n\t\t\tstarted: managedServices\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tpulled: pullResult.stdout,\n\t\t\tstarted: managedServices\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACzC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC5I,EAAE,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAChD,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC;AAC9C,EAAE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC;AACnD,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AACtB,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;AACrC,IAAI,SAAS;AACb,IAAI,MAAM,EAAE,UAAU,CAAC;AACvB,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC9G,EAAE;AACF,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,EAAE,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC3D,EAAE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AACnC,GAAG,GAAG,WAAW;AACjB,GAAG,QAAQ,EAAE,eAAe;AAC5B,GAAG,aAAa,EAAE;AAClB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,GAAG,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;AAChD,IAAI,SAAS;AACb,IAAI,MAAM,EAAE,QAAQ,CAAC;AACrB,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,iDAAiD,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AACpI,EAAE;AACF,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAChC,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-XOD7SUR4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/pull/_server.ts.js"],"sourcesContent":["import { C as buildManagedServices, E as buildComposeOptions, H as composePull, I as checkDocker, Rt as createLogger, q as composeUp } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { f as requireAdmin, i as errorResponse, o as getRequestId, u as jsonResponse } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/pull/+server.ts\nvar logger = createLogger(\"containers-pull\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"pull request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:pull\", async () => {\n\t\tconst state = getState();\n\t\tconst dockerCheck = await checkDocker();\n\t\tif (!dockerCheck.ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", { stderr: dockerCheck.stderr }, requestId);\n\t\tconst composeOpts = buildComposeOptions(state);\n\t\tlogger.info(\"pulling images\", { requestId });\n\t\tconst pullResult = await composePull(composeOpts);\n\t\tif (!pullResult.ok) {\n\t\t\tlogger.error(\"image pull failed\", {\n\t\t\t\trequestId,\n\t\t\t\tstderr: pullResult.stderr\n\t\t\t});\n\t\t\treturn errorResponse(502, \"pull_failed\", \"Failed to pull images\", { stderr: pullResult.stderr }, requestId);\n\t\t}\n\t\tlogger.info(\"recreating containers\", { requestId });\n\t\tconst managedServices = await buildManagedServices(state);\n\t\tconst upResult = await composeUp({\n\t\t\t...composeOpts,\n\t\t\tservices: managedServices,\n\t\t\tforceRecreate: true\n\t\t});\n\t\tif (!upResult.ok) {\n\t\t\tlogger.error(\"compose up failed after pull\", {\n\t\t\t\trequestId,\n\t\t\t\tstderr: upResult.stderr\n\t\t\t});\n\t\t\treturn errorResponse(502, \"up_failed\", \"Images pulled but failed to recreate containers\", { stderr: upResult.stderr }, requestId);\n\t\t}\n\t\tlogger.info(\"pull completed\", {\n\t\t\trequestId,\n\t\t\tstarted: managedServices\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tpulled: pullResult.stdout,\n\t\t\tstarted: managedServices\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACzC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC5I,EAAE,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAChD,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC;AAC9C,EAAE,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC;AACnD,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AACtB,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE;AACrC,IAAI,SAAS;AACb,IAAI,MAAM,EAAE,UAAU,CAAC;AACvB,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC9G,EAAE;AACF,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,EAAE,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC3D,EAAE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AACnC,GAAG,GAAG,WAAW;AACjB,GAAG,QAAQ,EAAE,eAAe;AAC5B,GAAG,aAAa,EAAE;AAClB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,GAAG,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;AAChD,IAAI,SAAS;AACb,IAAI,MAAM,EAAE,QAAQ,CAAC;AACrB,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,iDAAiD,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AACpI,EAAE;AACF,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAChC,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,9 +1,9 @@
1
- import { a0 as importHostOpenCode, G as detectHostOpenCode, i as authJsonPath, m as checkDocker, k as buildComposeOptions } from './src-b3nBkyhY.js';
2
- import { b as getState } from './endpoints-Ci6CJJnc.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-BqYJlSJg.js';
1
+ import { a0 as importHostOpenCode, G as detectHostOpenCode, i as authJsonPath, m as checkDocker, k as buildComposeOptions } from './src-DkGZ5D6n.js';
2
+ import { b as getState } from './endpoints-uSe3ORbp.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-D4ot6bJ_.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
- import { o as opencodeFetch } from './http-CghRhEH6.js';
6
- import { c as composeRestart } from './docker-NqrL9zHp.js';
5
+ import { o as opencodeFetch } from './http-DWdG8RlO.js';
6
+ import { c as composeRestart } from './docker-CKOdzi6A.js';
7
7
  import { existsSync, readFileSync } from 'node:fs';
8
8
  import './chunk-CLZ62Ad-.js';
9
9
  import 'node:module';
@@ -154,4 +154,4 @@ var POST = async (event) => {
154
154
  };
155
155
 
156
156
  export { POST };
157
- //# sourceMappingURL=_server.ts-CN5s8RLB.js.map
157
+ //# sourceMappingURL=_server.ts-XQi6MDkU.js.map