@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,6 +1,6 @@
1
1
  import { E as head, d as attr } from './dev-B6xUe35c.js';
2
- import './client-Dg5O4lJC.js';
3
- import './internal-_63MR9tl.js';
2
+ import './client-B8iuur7b.js';
3
+ import './internal-DYjrNs__.js';
4
4
  import './utils-BSRjJDrZ.js';
5
5
  import 'node:module';
6
6
  import './chunk-CLZ62Ad-.js';
@@ -34,4 +34,4 @@ function _page($$renderer, $$props) {
34
34
  }
35
35
 
36
36
  export { _page as default };
37
- //# sourceMappingURL=_page.svelte-DFzgmYgw.js.map
37
+ //# sourceMappingURL=_page.svelte-RacdBHko.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-DFzgmYgw.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, s as head } from \"../../../chunks/dev.js\";\nimport { n as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"auth-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><section class=\"auth-card svelte-zhbyfn\"><div class=\"auth-brand svelte-zhbyfn\"><span class=\"brand-icon svelte-zhbyfn\"><img src=\"/logo-128.png\" alt=\"OpenPalm Logo\" class=\"svelte-zhbyfn\"/></span> <div><h1 class=\"svelte-zhbyfn\">OpenPalm Console</h1> <p class=\"svelte-zhbyfn\">Enter your admin password to unlock the control plane.</p></div></div> <form class=\"auth-form svelte-zhbyfn\"><label for=\"admin-token\" class=\"svelte-zhbyfn\">Admin Password</label> <input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"token-input-wrapper svelte-zhbyfn\"><input id=\"admin-token\" name=\"admin-token\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"Enter admin password\" autocomplete=\"current-password\" class=\"svelte-zhbyfn\"/> <button type=\"button\" class=\"btn-toggle svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"auth-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"btn btn-primary\" type=\"submit\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> Unlock Console</button></form></section></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,0uBAA0uB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,kJAAkJ,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5+B,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,gRAAgR,CAAC,CAAC;AACrS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_page.svelte-RacdBHko.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, s as head } from \"../../../chunks/dev.js\";\nimport { t as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"auth-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><section class=\"auth-card svelte-zhbyfn\"><div class=\"auth-brand svelte-zhbyfn\"><span class=\"brand-icon svelte-zhbyfn\"><img src=\"/logo-128.png\" alt=\"OpenPalm Logo\" class=\"svelte-zhbyfn\"/></span> <div><h1 class=\"svelte-zhbyfn\">OpenPalm Console</h1> <p class=\"svelte-zhbyfn\">Enter your admin password to unlock the control plane.</p></div></div> <form class=\"auth-form svelte-zhbyfn\"><label for=\"admin-token\" class=\"svelte-zhbyfn\">Admin Password</label> <input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"token-input-wrapper svelte-zhbyfn\"><input id=\"admin-token\" name=\"admin-token\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"Enter admin password\" autocomplete=\"current-password\" class=\"svelte-zhbyfn\"/> <button type=\"button\" class=\"btn-toggle svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"auth-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"btn btn-primary\" type=\"submit\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> Unlock Console</button></form></section></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,0uBAA0uB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,kJAAkJ,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5+B,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,gRAAgR,CAAC,CAAC;AACrS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { Y as ensureMigrated, B as BackupSpaceError, M as MigrationError, 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 { Y as ensureMigrated, B as BackupSpaceError, M as MigrationError, 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/migrate-apply/+server.ts
28
28
  var logger = createLogger("migrate-apply");
@@ -116,4 +116,4 @@ var POST = async (event) => {
116
116
  };
117
117
 
118
118
  export { POST };
