@openpalm/ui 0.11.0-rc.3 → 0.11.0-rc.4

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 (264) hide show
  1. package/README.md +50 -19
  2. package/build/.openpalm-ui-version +1 -1
  3. package/build/client/_app/immutable/assets/{7.BHUsSUvX.css → 7.BimnqtTb.css} +1 -1
  4. package/build/client/_app/immutable/assets/7.BimnqtTb.css.br +0 -0
  5. package/build/client/_app/immutable/assets/7.BimnqtTb.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/{AuthGate.DKS99Rrq.css → AuthGate._EJNXKUm.css} +1 -1
  7. package/build/client/_app/immutable/assets/AuthGate._EJNXKUm.css.br +0 -0
  8. package/build/client/_app/immutable/assets/AuthGate._EJNXKUm.css.gz +0 -0
  9. package/build/client/_app/immutable/chunks/CmvkId2p.js +1 -0
  10. package/build/client/_app/immutable/chunks/CmvkId2p.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/CmvkId2p.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/DKrt-Ofe.js +5 -0
  13. package/build/client/_app/immutable/chunks/DKrt-Ofe.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/DKrt-Ofe.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/{DtBQ-3uX.js → DTwNbG18.js} +1 -1
  16. package/build/client/_app/immutable/chunks/DTwNbG18.js.br +2 -0
  17. package/build/client/_app/immutable/chunks/DTwNbG18.js.gz +0 -0
  18. package/build/client/_app/immutable/entry/{app.D0MBBfeD.js → app.D2QrHH7_.js} +2 -2
  19. package/build/client/_app/immutable/entry/app.D2QrHH7_.js.br +0 -0
  20. package/build/client/_app/immutable/entry/app.D2QrHH7_.js.gz +0 -0
  21. package/build/client/_app/immutable/entry/start.BM5p1xOI.js +1 -0
  22. package/build/client/_app/immutable/entry/start.BM5p1xOI.js.br +0 -0
  23. package/build/client/_app/immutable/entry/start.BM5p1xOI.js.gz +0 -0
  24. package/build/client/_app/immutable/nodes/{1.BL-nh2RB.js → 1.vc1gswpN.js} +1 -1
  25. package/build/client/_app/immutable/nodes/1.vc1gswpN.js.br +0 -0
  26. package/build/client/_app/immutable/nodes/1.vc1gswpN.js.gz +0 -0
  27. package/build/client/_app/immutable/nodes/{4.DVARHw9M.js → 4.DD0APCkW.js} +1 -1
  28. package/build/client/_app/immutable/nodes/4.DD0APCkW.js.br +0 -0
  29. package/build/client/_app/immutable/nodes/4.DD0APCkW.js.gz +0 -0
  30. package/build/client/_app/immutable/nodes/{5.BqSl_ppl.js → 5.BIkQUR1G.js} +1 -1
  31. package/build/client/_app/immutable/nodes/5.BIkQUR1G.js.br +0 -0
  32. package/build/client/_app/immutable/nodes/5.BIkQUR1G.js.gz +0 -0
  33. package/build/client/_app/immutable/nodes/{6.75q8hd55.js → 6.DVDakR8k.js} +1 -1
  34. package/build/client/_app/immutable/nodes/6.DVDakR8k.js.br +0 -0
  35. package/build/client/_app/immutable/nodes/6.DVDakR8k.js.gz +0 -0
  36. package/build/client/_app/immutable/nodes/{7.CJwMJZue.js → 7.wMxDFXAt.js} +1 -1
  37. package/build/client/_app/immutable/nodes/7.wMxDFXAt.js.br +0 -0
  38. package/build/client/_app/immutable/nodes/7.wMxDFXAt.js.gz +0 -0
  39. package/build/client/_app/version.json +1 -1
  40. package/build/client/_app/version.json.br +1 -1
  41. package/build/client/_app/version.json.gz +0 -0
  42. package/build/server/chunks/1-BwC-cEPZ.js +9 -0
  43. package/build/server/chunks/{1-CMQKOdKD.js.map → 1-BwC-cEPZ.js.map} +1 -1
  44. package/build/server/chunks/4-BHTk326s.js +9 -0
  45. package/build/server/chunks/{4-DLPu7Zn2.js.map → 4-BHTk326s.js.map} +1 -1
  46. package/build/server/chunks/5-BZDwO3BH.js +9 -0
  47. package/build/server/chunks/{5-D2qJw2oW.js.map → 5-BZDwO3BH.js.map} +1 -1
  48. package/build/server/chunks/6-DtvUY6SF.js +9 -0
  49. package/build/server/chunks/{6-Dtj1x2xS.js.map → 6-DtvUY6SF.js.map} +1 -1
  50. package/build/server/chunks/7-C9TeiPbc.js +9 -0
  51. package/build/server/chunks/{7-DmB_gD85.js.map → 7-C9TeiPbc.js.map} +1 -1
  52. package/build/server/chunks/{AuthGate-DCzipUOa.js → AuthGate-CdtQ21Tn.js} +14 -6
  53. package/build/server/chunks/AuthGate-CdtQ21Tn.js.map +1 -0
  54. package/build/server/chunks/{_page.svelte-D6iSQwSa.js → _page.svelte-2puUmKay.js} +4 -5
  55. package/build/server/chunks/{_page.svelte-D6iSQwSa.js.map → _page.svelte-2puUmKay.js.map} +1 -1
  56. package/build/server/chunks/{_page.svelte-B9uFpwlC.js → _page.svelte-Cb3M2n38.js} +4 -5
  57. package/build/server/chunks/{_page.svelte-B9uFpwlC.js.map → _page.svelte-Cb3M2n38.js.map} +1 -1
  58. package/build/server/chunks/{_page.svelte-CXnzFLVM.js → _page.svelte-DYWY35Zz.js} +4 -5
  59. package/build/server/chunks/{_page.svelte-CXnzFLVM.js.map → _page.svelte-DYWY35Zz.js.map} +1 -1
  60. package/build/server/chunks/{_page.svelte-CLlVK06N.js → _page.svelte-DkYHUL4U.js} +4 -5
  61. package/build/server/chunks/{_page.svelte-CLlVK06N.js.map → _page.svelte-DkYHUL4U.js.map} +1 -1
  62. package/build/server/chunks/{_server.ts-BgsLpMRV.js → _server.ts-31Ih8YM7.js} +6 -6
  63. package/build/server/chunks/{_server.ts-BgsLpMRV.js.map → _server.ts-31Ih8YM7.js.map} +1 -1
  64. package/build/server/chunks/{_server.ts-BKUT0g1w.js → _server.ts-7SYeoL8H.js} +4 -4
  65. package/build/server/chunks/{_server.ts-BKUT0g1w.js.map → _server.ts-7SYeoL8H.js.map} +1 -1
  66. package/build/server/chunks/{_server.ts-DfGAcelA.js → _server.ts-7YQtir-c.js} +6 -6
  67. package/build/server/chunks/{_server.ts-DfGAcelA.js.map → _server.ts-7YQtir-c.js.map} +1 -1
  68. package/build/server/chunks/{_server.ts-EQcQPIxU.js → _server.ts-B4-U2IgV.js} +4 -4
  69. package/build/server/chunks/{_server.ts-EQcQPIxU.js.map → _server.ts-B4-U2IgV.js.map} +1 -1
  70. package/build/server/chunks/{_server.ts-kjqHYD8N.js → _server.ts-B5ewU2jA.js} +4 -4
  71. package/build/server/chunks/{_server.ts-kjqHYD8N.js.map → _server.ts-B5ewU2jA.js.map} +1 -1
  72. package/build/server/chunks/{_server.ts-DhZYsdNy.js → _server.ts-B7hqA-QH.js} +4 -4
  73. package/build/server/chunks/{_server.ts-DhZYsdNy.js.map → _server.ts-B7hqA-QH.js.map} +1 -1
  74. package/build/server/chunks/{_server.ts-DDw-3STN.js → _server.ts-BHy1FIWT.js} +4 -4
  75. package/build/server/chunks/{_server.ts-DDw-3STN.js.map → _server.ts-BHy1FIWT.js.map} +1 -1
  76. package/build/server/chunks/{_server.ts-CT_87l-n.js → _server.ts-BIRnkRp-.js} +4 -4
  77. package/build/server/chunks/{_server.ts-CT_87l-n.js.map → _server.ts-BIRnkRp-.js.map} +1 -1
  78. package/build/server/chunks/{_server.ts-DXkkp8dY.js → _server.ts-BN0-6jX7.js} +4 -4
  79. package/build/server/chunks/{_server.ts-DXkkp8dY.js.map → _server.ts-BN0-6jX7.js.map} +1 -1
  80. package/build/server/chunks/{_server.ts-DXZGlkbn.js → _server.ts-BNHq_0XB.js} +5 -5
  81. package/build/server/chunks/{_server.ts-DXZGlkbn.js.map → _server.ts-BNHq_0XB.js.map} +1 -1
  82. package/build/server/chunks/{_server.ts-9rxck4Bq.js → _server.ts-BOcqQDtZ.js} +4 -4
  83. package/build/server/chunks/{_server.ts-9rxck4Bq.js.map → _server.ts-BOcqQDtZ.js.map} +1 -1
  84. package/build/server/chunks/{_server.ts-CZNebjxj.js → _server.ts-BPbPm6_H.js} +4 -4
  85. package/build/server/chunks/{_server.ts-CZNebjxj.js.map → _server.ts-BPbPm6_H.js.map} +1 -1
  86. package/build/server/chunks/{_server.ts-CUYnnr4e.js → _server.ts-BUzhYY5b.js} +4 -4
  87. package/build/server/chunks/{_server.ts-CUYnnr4e.js.map → _server.ts-BUzhYY5b.js.map} +1 -1
  88. package/build/server/chunks/{_server.ts-DQFt8uqd.js → _server.ts-BajIVU3T.js} +4 -4
  89. package/build/server/chunks/{_server.ts-DQFt8uqd.js.map → _server.ts-BajIVU3T.js.map} +1 -1
  90. package/build/server/chunks/{_server.ts-CXxVw4DS.js → _server.ts-BdqgSniA.js} +4 -4
  91. package/build/server/chunks/{_server.ts-CXxVw4DS.js.map → _server.ts-BdqgSniA.js.map} +1 -1
  92. package/build/server/chunks/{_server.ts-BgvH4tTI.js → _server.ts-BheY_Hpx.js} +4 -4
  93. package/build/server/chunks/{_server.ts-BgvH4tTI.js.map → _server.ts-BheY_Hpx.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-DHvirvMi.js → _server.ts-BnsyzAfd.js} +4 -4
  95. package/build/server/chunks/{_server.ts-DHvirvMi.js.map → _server.ts-BnsyzAfd.js.map} +1 -1
  96. package/build/server/chunks/{_server.ts-DlAVNe3N.js → _server.ts-Br304l_4.js} +3 -3
  97. package/build/server/chunks/{_server.ts-DlAVNe3N.js.map → _server.ts-Br304l_4.js.map} +1 -1
  98. package/build/server/chunks/{_server.ts-BQuqaIiA.js → _server.ts-Broe0WRV.js} +4 -4
  99. package/build/server/chunks/{_server.ts-BQuqaIiA.js.map → _server.ts-Broe0WRV.js.map} +1 -1
  100. package/build/server/chunks/{_server.ts-BR50MxK6.js → _server.ts-BwNngfUJ.js} +4 -4
  101. package/build/server/chunks/{_server.ts-BR50MxK6.js.map → _server.ts-BwNngfUJ.js.map} +1 -1
  102. package/build/server/chunks/{_server.ts-C5dSIi-F.js → _server.ts-Bz5eysrP.js} +5 -5
  103. package/build/server/chunks/{_server.ts-C5dSIi-F.js.map → _server.ts-Bz5eysrP.js.map} +1 -1
  104. package/build/server/chunks/{_server.ts-CqaBfyP8.js → _server.ts-C4qYb4T-.js} +2 -2
  105. package/build/server/chunks/{_server.ts-CqaBfyP8.js.map → _server.ts-C4qYb4T-.js.map} +1 -1
  106. package/build/server/chunks/{_server.ts-B0Fde1SO.js → _server.ts-C6WJsZ0G.js} +6 -6
  107. package/build/server/chunks/{_server.ts-B0Fde1SO.js.map → _server.ts-C6WJsZ0G.js.map} +1 -1
  108. package/build/server/chunks/{_server.ts-BX6vXBw6.js → _server.ts-CBKtVzEl.js} +4 -4
  109. package/build/server/chunks/{_server.ts-BX6vXBw6.js.map → _server.ts-CBKtVzEl.js.map} +1 -1
  110. package/build/server/chunks/{_server.ts-CMXy3OdG.js → _server.ts-CCMxf_7S.js} +4 -4
  111. package/build/server/chunks/{_server.ts-CMXy3OdG.js.map → _server.ts-CCMxf_7S.js.map} +1 -1
  112. package/build/server/chunks/{_server.ts-BGOf6ZAe.js → _server.ts-CD9ePvQZ.js} +4 -4
  113. package/build/server/chunks/{_server.ts-BGOf6ZAe.js.map → _server.ts-CD9ePvQZ.js.map} +1 -1
  114. package/build/server/chunks/{_server.ts-ByWgyQWs.js → _server.ts-CED6YvVP.js} +4 -4
  115. package/build/server/chunks/{_server.ts-ByWgyQWs.js.map → _server.ts-CED6YvVP.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-PxpDZztC.js → _server.ts-CHxBpqNs.js} +4 -4
  117. package/build/server/chunks/{_server.ts-PxpDZztC.js.map → _server.ts-CHxBpqNs.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-CUJncs7u.js → _server.ts-CJa40B0Z.js} +4 -4
  119. package/build/server/chunks/{_server.ts-CUJncs7u.js.map → _server.ts-CJa40B0Z.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-aEcRsOln.js → _server.ts-CLzZwKQq.js} +6 -6
  121. package/build/server/chunks/{_server.ts-aEcRsOln.js.map → _server.ts-CLzZwKQq.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-DRITlKJZ.js → _server.ts-CZVFChDK.js} +5 -5
  123. package/build/server/chunks/{_server.ts-DRITlKJZ.js.map → _server.ts-CZVFChDK.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-CjD_N1lk.js → _server.ts-CaHJSZZ1.js} +4 -4
  125. package/build/server/chunks/{_server.ts-CjD_N1lk.js.map → _server.ts-CaHJSZZ1.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-3Q27Je1p.js → _server.ts-Cc4BIEOJ.js} +4 -4
  127. package/build/server/chunks/{_server.ts-3Q27Je1p.js.map → _server.ts-Cc4BIEOJ.js.map} +1 -1
  128. package/build/server/chunks/{_server.ts-BMxPCfPF.js → _server.ts-Cct9ZWnS.js} +4 -4
  129. package/build/server/chunks/{_server.ts-BMxPCfPF.js.map → _server.ts-Cct9ZWnS.js.map} +1 -1
  130. package/build/server/chunks/{_server.ts-BGo79CrH.js → _server.ts-CmcnDpcq.js} +4 -4
  131. package/build/server/chunks/{_server.ts-BGo79CrH.js.map → _server.ts-CmcnDpcq.js.map} +1 -1
  132. package/build/server/chunks/{_server.ts-DUIcweGe.js → _server.ts-CoCYLLcy.js} +4 -4
  133. package/build/server/chunks/{_server.ts-DUIcweGe.js.map → _server.ts-CoCYLLcy.js.map} +1 -1
  134. package/build/server/chunks/{_server.ts-D79sBzeS.js → _server.ts-CsB6omUv.js} +4 -4
  135. package/build/server/chunks/{_server.ts-D79sBzeS.js.map → _server.ts-CsB6omUv.js.map} +1 -1
  136. package/build/server/chunks/{_server.ts-CQL1JlrR.js → _server.ts-CuVTkFXh.js} +4 -4
  137. package/build/server/chunks/{_server.ts-CQL1JlrR.js.map → _server.ts-CuVTkFXh.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-Cx5w0uV8.js → _server.ts-CzmHtvBP.js} +4 -4
  139. package/build/server/chunks/{_server.ts-Cx5w0uV8.js.map → _server.ts-CzmHtvBP.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-BbgQGbyq.js → _server.ts-D2MVikBE.js} +4 -4
  141. package/build/server/chunks/{_server.ts-BbgQGbyq.js.map → _server.ts-D2MVikBE.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-8W7d7SoL.js → _server.ts-D2a0wAaS.js} +4 -4
  143. package/build/server/chunks/{_server.ts-8W7d7SoL.js.map → _server.ts-D2a0wAaS.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-BOZd9IEG.js → _server.ts-D2eLvAHH.js} +4 -4
  145. package/build/server/chunks/{_server.ts-BOZd9IEG.js.map → _server.ts-D2eLvAHH.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-B1F39kvX.js → _server.ts-DAti5TMB.js} +4 -4
  147. package/build/server/chunks/{_server.ts-B1F39kvX.js.map → _server.ts-DAti5TMB.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts-B3IxKvYj.js → _server.ts-DDJ_6hbd.js} +4 -4
  149. package/build/server/chunks/{_server.ts-B3IxKvYj.js.map → _server.ts-DDJ_6hbd.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-RXSRu6ve.js → _server.ts-DG6Qxh-v.js} +4 -4
  151. package/build/server/chunks/{_server.ts-RXSRu6ve.js.map → _server.ts-DG6Qxh-v.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-lKesIiS8.js → _server.ts-DGvfj1AD.js} +4 -4
  153. package/build/server/chunks/{_server.ts-lKesIiS8.js.map → _server.ts-DGvfj1AD.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-C-Elv1Q4.js → _server.ts-DGwGBkiZ.js} +2 -2
  155. package/build/server/chunks/{_server.ts-C-Elv1Q4.js.map → _server.ts-DGwGBkiZ.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-BZ-j5EzC.js → _server.ts-DIt7oZ78.js} +4 -4
  157. package/build/server/chunks/{_server.ts-BZ-j5EzC.js.map → _server.ts-DIt7oZ78.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-E0fukP1O.js → _server.ts-DStLQ6G7.js} +4 -4
  159. package/build/server/chunks/{_server.ts-E0fukP1O.js.map → _server.ts-DStLQ6G7.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-Z9Mn2O3V.js → _server.ts-DUC-QWMj.js} +4 -4
  161. package/build/server/chunks/{_server.ts-Z9Mn2O3V.js.map → _server.ts-DUC-QWMj.js.map} +1 -1
  162. package/build/server/chunks/{_server.ts-g6AfW6Yv.js → _server.ts-DVdN-5bk.js} +4 -4
  163. package/build/server/chunks/{_server.ts-g6AfW6Yv.js.map → _server.ts-DVdN-5bk.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-BmanVk6i.js → _server.ts-DW3vY8LS.js} +2 -2
  165. package/build/server/chunks/{_server.ts-BmanVk6i.js.map → _server.ts-DW3vY8LS.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts--lBTTJTc.js → _server.ts-DXLqkvU1.js} +5 -5
  167. package/build/server/chunks/{_server.ts--lBTTJTc.js.map → _server.ts-DXLqkvU1.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-BHY6pU_t.js → _server.ts-DbBkQ5gv.js} +4 -4
  169. package/build/server/chunks/{_server.ts-BHY6pU_t.js.map → _server.ts-DbBkQ5gv.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-I35XVwCd.js → _server.ts-DgTJfsxX.js} +5 -5
  171. package/build/server/chunks/{_server.ts-I35XVwCd.js.map → _server.ts-DgTJfsxX.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-BG1Q5Cg7.js → _server.ts-DglztWzk.js} +4 -4
  173. package/build/server/chunks/{_server.ts-BG1Q5Cg7.js.map → _server.ts-DglztWzk.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-BDRe9Abk.js → _server.ts-Dwklttlo.js} +2 -2
  175. package/build/server/chunks/{_server.ts-BDRe9Abk.js.map → _server.ts-Dwklttlo.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-BY8Bwuii.js → _server.ts-FzTKvasI.js} +5 -5
  177. package/build/server/chunks/{_server.ts-BY8Bwuii.js.map → _server.ts-FzTKvasI.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-C2ePDxiK.js → _server.ts-R7dMpaPA.js} +2 -2
  179. package/build/server/chunks/{_server.ts-C2ePDxiK.js.map → _server.ts-R7dMpaPA.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-DG8rrhwk.js → _server.ts-UM7mXEsQ.js} +5 -5
  181. package/build/server/chunks/{_server.ts-DG8rrhwk.js.map → _server.ts-UM7mXEsQ.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-4KkJ4SW0.js → _server.ts-Ur_t9bMU.js} +4 -4
  183. package/build/server/chunks/{_server.ts-4KkJ4SW0.js.map → _server.ts-Ur_t9bMU.js.map} +1 -1
  184. package/build/server/chunks/{_server.ts-CZtZD9XA.js → _server.ts-VHHuwb3V.js} +4 -4
  185. package/build/server/chunks/{_server.ts-CZtZD9XA.js.map → _server.ts-VHHuwb3V.js.map} +1 -1
  186. package/build/server/chunks/{_server.ts-BaVWFrdS.js → _server.ts-XmCgdAim.js} +4 -4
  187. package/build/server/chunks/{_server.ts-BaVWFrdS.js.map → _server.ts-XmCgdAim.js.map} +1 -1
  188. package/build/server/chunks/{_server.ts-BOZ6j_Dh.js → _server.ts-ZcRUavo2.js} +4 -4
  189. package/build/server/chunks/{_server.ts-BOZ6j_Dh.js.map → _server.ts-ZcRUavo2.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-DVcfUcfK.js → _server.ts-djChqJ3l.js} +4 -4
  191. package/build/server/chunks/{_server.ts-DVcfUcfK.js.map → _server.ts-djChqJ3l.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-BQIKbZE5.js → _server.ts-lmcyfcf5.js} +4 -4
  193. package/build/server/chunks/{_server.ts-BQIKbZE5.js.map → _server.ts-lmcyfcf5.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-D0VWz3Eu.js → _server.ts-ncFk6KuU.js} +4 -4
  195. package/build/server/chunks/{_server.ts-D0VWz3Eu.js.map → _server.ts-ncFk6KuU.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-DtxwCTTn.js → _server.ts-sAx1xFio.js} +4 -4
  197. package/build/server/chunks/{_server.ts-DtxwCTTn.js.map → _server.ts-sAx1xFio.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-GPzYT0sb.js → _server.ts-zY_DK-6S.js} +4 -4
  199. package/build/server/chunks/{_server.ts-GPzYT0sb.js.map → _server.ts-zY_DK-6S.js.map} +1 -1
  200. package/build/server/chunks/{addon-helpers-8efgpHMX.js → addon-helpers-DM77guzq.js} +2 -2
  201. package/build/server/chunks/{addon-helpers-8efgpHMX.js.map → addon-helpers-DM77guzq.js.map} +1 -1
  202. package/build/server/chunks/{config-1dyh_9h4.js → config-BE8RNUzZ.js} +2 -2
  203. package/build/server/chunks/{config-1dyh_9h4.js.map → config-BE8RNUzZ.js.map} +1 -1
  204. package/build/server/chunks/{docker-DggffvOl.js → docker-BFje1OYT.js} +2 -2
  205. package/build/server/chunks/{docker-DggffvOl.js.map → docker-BFje1OYT.js.map} +1 -1
  206. package/build/server/chunks/{endpoints-kaPFORka.js → endpoints-Dz6qhKXB.js} +2 -2
  207. package/build/server/chunks/{endpoints-kaPFORka.js.map → endpoints-Dz6qhKXB.js.map} +1 -1
  208. package/build/server/chunks/{error.svelte-BhAtOJnJ.js → error.svelte-8jbbCpmR.js} +3 -3
  209. package/build/server/chunks/{error.svelte-BhAtOJnJ.js.map → error.svelte-8jbbCpmR.js.map} +1 -1
  210. package/build/server/chunks/{helpers-B8h4zchW.js → helpers-C1fMEpiP.js} +3 -3
  211. package/build/server/chunks/{helpers-B8h4zchW.js.map → helpers-C1fMEpiP.js.map} +1 -1
  212. package/build/server/chunks/{hooks.server-DERyGNuF.js → hooks.server-C6uX-Qkd.js} +4 -4
  213. package/build/server/chunks/{hooks.server-DERyGNuF.js.map → hooks.server-C6uX-Qkd.js.map} +1 -1
  214. package/build/server/chunks/{http-8UL6GfDM.js → http-CmL_uneS.js} +2 -2
  215. package/build/server/chunks/{http-8UL6GfDM.js.map → http-CmL_uneS.js.map} +1 -1
  216. package/build/server/chunks/{internal-CGO6-n-l.js → internal-BJjTqjxK.js} +3 -3
  217. package/build/server/chunks/{internal-CGO6-n-l.js.map → internal-BJjTqjxK.js.map} +1 -1
  218. package/build/server/chunks/{setup-deploy-M7it9qqu.js → setup-deploy-tjcmiBUv.js} +2 -2
  219. package/build/server/chunks/{setup-deploy-M7it9qqu.js.map → setup-deploy-tjcmiBUv.js.map} +1 -1
  220. package/build/server/chunks/{src-BsgfqG_-.js → src-BWQ05CjI.js} +4 -3
  221. package/build/server/chunks/src-BWQ05CjI.js.map +1 -0
  222. package/build/server/chunks/{state-CxWVaiQ-.js → state-CKV51p4g.js} +2 -2
  223. package/build/server/chunks/{state-CxWVaiQ-.js.map → state-CKV51p4g.js.map} +1 -1
  224. package/build/server/index.js +32 -2
  225. package/build/server/index.js.map +1 -1
  226. package/build/server/manifest.js +75 -75
  227. package/build/server/manifest.js.map +1 -1
  228. package/package.json +7 -2
  229. package/build/client/_app/immutable/assets/7.BHUsSUvX.css.br +0 -0
  230. package/build/client/_app/immutable/assets/7.BHUsSUvX.css.gz +0 -0
  231. package/build/client/_app/immutable/assets/AuthGate.DKS99Rrq.css.br +0 -0
  232. package/build/client/_app/immutable/assets/AuthGate.DKS99Rrq.css.gz +0 -0
  233. package/build/client/_app/immutable/chunks/BH5NAaCV.js +0 -1
  234. package/build/client/_app/immutable/chunks/BH5NAaCV.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/BH5NAaCV.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/CF3TKiGr.js +0 -5
  237. package/build/client/_app/immutable/chunks/CF3TKiGr.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/CF3TKiGr.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/DtBQ-3uX.js.br +0 -0
  240. package/build/client/_app/immutable/chunks/DtBQ-3uX.js.gz +0 -0
  241. package/build/client/_app/immutable/entry/app.D0MBBfeD.js.br +0 -0
  242. package/build/client/_app/immutable/entry/app.D0MBBfeD.js.gz +0 -0
  243. package/build/client/_app/immutable/entry/start.CG9MKItr.js +0 -1
  244. package/build/client/_app/immutable/entry/start.CG9MKItr.js.br +0 -0
  245. package/build/client/_app/immutable/entry/start.CG9MKItr.js.gz +0 -0
  246. package/build/client/_app/immutable/nodes/1.BL-nh2RB.js.br +0 -0
  247. package/build/client/_app/immutable/nodes/1.BL-nh2RB.js.gz +0 -0
  248. package/build/client/_app/immutable/nodes/4.DVARHw9M.js.br +0 -0
  249. package/build/client/_app/immutable/nodes/4.DVARHw9M.js.gz +0 -0
  250. package/build/client/_app/immutable/nodes/5.BqSl_ppl.js.br +0 -0
  251. package/build/client/_app/immutable/nodes/5.BqSl_ppl.js.gz +0 -0
  252. package/build/client/_app/immutable/nodes/6.75q8hd55.js.br +0 -0
  253. package/build/client/_app/immutable/nodes/6.75q8hd55.js.gz +0 -0
  254. package/build/client/_app/immutable/nodes/7.CJwMJZue.js.br +0 -0
  255. package/build/client/_app/immutable/nodes/7.CJwMJZue.js.gz +0 -0
  256. package/build/server/chunks/1-CMQKOdKD.js +0 -9
  257. package/build/server/chunks/4-DLPu7Zn2.js +0 -9
  258. package/build/server/chunks/5-D2qJw2oW.js +0 -9
  259. package/build/server/chunks/6-Dtj1x2xS.js +0 -9
  260. package/build/server/chunks/7-DmB_gD85.js +0 -9
  261. package/build/server/chunks/AuthGate-DCzipUOa.js.map +0 -1
  262. package/build/server/chunks/environment-9I43EDnv.js +0 -36
  263. package/build/server/chunks/environment-9I43EDnv.js.map +0 -1
  264. package/build/server/chunks/src-BsgfqG_-.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts--lBTTJTc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_server.ts.js"],"sourcesContent":["import { ot as listAvailableAddonIds, st as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../chunks/helpers.js\";\nimport { t as performAddonToggle } from \"../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/+server.ts\nfunction buildAddonList(availableIds, enabledIds) {\n\tconst enabledSet = new Set(enabledIds);\n\treturn availableIds.map((name) => ({\n\t\tname,\n\t\tenabled: enabledSet.has(name),\n\t\tavailable: true\n\t}));\n}\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\treturn jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst name = typeof body.name === \"string\" ? body.name.trim() : \"\";\n\tif (!name) return errorResponse(400, \"bad_request\", \"name is required\", {}, requestId);\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,SAAS,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;AAClD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACvC,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACpC,EAAE,IAAI;AACN,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,SAAS,EAAE;AACb,EAAE,CAAC,CAAC;AACJ;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,qBAAqB,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAC7H;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,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,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,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AACnE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC7I,CAAC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;AAC3H,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC;AACzF,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,OAAO,EAAE,MAAM,CAAC;AAClB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-DXLqkvU1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_server.ts.js"],"sourcesContent":["import { ot as listAvailableAddonIds, st as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../chunks/helpers.js\";\nimport { t as performAddonToggle } from \"../../../../chunks/addon-helpers.js\";\n//#region src/routes/admin/addons/+server.ts\nfunction buildAddonList(availableIds, enabledIds) {\n\tconst enabledSet = new Set(enabledIds);\n\treturn availableIds.map((name) => ({\n\t\tname,\n\t\tenabled: enabledSet.has(name),\n\t\tavailable: true\n\t}));\n}\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\treturn jsonResponse(200, { addons: buildAddonList(listAvailableAddonIds(), listEnabledAddonIds(state.homeDir)) }, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst name = typeof body.name === \"string\" ? body.name.trim() : \"\";\n\tif (!name) return errorResponse(400, \"bad_request\", \"name is required\", {}, requestId);\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst toggle = await performAddonToggle(state, name, typeof body.enabled === \"boolean\" ? body.enabled : void 0, requestId);\n\tif (!toggle.ok) return errorResponse(500, \"internal_error\", toggle.error, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\taddon: name,\n\t\tenabled: toggle.enabled,\n\t\tchanged: toggle.changed\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,SAAS,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;AAClD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACvC,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACpC,EAAE,IAAI;AACN,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,SAAS,EAAE;AACb,EAAE,CAAC,CAAC;AACJ;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,qBAAqB,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAC7H;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,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,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,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AACnE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC7I,CAAC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,CAAC;AAC3H,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC;AACzF,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,OAAO,EAAE,MAAM,CAAC;AAClB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { af as removeSecretFile, a9 as readSecretFile, as as writeSecretFile, g as assertSafeSecretFilename } from './src-BsgfqG_-.js';
2
- import { b as getState } from './endpoints-kaPFORka.js';
3
- import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-B8h4zchW.js';
1
+ import { af as removeSecretFile, a9 as readSecretFile, as as writeSecretFile, g as assertSafeSecretFilename } from './src-BWQ05CjI.js';
2
+ import { b as getState } from './endpoints-Dz6qhKXB.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-C1fMEpiP.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -76,4 +76,4 @@ var DELETE = async (event) => {
76
76
  };
