@openpalm/ui 0.12.7 → 0.12.11

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 (351) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/4.yeuiN53z.css +1 -0
  3. package/build/client/_app/immutable/assets/4.yeuiN53z.css.br +0 -0
  4. package/build/client/_app/immutable/assets/4.yeuiN53z.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/7.CIARtob0.css +1 -0
  6. package/build/client/_app/immutable/assets/7.CIARtob0.css.br +0 -0
  7. package/build/client/_app/immutable/assets/7.CIARtob0.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css +1 -0
  9. package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.br +0 -0
  10. package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css +1 -0
  12. package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.br +0 -0
  13. package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/B-sorx18.js +5 -0
  15. package/build/client/_app/immutable/chunks/B-sorx18.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/B-sorx18.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/CLrfghFK.js +1 -0
  18. package/build/client/_app/immutable/chunks/CLrfghFK.js.br +2 -0
  19. package/build/client/_app/immutable/chunks/CLrfghFK.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/D2kpcjIW.js +1 -0
  21. package/build/client/_app/immutable/chunks/D2kpcjIW.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/D2kpcjIW.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/Dky5K2LB.js +3 -0
  24. package/build/client/_app/immutable/chunks/Dky5K2LB.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/Dky5K2LB.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{BzyHWA5G.js → vShalCpq.js} +2 -2
  27. package/build/client/_app/immutable/chunks/vShalCpq.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/vShalCpq.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/{app.B_UESbBc.js → app.ByrueOmB.js} +2 -2
  30. package/build/client/_app/immutable/entry/app.ByrueOmB.js.br +0 -0
  31. package/build/client/_app/immutable/entry/app.ByrueOmB.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/start.CX3vfWZX.js +1 -0
  33. package/build/client/_app/immutable/entry/start.CX3vfWZX.js.br +0 -0
  34. package/build/client/_app/immutable/entry/start.CX3vfWZX.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{1.BPI9WMCM.js → 1.DjtG_D8w.js} +1 -1
  36. package/build/client/_app/immutable/nodes/1.DjtG_D8w.js.br +2 -0
  37. package/build/client/_app/immutable/nodes/1.DjtG_D8w.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/4.Q3NQORNR.js +133 -0
  39. package/build/client/_app/immutable/nodes/4.Q3NQORNR.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/4.Q3NQORNR.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{5.a01_QK-Y.js → 5.Gwr8UAQM.js} +1 -1
  42. package/build/client/_app/immutable/nodes/5.Gwr8UAQM.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/5.Gwr8UAQM.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{6.DiCmpX_E.js → 6.D3jTTLhO.js} +1 -1
  45. package/build/client/_app/immutable/nodes/6.D3jTTLhO.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/6.D3jTTLhO.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/7.BAsevRLv.js +2 -0
  48. package/build/client/_app/immutable/nodes/7.BAsevRLv.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/7.BAsevRLv.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{8.Ok0ArxPA.js → 8.Df9ktODJ.js} +1 -1
  51. package/build/client/_app/immutable/nodes/8.Df9ktODJ.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/8.Df9ktODJ.js.gz +0 -0
  53. package/build/client/_app/version.json +1 -1
  54. package/build/client/_app/version.json.br +2 -1
  55. package/build/client/_app/version.json.gz +0 -0
  56. package/build/server/chunks/1-C6FeFdMq.js +9 -0
  57. package/build/server/chunks/{1-BKKGpDL-.js.map → 1-C6FeFdMq.js.map} +1 -1
  58. package/build/server/chunks/{10-D03X_7-l.js → 10-dDPv2EXM.js} +5 -5
  59. package/build/server/chunks/{10-D03X_7-l.js.map → 10-dDPv2EXM.js.map} +1 -1
  60. package/build/server/chunks/4-DU6tKPKM.js +9 -0
  61. package/build/server/chunks/{4-DK624eV1.js.map → 4-DU6tKPKM.js.map} +1 -1
  62. package/build/server/chunks/5-DsanV5i-.js +9 -0
  63. package/build/server/chunks/{5-Dguhb8w9.js.map → 5-DsanV5i-.js.map} +1 -1
  64. package/build/server/chunks/6-BsuTHqJ7.js +9 -0
  65. package/build/server/chunks/{6-B2r3PAaV.js.map → 6-BsuTHqJ7.js.map} +1 -1
  66. package/build/server/chunks/7-D7OLEPBt.js +9 -0
  67. package/build/server/chunks/{7-BFJqpOL0.js.map → 7-D7OLEPBt.js.map} +1 -1
  68. package/build/server/chunks/{8-C5xuqVfE.js → 8-D4un8Wgv.js} +3 -3
  69. package/build/server/chunks/{8-C5xuqVfE.js.map → 8-D4un8Wgv.js.map} +1 -1
  70. package/build/server/chunks/{ChatMessage-BW8LVLk6.js → ChatMessage-D8BaN8A9.js} +3 -3
  71. package/build/server/chunks/{ChatMessage-BW8LVLk6.js.map → ChatMessage-D8BaN8A9.js.map} +1 -1
  72. package/build/server/chunks/{Navbar-DfPUzeK0.js → Navbar-Dhb8B-b0.js} +62 -88
  73. package/build/server/chunks/Navbar-Dhb8B-b0.js.map +1 -0
  74. package/build/server/chunks/{_page.svelte-BZL7tih7.js → _page.svelte-Cte2R_w-.js} +6 -6
  75. package/build/server/chunks/{_page.svelte-BZL7tih7.js.map → _page.svelte-Cte2R_w-.js.map} +1 -1
  76. package/build/server/chunks/{_page.svelte-iT7HjGI6.js → _page.svelte-DDPHWd78.js} +5 -5
  77. package/build/server/chunks/{_page.svelte-iT7HjGI6.js.map → _page.svelte-DDPHWd78.js.map} +1 -1
  78. package/build/server/chunks/{_page.svelte-ClbKAMyo.js → _page.svelte-DXgMisrO.js} +5 -5
  79. package/build/server/chunks/{_page.svelte-ClbKAMyo.js.map → _page.svelte-DXgMisrO.js.map} +1 -1
  80. package/build/server/chunks/{_page.svelte-DNEC3f8D.js → _page.svelte-DlYG76L7.js} +76 -52
  81. package/build/server/chunks/_page.svelte-DlYG76L7.js.map +1 -0
  82. package/build/server/chunks/{_page.svelte-DFzgmYgw.js → _page.svelte-RacdBHko.js} +3 -3
  83. package/build/server/chunks/{_page.svelte-DFzgmYgw.js.map → _page.svelte-RacdBHko.js.map} +1 -1
  84. package/build/server/chunks/{_server.ts-DVnLgY88.js → _server.ts--DpjQMoc.js} +5 -5
  85. package/build/server/chunks/{_server.ts-DVnLgY88.js.map → _server.ts--DpjQMoc.js.map} +1 -1
  86. package/build/server/chunks/{_server.ts-_zcta9sI.js → _server.ts-0NV6JC1q.js} +5 -5
  87. package/build/server/chunks/{_server.ts-_zcta9sI.js.map → _server.ts-0NV6JC1q.js.map} +1 -1
  88. package/build/server/chunks/{_server.ts-CcAgwk38.js → _server.ts-3_HeE_vF.js} +8 -8
  89. package/build/server/chunks/_server.ts-3_HeE_vF.js.map +1 -0
  90. package/build/server/chunks/{_server.ts-DKaB5vC3.js → _server.ts-490ZXI8p.js} +2 -2
  91. package/build/server/chunks/{_server.ts-DKaB5vC3.js.map → _server.ts-490ZXI8p.js.map} +1 -1
  92. package/build/server/chunks/{_server.ts-DT13Lylg.js → _server.ts-5Ws42wvy.js} +7 -7
  93. package/build/server/chunks/{_server.ts-DT13Lylg.js.map → _server.ts-5Ws42wvy.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-BVZsP2Zn.js → _server.ts-B-qcLr8p.js} +5 -5
  95. package/build/server/chunks/{_server.ts-BVZsP2Zn.js.map → _server.ts-B-qcLr8p.js.map} +1 -1
  96. package/build/server/chunks/{_server.ts-Z0qgxs3B.js → _server.ts-B0fcbzv5.js} +5 -5
  97. package/build/server/chunks/{_server.ts-Z0qgxs3B.js.map → _server.ts-B0fcbzv5.js.map} +1 -1
  98. package/build/server/chunks/{_server.ts-C5U2sP0v.js → _server.ts-B1Mv6wb7.js} +5 -5
  99. package/build/server/chunks/{_server.ts-C5U2sP0v.js.map → _server.ts-B1Mv6wb7.js.map} +1 -1
  100. package/build/server/chunks/{_server.ts-DsAtWxIB.js → _server.ts-B1m6hKUq.js} +5 -5
  101. package/build/server/chunks/{_server.ts-DsAtWxIB.js.map → _server.ts-B1m6hKUq.js.map} +1 -1
  102. package/build/server/chunks/{_server.ts-DtksQCAE.js → _server.ts-BBSxI0YB.js} +5 -5
  103. package/build/server/chunks/{_server.ts-DtksQCAE.js.map → _server.ts-BBSxI0YB.js.map} +1 -1
  104. package/build/server/chunks/{_server.ts-Bl-5dDM7.js → _server.ts-BF8CUHqs.js} +5 -5
  105. package/build/server/chunks/{_server.ts-Bl-5dDM7.js.map → _server.ts-BF8CUHqs.js.map} +1 -1
  106. package/build/server/chunks/{_server.ts-DTAA1c4A.js → _server.ts-BJoXNNdu.js} +5 -5
  107. package/build/server/chunks/{_server.ts-DTAA1c4A.js.map → _server.ts-BJoXNNdu.js.map} +1 -1
  108. package/build/server/chunks/{_server.ts-ClNRi7Fk.js → _server.ts-BKvWzuAS.js} +5 -5
  109. package/build/server/chunks/{_server.ts-ClNRi7Fk.js.map → _server.ts-BKvWzuAS.js.map} +1 -1
  110. package/build/server/chunks/{_server.ts-BoqzrIwT.js → _server.ts-BP_OtQ4W.js} +5 -5
  111. package/build/server/chunks/{_server.ts-BoqzrIwT.js.map → _server.ts-BP_OtQ4W.js.map} +1 -1
  112. package/build/server/chunks/{_server.ts-DnMCLWoD.js → _server.ts-BXuVu79G.js} +5 -5
  113. package/build/server/chunks/{_server.ts-DnMCLWoD.js.map → _server.ts-BXuVu79G.js.map} +1 -1
  114. package/build/server/chunks/{_server.ts-caqg6Qpw.js → _server.ts-Bc7A8rzZ.js} +6 -6
  115. package/build/server/chunks/{_server.ts-caqg6Qpw.js.map → _server.ts-Bc7A8rzZ.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-DO3iItjK.js → _server.ts-BgOid65q.js} +5 -5
  117. package/build/server/chunks/{_server.ts-DO3iItjK.js.map → _server.ts-BgOid65q.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-PHq2fuFm.js → _server.ts-BgXeptFK.js} +5 -5
  119. package/build/server/chunks/{_server.ts-PHq2fuFm.js.map → _server.ts-BgXeptFK.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-Ct6UMvxY.js → _server.ts-BhmcyUI0.js} +5 -5
  121. package/build/server/chunks/{_server.ts-Ct6UMvxY.js.map → _server.ts-BhmcyUI0.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-bHy1WRna.js → _server.ts-BiivXvhc.js} +2 -2
  123. package/build/server/chunks/{_server.ts-bHy1WRna.js.map → _server.ts-BiivXvhc.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-Dy8ob-Yi.js → _server.ts-BmmrJu7p.js} +5 -5
  125. package/build/server/chunks/{_server.ts-Dy8ob-Yi.js.map → _server.ts-BmmrJu7p.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-DLik5y6z.js → _server.ts-BqJARU1X.js} +5 -5
  127. package/build/server/chunks/{_server.ts-DLik5y6z.js.map → _server.ts-BqJARU1X.js.map} +1 -1
  128. package/build/server/chunks/{_server.ts-DxhcX_Kn.js → _server.ts-Br9fO2us.js} +6 -6
  129. package/build/server/chunks/{_server.ts-DxhcX_Kn.js.map → _server.ts-Br9fO2us.js.map} +1 -1
  130. package/build/server/chunks/{_server.ts-B2a_UVfF.js → _server.ts-Bw7iK0pF.js} +5 -5
  131. package/build/server/chunks/{_server.ts-B2a_UVfF.js.map → _server.ts-Bw7iK0pF.js.map} +1 -1
  132. package/build/server/chunks/{_server.ts-DEBzl6wJ.js → _server.ts-BwdITGWm.js} +7 -7
  133. package/build/server/chunks/{_server.ts-DEBzl6wJ.js.map → _server.ts-BwdITGWm.js.map} +1 -1
  134. package/build/server/chunks/{_server.ts-BovpxaxI.js → _server.ts-Bxb-p7E3.js} +5 -5
  135. package/build/server/chunks/{_server.ts-BovpxaxI.js.map → _server.ts-Bxb-p7E3.js.map} +1 -1
  136. package/build/server/chunks/{_server.ts-CK_sC0WR.js → _server.ts-C-KIZoZe.js} +7 -7
  137. package/build/server/chunks/{_server.ts-CK_sC0WR.js.map → _server.ts-C-KIZoZe.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-BsoQb22J.js → _server.ts-C1aLT5Oq.js} +6 -6
  139. package/build/server/chunks/{_server.ts-BsoQb22J.js.map → _server.ts-C1aLT5Oq.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-BRbd1WB6.js → _server.ts-C1xh49dQ.js} +5 -5
  141. package/build/server/chunks/{_server.ts-BRbd1WB6.js.map → _server.ts-C1xh49dQ.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-LpU_EEPq.js → _server.ts-C4093Qyv.js} +6 -6
  143. package/build/server/chunks/{_server.ts-LpU_EEPq.js.map → _server.ts-C4093Qyv.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-BL1a7w8x.js → _server.ts-C5bLLzu2.js} +5 -5
  145. package/build/server/chunks/{_server.ts-BL1a7w8x.js.map → _server.ts-C5bLLzu2.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-Dqtay2vV.js → _server.ts-C7E_JtbD.js} +5 -5
  147. package/build/server/chunks/{_server.ts-Dqtay2vV.js.map → _server.ts-C7E_JtbD.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts--x_Ox5Lx.js → _server.ts-CBMkCJyi.js} +5 -5
  149. package/build/server/chunks/{_server.ts--x_Ox5Lx.js.map → _server.ts-CBMkCJyi.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-CBDQh3oB.js → _server.ts-CFHMk0p8.js} +5 -5
  151. package/build/server/chunks/{_server.ts-CBDQh3oB.js.map → _server.ts-CFHMk0p8.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-CtRb0YG7.js → _server.ts-CGitsTJS.js} +5 -5
  153. package/build/server/chunks/{_server.ts-CtRb0YG7.js.map → _server.ts-CGitsTJS.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-BSkichZm.js → _server.ts-CGjfDzXX.js} +8 -8
  155. package/build/server/chunks/{_server.ts-BSkichZm.js.map → _server.ts-CGjfDzXX.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-BMl200pm.js → _server.ts-CJ7kiprZ.js} +6 -6
  157. package/build/server/chunks/{_server.ts-BMl200pm.js.map → _server.ts-CJ7kiprZ.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-DKBQpj1z.js → _server.ts-CKJbhB_h.js} +6 -6
  159. package/build/server/chunks/{_server.ts-DKBQpj1z.js.map → _server.ts-CKJbhB_h.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-DVf1Ga8y.js → _server.ts-CTt3Xlpt.js} +5 -5
  161. package/build/server/chunks/{_server.ts-DVf1Ga8y.js.map → _server.ts-CTt3Xlpt.js.map} +1 -1
  162. package/build/server/chunks/{_server.ts--3dXbe7F.js → _server.ts-CVjHePJ7.js} +6 -6
  163. package/build/server/chunks/{_server.ts--3dXbe7F.js.map → _server.ts-CVjHePJ7.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-BHQdT49p.js → _server.ts-CYsRQTaO.js} +7 -6
  165. package/build/server/chunks/{_server.ts-BHQdT49p.js.map → _server.ts-CYsRQTaO.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-BYg436Zy.js → _server.ts-Cd9JwMMp.js} +5 -5
  167. package/build/server/chunks/{_server.ts-BYg436Zy.js.map → _server.ts-Cd9JwMMp.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-C7Lid3rY.js → _server.ts-Cdox4kyp.js} +5 -5
  169. package/build/server/chunks/{_server.ts-C7Lid3rY.js.map → _server.ts-Cdox4kyp.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-BIqRqV5K.js → _server.ts-ChKSe-AA.js} +5 -5
  171. package/build/server/chunks/{_server.ts-BIqRqV5K.js.map → _server.ts-ChKSe-AA.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-DTvJT_A4.js → _server.ts-Ci1Rfx8E.js} +6 -6
  173. package/build/server/chunks/{_server.ts-DTvJT_A4.js.map → _server.ts-Ci1Rfx8E.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-ClZQ8p0s.js → _server.ts-CimqxW93.js} +7 -7
  175. package/build/server/chunks/{_server.ts-ClZQ8p0s.js.map → _server.ts-CimqxW93.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-BmUQoU9j.js → _server.ts-CtQpR-mK.js} +5 -5
  177. package/build/server/chunks/{_server.ts-BmUQoU9j.js.map → _server.ts-CtQpR-mK.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-CS_QhbpE.js → _server.ts-CuKWH2Y0.js} +7 -7
  179. package/build/server/chunks/{_server.ts-CS_QhbpE.js.map → _server.ts-CuKWH2Y0.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-BzCJGVxd.js → _server.ts-CvrHMIWH.js} +2 -2
  181. package/build/server/chunks/{_server.ts-BzCJGVxd.js.map → _server.ts-CvrHMIWH.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-LYCSOMBR.js → _server.ts-Cx4HqW-Z.js} +2 -2
  183. package/build/server/chunks/{_server.ts-LYCSOMBR.js.map → _server.ts-Cx4HqW-Z.js.map} +1 -1
  184. package/build/server/chunks/{_server.ts-CUg7JTi8.js → _server.ts-D5KbK1EO.js} +5 -5
  185. package/build/server/chunks/{_server.ts-CUg7JTi8.js.map → _server.ts-D5KbK1EO.js.map} +1 -1
  186. package/build/server/chunks/{_server.ts-BYKn_W3C.js → _server.ts-D6VySx_-.js} +5 -5
  187. package/build/server/chunks/{_server.ts-BYKn_W3C.js.map → _server.ts-D6VySx_-.js.map} +1 -1
  188. package/build/server/chunks/{_server.ts-BLUGSTbb.js → _server.ts-D7-rYtEc.js} +5 -5
  189. package/build/server/chunks/{_server.ts-BLUGSTbb.js.map → _server.ts-D7-rYtEc.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-Cv9SGZ8H.js → _server.ts-DM6lThdl.js} +5 -5
  191. package/build/server/chunks/{_server.ts-Cv9SGZ8H.js.map → _server.ts-DM6lThdl.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-DxXISWsG.js → _server.ts-DNA0OVFL.js} +5 -10
  193. package/build/server/chunks/_server.ts-DNA0OVFL.js.map +1 -0
  194. package/build/server/chunks/{_server.ts-C1iKmorm.js → _server.ts-DQUyafq3.js} +5 -5
  195. package/build/server/chunks/{_server.ts-C1iKmorm.js.map → _server.ts-DQUyafq3.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-7sbxcOHi.js → _server.ts-DQcYv35V.js} +5 -5
  197. package/build/server/chunks/{_server.ts-7sbxcOHi.js.map → _server.ts-DQcYv35V.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-Do3Mzbgh.js → _server.ts-DRoP-Wv6.js} +5 -5
  199. package/build/server/chunks/{_server.ts-Do3Mzbgh.js.map → _server.ts-DRoP-Wv6.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-VqtImWWs.js → _server.ts-DVx3AhsD.js} +5 -5
  201. package/build/server/chunks/{_server.ts-VqtImWWs.js.map → _server.ts-DVx3AhsD.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-CQHUyJ88.js → _server.ts-DYDU5INq.js} +6 -6
  203. package/build/server/chunks/{_server.ts-CQHUyJ88.js.map → _server.ts-DYDU5INq.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-BXLfuAUx.js → _server.ts-DZW-Wp42.js} +5 -5
  205. package/build/server/chunks/{_server.ts-BXLfuAUx.js.map → _server.ts-DZW-Wp42.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-Da_a2QPS.js → _server.ts-D_-EfIES.js} +5 -5
  207. package/build/server/chunks/{_server.ts-Da_a2QPS.js.map → _server.ts-D_-EfIES.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-BZuh7f0g.js → _server.ts-DhQzFUF4.js} +6 -6
  209. package/build/server/chunks/{_server.ts-BZuh7f0g.js.map → _server.ts-DhQzFUF4.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-BBPPO8LA.js → _server.ts-DjN6yXTz.js} +5 -5
  211. package/build/server/chunks/{_server.ts-BBPPO8LA.js.map → _server.ts-DjN6yXTz.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-CDJb8u6T.js → _server.ts-DoIwXWVY.js} +4 -4
  213. package/build/server/chunks/{_server.ts-CDJb8u6T.js.map → _server.ts-DoIwXWVY.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-BmkKZuFw.js → _server.ts-DtWJo82n.js} +5 -5
  215. package/build/server/chunks/{_server.ts-BmkKZuFw.js.map → _server.ts-DtWJo82n.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-Bb6tIhp8.js → _server.ts-DuGAEea3.js} +2 -2
  217. package/build/server/chunks/{_server.ts-Bb6tIhp8.js.map → _server.ts-DuGAEea3.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-BUewbX_m.js → _server.ts-Dw6QQ2RH.js} +6 -6
  219. package/build/server/chunks/{_server.ts-BUewbX_m.js.map → _server.ts-Dw6QQ2RH.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DBNf4ax8.js → _server.ts-DzR4Osb4.js} +6 -6
  221. package/build/server/chunks/{_server.ts-DBNf4ax8.js.map → _server.ts-DzR4Osb4.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-DYn_V6uH.js → _server.ts-FsMdP1jm.js} +4 -4
  223. package/build/server/chunks/{_server.ts-DYn_V6uH.js.map → _server.ts-FsMdP1jm.js.map} +1 -1
  224. package/build/server/chunks/{_server.ts-C-gAyI12.js → _server.ts-KsnGg8eu.js} +5 -5
  225. package/build/server/chunks/{_server.ts-C-gAyI12.js.map → _server.ts-KsnGg8eu.js.map} +1 -1
  226. package/build/server/chunks/{_server.ts-Zgs9trH1.js → _server.ts-LI1xk-ix.js} +5 -5
  227. package/build/server/chunks/{_server.ts-Zgs9trH1.js.map → _server.ts-LI1xk-ix.js.map} +1 -1
  228. package/build/server/chunks/{_server.ts-BLeQoL81.js → _server.ts-MRFc0kGZ.js} +5 -5
  229. package/build/server/chunks/{_server.ts-BLeQoL81.js.map → _server.ts-MRFc0kGZ.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-B4tsze4e.js → _server.ts-PMhO6XFZ.js} +5 -5
  231. package/build/server/chunks/{_server.ts-B4tsze4e.js.map → _server.ts-PMhO6XFZ.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-k-TQPRld.js → _server.ts-SjllsJLQ.js} +5 -5
  233. package/build/server/chunks/{_server.ts-k-TQPRld.js.map → _server.ts-SjllsJLQ.js.map} +1 -1
  234. package/build/server/chunks/{_server.ts-DprQaM9h.js → _server.ts-UNA9HWlS.js} +5 -5
  235. package/build/server/chunks/{_server.ts-DprQaM9h.js.map → _server.ts-UNA9HWlS.js.map} +1 -1
  236. package/build/server/chunks/{_server.ts-CZRNe4sB.js → _server.ts-VVG0ZLLE.js} +5 -5
  237. package/build/server/chunks/{_server.ts-CZRNe4sB.js.map → _server.ts-VVG0ZLLE.js.map} +1 -1
  238. package/build/server/chunks/{_server.ts-DefdeZ-L.js → _server.ts-WcxeSgme.js} +8 -8
  239. package/build/server/chunks/_server.ts-WcxeSgme.js.map +1 -0
  240. package/build/server/chunks/{_server.ts-Bxo6Ziog.js → _server.ts-YZjskwCt.js} +5 -5
  241. package/build/server/chunks/{_server.ts-Bxo6Ziog.js.map → _server.ts-YZjskwCt.js.map} +1 -1
  242. package/build/server/chunks/{_server.ts-cTKQhGdU.js → _server.ts-cEqTNUtc.js} +5 -5
  243. package/build/server/chunks/{_server.ts-cTKQhGdU.js.map → _server.ts-cEqTNUtc.js.map} +1 -1
  244. package/build/server/chunks/{_server.ts-Chpwcj2F.js → _server.ts-e5XtUvMC.js} +6 -6
  245. package/build/server/chunks/{_server.ts-Chpwcj2F.js.map → _server.ts-e5XtUvMC.js.map} +1 -1
  246. package/build/server/chunks/{_server.ts-kHCwWhe3.js → _server.ts-fQQXFe9M.js} +5 -5
  247. package/build/server/chunks/{_server.ts-kHCwWhe3.js.map → _server.ts-fQQXFe9M.js.map} +1 -1
  248. package/build/server/chunks/{_server.ts-jOZIah2P.js → _server.ts-pS7C2ggX.js} +5 -5
  249. package/build/server/chunks/{_server.ts-jOZIah2P.js.map → _server.ts-pS7C2ggX.js.map} +1 -1
  250. package/build/server/chunks/{_server.ts-DI4a5jXI.js → _server.ts-pxzUffWW.js} +5 -5
  251. package/build/server/chunks/{_server.ts-DI4a5jXI.js.map → _server.ts-pxzUffWW.js.map} +1 -1
  252. package/build/server/chunks/{_server.ts-Cd7MsOvn.js → _server.ts-vHDbBa3o.js} +5 -5
  253. package/build/server/chunks/{_server.ts-Cd7MsOvn.js.map → _server.ts-vHDbBa3o.js.map} +1 -1
  254. package/build/server/chunks/{addon-helpers-B7HFQ3RL.js → addon-helpers-C0azaujt.js} +3 -3
  255. package/build/server/chunks/{addon-helpers-B7HFQ3RL.js.map → addon-helpers-C0azaujt.js.map} +1 -1
  256. package/build/server/chunks/{akm-CPP2Trqo.js → akm-BzlkftXb.js} +2 -2
  257. package/build/server/chunks/{akm-CPP2Trqo.js.map → akm-BzlkftXb.js.map} +1 -1
  258. package/build/server/chunks/{catalog-CD15uSXA.js → catalog-BjcS-9RD.js} +5 -5
  259. package/build/server/chunks/{catalog-CD15uSXA.js.map → catalog-BjcS-9RD.js.map} +1 -1
  260. package/build/server/chunks/{client-Dg5O4lJC.js → client-B8iuur7b.js} +3 -28
  261. package/build/server/chunks/{client-Dg5O4lJC.js.map → client-B8iuur7b.js.map} +1 -1
  262. package/build/server/chunks/{config-BsGMOYU-.js → config-36DEvVZH.js} +2 -2
  263. package/build/server/chunks/{config-BsGMOYU-.js.map → config-36DEvVZH.js.map} +1 -1
  264. package/build/server/chunks/{docker-CnfQsoh1.js → docker-Xky8KsOe.js} +2 -2
  265. package/build/server/chunks/{docker-CnfQsoh1.js.map → docker-Xky8KsOe.js.map} +1 -1
  266. package/build/server/chunks/{endpoints-TKIfBd1B.js → endpoints-DIQ-qrrL.js} +2 -2
  267. package/build/server/chunks/{endpoints-TKIfBd1B.js.map → endpoints-DIQ-qrrL.js.map} +1 -1
  268. package/build/server/chunks/{environment-CiTFe9kz.js → environment-B7NymDAL.js} +2 -2
  269. package/build/server/chunks/{environment-CiTFe9kz.js.map → environment-B7NymDAL.js.map} +1 -1
  270. package/build/server/chunks/{error.svelte-v0KZsl-y.js → error.svelte-BQiDKgW2.js} +4 -4
  271. package/build/server/chunks/{error.svelte-v0KZsl-y.js.map → error.svelte-BQiDKgW2.js.map} +1 -1
  272. package/build/server/chunks/{helpers-C5ooRtVL.js → helpers-TBhHA7BL.js} +3 -3
  273. package/build/server/chunks/{helpers-C5ooRtVL.js.map → helpers-TBhHA7BL.js.map} +1 -1
  274. package/build/server/chunks/{hooks.server-B3Votrxb.js → hooks.server-UooxK5Hq.js} +7 -7
  275. package/build/server/chunks/{hooks.server-B3Votrxb.js.map → hooks.server-UooxK5Hq.js.map} +1 -1
  276. package/build/server/chunks/{http-BKevFr5r.js → http-D1XmiUzn.js} +2 -2
  277. package/build/server/chunks/{http-BKevFr5r.js.map → http-D1XmiUzn.js.map} +1 -1
  278. package/build/server/chunks/{internal-_63MR9tl.js → internal-DYjrNs__.js} +3 -3
  279. package/build/server/chunks/{internal-_63MR9tl.js.map → internal-DYjrNs__.js.map} +1 -1
  280. package/build/server/chunks/{migration-status-DB5P8Vs9.js → migration-status-cTKFvPYd.js} +2 -2
  281. package/build/server/chunks/{migration-status-DB5P8Vs9.js.map → migration-status-cTKFvPYd.js.map} +1 -1
  282. package/build/server/chunks/{session-cookie-Bc9kWbaM.js → session-cookie-BJaAqVXS.js} +2 -2
  283. package/build/server/chunks/{session-cookie-Bc9kWbaM.js.map → session-cookie-BJaAqVXS.js.map} +1 -1
  284. package/build/server/chunks/{setup-deploy-CghSd9qZ.js → setup-deploy-BcxKW3xV.js} +2 -2
  285. package/build/server/chunks/{setup-deploy-CghSd9qZ.js.map → setup-deploy-BcxKW3xV.js.map} +1 -1
  286. package/build/server/chunks/{src-DKq8HP_s.js → src-BrowG4c5.js} +130 -33
  287. package/build/server/chunks/src-BrowG4c5.js.map +1 -0
  288. package/build/server/chunks/{state-B1kC-_xl.js → state-uRAQa1hp.js} +2 -2
  289. package/build/server/chunks/{state-B1kC-_xl.js.map → state-uRAQa1hp.js.map} +1 -1
  290. package/build/server/chunks/{state2-DRC_p4SM.js → state2-C0_95QUq.js} +2 -2
  291. package/build/server/chunks/{state2-DRC_p4SM.js.map → state2-C0_95QUq.js.map} +1 -1
  292. package/build/server/index.js +2 -2
  293. package/build/server/manifest.js +93 -93
  294. package/build/server/manifest.js.map +1 -1
  295. package/package.json +2 -2
  296. package/build/client/_app/immutable/assets/4.DImH8cdy.css +0 -1
  297. package/build/client/_app/immutable/assets/4.DImH8cdy.css.br +0 -0
  298. package/build/client/_app/immutable/assets/4.DImH8cdy.css.gz +0 -0
  299. package/build/client/_app/immutable/assets/7.DkzfFoKA.css +0 -1
  300. package/build/client/_app/immutable/assets/7.DkzfFoKA.css.br +0 -0
  301. package/build/client/_app/immutable/assets/7.DkzfFoKA.css.gz +0 -0
  302. package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css +0 -1
  303. package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.br +0 -0
  304. package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.gz +0 -0
  305. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css +0 -1
  306. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.br +0 -0
  307. package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.gz +0 -0
  308. package/build/client/_app/immutable/chunks/BWVZ2TVD.js +0 -5
  309. package/build/client/_app/immutable/chunks/BWVZ2TVD.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/BWVZ2TVD.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/BzyHWA5G.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/BzyHWA5G.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/Dx77FoFU.js +0 -3
  314. package/build/client/_app/immutable/chunks/Dx77FoFU.js.br +0 -0
  315. package/build/client/_app/immutable/chunks/Dx77FoFU.js.gz +0 -0
  316. package/build/client/_app/immutable/chunks/bH8yojp3.js +0 -1
  317. package/build/client/_app/immutable/chunks/bH8yojp3.js.br +0 -0
  318. package/build/client/_app/immutable/chunks/bH8yojp3.js.gz +0 -0
  319. package/build/client/_app/immutable/chunks/qinjWOf_.js +0 -1
  320. package/build/client/_app/immutable/chunks/qinjWOf_.js.br +0 -2
  321. package/build/client/_app/immutable/chunks/qinjWOf_.js.gz +0 -0
  322. package/build/client/_app/immutable/entry/app.B_UESbBc.js.br +0 -0
  323. package/build/client/_app/immutable/entry/app.B_UESbBc.js.gz +0 -0
  324. package/build/client/_app/immutable/entry/start.BBf7r6Ed.js +0 -1
  325. package/build/client/_app/immutable/entry/start.BBf7r6Ed.js.br +0 -1
  326. package/build/client/_app/immutable/entry/start.BBf7r6Ed.js.gz +0 -0
  327. package/build/client/_app/immutable/nodes/1.BPI9WMCM.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/1.BPI9WMCM.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/4.kga7H-qM.js +0 -134
  330. package/build/client/_app/immutable/nodes/4.kga7H-qM.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/4.kga7H-qM.js.gz +0 -0
  332. package/build/client/_app/immutable/nodes/5.a01_QK-Y.js.br +0 -0
  333. package/build/client/_app/immutable/nodes/5.a01_QK-Y.js.gz +0 -0
  334. package/build/client/_app/immutable/nodes/6.DiCmpX_E.js.br +0 -0
  335. package/build/client/_app/immutable/nodes/6.DiCmpX_E.js.gz +0 -0
  336. package/build/client/_app/immutable/nodes/7.BLmmfliC.js +0 -2
  337. package/build/client/_app/immutable/nodes/7.BLmmfliC.js.br +0 -0
  338. package/build/client/_app/immutable/nodes/7.BLmmfliC.js.gz +0 -0
  339. package/build/client/_app/immutable/nodes/8.Ok0ArxPA.js.br +0 -0
  340. package/build/client/_app/immutable/nodes/8.Ok0ArxPA.js.gz +0 -0
  341. package/build/server/chunks/1-BKKGpDL-.js +0 -9
  342. package/build/server/chunks/4-DK624eV1.js +0 -9
  343. package/build/server/chunks/5-Dguhb8w9.js +0 -9
  344. package/build/server/chunks/6-B2r3PAaV.js +0 -9
  345. package/build/server/chunks/7-BFJqpOL0.js +0 -9
  346. package/build/server/chunks/Navbar-DfPUzeK0.js.map +0 -1
  347. package/build/server/chunks/_page.svelte-DNEC3f8D.js.map +0 -1
  348. package/build/server/chunks/_server.ts-CcAgwk38.js.map +0 -1
  349. package/build/server/chunks/_server.ts-DefdeZ-L.js.map +0 -1
  350. package/build/server/chunks/_server.ts-DxXISWsG.js.map +0 -1
  351. package/build/server/chunks/src-DKq8HP_s.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { Q as detectHostOpenCode } from './src-DKq8HP_s.js';