119
- //# sourceMappingURL=_server.ts-DVnLgY88.js.map
119
+ //# sourceMappingURL=_server.ts--DpjQMoc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DVnLgY88.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/migrate-apply/_server.ts.js"],"sourcesContent":["import { an as ensureMigrated, bn as createLogger, in as MigrationError, rn as BackupSpaceError } 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/migrate-apply/+server.ts\nvar logger = createLogger(\"migrate-apply\");\n/**\n* Apply the pending on-disk migration and report the result. This is the\n* lightweight counterpart to /admin/migrate-preview: it runs the REAL\n* `ensureMigrated()` (layout migrations + release migrations up to the home's\n* recorded version), which takes a full-home backup first and is idempotent.\n*\n* Unlike /admin/upgrade this does NOT pull images or recreate containers — it\n* only reconciles the home directory so the splash \"invalid state\" landing can\n* unblock a user whose home needs migrating, then route them onward.\n*\n* BackupSpaceError (the pre-backup free-space guard) is surfaced as 409 with the\n* estimate so the UI can ask the user to confirm before retrying with\n* `confirmLowSpace: true`. Nothing is modified when that fires.\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 confirmLowSpace = body.confirmLowSpace === true;\n\tconst state = getState();\n\tconst lines = [];\n\ttry {\n\t\tconst report = ensureMigrated({\n\t\t\thomeDir: state.homeDir,\n\t\t\tconfirmLowSpace,\n\t\t\tlog: (m) => lines.push(m)\n\t\t});\n\t\tlogger.info(\"migration applied\", {\n\t\t\trequestId,\n\t\t\tmigrated: report.migrated,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\treleaseApplied: report.releaseApplied,\n\t\t\tbackupDir: report.backupDir\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmigrated: report.migrated,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\tapplied: report.applied,\n\t\t\treleaseFrom: report.releaseFrom,\n\t\t\treleaseTo: report.releaseTo,\n\t\t\treleaseApplied: report.releaseApplied,\n\t\t\tbackupDir: report.backupDir,\n\t\t\tnotes: report.notes,\n\t\t\tlines\n\t\t}, requestId);\n\t} catch (e) {\n\t\tif (e instanceof BackupSpaceError) {\n\t\t\tlogger.warn(\"migration blocked: low free space\", {\n\t\t\t\trequestId,\n\t\t\t\testimatedBytes: e.estimatedBytes,\n\t\t\t\tfreeBytes: e.freeBytes\n\t\t\t});\n\t\t\treturn errorResponse(409, \"low_space\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\testimatedBytes: e.estimatedBytes,\n\t\t\t\tfreeBytes: e.freeBytes,\n\t\t\t\tconfirmable: true\n\t\t\t}, requestId);\n\t\t}\n\t\tif (e instanceof MigrationError) {\n\t\t\tlogger.error(\"migration failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: e.message,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t});\n\t\t\treturn errorResponse(500, \"migration_failed\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\tbackupDir: e.backupDir,\n\t\t\t\tlines\n\t\t\t}, requestId);\n\t\t}\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"migration failed (unexpected)\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(500, \"migration_failed\", msg, { lines }, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts--DpjQMoc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/migrate-apply/_server.ts.js"],"sourcesContent":["import { an as ensureMigrated, bn as createLogger, in as MigrationError, rn as BackupSpaceError } 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/migrate-apply/+server.ts\nvar logger = createLogger(\"migrate-apply\");\n/**\n* Apply the pending on-disk migration and report the result. This is the\n* lightweight counterpart to /admin/migrate-preview: it runs the REAL\n* `ensureMigrated()` (layout migrations + release migrations up to the home's\n* recorded version), which takes a full-home backup first and is idempotent.\n*\n* Unlike /admin/upgrade this does NOT pull images or recreate containers — it\n* only reconciles the home directory so the splash \"invalid state\" landing can\n* unblock a user whose home needs migrating, then route them onward.\n*\n* BackupSpaceError (the pre-backup free-space guard) is surfaced as 409 with the\n* estimate so the UI can ask the user to confirm before retrying with\n* `confirmLowSpace: true`. Nothing is modified when that fires.\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 confirmLowSpace = body.confirmLowSpace === true;\n\tconst state = getState();\n\tconst lines = [];\n\ttry {\n\t\tconst report = ensureMigrated({\n\t\t\thomeDir: state.homeDir,\n\t\t\tconfirmLowSpace,\n\t\t\tlog: (m) => lines.push(m)\n\t\t});\n\t\tlogger.info(\"migration applied\", {\n\t\t\trequestId,\n\t\t\tmigrated: report.migrated,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\treleaseApplied: report.releaseApplied,\n\t\t\tbackupDir: report.backupDir\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmigrated: report.migrated,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\tapplied: report.applied,\n\t\t\treleaseFrom: report.releaseFrom,\n\t\t\treleaseTo: report.releaseTo,\n\t\t\treleaseApplied: report.releaseApplied,\n\t\t\tbackupDir: report.backupDir,\n\t\t\tnotes: report.notes,\n\t\t\tlines\n\t\t}, requestId);\n\t} catch (e) {\n\t\tif (e instanceof BackupSpaceError) {\n\t\t\tlogger.warn(\"migration blocked: low free space\", {\n\t\t\t\trequestId,\n\t\t\t\testimatedBytes: e.estimatedBytes,\n\t\t\t\tfreeBytes: e.freeBytes\n\t\t\t});\n\t\t\treturn errorResponse(409, \"low_space\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\testimatedBytes: e.estimatedBytes,\n\t\t\t\tfreeBytes: e.freeBytes,\n\t\t\t\tconfirmable: true\n\t\t\t}, requestId);\n\t\t}\n\t\tif (e instanceof MigrationError) {\n\t\t\tlogger.error(\"migration failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: e.message,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t});\n\t\t\treturn errorResponse(500, \"migration_failed\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\tbackupDir: e.backupDir,\n\t\t\t\tlines\n\t\t\t}, requestId);\n\t\t}\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"migration failed (unexpected)\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(500, \"migration_failed\", msg, { lines }, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, z as composeStats, m as buildComposeOptions } from './src-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 { o as checkDocker, z as composeStats, 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/containers/stats/+server.ts
28
28
  var GET = async (event) => {
@@ -44,4 +44,4 @@ var GET = async (event) => {
44
44
  };
45
45
 
46
46
  export { GET };
47
- //# sourceMappingURL=_server.ts-_zcta9sI.js.map
47
+ //# sourceMappingURL=_server.ts-0NV6JC1q.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-_zcta9sI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, tt as checkDocker, ut as composeStats } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/stats/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeStats(buildComposeOptions(state));\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get container stats: ${result.stderr}`, {}, requestId);\n\tlet stats = [];\n\tif (result.stdout.trim()) try {\n\t\tstats = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.stats] Failed to parse Docker stats output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker stats output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { stats }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC;AAC3E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/C;;;;"}
1
+ {"version":3,"file":"_server.ts-0NV6JC1q.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, tt as checkDocker, ut as composeStats } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/stats/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeStats(buildComposeOptions(state));\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get container stats: ${result.stderr}`, {}, requestId);\n\tlet stats = [];\n\tif (result.stdout.trim()) try {\n\t\tstats = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.stats] Failed to parse Docker stats output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker stats output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { stats }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC;AAC3E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/C;;;;"}
@@ -1,8 +1,8 @@
1
- import { aE as readStackEnv } 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 } from './helpers-C5ooRtVL.js';
4
- import { o as opencodeFetch } from './http-BKevFr5r.js';
5
- import { g as getCurrentConfig } from './config-BsGMOYU-.js';
1
+ import { aE as readStackEnv } from './src-BrowG4c5.js';
2
+ import { g as getState } from './state-uRAQa1hp.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-TBhHA7BL.js';
4
+ import { o as opencodeFetch } from './http-D1XmiUzn.js';
5
+ import { g as getCurrentConfig } from './config-36DEvVZH.js';
6
6
  import { existsSync, readFileSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  import './chunk-CLZ62Ad-.js';
@@ -24,12 +24,12 @@ 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
  import './coercion-TNFJisCC.js';
29
29
 
30
30
  //#region src/lib/server/speech-prep.ts
31
31
  function personaPath() {
32
- return join(getState().configDir, "assistant", "openpalm.md");
32
+ return join(getState().configDir, "assistant", "persona.md");
33
33
  }
34
34
  function readPersona() {
35
35
  const path = personaPath();
@@ -205,4 +205,4 @@ var POST = async (event) => {
205
205
  };
206
206
 
207
207
  export { POST };
208
- //# sourceMappingURL=_server.ts-CcAgwk38.js.map
208
+ //# sourceMappingURL=_server.ts-3_HeE_vF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-3_HeE_vF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/speak/_server.ts.js"],"sourcesContent":["import { Vt as readStackEnv } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../chunks/http.js\";\nimport { t as getCurrentConfig } from \"../../../../chunks/config.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/lib/server/speech-prep.ts\nfunction personaPath() {\n\treturn join(getState().configDir, \"assistant\", \"persona.md\");\n}\nfunction readPersona() {\n\tconst path = personaPath();\n\tif (!existsSync(path)) return \"\";\n\ttry {\n\t\treturn readFileSync(path, \"utf-8\").trim();\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nfunction extractText(response) {\n\treturn (response.parts ?? []).filter((part) => part.type === \"text\" && typeof part.text === \"string\").map((part) => part.text?.trim() ?? \"\").join(\" \").trim();\n}\nfunction buildPrompt(input) {\n\tconst personaBlock = input.persona ? input.persona : \"No persona markdown is configured. Use a neutral, helpful, conversational tone.\";\n\tif (input.mode === \"chat_ack\") return [\n\t\t\"You are preparing a short spoken acknowledgement for text-to-speech.\",\n\t\t\"Return only the exact words to speak.\",\n\t\t\"Keep it to one brief sentence.\",\n\t\t\"Sound conversational and aligned with the persona context.\",\n\t\t\"Do not use markdown, lists, or quotes.\",\n\t\t\"Do not answer the full request. Just acknowledge that you are working on it.\",\n\t\t\"\",\n\t\t\"Persona markdown:\",\n\t\tpersonaBlock,\n\t\t\"\",\n\t\t\"User request:\",\n\t\tinput.userText\n\t].join(\"\\n\");\n\treturn [\n\t\t\"You are preparing a spoken summary for text-to-speech.\",\n\t\t\"Return only the exact words to speak.\",\n\t\t\"Rewrite the final assistant reply into a concise, natural, conversational response.\",\n\t\t\"Preserve the meaning and important caveats.\",\n\t\t\"Keep it brief enough for audio playback.\",\n\t\t\"Do not use markdown, lists, or quotes.\",\n\t\t\"\",\n\t\t\"Persona markdown:\",\n\t\tpersonaBlock,\n\t\t\"\",\n\t\t\"User request:\",\n\t\tinput.userText,\n\t\t\"\",\n\t\t\"Final assistant reply:\",\n\t\tinput.assistantText ?? \"\"\n\t].join(\"\\n\");\n}\nfunction resolveSpeechModel(config) {\n\tconst small = typeof config.small_model === \"string\" ? config.small_model.trim() : \"\";\n\tif (small) return small;\n\treturn (typeof config.model === \"string\" ? config.model.trim() : \"\") || null;\n}\nasync function loadSpeechConfig() {\n\ttry {\n\t\treturn await opencodeFetch(\"/config\");\n\t} catch {\n\t\treturn getCurrentConfig();\n\t}\n}\nasync function prepareSpeechText(input) {\n\tconst userText = input.userText.trim();\n\tif (!userText) return null;\n\tif (input.mode === \"chat_reply\" && !input.assistantText?.trim()) return null;\n\tconst persona = readPersona();\n\tconst model = resolveSpeechModel(await loadSpeechConfig());\n\tconst prompt = buildPrompt({\n\t\tmode: input.mode,\n\t\tuserText,\n\t\tassistantText: input.assistantText?.trim(),\n\t\tpersona\n\t});\n\tlet sessionId = \"\";\n\ttry {\n\t\tconst created = await opencodeFetch(\"/session\", {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({})\n\t\t});\n\t\tsessionId = typeof created.id === \"string\" ? created.id : \"\";\n\t\tif (!sessionId) return null;\n\t\treturn extractText(await opencodeFetch(`/session/${encodeURIComponent(sessionId)}/message`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tparts: [{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: prompt\n\t\t\t\t}],\n\t\t\t\t...model ? { model } : {}\n\t\t\t})\n\t\t})) || null;\n\t} finally {\n\t\tif (sessionId) await opencodeFetch(`/session/${encodeURIComponent(sessionId)}`, { method: \"DELETE\" }).catch(() => {});\n\t}\n}\n//#endregion\n//#region src/routes/api/speak/+server.ts\nvar DEFAULT_MODEL = \"kokoro\";\nvar DEFAULT_VOICE = \"bf_isabella\";\nvar DEFAULT_FORMAT = \"wav\";\nvar UPSTREAM_TIMEOUT_MS = 6e4;\nfunction redactKey(s) {\n\treturn s.replace(/(sk-[A-Za-z0-9_-]{4,})/g, \"sk-***\").replace(/(Bearer\\s+)[A-Za-z0-9._-]+/gi, \"$1***\");\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst stackEnv = readStackEnv(getState().stackDir);\n\tconst ttsBaseURL = (stackEnv.OP_TTS_BASE_URL || process.env.OP_TTS_BASE_URL || \"\").trim();\n\tconst ttsModel = (stackEnv.OP_TTS_MODEL || process.env.OP_TTS_MODEL || \"\").trim() || DEFAULT_MODEL;\n\tconst ttsVoice = (stackEnv.OP_TTS_VOICE || process.env.OP_TTS_VOICE || \"\").trim() || DEFAULT_VOICE;\n\tconst ttsApiKey = (process.env.OP_TTS_API_KEY ?? \"\").trim();\n\tif (!ttsBaseURL) return errorResponse(503, \"tts_not_configured\", \"Configure a TTS engine in Admin → Voice settings.\", {}, requestId);\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 b = body ?? {};\n\tconst text = typeof b.text === \"string\" ? b.text.trim() : \"\";\n\tif (!text) return errorResponse(400, \"bad_request\", \"\\\"text\\\" is required\", {}, requestId);\n\tconst mode = b.mode === \"chat_ack\" || b.mode === \"chat_reply\" ? b.mode : null;\n\tconst userText = typeof b.userText === \"string\" ? b.userText.trim() : \"\";\n\tconst assistantText = typeof b.assistantText === \"string\" ? b.assistantText.trim() : \"\";\n\tconst voice = typeof b.voice === \"string\" && b.voice.trim() ? b.voice.trim() : ttsVoice;\n\tconst format = typeof b.format === \"string\" && b.format.trim() ? b.format.trim() : DEFAULT_FORMAT;\n\tlet speechText = text;\n\tif (mode) try {\n\t\tconst prepared = await prepareSpeechText({\n\t\t\tmode,\n\t\t\tuserText,\n\t\t\tassistantText\n\t\t});\n\t\tif (prepared) speechText = prepared;\n\t} catch (err) {\n\t\tconsole.warn(\"[api/speak] speech prep failed; falling back to raw text\", err);\n\t}\n\tconst upstreamUrl = ttsBaseURL.replace(/\\/+$/, \"\") + \"/v1/audio/speech\";\n\tconst headers = { \"content-type\": \"application/json\" };\n\tif (ttsApiKey) headers[\"authorization\"] = `Bearer ${ttsApiKey}`;\n\tlet upstream;\n\ttry {\n\t\tupstream = await fetch(upstreamUrl, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmodel: ttsModel,\n\t\t\t\tvoice,\n\t\t\t\tinput: speechText,\n\t\t\t\tresponse_format: format\n\t\t\t}),\n\t\t\tsignal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)\n\t\t});\n\t} catch (err) {\n\t\treturn errorResponse(502, \"upstream_error\", `Could not reach TTS endpoint: ${redactKey(err instanceof Error ? err.message : String(err))}`, { upstream: upstreamUrl }, requestId);\n\t}\n\tif (!upstream.ok) {\n\t\tconst body = await upstream.text().catch(() => \"\");\n\t\treturn errorResponse(502, \"upstream_error\", `TTS endpoint returned ${upstream.status}`, {\n\t\t\tupstreamStatus: upstream.status,\n\t\t\tbody: redactKey(body).slice(0, 500)\n\t\t}, requestId);\n\t}\n\tconst responseHeaders = new Headers();\n\tresponseHeaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"audio/wav\");\n\tconst contentLength = upstream.headers.get(\"content-length\");\n\tif (contentLength) responseHeaders.set(\"content-length\", contentLength);\n\tresponseHeaders.set(\"x-request-id\", requestId);\n\treturn new Response(upstream.body, {\n\t\tstatus: 200,\n\t\theaders: responseHeaders\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 { a2 as fetchProviderModels, aU as resolveStackDir } from './src-DKq8HP_s.js';
2
+ import { a2 as fetchProviderModels, aU as resolveStackDir } from './src-BrowG4c5.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -58,4 +58,4 @@ var POST = async ({ params, request }) => {
58
58
  };
59
59
 
60
60
  export { POST };
61
- //# sourceMappingURL=_server.ts-DKaB5vC3.js.map
61
+ //# sourceMappingURL=_server.ts-490ZXI8p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DKaB5vC3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/models/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { D as fetchProviderModels, nn as resolveStackDir } from \"../../../../../../chunks/src.js\";\n//#region src/routes/api/setup/models/[provider]/+server.ts\nvar POST = async ({ params, request }) => {\n\tconst provider = decodeURIComponent(params.provider);\n\tlet body = {};\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"invalid_json\",\n\t\t\tmessage: \"Request body must be valid JSON\"\n\t\t}, { status: 400 });\n\t}\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst baseUrl = typeof body.baseUrl === \"string\" ? body.baseUrl : \"\";\n\ttry {\n\t\tconst result = await fetchProviderModels(provider, apiKey, baseUrl, resolveStackDir());\n\t\tif (result.status !== \"ok\") return json({\n\t\t\tok: false,\n\t\t\t...result\n\t\t}, { status: 502 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\t...result\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"model_fetch_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,cAAc;AACxB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACrE,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACxF,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC;AAC1C,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,GAAG;AACN,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG;AACN,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,oBAAoB;AAC9B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-490ZXI8p.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/models/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { D as fetchProviderModels, nn as resolveStackDir } from \"../../../../../../chunks/src.js\";\n//#region src/routes/api/setup/models/[provider]/+server.ts\nvar POST = async ({ params, request }) => {\n\tconst provider = decodeURIComponent(params.provider);\n\tlet body = {};\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"invalid_json\",\n\t\t\tmessage: \"Request body must be valid JSON\"\n\t\t}, { status: 400 });\n\t}\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst baseUrl = typeof body.baseUrl === \"string\" ? body.baseUrl : \"\";\n\ttry {\n\t\tconst result = await fetchProviderModels(provider, apiKey, baseUrl, resolveStackDir());\n\t\tif (result.status !== \"ok\") return json({\n\t\t\tok: false,\n\t\t\t...result\n\t\t}, { status: 502 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\t...result\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"model_fetch_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC,IAAI,IAAI,GAAG,EAAE;AACd,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,cAAc;AACxB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACrE,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACxF,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC;AAC1C,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,GAAG;AACN,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG;AACN,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,oBAAoB;AAC9B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { R as detectLocalProviders, G as createLogger } from './src-DKq8HP_s.js';
2
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, k as jsonResponse, e as errorResponse, g as getOpenCodeClient } from './helpers-C5ooRtVL.js';
3
- import { b as setProviderOptions, p as patchConfig, a as setProviderEnabled, g as getCurrentConfig, r as registerProvider, s as setMainModel } from './config-BsGMOYU-.js';
1
+ import { R as detectLocalProviders, G as createLogger } from './src-BrowG4c5.js';
2
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, k as jsonResponse, e as errorResponse, g as getOpenCodeClient } from './helpers-TBhHA7BL.js';
3
+ import { b as setProviderOptions, p as patchConfig, a as setProviderEnabled, g as getCurrentConfig, r as registerProvider, s as setMainModel } from './config-36DEvVZH.js';
4
4
  import { a as asStringOrEmpty, p as parseHeaders, d as updateNumberOption, u as updateBooleanOption, c as parseModels, b as buildModelConfig } from './_helpers-B_lb4-jB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -23,10 +23,10 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-TKIfBd1B.js';