77
77
 
78
78
  export { DELETE, GET, PUT };
79
- //# sourceMappingURL=_server.ts-BHY6pU_t.js.map
79
+ //# sourceMappingURL=_server.ts-DbBkQ5gv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BHY6pU_t.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Ct as readSecretFile, Tt as writeSecretFile, bt as assertSafeSecretFilename, wt as removeSecretFile } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE;AACpC,CAAC,IAAI;AACL,EAAE,wBAAwB,CAAC,IAAI,CAAC;AAChC,EAAE,OAAO,IAAI;AACb,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACtE,CAAC;AACD;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,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;AACvC,CAAC,IAAI,GAAG,EAAE,OAAO,GAAG;AACpB,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxD,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5G,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,IAAI;AACN,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;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,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;AACvC,CAAC,IAAI,GAAG,EAAE,OAAO,GAAG;AACpB,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,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK;AAChC,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,wBAAwB,EAAE,EAAE,EAAE,SAAS,CAAC;AACjH,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AAClD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE;AACF,EAAE,EAAE,SAAS,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,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;AACvC,CAAC,IAAI,GAAG,EAAE,OAAO,GAAG;AACpB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC5C,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-DbBkQ5gv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Ct as readSecretFile, Tt as writeSecretFile, bt as assertSafeSecretFilename, wt as removeSecretFile } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-B8h4zchW.js';
2
- import { o as opencodeFetch } from './http-8UL6GfDM.js';
3
- import './src-BsgfqG_-.js';
1
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-C1fMEpiP.js';
2
+ import { o as opencodeFetch } from './http-CmL_uneS.js';
3
+ import './src-BWQ05CjI.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-kaPFORka.js';
23
+ import './endpoints-Dz6qhKXB.js';
24
24
 