2
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-C5ooRtVL.js';
1
+ import { Q as detectHostOpenCode } from './src-BrowG4c5.js';
2
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-TBhHA7BL.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import './provider-constants-DPrj3yBX.js';
@@ -21,8 +21,8 @@ import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
23
  import 'node:os';
24
- import './endpoints-TKIfBd1B.js';
25
- import './state-B1kC-_xl.js';
24
+ import './endpoints-DIQ-qrrL.js';
25
+ import './state-uRAQa1hp.js';
26
26
 
27
27
  //#region src/routes/admin/providers/host-status/+server.ts
28
28
  var GET = async (event) => {
@@ -40,4 +40,4 @@ var GET = async (event) => {
40
40
  };
41
41
 
42
42
  export { GET };
43
- //# sourceMappingURL=_server.ts-BIqRqV5K.js.map
43
+ //# sourceMappingURL=_server.ts-ChKSe-AA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BIqRqV5K.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/host-status/_server.ts.js"],"sourcesContent":["import { i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/host-status/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst status = detectHostOpenCode();\n\treturn jsonResponse(200, {\n\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\tproviderCount: status.providerCount,\n\t\tcredentialCount: status.credentialCount,\n\t\tconfigPath: status.configPath ?? null,\n\t\tauthPath: status.authPath ?? null\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,MAAM,GAAG,kBAAkB,EAAE;AACpC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AAClE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;AACrC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe;AACzC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACvC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;AAC/B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-ChKSe-AA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/host-status/_server.ts.js"],"sourcesContent":["import { i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/host-status/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst status = detectHostOpenCode();\n\treturn jsonResponse(200, {\n\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\tproviderCount: status.providerCount,\n\t\tcredentialCount: status.credentialCount,\n\t\tconfigPath: status.configPath ?? null,\n\t\tauthPath: status.authPath ?? null\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,MAAM,GAAG,kBAAkB,EAAE;AACpC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AAClE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;AACrC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe;AACzC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACvC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;AAC/B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-C5ooRtVL.js';
2
- import { s as sessionCookieHeader } from './session-cookie-Bc9kWbaM.js';
3
- import './src-DKq8HP_s.js';
1
+ import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-TBhHA7BL.js';
2
+ import { s as sessionCookieHeader } from './session-cookie-BJaAqVXS.js';
3
+ import './src-BrowG4c5.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
26
- import './state-B1kC-_xl.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
+ import './state-uRAQa1hp.js';
27
27
 
28
28
  //#region src/routes/admin/auth/login/+server.ts
29
29
  var POST = async (event) => {
@@ -54,4 +54,4 @@ var POST = async (event) => {
54
54
  };
55
55
 
56
56
  export { POST };
57
- //# sourceMappingURL=_server.ts-DTvJT_A4.js.map
57
+ //# sourceMappingURL=_server.ts-Ci1Rfx8E.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DTvJT_A4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/login/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-Ci1Rfx8E.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/login/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-C5ooRtVL.js';
2
- import { u as unsetMainModel, s as setMainModel } from './config-BsGMOYU-.js';
3
- import './src-DKq8HP_s.js';
1
+ import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-TBhHA7BL.js';
2
+ import { u as unsetMainModel, s as setMainModel } from './config-36DEvVZH.js';
3
+ import './src-BrowG4c5.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,10 +22,10 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
26
- import './state-B1kC-_xl.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
+ import './state-uRAQa1hp.js';
27
27
  import './coercion-TNFJisCC.js';
28
- import './http-BKevFr5r.js';
28
+ import './http-D1XmiUzn.js';
29
29
 
30
30
  //#region src/routes/admin/opencode/model/+server.ts
31
31
  var GET = async (event) => {
@@ -82,4 +82,4 @@ var POST = async (event) => {
82
82
  };
83
83
 
84
84
  export { GET, POST };
85
- //# sourceMappingURL=_server.ts-ClZQ8p0s.js.map
85
+ //# sourceMappingURL=_server.ts-CimqxW93.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-ClZQ8p0s.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/model/_server.ts.js"],"sourcesContent":["import { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { i as setMainModel, s as unsetMainModel } from \"../../../../../chunks/config.js\";\n//#region src/routes/admin/opencode/model/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst config = await getOpenCodeClient().getConfig();\n\tif (!config) return errorResponse(503, \"opencode_unavailable\", \"OpenCode is not reachable\", {}, requestId);\n\treturn jsonResponse(200, {\n\t\tmodel: config.model ?? \"\",\n\t\tsmall_model: config.small_model ?? \"\"\n\t}, requestId);\n};\n/** Parse a \"provider/model\" string. Returns null if the input is empty or malformed. */\nfunction parseProviderModel(raw) {\n\tif (typeof raw !== \"string\") return null;\n\tconst trimmed = raw.trim();\n\tif (!trimmed) return null;\n\tconst slash = trimmed.indexOf(\"/\");\n\tif (slash <= 0 || slash === trimmed.length - 1) return null;\n\treturn {\n\t\tprovider: trimmed.slice(0, slash),\n\t\tmodel: trimmed.slice(slash + 1)\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst hasModel = \"model\" in body;\n\tconst hasSmallModel = \"small_model\" in body;\n\tif (!hasModel && !hasSmallModel) return errorResponse(400, \"bad_request\", \"model or small_model is required\", {}, requestId);\n\ttry {\n\t\tif (hasModel) if (body.model === null || body.model === \"\") await unsetMainModel(\"model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"model\");\n\t\t}\n\t\tif (hasSmallModel) if (body.small_model === null || body.small_model === \"\") await unsetMainModel(\"small_model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.small_model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"small_model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"small_model\");\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(\"[opencode.model] Failed to persist model selection\", e);\n\t\treturn errorResponse(500, \"internal_error\", \"Failed to persist model selection\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CimqxW93.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/model/_server.ts.js"],"sourcesContent":["import { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { i as setMainModel, s as unsetMainModel } from \"../../../../../chunks/config.js\";\n//#region src/routes/admin/opencode/model/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst config = await getOpenCodeClient().getConfig();\n\tif (!config) return errorResponse(503, \"opencode_unavailable\", \"OpenCode is not reachable\", {}, requestId);\n\treturn jsonResponse(200, {\n\t\tmodel: config.model ?? \"\",\n\t\tsmall_model: config.small_model ?? \"\"\n\t}, requestId);\n};\n/** Parse a \"provider/model\" string. Returns null if the input is empty or malformed. */\nfunction parseProviderModel(raw) {\n\tif (typeof raw !== \"string\") return null;\n\tconst trimmed = raw.trim();\n\tif (!trimmed) return null;\n\tconst slash = trimmed.indexOf(\"/\");\n\tif (slash <= 0 || slash === trimmed.length - 1) return null;\n\treturn {\n\t\tprovider: trimmed.slice(0, slash),\n\t\tmodel: trimmed.slice(slash + 1)\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst hasModel = \"model\" in body;\n\tconst hasSmallModel = \"small_model\" in body;\n\tif (!hasModel && !hasSmallModel) return errorResponse(400, \"bad_request\", \"model or small_model is required\", {}, requestId);\n\ttry {\n\t\tif (hasModel) if (body.model === null || body.model === \"\") await unsetMainModel(\"model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"model\");\n\t\t}\n\t\tif (hasSmallModel) if (body.small_model === null || body.small_model === \"\") await unsetMainModel(\"small_model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.small_model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"small_model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"small_model\");\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(\"[opencode.model] Failed to persist model selection\", e);\n\t\treturn errorResponse(500, \"internal_error\", \"Failed to persist model selection\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { G as createLogger } from './src-DKq8HP_s.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-C5ooRtVL.js';
1
+ import { G as createLogger } from './src-BrowG4c5.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-TBhHA7BL.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import './provider-constants-DPrj3yBX.js';
@@ -21,8 +21,8 @@ import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
23
  import 'node:os';
24
- import './endpoints-TKIfBd1B.js';
25
- import './state-B1kC-_xl.js';
24
+ import './endpoints-DIQ-qrrL.js';
25
+ import './state-uRAQa1hp.js';
26
26
 
27
27
  //#region src/routes/admin/opencode/providers/[id]/auth/+server.ts
28
28
  var logger = createLogger("opencode.auth");
@@ -163,4 +163,4 @@ var DELETE = async (event) => {
163
163
  };
164
164
 
165
165
  export { DELETE, GET, POST };
166
- //# sourceMappingURL=_server.ts-BmUQoU9j.js.map
166
+ //# sourceMappingURL=_server.ts-CtQpR-mK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BmUQoU9j.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { bn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CtQpR-mK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { bn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { ad as importHostOpenCode, Q as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-DKq8HP_s.js';
2
- import { g as getState } from './state-B1kC-_xl.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-C5ooRtVL.js';
1
+ import { ad as importHostOpenCode, Q as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-TBhHA7BL.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
- import { o as opencodeFetch } from './http-BKevFr5r.js';
6
- import { c as composeRestart } from './docker-CnfQsoh1.js';
5
+ import { o as opencodeFetch } from './http-D1XmiUzn.js';
6
+ import { c as composeRestart } from './docker-Xky8KsOe.js';
7
7
  import { existsSync, readFileSync } from 'node:fs';
8
8
  import './chunk-CLZ62Ad-.js';
9
9
  import 'node:module';
@@ -25,7 +25,7 @@ import 'zlib';
25
25
  import 'node:assert';
26
26
  import 'node:fs/promises';
27
27
  import 'node:os';
28
- import './endpoints-TKIfBd1B.js';
28
+ import './endpoints-DIQ-qrrL.js';
29
29
 
30
30
  //#region src/routes/admin/providers/import-host/+server.ts
31
31
  /**
@@ -157,4 +157,4 @@ var POST = async (event) => {
157
157
  };
158
158
 
159
159
  export { POST };
160
- //# sourceMappingURL=_server.ts-CS_QhbpE.js.map
160
+ //# sourceMappingURL=_server.ts-CuKWH2Y0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CS_QhbpE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, Zt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode, tt as checkDocker } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CuKWH2Y0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, Zt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode, tt as checkDocker } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ak as isSetupComplete, aU as resolveStackDir } from './src-DKq8HP_s.js';
2
+ import { ak as isSetupComplete, aU as resolveStackDir } from './src-BrowG4c5.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -32,4 +32,4 @@ var GET = () => {
32
32
  };
33
33
 
34
34
  export { GET };
35
- //# sourceMappingURL=_server.ts-BzCJGVxd.js.map
35
+ //# sourceMappingURL=_server.ts-CvrHMIWH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BzCJGVxd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { ht as isSetupComplete, nn 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-CvrHMIWH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { ht as isSetupComplete, nn 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,5 +1,5 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { R as detectLocalProviders } from './src-DKq8HP_s.js';
2
+ import { R as detectLocalProviders } from './src-BrowG4c5.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -40,4 +40,4 @@ var GET = async () => {
40
40
  };
41
41
 
42
42
  export { GET };
43
- //# sourceMappingURL=_server.ts-LYCSOMBR.js.map
43
+ //# sourceMappingURL=_server.ts-Cx4HqW-Z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-LYCSOMBR.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/detect-providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { u as detectLocalProviders } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/detect-providers/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tproviders: await detectLocalProviders()\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"detection_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,oBAAoB;AACxC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,kBAAkB;AAC5B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-Cx4HqW-Z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/detect-providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { u as detectLocalProviders } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/detect-providers/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tproviders: await detectLocalProviders()\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"detection_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,oBAAoB;AACxC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,kBAAkB;AAC5B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { a_ as summarizeBackups, an as listBackupDirs, ay as pruneBackupDirs, G as createLogger } from './src-DKq8HP_s.js';
2
- import { g as getState } from './state-B1kC-_xl.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-C5ooRtVL.js';
1
+ import { a_ as summarizeBackups, an as listBackupDirs, ay as pruneBackupDirs, G as createLogger } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-TBhHA7BL.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
26
 
27
27
  //#region src/routes/admin/backups/+server.ts
28
28
  var logger = createLogger("backups-admin");
@@ -86,4 +86,4 @@ var POST = async (event) => {
86
86
  };
87
87
 
88
88
  export { GET, POST };
89
- //# sourceMappingURL=_server.ts-CUg7JTi8.js.map
89
+ //# sourceMappingURL=_server.ts-D5KbK1EO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CUg7JTi8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { _n as pruneBackupDirs, bn as createLogger, gn as listBackupDirs, vn as summarizeBackups } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-D5KbK1EO.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { _n as pruneBackupDirs, bn as createLogger, gn as listBackupDirs, vn as summarizeBackups } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { al as listAssistantCliTools } from './src-DKq8HP_s.js';
2
- import { g as getState } from './state-B1kC-_xl.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-C5ooRtVL.js';
1
+ import { al as listAssistantCliTools } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-TBhHA7BL.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
26
 
27
27
  //#region src/routes/admin/providers/assistant-clis/+server.ts
28
28
  var GET = async (event) => {
@@ -33,4 +33,4 @@ var GET = async (event) => {
33
33
  };
34
34
 
35
35
  export { GET };
36
- //# sourceMappingURL=_server.ts-BYKn_W3C.js.map
36
+ //# sourceMappingURL=_server.ts-D6VySx_-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BYKn_W3C.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/assistant-clis/_server.ts.js"],"sourcesContent":["import { xt as listAssistantCliTools } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/assistant-clis/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { tools: listAssistantCliTools(getState()) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AAClF;;;;"}
1
+ {"version":3,"file":"_server.ts-D6VySx_-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/assistant-clis/_server.ts.js"],"sourcesContent":["import { xt as listAssistantCliTools } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/assistant-clis/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { tools: listAssistantCliTools(getState()) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AAClF;;;;"}
@@ -1,6 +1,6 @@
1
- import { ag as isAllowedService, o as checkDocker, t as composeLogs, m as buildComposeOptions } from './src-DKq8HP_s.js';
2
- import { g as getState } from './state-B1kC-_xl.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-C5ooRtVL.js';
1
+ import { ag as isAllowedService, o as checkDocker, t as composeLogs, m as buildComposeOptions } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-TBhHA7BL.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
26
 
27
27
  //#region src/routes/admin/logs/+server.ts
28
28
  var GET = async (event) => {
@@ -60,4 +60,4 @@ var GET = async (event) => {
60
60
  };
61
61
 
62
62
  export { GET };
63
- //# sourceMappingURL=_server.ts-BLUGSTbb.js.map
63
+ //# sourceMappingURL=_server.ts-D7-rYtEc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BLUGSTbb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/logs/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, O as isAllowedService, it as composeLogs, tt as checkDocker } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/logs/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst url = new URL(event.request.url);\n\tconst serviceParam = url.searchParams.get(\"service\");\n\tconst tailParam = url.searchParams.get(\"tail\");\n\tconst sinceParam = url.searchParams.get(\"since\");\n\tconst tail = tailParam ? Number(tailParam) : 100;\n\tif (tailParam && (!Number.isInteger(tail) || tail < 1 || tail > 1e4)) return errorResponse(400, \"invalid_parameter\", \"tail must be an integer between 1 and 10000\", {}, requestId);\n\tlet services;\n\tif (serviceParam) {\n\t\tservices = serviceParam.split(\",\").map((s) => s.trim()).filter(Boolean);\n\t\tconst invalid = services.filter((s) => !isAllowedService(s, state.configDir));\n\t\tif (invalid.length > 0) return errorResponse(400, \"invalid_service\", `Invalid service name(s): ${invalid.join(\", \")}`, { invalid }, requestId);\n\t}\n\tif (sinceParam && !/^[a-zA-Z0-9.:+\\-T]+$/.test(sinceParam)) return errorResponse(400, \"invalid_parameter\", \"since contains invalid characters\", {}, requestId);\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeLogs(services, tail, {\n\t\t...buildComposeOptions(state),\n\t\tsince: sinceParam ?? void 0\n\t});\n\tif (!result.ok) return jsonResponse(500, {\n\t\tok: false,\n\t\tlogs: \"\",\n\t\terror: result.stderr\n\t}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tlogs: (result.stdout + result.stderr).trim()\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACvC,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACjD,CAAC,MAAM,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;AACjD,CAAC,IAAI,SAAS,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AACnL,CAAC,IAAI,QAAQ;AACb,CAAC,IAAI,YAAY,EAAE;AACnB,EAAE,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/E,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AAChJ,CAAC;AACD,CAAC,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/J,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClD,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC/B,EAAE,KAAK,EAAE,UAAU,IAAI;AACvB,EAAE,CAAC;AACH,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,KAAK,EAAE,MAAM,CAAC;AAChB,EAAE,EAAE,SAAS,CAAC;AACd,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI;AAC5C,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-D7-rYtEc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/logs/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, O as isAllowedService, it as composeLogs, tt as checkDocker } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/logs/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst url = new URL(event.request.url);\n\tconst serviceParam = url.searchParams.get(\"service\");\n\tconst tailParam = url.searchParams.get(\"tail\");\n\tconst sinceParam = url.searchParams.get(\"since\");\n\tconst tail = tailParam ? Number(tailParam) : 100;\n\tif (tailParam && (!Number.isInteger(tail) || tail < 1 || tail > 1e4)) return errorResponse(400, \"invalid_parameter\", \"tail must be an integer between 1 and 10000\", {}, requestId);\n\tlet services;\n\tif (serviceParam) {\n\t\tservices = serviceParam.split(\",\").map((s) => s.trim()).filter(Boolean);\n\t\tconst invalid = services.filter((s) => !isAllowedService(s, state.configDir));\n\t\tif (invalid.length > 0) return errorResponse(400, \"invalid_service\", `Invalid service name(s): ${invalid.join(\", \")}`, { invalid }, requestId);\n\t}\n\tif (sinceParam && !/^[a-zA-Z0-9.:+\\-T]+$/.test(sinceParam)) return errorResponse(400, \"invalid_parameter\", \"since contains invalid characters\", {}, requestId);\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeLogs(services, tail, {\n\t\t...buildComposeOptions(state),\n\t\tsince: sinceParam ?? void 0\n\t});\n\tif (!result.ok) return jsonResponse(500, {\n\t\tok: false,\n\t\tlogs: \"\",\n\t\terror: result.stderr\n\t}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tlogs: (result.stdout + result.stderr).trim()\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACvC,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACjD,CAAC,MAAM,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;AACjD,CAAC,IAAI,SAAS,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AACnL,CAAC,IAAI,QAAQ;AACb,CAAC,IAAI,YAAY,EAAE;AACnB,EAAE,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/E,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AAChJ,CAAC;AACD,CAAC,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/J,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClD,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC/B,EAAE,KAAK,EAAE,UAAU,IAAI;AACvB,EAAE,CAAC;AACH,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,KAAK,EAAE,MAAM,CAAC;AAChB,EAAE,EAAE,SAAS,CAAC;AACd,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI;AAC5C,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } from './src-DKq8HP_s.js';
2
- import { g as getState } from './state-B1kC-_xl.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-C5ooRtVL.js';
1
+ import { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-TBhHA7BL.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-TKIfBd1B.js';
25
+ import './endpoints-DIQ-qrrL.js';
26
26
 
27
27
  //#region src/routes/admin/akm/host-sharing/+server.ts
28
28
  var GET = async (event) => {
@@ -64,4 +64,4 @@ var DELETE = async (event) => {
64
64
  };
65
65
 
66
66
  export { DELETE, GET, PUT };
67
- //# sourceMappingURL=_server.ts-Cv9SGZ8H.js.map
67
+ //# sourceMappingURL=_server.ts-DM6lThdl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Cv9SGZ8H.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/host-sharing/_server.ts.js"],"sourcesContent":["import { C as getHostAkmSharingStatus, S as enableHostAkmSharing, x as disableHostAkmSharing } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/host-sharing/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(getState()) }, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst opts = result.data;\n\tconst writable = opts.writable === void 0 ? true : opts.writable === true;\n\tconst importProfiles = opts.importProfiles === true;\n\tconst state = getState();\n\ttry {\n\t\tconst { profilesImported } = enableHostAkmSharing(state, {\n\t\t\twritable,\n\t\t\timportProfiles\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tsharing: getHostAkmSharingStatus(state),\n\t\t\tprofilesImported\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn errorResponse(409, \"conflict\", err.message, {}, requestId);\n\t}\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tdisableHostAkmSharing(state);\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(state) }, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AACtF;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;AAC1E,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI;AACpD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE;AAC3D,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC1C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACnE,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAC7B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;AACjF;;;;"}
1
+ {"version":3,"file":"_server.ts-DM6lThdl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/host-sharing/_server.ts.js"],"sourcesContent":["import { C as getHostAkmSharingStatus, S as enableHostAkmSharing, x as disableHostAkmSharing } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/host-sharing/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(getState()) }, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst opts = result.data;\n\tconst writable = opts.writable === void 0 ? true : opts.writable === true;\n\tconst importProfiles = opts.importProfiles === true;\n\tconst state = getState();\n\ttry {\n\t\tconst { profilesImported } = enableHostAkmSharing(state, {\n\t\t\twritable,\n\t\t\timportProfiles\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tsharing: getHostAkmSharingStatus(state),\n\t\t\tprofilesImported\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn errorResponse(409, \"conflict\", err.message, {}, requestId);\n\t}\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tdisableHostAkmSharing(state);\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(state) }, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AACtF;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;AAC1E,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI;AACpD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE;AAC3D,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC1C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACnE,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAC7B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;AACjF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { au as parseEnvFile, ao as listEnabledAddonIds, aQ as resolveEffectivePlatformImageTag, a3 as formatForDisplay, ah as isComparableSemver, aS as resolveLatestPlatformTagForCurrentMajor, aR as resolveLatestPlatformTag, P as PLATFORM_VERSION } from './src-DKq8HP_s.js';
3
- import { g as getState } from './state-B1kC-_xl.js';
4
- import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-C5ooRtVL.js';
2
+ import { au as parseEnvFile, ao as listEnabledAddonIds, aQ as resolveEffectivePlatformImageTag, a3 as formatForDisplay, ah as isComparableSemver, aS as resolveLatestPlatformTagForCurrentMajor, aR as resolveLatestPlatformTag, P as PLATFORM_VERSION } from './src-BrowG4c5.js';
3
+ import { g as getState } from './state-uRAQa1hp.js';
4
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-TBhHA7BL.js';
5
5
  import { existsSync } from 'node:fs';
6
6
  import './utils-BSRjJDrZ.js';
7
7
  import './chunk-CLZ62Ad-.js';
@@ -24,7 +24,7 @@ import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
26
  import 'node:os';
27
- import './endpoints-TKIfBd1B.js';
27
+ import './endpoints-DIQ-qrrL.js';
28
28
 
29
29
  //#region src/routes/admin/versions/+server.ts
30
30
  var PORTAL_ADDON_IDS = [
@@ -67,11 +67,6 @@ var GET = async (event) => {
67
67
  label: "Voice",
68
68
  version: envVars.OP_VOICE_IMAGE_TAG ?? imageTag
69
69
  });
70
- if (enabledAddons.includes("ollama")) services.push({
71
- id: "ollama",
72
- label: "Ollama",
73
- version: envVars.OP_OLLAMA_IMAGE_TAG ?? imageTag
74
- });
75
70
  const inElectron = process.env.OP_INSIDE_ELECTRON === "1";
76
71
  const electronVersion = process.env.OP_ELECTRON_VERSION ?? null;
77
72
  const electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;
@@ -102,4 +97,4 @@ var GET = async (event) => {
102
97
  };
103
98
 
104
99
  export { GET };
105
- //# sourceMappingURL=_server.ts-DxXISWsG.js.map
100
+ //# sourceMappingURL=_server.ts-DNA0OVFL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DNA0OVFL.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { At as listEnabledAddonIds, J as resolveLatestPlatformTag, Y as resolveLatestPlatformTagForCurrentMajor, cn as parseEnvFile, dn as isComparableSemver, ln as PLATFORM_VERSION, sn as resolveEffectivePlatformImageTag, un as formatForDisplay } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\nvar PORTAL_ADDON_IDS = [\n\t\"api\",\n\t\"chat\",\n\t\"discord\",\n\t\"slack\",\n\t\"gateway\"\n];\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst stackEnvPath = `${state.stashDir}/env/stack.env`;\n\tconst envVars = existsSync(stackEnvPath) ? parseEnvFile(stackEnvPath) : {};\n\tconst imageTag = envVars.OP_IMAGE_TAG ?? \"latest\";\n\tconst enabledAddons = listEnabledAddonIds(state.homeDir);\n\tconst portalEnabled = enabledAddons.some((a) => PORTAL_ADDON_IDS.includes(a));\n\tconst services = [{\n\t\tid: \"assistant\",\n\t\tlabel: \"Assistant\",\n\t\tversion: envVars.OP_ASSISTANT_IMAGE_TAG ?? imageTag\n\t}];\n\tif (portalEnabled) {\n\t\tservices.push({\n\t\t\tid: \"guardian\",\n\t\t\tlabel: \"Guardian\",\n\t\t\tversion: resolveEffectivePlatformImageTag(envVars, \"guardian\")\n\t\t});\n\t\tservices.push({\n\t\t\tid: \"portal\",\n\t\t\tlabel: \"Chat (Discord/Slack)\",\n\t\t\tversion: resolveEffectivePlatformImageTag(envVars, \"portal\")\n\t\t});\n\t}\n\tif (enabledAddons.includes(\"voice\")) services.push({\n\t\tid: \"voice\",\n\t\tlabel: \"Voice\",\n\t\tversion: envVars.OP_VOICE_IMAGE_TAG ?? imageTag\n\t});\n\tconst inElectron = process.env.OP_INSIDE_ELECTRON === \"1\";\n\tconst electronVersion = process.env.OP_ELECTRON_VERSION ?? null;\n\tconst electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;\n\tconst electronLatestUrl = process.env.OP_ELECTRON_LATEST_URL ?? null;\n\tconst harnessContractVersion = process.env.OP_HARNESS_CONTRACT_VERSION ? Number(process.env.OP_HARNESS_CONTRACT_VERSION) : null;\n\tconst platformVersion = formatForDisplay(PLATFORM_VERSION);\n\tlet latestImageTag = null;\n\ttry {\n\t\tconst namespace = (envVars.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim().toLowerCase();\n\t\tconst currentDockerTag = envVars.OP_ASSISTANT_IMAGE_TAG ?? imageTag;\n\t\tif (isComparableSemver(currentDockerTag)) latestImageTag = formatForDisplay(await resolveLatestPlatformTagForCurrentMajor(namespace, currentDockerTag));\n\t\telse latestImageTag = formatForDisplay(await resolveLatestPlatformTag(namespace));\n\t} catch {}\n\treturn json({\n\t\timageTag,\n\t\tservices,\n\t\tinElectron,\n\t\telectronVersion,\n\t\telectronLatestVersion,\n\t\telectronLatestUrl,\n\t\telectronUpdateAvailable: !!electronLatestVersion,\n\t\tharnessVersion: electronVersion,\n\t\tharnessContractVersion,\n\t\tharnessUpdateAvailable: !!electronLatestVersion,\n\t\tplatformVersion,\n\t\tlatestImageTag\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}