27
- import './state-B1kC-_xl.js';
26
+ import './endpoints-DIQ-qrrL.js';
27
+ import './state-uRAQa1hp.js';
28
28
  import './coercion-TNFJisCC.js';
29
- import './http-BKevFr5r.js';
29
+ import './http-D1XmiUzn.js';
30
30
 
31
31
  //#region src/routes/admin/providers/[id]/+server.ts
32
32
  var logger = createLogger("admin.providers.patch");
@@ -200,4 +200,4 @@ var PATCH = async (event) => {
200
200
  };
201
201
 
202
202
  export { PATCH };
203
- //# sourceMappingURL=_server.ts-DT13Lylg.js.map
203
+ //# sourceMappingURL=_server.ts-5Ws42wvy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DT13Lylg.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_id_/_server.ts.js"],"sourcesContent":["import { bn as createLogger, u as detectLocalProviders } from \"../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { a as setProviderEnabled, i as setMainModel, n as patchConfig, o as setProviderOptions, r as registerProvider, t as getCurrentConfig } from \"../../../../../chunks/config.js\";\nimport { a as parseModels, i as parseHeaders, n as buildModelConfig, o as updateBooleanOption, s as updateNumberOption, t as asStringOrEmpty } from \"../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/[id]/+server.ts\nvar logger = createLogger(\"admin.providers.patch\");\n/** Allowed format for a custom provider id */\nvar CUSTOM_PROVIDER_ID_PATTERN = /^[a-z0-9_-]+$/;\nvar LOCAL_PROVIDER_LABELS = {\n\tollama: \"Local Ollama\",\n\tlmstudio: \"Local LM Studio\",\n\t\"model-runner\": \"Docker Model Runner\"\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst kind = typeof body.kind === \"string\" ? body.kind : \"\";\n\tif (kind === \"options\") try {\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst enterpriseUrl = asStringOrEmpty(body.enterpriseUrl);\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headers));\n\t\tconst nextOptions = {};\n\t\tupdateNumberOption(nextOptions, \"timeout\", asStringOrEmpty(body.timeout));\n\t\tupdateBooleanOption(nextOptions, \"setCacheKey\", body.setCacheKey === \"on\" || body.setCacheKey === true);\n\t\tawait setProviderOptions(providerId, {\n\t\t\tbaseURL: baseURL || void 0,\n\t\t\tenterpriseUrl: enterpriseUrl || void 0,\n\t\t\ttimeout: typeof nextOptions.timeout === \"number\" ? nextOptions.timeout : void 0,\n\t\t\tsetCacheKey: nextOptions.setCacheKey === true,\n\t\t\theaders: headers && Object.keys(headers).length > 0 ? headers : null\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Provider settings saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"toggle\") try {\n\t\tconst nextState = asStringOrEmpty(body.enabled) === \"true\" || body.enabled === true;\n\t\tawait patchConfig(setProviderEnabled(await getCurrentConfig(), providerId, nextState));\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: nextState ? \"Provider enabled for model selection.\" : \"Provider disabled for this workspace.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-local\") try {\n\t\tif (!Object.prototype.hasOwnProperty.call(LOCAL_PROVIDER_LABELS, providerId)) return errorResponse(400, \"bad_request\", \"provider must be one of: ollama, lmstudio, model-runner\", {}, requestId);\n\t\tconst match = (await detectLocalProviders()).find((d) => d.provider === providerId);\n\t\tif (!match || !match.available) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: `No reachable ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} endpoint found.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst existingEntry = ((await getCurrentConfig()).provider ?? {})[providerId];\n\t\tconst existingOptions = existingEntry?.options ?? {};\n\t\tawait registerProvider(providerId, {\n\t\t\tnpm: typeof existingEntry?.npm === \"string\" ? existingEntry.npm : \"@ai-sdk/openai-compatible\",\n\t\t\tname: typeof existingEntry?.name === \"string\" ? existingEntry.name : LOCAL_PROVIDER_LABELS[providerId] ?? providerId,\n\t\t\toptions: {\n\t\t\t\t...existingOptions,\n\t\t\t\tbaseURL: match.url\n\t\t\t}\n\t\t}, true);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: `Registered ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} at ${match.url}.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-custom\") try {\n\t\tconst displayName = asStringOrEmpty(body.displayName);\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst apiKey = asStringOrEmpty(body.apiKey);\n\t\tconst confirmOverwrite = asStringOrEmpty(body.confirmOverwrite) === \"true\";\n\t\tif (!CUSTOM_PROVIDER_ID_PATTERN.test(providerId)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Use a lowercase provider id with letters, numbers, hyphens, or underscores.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tif (!displayName || !baseURL) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Display name and base URL are required for a custom provider.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst models = parseModels(asStringOrEmpty(body.modelsJson));\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headersJson));\n\t\tconst entry = {\n\t\t\tnpm: \"@ai-sdk/openai-compatible\",\n\t\t\tname: displayName,\n\t\t\toptions: {\n\t\t\t\tbaseURL,\n\t\t\t\t...Object.keys(headers).length > 0 ? { headers } : {}\n\t\t\t}\n\t\t};\n\t\tif (models.length > 0) entry.models = Object.fromEntries(models.map((m) => [m.id, buildModelConfig(m)]));\n\t\tif ((await registerProvider(providerId, entry, confirmOverwrite)).alreadyExists) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"A provider with this ID already exists. Enable overwrite to replace it.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tif (apiKey) try {\n\t\t\tconst authResult = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\t\tif (!authResult.ok) logger.warn(\"custom provider apiKey save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\tcode: authResult.code,\n\t\t\t\tmessage: authResult.message,\n\t\t\t\trequestId\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.warn(\"custom provider apiKey threw\", {\n\t\t\t\tproviderId,\n\t\t\t\terror: String(err),\n\t\t\t\trequestId\n\t\t\t});\n\t\t}\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Custom provider saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"set-model\") try {\n\t\tconst modelId = asStringOrEmpty(body.modelId);\n\t\tconst target = asStringOrEmpty(body.target);\n\t\tif (!modelId || target !== \"model\" && target !== \"small_model\") return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider model before saving it.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tawait setMainModel(providerId, modelId, target);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: target === \"model\" ? \"Main model updated for this project.\" : \"Small model updated for lightweight tasks.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", `Unknown kind \"${kind}\". Expected: options, toggle, register-local, register-custom, set-model`, {}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-5Ws42wvy.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_id_/_server.ts.js"],"sourcesContent":["import { bn as createLogger, u as detectLocalProviders } from \"../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { a as setProviderEnabled, i as setMainModel, n as patchConfig, o as setProviderOptions, r as registerProvider, t as getCurrentConfig } from \"../../../../../chunks/config.js\";\nimport { a as parseModels, i as parseHeaders, n as buildModelConfig, o as updateBooleanOption, s as updateNumberOption, t as asStringOrEmpty } from \"../../../../../chunks/_helpers.js\";\n//#region src/routes/admin/providers/[id]/+server.ts\nvar logger = createLogger(\"admin.providers.patch\");\n/** Allowed format for a custom provider id */\nvar CUSTOM_PROVIDER_ID_PATTERN = /^[a-z0-9_-]+$/;\nvar LOCAL_PROVIDER_LABELS = {\n\tollama: \"Local Ollama\",\n\tlmstudio: \"Local LM Studio\",\n\t\"model-runner\": \"Docker Model Runner\"\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst kind = typeof body.kind === \"string\" ? body.kind : \"\";\n\tif (kind === \"options\") try {\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst enterpriseUrl = asStringOrEmpty(body.enterpriseUrl);\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headers));\n\t\tconst nextOptions = {};\n\t\tupdateNumberOption(nextOptions, \"timeout\", asStringOrEmpty(body.timeout));\n\t\tupdateBooleanOption(nextOptions, \"setCacheKey\", body.setCacheKey === \"on\" || body.setCacheKey === true);\n\t\tawait setProviderOptions(providerId, {\n\t\t\tbaseURL: baseURL || void 0,\n\t\t\tenterpriseUrl: enterpriseUrl || void 0,\n\t\t\ttimeout: typeof nextOptions.timeout === \"number\" ? nextOptions.timeout : void 0,\n\t\t\tsetCacheKey: nextOptions.setCacheKey === true,\n\t\t\theaders: headers && Object.keys(headers).length > 0 ? headers : null\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Provider settings saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"toggle\") try {\n\t\tconst nextState = asStringOrEmpty(body.enabled) === \"true\" || body.enabled === true;\n\t\tawait patchConfig(setProviderEnabled(await getCurrentConfig(), providerId, nextState));\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: nextState ? \"Provider enabled for model selection.\" : \"Provider disabled for this workspace.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-local\") try {\n\t\tif (!Object.prototype.hasOwnProperty.call(LOCAL_PROVIDER_LABELS, providerId)) return errorResponse(400, \"bad_request\", \"provider must be one of: ollama, lmstudio, model-runner\", {}, requestId);\n\t\tconst match = (await detectLocalProviders()).find((d) => d.provider === providerId);\n\t\tif (!match || !match.available) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: `No reachable ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} endpoint found.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst existingEntry = ((await getCurrentConfig()).provider ?? {})[providerId];\n\t\tconst existingOptions = existingEntry?.options ?? {};\n\t\tawait registerProvider(providerId, {\n\t\t\tnpm: typeof existingEntry?.npm === \"string\" ? existingEntry.npm : \"@ai-sdk/openai-compatible\",\n\t\t\tname: typeof existingEntry?.name === \"string\" ? existingEntry.name : LOCAL_PROVIDER_LABELS[providerId] ?? providerId,\n\t\t\toptions: {\n\t\t\t\t...existingOptions,\n\t\t\t\tbaseURL: match.url\n\t\t\t}\n\t\t}, true);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: `Registered ${LOCAL_PROVIDER_LABELS[providerId] ?? providerId} at ${match.url}.`,\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t}\n\tif (kind === \"register-custom\") try {\n\t\tconst displayName = asStringOrEmpty(body.displayName);\n\t\tconst baseURL = asStringOrEmpty(body.baseURL);\n\t\tconst apiKey = asStringOrEmpty(body.apiKey);\n\t\tconst confirmOverwrite = asStringOrEmpty(body.confirmOverwrite) === \"true\";\n\t\tif (!CUSTOM_PROVIDER_ID_PATTERN.test(providerId)) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Use a lowercase provider id with letters, numbers, hyphens, or underscores.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tif (!displayName || !baseURL) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Display name and base URL are required for a custom provider.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tconst models = parseModels(asStringOrEmpty(body.modelsJson));\n\t\tconst headers = parseHeaders(asStringOrEmpty(body.headersJson));\n\t\tconst entry = {\n\t\t\tnpm: \"@ai-sdk/openai-compatible\",\n\t\t\tname: displayName,\n\t\t\toptions: {\n\t\t\t\tbaseURL,\n\t\t\t\t...Object.keys(headers).length > 0 ? { headers } : {}\n\t\t\t}\n\t\t};\n\t\tif (models.length > 0) entry.models = Object.fromEntries(models.map((m) => [m.id, buildModelConfig(m)]));\n\t\tif ((await registerProvider(providerId, entry, confirmOverwrite)).alreadyExists) return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"A provider with this ID already exists. Enable overwrite to replace it.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t\tif (apiKey) try {\n\t\t\tconst authResult = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\t\tif (!authResult.ok) logger.warn(\"custom provider apiKey save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\tcode: authResult.code,\n\t\t\t\tmessage: authResult.message,\n\t\t\t\trequestId\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tlogger.warn(\"custom provider apiKey threw\", {\n\t\t\t\tproviderId,\n\t\t\t\terror: String(err),\n\t\t\t\trequestId\n\t\t\t});\n\t\t}\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: \"Custom provider saved.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\tif (kind === \"set-model\") try {\n\t\tconst modelId = asStringOrEmpty(body.modelId);\n\t\tconst target = asStringOrEmpty(body.target);\n\t\tif (!modelId || target !== \"model\" && target !== \"small_model\") return jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: \"Choose a provider model before saving it.\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t\tawait setMainModel(providerId, modelId, target);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmessage: target === \"model\" ? \"Main model updated for this project.\" : \"Small model updated for lightweight tasks.\",\n\t\t\tselectedProviderId: providerId\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn jsonResponse(200, {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\tselectedProviderId: void 0\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", `Unknown kind \"${kind}\". Expected: options, toggle, register-local, register-custom, set-model`, {}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { G as createLogger, X as ensureHomeDirs, Z as ensureOpenCodeConfig, _ as ensureOpenCodeSystemConfig, f as applyUpdate, o as checkDocker, n as buildManagedServices, m as buildComposeOptions, w as composePull, F as composeUp, at as parseComposeStderr, a$ as summarizeComposeStderr } 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 { G as createLogger, X as ensureHomeDirs, Z as ensureOpenCodeConfig, _ as ensureOpenCodeSystemConfig, f as applyUpdate, o as checkDocker, n as buildManagedServices, m as buildComposeOptions, w as composePull, F as composeUp, at as parseComposeStderr, a$ as summarizeComposeStderr } 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 { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-TKIfBd1B.js';
26
+ import './endpoints-DIQ-qrrL.js';
27
27
 