25
25
  //#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts
26
26
  var POST = async (event) => {
@@ -49,4 +49,4 @@ var POST = async (event) => {
49
49
  };
50
50
 
51
51
  export { POST };
52
- //# sourceMappingURL=_server.ts-I35XVwCd.js.map
52
+ //# sourceMappingURL=_server.ts-DgTJfsxX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-I35XVwCd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/_providerId_/callback/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\n//#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst { providerId } = event.params;\n\tif (!providerId) return errorResponse(400, \"missing_provider\", \"Provider ID is required.\", {}, requestId);\n\ttry {\n\t\tconst body = await event.request.text();\n\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody\n\t\t});\n\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t...requestId ? { \"x-request-id\": requestId } : {}\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\treturn errorResponse(502, \"oauth_callback_failed\", error instanceof Error ? error.message : \"OAuth callback failed\", {}, requestId);\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,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM;AACpC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1G,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACzC,EAAE,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACpF,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,GAAG,SAAS,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG;AACnD;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,uBAAuB,EAAE,EAAE,EAAE,SAAS,CAAC;AACrI,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-DgTJfsxX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/_providerId_/callback/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\n//#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst { providerId } = event.params;\n\tif (!providerId) return errorResponse(400, \"missing_provider\", \"Provider ID is required.\", {}, requestId);\n\ttry {\n\t\tconst body = await event.request.text();\n\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody\n\t\t});\n\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t...requestId ? { \"x-request-id\": requestId } : {}\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\treturn errorResponse(502, \"oauth_callback_failed\", error instanceof Error ? error.message : \"OAuth callback failed\", {}, requestId);\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,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM;AACpC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1G,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACzC,EAAE,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACpF,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,GAAG,SAAS,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG;AACnD;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,uBAAuB,EAAE,EAAE,EAAE,SAAS,CAAC;AACrI,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { y as createLogger, m as checkDocker, o as composeDown, k as buildComposeOptions, e as applyUninstall } from './src-BsgfqG_-.js';
2
- import { b as getState } from './endpoints-kaPFORka.js';
3
- import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse } from './helpers-B8h4zchW.js';
1
+ import { y as createLogger, m as checkDocker, o as composeDown, k as buildComposeOptions, e as applyUninstall } from './src-BWQ05CjI.js';
2
+ import { b as getState } from './endpoints-Dz6qhKXB.js';
3
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse } from './helpers-C1fMEpiP.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -60,4 +60,4 @@ var POST = async (event) => {
60
60
  };
61
61
 
62
62
  export { POST };
63
- //# sourceMappingURL=_server.ts-BG1Q5Cg7.js.map
63
+ //# sourceMappingURL=_server.ts-DglztWzk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BG1Q5Cg7.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/uninstall/_server.ts.js"],"sourcesContent":["import { D as composeDown, Nt as createLogger, T as checkDocker, w as buildComposeOptions, y as applyUninstall } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/uninstall/+server.ts\nvar logger = createLogger(\"uninstall\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"uninstall request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:uninstall\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tif (dockerCheck.ok) await composeDown(buildComposeOptions(state));\n\t\t\tlogger.info(\"stopping containers and applying uninstall\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t});\n\t\t\tconst result = await applyUninstall(state);\n\t\t\tlogger.info(\"uninstall completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstopped: result.stopped\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\t...result,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"uninstall failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"uninstall_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;AACnC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,iBAAiB,EAAE,YAAY;AACvD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpE,GAAG,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;AAC7D,IAAI,SAAS;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,CAAC;AACL,GAAG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;AAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACtC,IAAI,SAAS;AACb,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,GAAG,MAAM;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACpE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DglztWzk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/uninstall/_server.ts.js"],"sourcesContent":["import { D as composeDown, Nt as createLogger, T as checkDocker, w as buildComposeOptions, y as applyUninstall } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/uninstall/+server.ts\nvar logger = createLogger(\"uninstall\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"uninstall request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:uninstall\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tif (dockerCheck.ok) await composeDown(buildComposeOptions(state));\n\t\t\tlogger.info(\"stopping containers and applying uninstall\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t});\n\t\t\tconst result = await applyUninstall(state);\n\t\t\tlogger.info(\"uninstall completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstopped: result.stopped\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\t...result,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"uninstall failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"uninstall_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;AACnC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,iBAAiB,EAAE,YAAY;AACvD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpE,GAAG,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;AAC7D,IAAI,SAAS;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,CAAC;AACL,GAAG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;AAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACtC,IAAI,SAAS;AACb,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,GAAG,MAAM;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACpE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { _ as isSetupComplete, ak as resolveStackDir } from './src-BsgfqG_-.js';
2
+ import { _ as isSetupComplete, ak as resolveStackDir } from './src-BWQ05CjI.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -30,4 +30,4 @@ var GET = () => {
30
30
  };