28
28
  //#region src/routes/admin/update/+server.ts
29
29
  var logger = createLogger("update");
@@ -110,4 +110,4 @@ var POST = async (event) => {
110
110
  };
111
111
 
112
112
  export { POST };
113
- //# sourceMappingURL=_server.ts-BVZsP2Zn.js.map
113
+ //# sourceMappingURL=_server.ts-B-qcLr8p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BVZsP2Zn.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/update/_server.ts.js"],"sourcesContent":["import { $t as ensureOpenCodeSystemConfig, F as parseComposeStderr, H as applyUpdate, I as summarizeComposeStderr, L as buildComposeOptions, Rt as ensureOpenCodeConfig, U as buildManagedServices, bn as createLogger, en as ensureHomeDirs, ft as composeUp, st as composePull, 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\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/update/+server.ts\nvar logger = createLogger(\"update\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"update request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:update\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tconst result = await applyUpdate(state);\n\t\t\tlogger.info(\"update applied, re-running compose\", {\n\t\t\t\trequestId,\n\t\t\t\tintended: result.restarted\n\t\t\t});\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tconst intendedServices = await buildManagedServices(state);\n\t\t\tlet restarted = [];\n\t\t\tlet failed = [];\n\t\t\tlet dockerError;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tconst composeOpts = buildComposeOptions(state);\n\t\t\t\tconst pullResult = await composePull(composeOpts);\n\t\t\t\tif (!pullResult.ok) logger.warn(\"update: image pull failed — recreating from local images\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tstderr: pullResult.stderr?.slice(0, 300)\n\t\t\t\t});\n\t\t\t\tconst composeResult = await composeUp({\n\t\t\t\t\t...composeOpts,\n\t\t\t\t\tservices: intendedServices,\n\t\t\t\t\tforceRecreate: true\n\t\t\t\t});\n\t\t\t\tif (composeResult.ok) restarted = intendedServices;\n\t\t\t\telse {\n\t\t\t\t\tfailed = parseComposeStderr(composeResult.stderr);\n\t\t\t\t\tconst failedNames = new Set(failed.map((f) => f.service));\n\t\t\t\t\trestarted = intendedServices.filter((s) => !failedNames.has(s));\n\t\t\t\t\tif (failed.length === 0) {\n\t\t\t\t\t\tfailed = [{\n\t\t\t\t\t\t\tservice: \"stack\",\n\t\t\t\t\t\t\treason: summarizeComposeStderr(composeResult.stderr) || `docker compose exited with code ${composeResult.code}`\n\t\t\t\t\t\t}];\n\t\t\t\t\t\trestarted = [];\n\t\t\t\t\t}\n\t\t\t\t\tdockerError = summarizeComposeStderr(composeResult.stderr);\n\t\t\t\t\tlogger.warn(\"compose up reported failures\", {\n\t\t\t\t\t\trequestId,\n\t\t\t\t\t\tcode: composeResult.code,\n\t\t\t\t\t\tfailed,\n\t\t\t\t\t\trestarted\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst overallSuccess = dockerCheck.ok && failed.length === 0;\n\t\t\tconst status = failed.length > 0 ? 502 : 200;\n\t\t\tlogger.info(\"update completed\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\toverallSuccess,\n\t\t\t\trestartedCount: restarted.length,\n\t\t\t\tfailedCount: failed.length\n\t\t\t});\n\t\t\treturn jsonResponse(status, {\n\t\t\t\tok: overallSuccess,\n\t\t\t\trestarted,\n\t\t\t\tfailed,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\toverallSuccess,\n\t\t\t\t...dockerError ? { error: dockerError } : {}\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"update failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"update_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-B-qcLr8p.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/update/_server.ts.js"],"sourcesContent":["import { $t as ensureOpenCodeSystemConfig, F as parseComposeStderr, H as applyUpdate, I as summarizeComposeStderr, L as buildComposeOptions, Rt as ensureOpenCodeConfig, U as buildManagedServices, bn as createLogger, en as ensureHomeDirs, ft as composeUp, st as composePull, 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\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/update/+server.ts\nvar logger = createLogger(\"update\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"update request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:update\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tconst result = await applyUpdate(state);\n\t\t\tlogger.info(\"update applied, re-running compose\", {\n\t\t\t\trequestId,\n\t\t\t\tintended: result.restarted\n\t\t\t});\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tconst intendedServices = await buildManagedServices(state);\n\t\t\tlet restarted = [];\n\t\t\tlet failed = [];\n\t\t\tlet dockerError;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tconst composeOpts = buildComposeOptions(state);\n\t\t\t\tconst pullResult = await composePull(composeOpts);\n\t\t\t\tif (!pullResult.ok) logger.warn(\"update: image pull failed — recreating from local images\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tstderr: pullResult.stderr?.slice(0, 300)\n\t\t\t\t});\n\t\t\t\tconst composeResult = await composeUp({\n\t\t\t\t\t...composeOpts,\n\t\t\t\t\tservices: intendedServices,\n\t\t\t\t\tforceRecreate: true\n\t\t\t\t});\n\t\t\t\tif (composeResult.ok) restarted = intendedServices;\n\t\t\t\telse {\n\t\t\t\t\tfailed = parseComposeStderr(composeResult.stderr);\n\t\t\t\t\tconst failedNames = new Set(failed.map((f) => f.service));\n\t\t\t\t\trestarted = intendedServices.filter((s) => !failedNames.has(s));\n\t\t\t\t\tif (failed.length === 0) {\n\t\t\t\t\t\tfailed = [{\n\t\t\t\t\t\t\tservice: \"stack\",\n\t\t\t\t\t\t\treason: summarizeComposeStderr(composeResult.stderr) || `docker compose exited with code ${composeResult.code}`\n\t\t\t\t\t\t}];\n\t\t\t\t\t\trestarted = [];\n\t\t\t\t\t}\n\t\t\t\t\tdockerError = summarizeComposeStderr(composeResult.stderr);\n\t\t\t\t\tlogger.warn(\"compose up reported failures\", {\n\t\t\t\t\t\trequestId,\n\t\t\t\t\t\tcode: composeResult.code,\n\t\t\t\t\t\tfailed,\n\t\t\t\t\t\trestarted\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst overallSuccess = dockerCheck.ok && failed.length === 0;\n\t\t\tconst status = failed.length > 0 ? 502 : 200;\n\t\t\tlogger.info(\"update completed\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\toverallSuccess,\n\t\t\t\trestartedCount: restarted.length,\n\t\t\t\tfailedCount: failed.length\n\t\t\t});\n\t\t\treturn jsonResponse(status, {\n\t\t\t\tok: overallSuccess,\n\t\t\t\trestarted,\n\t\t\t\tfailed,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\toverallSuccess,\n\t\t\t\t...dockerError ? { error: dockerError } : {}\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"update failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"update_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { aK as removeSecretFile, aC as readSecretFile, b5 as writeSecretFile, g as assertSafeSecretFilename } 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, p as parseJsonBody, j as jsonBodyError } from './helpers-C5ooRtVL.js';
1
+ import { aK as removeSecretFile, aC as readSecretFile, b5 as writeSecretFile, g as assertSafeSecretFilename } 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, p as parseJsonBody, j as jsonBodyError } 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/secrets/[name]/+server.ts
28
28
  function guardName(name, requestId) {
@@ -79,4 +79,4 @@ var DELETE = async (event) => {
79
79
  };
80
80
 
81
81
  export { DELETE, GET, PUT };
82
- //# sourceMappingURL=_server.ts-Z0qgxs3B.js.map
82
+ //# sourceMappingURL=_server.ts-B0fcbzv5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Z0qgxs3B.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Gt as assertSafeSecretFilename, Jt as readSecretFile, Xt as writeSecretFile, Yt as removeSecretFile } 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/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-B0fcbzv5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Gt as assertSafeSecretFilename, Jt as readSecretFile, Xt as writeSecretFile, Yt as removeSecretFile } 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/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { aq as loadAutomations } 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 { aq as loadAutomations } 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/automations/+server.ts
28
28
  var GET = async (event) => {
@@ -46,4 +46,4 @@ var GET = async (event) => {
46
46
  };
47
47
 
48
48
  export { GET };
49
- //# sourceMappingURL=_server.ts-C5U2sP0v.js.map
49
+ //# sourceMappingURL=_server.ts-B1Mv6wb7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C5U2sP0v.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { f as loadAutomations } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
1
+ {"version":3,"file":"_server.ts-B1Mv6wb7.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_server.ts.js"],"sourcesContent":["import { f as loadAutomations } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
@@ -1,6 +1,6 @@
1
- import { Y as ensureMigrated, M as MigrationError, X as ensureHomeDirs, Z as ensureOpenCodeConfig, _ as ensureOpenCodeSystemConfig, a0 as ensureSecrets, o as checkDocker, ax as performUpgrade, aj as isPrerelease, P as PLATFORM_VERSION, 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, e as errorResponse, k as jsonResponse } from './helpers-C5ooRtVL.js';
1
+ import { Y as ensureMigrated, M as MigrationError, X as ensureHomeDirs, Z as ensureOpenCodeConfig, _ as ensureOpenCodeSystemConfig, a0 as ensureSecrets, o as checkDocker, ax as performUpgrade, aj as isPrerelease, P as PLATFORM_VERSION, G as createLogger } 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/upgrade/+server.ts
28
28
  var logger = createLogger("upgrade");
@@ -93,4 +93,4 @@ var POST = async (event) => {
93
93
  };
94
94
 
95
95
  export { POST };
96
- //# sourceMappingURL=_server.ts-DsAtWxIB.js.map
96
+ //# sourceMappingURL=_server.ts-B1m6hKUq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DsAtWxIB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/upgrade/_server.ts.js"],"sourcesContent":["import { $t as ensureOpenCodeSystemConfig, K as performUpgrade, Rt as ensureOpenCodeConfig, an as ensureMigrated, bn as createLogger, en as ensureHomeDirs, fn as isPrerelease, in as MigrationError, ln as PLATFORM_VERSION, tt as checkDocker, zt as ensureSecrets } 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/upgrade/+server.ts\nvar logger = createLogger(\"upgrade\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"upgrade request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\ttry {\n\t\tconst report = ensureMigrated();\n\t\tif (report.migrated) logger.info(\"layout migrated\", {\n\t\t\trequestId,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\tbackupDir: report.backupDir,\n\t\t\tnotes: report.notes\n\t\t});\n\t} catch (e) {\n\t\tif (e instanceof MigrationError) {\n\t\t\tlogger.error(\"auto-migration aborted\", {\n\t\t\t\trequestId,\n\t\t\t\terror: e.message,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t});\n\t\t\treturn errorResponse(500, \"migration_failed\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t}, requestId);\n\t\t}\n\t\tthrow e;\n\t}\n\tconst state = getState();\n\tensureHomeDirs();\n\tensureOpenCodeConfig();\n\tensureOpenCodeSystemConfig();\n\tensureSecrets(state);\n\tconst dockerCheck = await checkDocker();\n\tif (!dockerCheck.ok) {\n\t\tlogger.error(\"upgrade aborted: docker unavailable\", {\n\t\t\trequestId,\n\t\t\tstderr: dockerCheck.stderr\n\t\t});\n\t\treturn errorResponse(503, \"docker_unavailable\", \"Docker is not available\", { stderr: dockerCheck.stderr }, requestId);\n\t}\n\tlet result;\n\ttry {\n\t\tresult = await performUpgrade(state, { allowPrerelease: isPrerelease(PLATFORM_VERSION) });\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"upgrade failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"upgrade_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"upgrade completed\", {\n\t\trequestId,\n\t\timageTag: result.imageTag,\n\t\tassetsUpdated: result.assetsUpdated\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\timageTag: result.imageTag,\n\t\tbackupDir: result.backupDir,\n\t\tassetsUpdated: result.assetsUpdated,\n\t\trestarted: result.restarted\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-B1m6hKUq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/upgrade/_server.ts.js"],"sourcesContent":["import { $t as ensureOpenCodeSystemConfig, K as performUpgrade, Rt as ensureOpenCodeConfig, an as ensureMigrated, bn as createLogger, en as ensureHomeDirs, fn as isPrerelease, in as MigrationError, ln as PLATFORM_VERSION, tt as checkDocker, zt as ensureSecrets } 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/upgrade/+server.ts\nvar logger = createLogger(\"upgrade\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"upgrade request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\ttry {\n\t\tconst report = ensureMigrated();\n\t\tif (report.migrated) logger.info(\"layout migrated\", {\n\t\t\trequestId,\n\t\t\tfrom: report.from,\n\t\t\tto: report.to,\n\t\t\tbackupDir: report.backupDir,\n\t\t\tnotes: report.notes\n\t\t});\n\t} catch (e) {\n\t\tif (e instanceof MigrationError) {\n\t\t\tlogger.error(\"auto-migration aborted\", {\n\t\t\t\trequestId,\n\t\t\t\terror: e.message,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t});\n\t\t\treturn errorResponse(500, \"migration_failed\", e.message, {\n\t\t\t\tguidance: e.guidance,\n\t\t\t\tbackupDir: e.backupDir\n\t\t\t}, requestId);\n\t\t}\n\t\tthrow e;\n\t}\n\tconst state = getState();\n\tensureHomeDirs();\n\tensureOpenCodeConfig();\n\tensureOpenCodeSystemConfig();\n\tensureSecrets(state);\n\tconst dockerCheck = await checkDocker();\n\tif (!dockerCheck.ok) {\n\t\tlogger.error(\"upgrade aborted: docker unavailable\", {\n\t\t\trequestId,\n\t\t\tstderr: dockerCheck.stderr\n\t\t});\n\t\treturn errorResponse(503, \"docker_unavailable\", \"Docker is not available\", { stderr: dockerCheck.stderr }, requestId);\n\t}\n\tlet result;\n\ttry {\n\t\tresult = await performUpgrade(state, { allowPrerelease: isPrerelease(PLATFORM_VERSION) });\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"upgrade failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"upgrade_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"upgrade completed\", {\n\t\trequestId,\n\t\timageTag: result.imageTag,\n\t\tassetsUpdated: result.assetsUpdated\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\timageTag: result.imageTag,\n\t\tbackupDir: result.backupDir,\n\t\tassetsUpdated: result.assetsUpdated,\n\t\trestarted: result.restarted\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
2
  import { a as PROVIDER_KEY_MAP } from './provider-constants-DPrj3yBX.js';
3
- import { ak as isSetupComplete, aU as resolveStackDir, O as detectGpu, R as detectLocalProviders, Q as detectHostOpenCode, aJ as recommendSetup, i as authJsonPath } from './src-DKq8HP_s.js';
4
- import { g as getState } from './state-B1kC-_xl.js';
5
- import { r as requireAdmin, d as getRequestId, g as getOpenCodeClient } from './helpers-C5ooRtVL.js';
3
+ import { ak as isSetupComplete, aU as resolveStackDir, O as detectGpu, R as detectLocalProviders, Q as detectHostOpenCode, aJ as recommendSetup, i as authJsonPath } from './src-BrowG4c5.js';
4
+ import { g as getState } from './state-uRAQa1hp.js';
5
+ import { r as requireAdmin, d as getRequestId, g as getOpenCodeClient } from './helpers-TBhHA7BL.js';
6
6
  import { existsSync, readFileSync } from 'node:fs';
7
7
  import './utils-BSRjJDrZ.js';
8
8
  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/api/setup/recommend/+server.ts
30
30
  /** Local providers are detected separately as host providers — exclude from "cloud". */
@@ -97,4 +97,4 @@ var GET = async (event) => {
97
97
  };
98
98
 
99
99
  export { GET };
100
- //# sourceMappingURL=_server.ts-DtksQCAE.js.map
100
+ //# sourceMappingURL=_server.ts-BBSxI0YB.js.map