31
31
 
32
32
  export { GET };
33
- //# sourceMappingURL=_server.ts-BDRe9Abk.js.map
33
+ //# sourceMappingURL=_server.ts-Dwklttlo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BDRe9Abk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { J as isSetupComplete, jt as resolveStackDir } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveStackDir())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE;AAClD,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-Dwklttlo.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { J as isSetupComplete, jt as resolveStackDir } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveStackDir())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE;AAClD,EAAE,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { w as withAdminBody, h as jsonResponse } from './helpers-B8h4zchW.js';
2
- import { o as opencodeFetch } from './http-8UL6GfDM.js';
1
+ import { w as withAdminBody, h as jsonResponse } from './helpers-C1fMEpiP.js';
2
+ import { o as opencodeFetch } from './http-CmL_uneS.js';
3
3
  import { a as asStringOrEmpty, e as extractInputs } from './_helpers-B_lb4-jB.js';
4
- import './src-BsgfqG_-.js';
4
+ import './src-BWQ05CjI.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-kaPFORka.js';
24
+ import './endpoints-Dz6qhKXB.js';
25
25
  import './coercion-TNFJisCC.js';
26
26
 
27
27
  //#region src/routes/admin/providers/oauth/start/+server.ts
@@ -74,4 +74,4 @@ var POST = (event) => withAdminBody(event, async ({ requestId, body }) => {
74
74
  });
75
75
 
76
76
  export { POST };
77
- //# sourceMappingURL=_server.ts-BY8Bwuii.js.map
77
+ //# sourceMappingURL=_server.ts-FzTKvasI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BY8Bwuii.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/start/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, p as withAdminBody } from \"../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../chunks/http.js\";\nimport { r as extractInputs, t as asStringOrEmpty } from \"../../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/oauth/start/+server.ts\n/**\n* POST /admin/providers/oauth/start — Begin an OpenCode-mediated OAuth\n* sign-in for a provider. Returns the authorization URL and any extra\n* inputs the operator needs to confirm in the UI.\n*\n* Forwards directly to the running assistant's OpenCode at\n* OP_OPENCODE_URL, which holds the OAuth methods map needed to issue\n* the authorize request.\n*/\nvar POST = (event) => withAdminBody(event, async ({ requestId, body }) => {\n\ttry {\n\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\tif (!providerId || Number.isNaN(methodIndex)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider sign-in method first.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tconst inputs = extractInputs(body);\n\t\tconst oauth = await opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/authorize`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmethod: methodIndex,\n\t\t\t\t...inputs ? { inputs } : {}\n\t\t\t})\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"OAuth flow prepared. Open the link below to continue.\",\n\t\t\tselectedProviderId: providerId,\n\t\t\toauth: {\n\t\t\t\tproviderId,\n\t\t\t\tmethodIndex,\n\t\t\t\turl: oauth.url,\n\t\t\t\tmode: oauth.method,\n\t\t\t\tinstructions: oauth.instructions,\n\t\t\t\tinputs\n\t\t\t}\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n});\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC1E,CAAC,IAAI;AACL,EAAE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACzE,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE,yCAAyC;AACrD,GAAG,kBAAkB,EAAE,KAAK;AAC5B,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AACpC,EAAE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,EAAE;AACnG,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACxB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,GAAG,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG;AAC7B,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,uDAAuD;AACnE,GAAG,kBAAkB,EAAE,UAAU;AACjC,GAAG,KAAK,EAAE;AACV,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG;AAClB,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM;AACtB,IAAI,YAAY,EAAE,KAAK,CAAC,YAAY;AACpC,IAAI;AACJ;AACA,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACrE,GAAG,kBAAkB,EAAE;AACvB,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD,CAAC;;;;"}
1
+ {"version":3,"file":"_server.ts-FzTKvasI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/start/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, p as withAdminBody } from \"../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../chunks/http.js\";\nimport { r as extractInputs, t as asStringOrEmpty } from \"../../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/oauth/start/+server.ts\n/**\n* POST /admin/providers/oauth/start — Begin an OpenCode-mediated OAuth\n* sign-in for a provider. Returns the authorization URL and any extra\n* inputs the operator needs to confirm in the UI.\n*\n* Forwards directly to the running assistant's OpenCode at\n* OP_OPENCODE_URL, which holds the OAuth methods map needed to issue\n* the authorize request.\n*/\nvar POST = (event) => withAdminBody(event, async ({ requestId, body }) => {\n\ttry {\n\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\tif (!providerId || Number.isNaN(methodIndex)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider sign-in method first.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tconst inputs = extractInputs(body);\n\t\tconst oauth = await opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/authorize`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmethod: methodIndex,\n\t\t\t\t...inputs ? { inputs } : {}\n\t\t\t})\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"OAuth flow prepared. Open the link below to continue.\",\n\t\t\tselectedProviderId: providerId,\n\t\t\toauth: {\n\t\t\t\tproviderId,\n\t\t\t\tmethodIndex,\n\t\t\t\turl: oauth.url,\n\t\t\t\tmode: oauth.method,\n\t\t\t\tinstructions: oauth.instructions,\n\t\t\t\tinputs\n\t\t\t}\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n});\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC1E,CAAC,IAAI;AACL,EAAE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACzE,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE,yCAAyC;AACrD,GAAG,kBAAkB,EAAE,KAAK;AAC5B,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AACpC,EAAE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,EAAE;AACnG,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACxB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,GAAG,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG;AAC7B,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,uDAAuD;AACnE,GAAG,kBAAkB,EAAE,UAAU;AACjC,GAAG,KAAK,EAAE;AACV,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG;AAClB,IAAI,IAAI,EAAE,KAAK,CAAC,MAAM;AACtB,IAAI,YAAY,EAAE,KAAK,CAAC,YAAY;AACpC,IAAI;AACJ;AACA,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACrE,GAAG,kBAAkB,EAAE;AACvB,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { O as fetchProviderModels, ak as resolveStackDir } from './src-BsgfqG_-.js';
2
+ import { O as fetchProviderModels, ak as resolveStackDir } from './src-BWQ05CjI.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -56,4 +56,4 @@ var POST = async ({ params, request }) => {
56
56
  };
57
57
 
58
58
  export { POST };
59
- //# sourceMappingURL=_server.ts-C2ePDxiK.js.map
59
+ //# sourceMappingURL=_server.ts-R7dMpaPA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C2ePDxiK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/models/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { K as fetchProviderModels, jt as resolveStackDir } from \"../../../../../../chunks/src.js\";\n//#region src/routes/api/setup/models/[provider]/+server.ts\nvar POST = async ({ params, request }) => {\n\tconst provider = decodeURIComponent(params.provider);\n\tlet body = {};\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"invalid_json\",\n\t\t\tmessage: \"Request body must be valid JSON\"\n\t\t}, { status: 400 });\n\t}\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst baseUrl = typeof body.baseUrl === \"string\" ? body.baseUrl : \"\";\n\ttry {\n\t\tconst result = await fetchProviderModels(provider, apiKey, baseUrl, resolveStackDir());\n\t\tif (result.status !== \"ok\") return json({\n\t\t\tok: false,\n\t\t\t...result\n\t\t}, { status: 502 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\t...result\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"model_fetch_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,cAAc;AACxB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACrE,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACxF,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC;AAC1C,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,GAAG;AACN,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG;AACN,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,oBAAoB;AAC9B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-R7dMpaPA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/models/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { K as fetchProviderModels, jt as resolveStackDir } from \"../../../../../../chunks/src.js\";\n//#region src/routes/api/setup/models/[provider]/+server.ts\nvar POST = async ({ params, request }) => {\n\tconst provider = decodeURIComponent(params.provider);\n\tlet body = {};\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"invalid_json\",\n\t\t\tmessage: \"Request body must be valid JSON\"\n\t\t}, { status: 400 });\n\t}\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst baseUrl = typeof body.baseUrl === \"string\" ? body.baseUrl : \"\";\n\ttry {\n\t\tconst result = await fetchProviderModels(provider, apiKey, baseUrl, resolveStackDir());\n\t\tif (result.status !== \"ok\") return json({\n\t\t\tok: false,\n\t\t\t...result\n\t\t}, { status: 502 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\t...result\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"model_fetch_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,cAAc;AACxB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACrE,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACxF,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC;AAC1C,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,GAAG;AACN,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG;AACN,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,oBAAoB;AAC9B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { X as importHostOpenCode, E as detectHostOpenCode, i as authJsonPath, m as checkDocker, k as buildComposeOptions } from './src-BsgfqG_-.js';
3
- import { b as getState } from './endpoints-kaPFORka.js';
4
- import { o as opencodeFetch } from './http-8UL6GfDM.js';
5
- import { c as composeRestart } from './docker-DggffvOl.js';
2
+ import { X as importHostOpenCode, E as detectHostOpenCode, i as authJsonPath, m as checkDocker, k as buildComposeOptions } from './src-BWQ05CjI.js';
3
+ import { b as getState } from './endpoints-Dz6qhKXB.js';
4
+ import { o as opencodeFetch } from './http-CmL_uneS.js';
5
+ import { c as composeRestart } from './docker-BFje1OYT.js';
6
6
  import { existsSync, readFileSync } from 'node:fs';
7
7
  import './utils-BSRjJDrZ.js';
8
8
  import './chunk-CLZ62Ad-.js';
@@ -136,4 +136,4 @@ var POST = async () => {
136
136
  };
137
137
 
138
138
  export { POST };
139
- //# sourceMappingURL=_server.ts-DG8rrhwk.js.map
139
+ //# sourceMappingURL=_server.ts-UM7mXEsQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DG8rrhwk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/import-host/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Et as authJsonPath, T as checkDocker, n as importHostOpenCode, t as detectHostOpenCode, w as buildComposeOptions } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/import-host/+server.ts\n/**\n* POST /api/setup/import-host\n*\n* Setup-phase equivalent of POST /admin/providers/import-host.\n* No admin auth required — the admin token hasn't been written yet during setup.\n*\n* Copies host OpenCode config + auth into OP_HOME and live-pushes credentials\n* to the running OpenCode subprocess so providers appear connected immediately.\n*/\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch (err) {\n\t\treturn {\n\t\t\tpushed: [],\n\t\t\terrors: [{\n\t\t\t\tprovider: \"*\",\n\t\t\t\terror: `Could not read auth.json: ${err instanceof Error ? err.message : String(err)}`\n\t\t\t}]\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: [],\n\t\terrors: [{\n\t\t\tprovider: \"*\",\n\t\t\terror: \"auth.json is not a JSON object\"\n\t\t}]\n\t};\n\tconst pushed = [];\n\tconst errors = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed.push(providerId);\n\t} catch (err) {\n\t\terrors.push({\n\t\t\tprovider: providerId,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\tpushed,\n\t\terrors\n\t};\n}\n/** Restart provider-consuming services so they re-read imported startup config. */\nasync function restartProviderConsumers(state) {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(state);\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\nvar POST = async () => {\n\ttry {\n\t\tconst state = getState();\n\t\tconst result = importHostOpenCode(state, { overwriteConflicts: false });\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet pushResult = {\n\t\t\tpushed: [],\n\t\t\terrors: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) pushResult = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) pushResult = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers(state);\n\t\treturn json({\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts.length,\n\t\t\tlivePushed: pushResult.pushed.length,\n\t\t\tpushedProviders: pushResult.pushed,\n\t\t\terrors: pushResult.errors,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: err instanceof Error ? err.message : \"Import failed\"\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-UM7mXEsQ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/import-host/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Et as authJsonPath, T as checkDocker, n as importHostOpenCode, t as detectHostOpenCode, w as buildComposeOptions } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/import-host/+server.ts\n/**\n* POST /api/setup/import-host\n*\n* Setup-phase equivalent of POST /admin/providers/import-host.\n* No admin auth required — the admin token hasn't been written yet during setup.\n*\n* Copies host OpenCode config + auth into OP_HOME and live-pushes credentials\n* to the running OpenCode subprocess so providers appear connected immediately.\n*/\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch (err) {\n\t\treturn {\n\t\t\tpushed: [],\n\t\t\terrors: [{\n\t\t\t\tprovider: \"*\",\n\t\t\t\terror: `Could not read auth.json: ${err instanceof Error ? err.message : String(err)}`\n\t\t\t}]\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: [],\n\t\terrors: [{\n\t\t\tprovider: \"*\",\n\t\t\terror: \"auth.json is not a JSON object\"\n\t\t}]\n\t};\n\tconst pushed = [];\n\tconst errors = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed.push(providerId);\n\t} catch (err) {\n\t\terrors.push({\n\t\t\tprovider: providerId,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\tpushed,\n\t\terrors\n\t};\n}\n/** Restart provider-consuming services so they re-read imported startup config. */\nasync function restartProviderConsumers(state) {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(state);\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\nvar POST = async () => {\n\ttry {\n\t\tconst state = getState();\n\t\tconst result = importHostOpenCode(state, { overwriteConflicts: false });\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet pushResult = {\n\t\t\tpushed: [],\n\t\t\terrors: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) pushResult = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) pushResult = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers(state);\n\t\treturn json({\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts.length,\n\t\t\tlivePushed: pushResult.pushed.length,\n\t\t\tpushedProviders: pushResult.pushed,\n\t\t\terrors: pushResult.errors,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: err instanceof Error ? err.message : \"Import failed\"\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB,CAAC,QAAQ,EAAE;AAC5C,CAAC,IAAI,GAAG;AACR,CAAC,IAAI;AACL,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO;AACT,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,MAAM,EAAE,CAAC;AACZ,IAAI,QAAQ,EAAE,GAAG;AACjB,IAAI,KAAK,EAAE,CAAC,0BAA0B,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzF,IAAI;AACJ,GAAG;AACH,CAAC;AACD,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO;AACnE,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,MAAM,EAAE,CAAC;AACX,GAAG,QAAQ,EAAE,GAAG;AAChB,GAAG,KAAK,EAAE;AACV,GAAG;AACH,EAAE;AACF,CAAC,MAAM,MAAM,GAAG,EAAE;AAClB,CAAC,MAAM,MAAM,GAAG,EAAE;AAClB,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI;AAC5D,EAAE,MAAM,aAAa,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACjE,GAAG,MAAM,EAAE,KAAK;AAChB,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;AAC7B,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,GAAG,QAAQ,EAAE,UAAU;AACvB,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO;AACR,EAAE,MAAM;AACR,EAAE;AACF,EAAE;AACF;AACA;AACA,eAAe,wBAAwB,CAAC,KAAK,EAAE;AAC/C,CAAC,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC;AAC/B,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO;AACvC,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC/B,GAAG,OAAO,EAAE,CAAC;AACb,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC;AACxC,CAAC,MAAM,SAAS,GAAG,EAAE;AACrB,CAAC,MAAM,MAAM,GAAG,EAAE;AAClB,CAAC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,IAAI;AACrC,EAAE,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACjD,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,OAAO,MAAM,CAAC,IAAI,CAAC;AACnB,GAAG,OAAO;AACV,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;AACrC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,GAAG,OAAO;AACV,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO;AACR,EAAE,SAAS;AACX,EAAE;AACF,EAAE;AACF;AACG,IAAC,IAAI,GAAG,YAAY;AACvB,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AACzE,EAAE,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACzC,EAAE,IAAI,UAAU,GAAG;AACnB,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;AAC9C,EAAE,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,UAAU,GAAG,MAAM,kBAAkB,CAAC,gBAAgB,CAAC;AAC3F,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1F,EAAE,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC;AACvD,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC5B,GAAG,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;AACrC,GAAG,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;AACvC,GAAG,eAAe,EAAE,UAAU,CAAC,MAAM;AACrC,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,SAAS,EAAE,OAAO,CAAC,SAAS;AAC/B,GAAG,aAAa,EAAE,OAAO,CAAC;AAC1B,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG;AAC/C,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { g as getActiveEndpoint } from './endpoints-kaPFORka.js';
2
- import { d as getRequestId, r as requireAdmin } from './helpers-B8h4zchW.js';
3
- import './src-BsgfqG_-.js';
1
+ import { g as getActiveEndpoint } from './endpoints-Dz6qhKXB.js';
2
+ import { d as getRequestId, r as requireAdmin } from './helpers-C1fMEpiP.js';
3
+ import './src-BWQ05CjI.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -106,4 +106,4 @@ var PUT = handler;
106
106
  var DELETE = handler;
107
107
 
108
108
  export { DELETE, GET, POST, PUT };
109
- //# sourceMappingURL=_server.ts-4KkJ4SW0.js.map
109
+ //# sourceMappingURL=_server.ts-Ur_t9bMU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-4KkJ4SW0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Ur_t9bMU.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { D as deleteUserEnvKey, I as ensureAkmUserEnv, ae as readUserEnvFile, y as createLogger, A as AKM_USER_ENV_REF, av as writeUserEnvKey } from './src-BsgfqG_-.js';
2
- import { b as getState } from './endpoints-kaPFORka.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, h as jsonResponse, w as withAdminBody } from './helpers-B8h4zchW.js';
1
+ import { D as deleteUserEnvKey, I as ensureAkmUserEnv, ae as readUserEnvFile, y as createLogger, A as AKM_USER_ENV_REF, av as writeUserEnvKey } from './src-BWQ05CjI.js';
2
+ import { b as getState } from './endpoints-Dz6qhKXB.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, h as jsonResponse, w as withAdminBody } from './helpers-C1fMEpiP.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -94,4 +94,4 @@ var DELETE = async (event) => {
94
94
  };
95
95
 
96
96
  export { DELETE, GET, POST };
97
- //# sourceMappingURL=_server.ts-CZtZD9XA.js.map
97
+ //# sourceMappingURL=_server.ts-VHHuwb3V.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CZtZD9XA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/user-env/_server.ts.js"],"sourcesContent":["import { Nt as createLogger, d as AKM_USER_ENV_REF, g as writeUserEnvKey, h as readUserEnvFile, m as ensureAkmUserEnv, p as deleteUserEnvKey } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/user-env/+server.ts\nvar logger = createLogger(\"admin.secrets.user-env\");\nvar KEY_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;\n/**\n* GET — list keys in the akm env:user store. Values are NEVER returned.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst envPath = ensureAkmUserEnv(getState());\n\treturn jsonResponse(200, {\n\t\tprovider: \"akm\",\n\t\tenvRef: AKM_USER_ENV_REF,\n\t\tkeys: Object.keys(readUserEnvFile(envPath)).sort()\n\t}, requestId);\n};\n/**\n* POST — write a key into the user env file. The value is shell-quoted and\n* written directly to `knowledge/env/user.env` (mode 0600); it never appears on\n* a process argv. The assistant sources the env file at startup, so a key\n* written here is visible to OpenCode after the next assistant restart.\n*/\nvar POST = (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst state = getState();\n\tconst key = typeof body.key === \"string\" ? body.key.trim() : \"\";\n\tconst value = typeof body.value === \"string\" ? body.value : null;\n\tif (!key || value === null) return errorResponse(400, \"bad_request\", \"key and value are required\", {}, requestId);\n\tif (!KEY_RE.test(key)) return errorResponse(400, \"invalid_key\", \"key must match [A-Za-z_][A-Za-z0-9_]*\", {}, requestId);\n\tif (value.length === 0) return errorResponse(400, \"bad_request\", \"value must be non-empty; use DELETE to remove a key\", {}, requestId);\n\tif (/[\\x00-\\x08\\x0a-\\x1f\\x7f]/.test(value)) return errorResponse(400, \"invalid_value\", \"value must not contain newlines or control characters\", {}, requestId);\n\ttry {\n\t\twriteUserEnvKey(state, key, value);\n\t} catch (err) {\n\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\tlogger.warn(\"user env write failed\", {\n\t\t\tkey,\n\t\t\treason,\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"write_failed\", `Failed to write user env key: ${reason}`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tkey\n\t}, requestId);\n});\n/** DELETE — remove a key from the user env file. */\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\tconst key = new URL(event.request.url).searchParams.get(\"key\")?.trim() ?? \"\";\n\tif (!key || !KEY_RE.test(key)) return errorResponse(400, \"bad_request\", \"valid key query parameter is required\", {}, requestId);\n\ttry {\n\t\tdeleteUserEnvKey(state, key);\n\t} catch (err) {\n\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\tlogger.warn(\"user env delete failed\", {\n\t\t\tkey,\n\t\t\treason,\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"delete_failed\", `Failed to remove user env key: ${reason}`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tkey\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-VHHuwb3V.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/user-env/_server.ts.js"],"sourcesContent":["import { Nt as createLogger, d as AKM_USER_ENV_REF, g as writeUserEnvKey, h as readUserEnvFile, m as ensureAkmUserEnv, p as deleteUserEnvKey } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/user-env/+server.ts\nvar logger = createLogger(\"admin.secrets.user-env\");\nvar KEY_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;\n/**\n* GET — list keys in the akm env:user store. Values are NEVER returned.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst envPath = ensureAkmUserEnv(getState());\n\treturn jsonResponse(200, {\n\t\tprovider: \"akm\",\n\t\tenvRef: AKM_USER_ENV_REF,\n\t\tkeys: Object.keys(readUserEnvFile(envPath)).sort()\n\t}, requestId);\n};\n/**\n* POST — write a key into the user env file. The value is shell-quoted and\n* written directly to `knowledge/env/user.env` (mode 0600); it never appears on\n* a process argv. The assistant sources the env file at startup, so a key\n* written here is visible to OpenCode after the next assistant restart.\n*/\nvar POST = (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst state = getState();\n\tconst key = typeof body.key === \"string\" ? body.key.trim() : \"\";\n\tconst value = typeof body.value === \"string\" ? body.value : null;\n\tif (!key || value === null) return errorResponse(400, \"bad_request\", \"key and value are required\", {}, requestId);\n\tif (!KEY_RE.test(key)) return errorResponse(400, \"invalid_key\", \"key must match [A-Za-z_][A-Za-z0-9_]*\", {}, requestId);\n\tif (value.length === 0) return errorResponse(400, \"bad_request\", \"value must be non-empty; use DELETE to remove a key\", {}, requestId);\n\tif (/[\\x00-\\x08\\x0a-\\x1f\\x7f]/.test(value)) return errorResponse(400, \"invalid_value\", \"value must not contain newlines or control characters\", {}, requestId);\n\ttry {\n\t\twriteUserEnvKey(state, key, value);\n\t} catch (err) {\n\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\tlogger.warn(\"user env write failed\", {\n\t\t\tkey,\n\t\t\treason,\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"write_failed\", `Failed to write user env key: ${reason}`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tkey\n\t}, requestId);\n});\n/** DELETE — remove a key from the user env file. */\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\tconst key = new URL(event.request.url).searchParams.get(\"key\")?.trim() ?? \"\";\n\tif (!key || !KEY_RE.test(key)) return errorResponse(400, \"bad_request\", \"valid key query parameter is required\", {}, requestId);\n\ttry {\n\t\tdeleteUserEnvKey(state, key);\n\t} catch (err) {\n\t\tconst reason = err instanceof Error ? err.message : String(err);\n\t\tlogger.warn(\"user env delete failed\", {\n\t\t\tkey,\n\t\t\treason,\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"delete_failed\", `Failed to remove user env key: ${reason}`, {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tkey\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { d as getRequestId, h as jsonResponse } from './helpers-B8h4zchW.js';
1
+ import { d as getRequestId, h as jsonResponse } from './helpers-C1fMEpiP.js';
2
2
  import { execFile } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
- import './src-BsgfqG_-.js';
4
+ import './src-BWQ05CjI.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  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-kaPFORka.js';
23
+ import './endpoints-Dz6qhKXB.js';
24
24
 
25
25
  //#region src/routes/guardian/health/+server.ts
26
26
  var execFileAsync = promisify(execFile);
@@ -67,4 +67,4 @@ var GET = async (event) => {
67
67
  };
68
68
 
69
69
  export { GET };
70
- //# sourceMappingURL=_server.ts-BaVWFrdS.js.map
70
+ //# sourceMappingURL=_server.ts-XmCgdAim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BaVWFrdS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/guardian/health/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n//#region src/routes/guardian/health/+server.ts\nvar execFileAsync = promisify(execFile);\n/**\n* Guardian health — queries the running container directly.\n*\n* Guardian has no host port mapping in the 0.11.0+ layout (it's reachable\n* only on the internal channel_lan/assistant_net networks). The previous\n* implementation read the UI's in-memory ControlPlaneState, which is stale\n* whenever the stack was started by something other than the UI itself\n* (CLI, docker compose directly, AppImage on a pre-existing stack).\n*\n* `docker container inspect ... --format '{{.State.Health.Status}}'` is the\n* authoritative source: it reads the compose-defined healthcheck the\n* guardian container already runs internally. Same approach as the\n* admin-tools-plugin host-side health-check tool.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\ttry {\n\t\tconst { stdout } = await execFileAsync(\"docker\", [\n\t\t\t\"container\",\n\t\t\t\"inspect\",\n\t\t\t\"openpalm-guardian-1\",\n\t\t\t\"--format\",\n\t\t\t\"{{.State.Health.Status}}\"\n\t\t], { timeout: 5e3 });\n\t\tconst status = stdout.trim();\n\t\tif (status === \"healthy\") return jsonResponse(200, {\n\t\t\tstatus: \"ok\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: status || \"unknown\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: \"unreachable\",\n\t\t\tservice: \"guardian\",\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t}, requestId);\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACnD,GAAG,WAAW;AACd,GAAG,SAAS;AACZ,GAAG,qBAAqB;AACxB,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtB,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACrD,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS;AAC9B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,OAAO,EAAE,UAAU;AACtB,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-XmCgdAim.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/guardian/health/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n//#region src/routes/guardian/health/+server.ts\nvar execFileAsync = promisify(execFile);\n/**\n* Guardian health — queries the running container directly.\n*\n* Guardian has no host port mapping in the 0.11.0+ layout (it's reachable\n* only on the internal channel_lan/assistant_net networks). The previous\n* implementation read the UI's in-memory ControlPlaneState, which is stale\n* whenever the stack was started by something other than the UI itself\n* (CLI, docker compose directly, AppImage on a pre-existing stack).\n*\n* `docker container inspect ... --format '{{.State.Health.Status}}'` is the\n* authoritative source: it reads the compose-defined healthcheck the\n* guardian container already runs internally. Same approach as the\n* admin-tools-plugin host-side health-check tool.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\ttry {\n\t\tconst { stdout } = await execFileAsync(\"docker\", [\n\t\t\t\"container\",\n\t\t\t\"inspect\",\n\t\t\t\"openpalm-guardian-1\",\n\t\t\t\"--format\",\n\t\t\t\"{{.State.Health.Status}}\"\n\t\t], { timeout: 5e3 });\n\t\tconst status = stdout.trim();\n\t\tif (status === \"healthy\") return jsonResponse(200, {\n\t\t\tstatus: \"ok\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: status || \"unknown\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: \"unreachable\",\n\t\t\tservice: \"guardian\",\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t}, requestId);\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACnD,GAAG,WAAW;AACd,GAAG,SAAS;AACZ,GAAG,qBAAqB;AACxB,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtB,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACrD,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS;AAC9B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,OAAO,EAAE,UAAU;AACtB,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { y as createLogger, Y as isAllowedService, m as checkDocker, t as composeRestart, k as buildComposeOptions } from './src-BsgfqG_-.js';
2
- import { b as getState } from './endpoints-kaPFORka.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, h as jsonResponse } from './helpers-B8h4zchW.js';
1
+ import { y as createLogger, Y as isAllowedService, m as checkDocker, t as composeRestart, k as buildComposeOptions } from './src-BWQ05CjI.js';
2
+ import { b as getState } from './endpoints-Dz6qhKXB.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, h as jsonResponse } from './helpers-C1fMEpiP.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-BOZ6j_Dh.js.map
53
+ //# sourceMappingURL=_server.ts-ZcRUavo2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BOZ6j_Dh.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/restart/_server.ts.js"],"sourcesContent":["import { M as composeRestart, Nt as createLogger, T as checkDocker, q as isAllowedService, w as buildComposeOptions } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/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-ZcRUavo2.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/restart/_server.ts.js"],"sourcesContent":["import { M as composeRestart, Nt as createLogger, T as checkDocker, q as isAllowedService, w as buildComposeOptions } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/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,5 +1,5 @@
1
- import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-B8h4zchW.js';
2
- import './src-BsgfqG_-.js';
1
+ import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-C1fMEpiP.js';
2
+ import './src-BWQ05CjI.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-kaPFORka.js';
22
+ import './endpoints-Dz6qhKXB.js';
23
23
 
24
24
  //#region src/routes/admin/auth/session/+server.ts
25
25
  /**
@@ -57,4 +57,4 @@ var POST = async (event) => {
57
57
  };
58
58
 
59
59
  export { POST };
60
- //# sourceMappingURL=_server.ts-DVcfUcfK.js.map
60
+ //# sourceMappingURL=_server.ts-djChqJ3l.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DVcfUcfK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, i as errorResponse, m as createSession, o as getRequestId, s as getUiLoginPassword } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": `op_session=${sessionToken}; HttpOnly; SameSite=Strict; Path=/; Max-Age=86400`,\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,kDAAkD,CAAC;AAC/F,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-djChqJ3l.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, i as errorResponse, m as createSession, o as getRequestId, s as getUiLoginPassword } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": `op_session=${sessionToken}; HttpOnly; SameSite=Strict; Path=/; Max-Age=86400`,\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,kDAAkD,CAAC;AAC/F,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { g as getActiveEndpoint } from './endpoints-kaPFORka.js';
2
- import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-B8h4zchW.js';
3
- import './src-BsgfqG_-.js';
1
+ import { g as getActiveEndpoint } from './endpoints-Dz6qhKXB.js';
2
+ import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-C1fMEpiP.js';
3
+ import './src-BWQ05CjI.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -52,4 +52,4 @@ var GET = async (event) => {
52
52
  };
53
53
 
54
54
  export { GET };
55
- //# sourceMappingURL=_server.ts-BQIKbZE5.js.map
55
+ //# sourceMappingURL=_server.ts-lmcyfcf5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BQIKbZE5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/health/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACrC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-lmcyfcf5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/health/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACrC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { g as getOpenCodeClient } from './helpers-B8h4zchW.js';
2
+ import { g as getOpenCodeClient } from './helpers-C1fMEpiP.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-BsgfqG_-.js';
4
+ import './src-BWQ05CjI.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-kaPFORka.js';
24
+ import './endpoints-Dz6qhKXB.js';
25
25
 
26
26
  //#region src/routes/api/setup/opencode/auth/[provider]/+server.ts
27
27
  var PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;
@@ -46,4 +46,4 @@ var PUT = async ({ params, request }) => {
46
46
  };
47
47
 
48
48
  export { PUT };
49
- //# sourceMappingURL=_server.ts-D0VWz3Eu.js.map
49
+ //# sourceMappingURL=_server.ts-ncFk6KuU.js.map