@openpalm/ui 0.11.5-rc.3 → 0.11.5-rc.5

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 (390) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css +1 -0
  3. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.br +0 -0
  4. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/7.CtszQVIX.css +1 -0
  6. package/build/client/_app/immutable/assets/7.CtszQVIX.css.br +0 -0
  7. package/build/client/_app/immutable/assets/7.CtszQVIX.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css +1 -0
  9. package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css.br +0 -0
  10. package/build/client/_app/immutable/assets/ChatMessage.09JQ9G_F.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/B0yFRekZ.js +3 -0
  12. package/build/client/_app/immutable/chunks/B0yFRekZ.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/B0yFRekZ.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/B6TDOH9N.js +5 -0
  15. package/build/client/_app/immutable/chunks/B6TDOH9N.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/B6TDOH9N.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{BQ0vnNWj.js → BAaXfhM-.js} +1 -1
  18. package/build/client/_app/immutable/chunks/BAaXfhM-.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/BAaXfhM-.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/BKYOLYrG.js +15 -0
  21. package/build/client/_app/immutable/chunks/BKYOLYrG.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BKYOLYrG.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{irujFCsS.js → B_FOicoS.js} +1 -1
  24. package/build/client/_app/immutable/chunks/B_FOicoS.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/B_FOicoS.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/Bc91qquS.js +1 -0
  27. package/build/client/_app/immutable/chunks/Bc91qquS.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/Bc91qquS.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{CDS1U3lf.js → C0etjiv9.js} +2 -2
  30. package/build/client/_app/immutable/chunks/C0etjiv9.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/C0etjiv9.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/CDYZd3Dt.js +1 -0
  33. package/build/client/_app/immutable/chunks/CDYZd3Dt.js.br +1 -0
  34. package/build/client/_app/immutable/chunks/CDYZd3Dt.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{BTsRblfw.js → CghSfF6U.js} +1 -1
  36. package/build/client/_app/immutable/chunks/CghSfF6U.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/CghSfF6U.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/DTZmSm97.js +1 -0
  39. package/build/client/_app/immutable/chunks/DTZmSm97.js.br +2 -0
  40. package/build/client/_app/immutable/chunks/DTZmSm97.js.gz +0 -0
  41. package/build/client/_app/immutable/entry/app.CIC2xFmj.js +2 -0
  42. package/build/client/_app/immutable/entry/app.CIC2xFmj.js.br +0 -0
  43. package/build/client/_app/immutable/entry/app.CIC2xFmj.js.gz +0 -0
  44. package/build/client/_app/immutable/entry/start.PCdanKMO.js +1 -0
  45. package/build/client/_app/immutable/entry/start.PCdanKMO.js.br +0 -0
  46. package/build/client/_app/immutable/entry/start.PCdanKMO.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js +1 -0
  48. package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/1.BhQMYP2N.js +1 -0
  51. package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.br +3 -0
  52. package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js +1 -0
  54. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js +1 -0
  57. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/4.B9yFE6HR.js +19 -0
  60. package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/5.BeNqQzJI.js +4 -0
  63. package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.gz +0 -0
  65. package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js +1 -0
  66. package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.br +0 -0
  67. package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.gz +0 -0
  68. package/build/client/_app/immutable/nodes/7.D4yXtdUW.js +1 -0
  69. package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.br +0 -0
  70. package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.gz +0 -0
  71. package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js +1 -0
  72. package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.br +0 -0
  73. package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js +5 -0
  75. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.br +0 -0
  76. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.gz +0 -0
  77. package/build/client/_app/version.json +1 -1
  78. package/build/client/_app/version.json.br +1 -1
  79. package/build/client/_app/version.json.gz +0 -0
  80. package/build/server/chunks/0-C0Wm0uh4.js +9 -0
  81. package/build/server/chunks/{0-BGsPZcaQ.js.map → 0-C0Wm0uh4.js.map} +1 -1
  82. package/build/server/chunks/1-BO1FboQo.js +9 -0
  83. package/build/server/chunks/{1-Daoybjaw.js.map → 1-BO1FboQo.js.map} +1 -1
  84. package/build/server/chunks/{2-DQWoUtW1.js → 2-wNOz2qR7.js} +2 -2
  85. package/build/server/chunks/{2-DQWoUtW1.js.map → 2-wNOz2qR7.js.map} +1 -1
  86. package/build/server/chunks/{3-COIGgysA.js → 3-CMcVVZ5t.js} +2 -2
  87. package/build/server/chunks/{3-COIGgysA.js.map → 3-CMcVVZ5t.js.map} +1 -1
  88. package/build/server/chunks/4-Cy42KZEq.js +9 -0
  89. package/build/server/chunks/4-Cy42KZEq.js.map +1 -0
  90. package/build/server/chunks/5-wTAacz_u.js +9 -0
  91. package/build/server/chunks/{5-BfmhtNP9.js.map → 5-wTAacz_u.js.map} +1 -1
  92. package/build/server/chunks/6-CwuJSZNK.js +9 -0
  93. package/build/server/chunks/{6-AcylLX8-.js.map → 6-CwuJSZNK.js.map} +1 -1
  94. package/build/server/chunks/7-BhucvAxb.js +9 -0
  95. package/build/server/chunks/7-BhucvAxb.js.map +1 -0
  96. package/build/server/chunks/{8-DMgWQQBm.js → 8-BbmPm5QQ.js} +3 -3
  97. package/build/server/chunks/{8-DMgWQQBm.js.map → 8-BbmPm5QQ.js.map} +1 -1
  98. package/build/server/chunks/{9-CGVsBC0_.js → 9-BCmr-315.js} +2 -2
  99. package/build/server/chunks/{9-CGVsBC0_.js.map → 9-BCmr-315.js.map} +1 -1
  100. package/build/server/chunks/{_page.svelte-C0eMsRDk.js → ChatMessage-DV_A9qbU.js} +8 -105
  101. package/build/server/chunks/ChatMessage-DV_A9qbU.js.map +1 -0
  102. package/build/server/chunks/{Navbar-C9kE6wR-.js → Navbar-Djg-dawo.js} +490 -38
  103. package/build/server/chunks/Navbar-Djg-dawo.js.map +1 -0
  104. package/build/server/chunks/{_layout.svelte-DCfzq18z.js → _layout.svelte-DzBCdyUD.js} +2 -2
  105. package/build/server/chunks/{_layout.svelte-DCfzq18z.js.map → _layout.svelte-DzBCdyUD.js.map} +1 -1
  106. package/build/server/chunks/{_page.svelte-BA7DptUV.js → _page.svelte-0Fseybo3.js} +3 -3
  107. package/build/server/chunks/{_page.svelte-BA7DptUV.js.map → _page.svelte-0Fseybo3.js.map} +1 -1
  108. package/build/server/chunks/{_page.svelte-B3FJ13Ci.js → _page.svelte-C41AgWxR.js} +6 -6
  109. package/build/server/chunks/{_page.svelte-B3FJ13Ci.js.map → _page.svelte-C41AgWxR.js.map} +1 -1
  110. package/build/server/chunks/{_page.svelte-Dnt12F6c.js → _page.svelte-CF0NIwNQ.js} +6 -6
  111. package/build/server/chunks/{_page.svelte-Dnt12F6c.js.map → _page.svelte-CF0NIwNQ.js.map} +1 -1
  112. package/build/server/chunks/_page.svelte-DHges4Pl.js +326 -0
  113. package/build/server/chunks/_page.svelte-DHges4Pl.js.map +1 -0
  114. package/build/server/chunks/{_page.svelte-Dl3WoXNo.js → _page.svelte-GBRvAIuJ.js} +229 -12
  115. package/build/server/chunks/_page.svelte-GBRvAIuJ.js.map +1 -0
  116. package/build/server/chunks/{_server.ts-3JO3CKsE.js → _server.ts-1QDB0bka.js} +4 -4
  117. package/build/server/chunks/{_server.ts-3JO3CKsE.js.map → _server.ts-1QDB0bka.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-D8cp-Em3.js → _server.ts-8gRao4pC.js} +4 -4
  119. package/build/server/chunks/{_server.ts-D8cp-Em3.js.map → _server.ts-8gRao4pC.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-BNJn20vV.js → _server.ts-9P7a99w7.js} +4 -4
  121. package/build/server/chunks/{_server.ts-BNJn20vV.js.map → _server.ts-9P7a99w7.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-CciSVwzg.js → _server.ts-AOvZbE_q.js} +5 -5
  123. package/build/server/chunks/{_server.ts-CciSVwzg.js.map → _server.ts-AOvZbE_q.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-BvbnbZsl.js → _server.ts-B35VhBNb.js} +4 -4
  125. package/build/server/chunks/{_server.ts-BvbnbZsl.js.map → _server.ts-B35VhBNb.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-CHQmAGEC.js → _server.ts-B3OHtJvn.js} +5 -5
  127. package/build/server/chunks/{_server.ts-CHQmAGEC.js.map → _server.ts-B3OHtJvn.js.map} +1 -1
  128. package/build/server/chunks/{_server.ts-Do5L_4tt.js → _server.ts-BCLgKgV5.js} +4 -4
  129. package/build/server/chunks/{_server.ts-Do5L_4tt.js.map → _server.ts-BCLgKgV5.js.map} +1 -1
  130. package/build/server/chunks/{_server.ts-DVRyf5BI.js → _server.ts-BCtRrhpo.js} +4 -4
  131. package/build/server/chunks/{_server.ts-DVRyf5BI.js.map → _server.ts-BCtRrhpo.js.map} +1 -1
  132. package/build/server/chunks/{_server.ts-QvBpEIYu.js → _server.ts-BEir1hXE.js} +4 -4
  133. package/build/server/chunks/{_server.ts-QvBpEIYu.js.map → _server.ts-BEir1hXE.js.map} +1 -1
  134. package/build/server/chunks/{_server.ts-CeeR1W32.js → _server.ts-BGhuGAqU.js} +4 -4
  135. package/build/server/chunks/{_server.ts-CeeR1W32.js.map → _server.ts-BGhuGAqU.js.map} +1 -1
  136. package/build/server/chunks/{_server.ts-D3QPUpDc.js → _server.ts-BMpV32HH.js} +4 -4
  137. package/build/server/chunks/{_server.ts-D3QPUpDc.js.map → _server.ts-BMpV32HH.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-E5YqcwqQ.js → _server.ts-BNfKymFO.js} +4 -4
  139. package/build/server/chunks/{_server.ts-E5YqcwqQ.js.map → _server.ts-BNfKymFO.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-DPC8qYUD.js → _server.ts-BPRY2j_2.js} +4 -4
  141. package/build/server/chunks/{_server.ts-DPC8qYUD.js.map → _server.ts-BPRY2j_2.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-C8zFV8J3.js → _server.ts-BPu3WMA2.js} +4 -4
  143. package/build/server/chunks/{_server.ts-C8zFV8J3.js.map → _server.ts-BPu3WMA2.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-D-Vwef5C.js → _server.ts-BTD23brV.js} +4 -4
  145. package/build/server/chunks/{_server.ts-D-Vwef5C.js.map → _server.ts-BTD23brV.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-Gbkg-oto.js → _server.ts-BUexy9Bs.js} +4 -4
  147. package/build/server/chunks/{_server.ts-Gbkg-oto.js.map → _server.ts-BUexy9Bs.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts-CdB1K2M6.js → _server.ts-BWuDPAZI.js} +2 -2
  149. package/build/server/chunks/{_server.ts-CdB1K2M6.js.map → _server.ts-BWuDPAZI.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-MGn-MXr5.js → _server.ts-B_A1pH6i.js} +4 -4
  151. package/build/server/chunks/{_server.ts-MGn-MXr5.js.map → _server.ts-B_A1pH6i.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-Dc9XEMmF.js → _server.ts-BbpEaFjU.js} +4 -4
  153. package/build/server/chunks/{_server.ts-Dc9XEMmF.js.map → _server.ts-BbpEaFjU.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-DHBX6Ary.js → _server.ts-BiiFhOLE.js} +5 -5
  155. package/build/server/chunks/{_server.ts-DHBX6Ary.js.map → _server.ts-BiiFhOLE.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-ykNeG8km.js → _server.ts-Bq99b7U6.js} +4 -4
  157. package/build/server/chunks/{_server.ts-ykNeG8km.js.map → _server.ts-Bq99b7U6.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-CreuvDch.js → _server.ts-BvCT6Mjh.js} +4 -4
  159. package/build/server/chunks/{_server.ts-CreuvDch.js.map → _server.ts-BvCT6Mjh.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-DAW24-9-.js → _server.ts-Bw7wH5nP.js} +4 -4
  161. package/build/server/chunks/{_server.ts-DAW24-9-.js.map → _server.ts-Bw7wH5nP.js.map} +1 -1
  162. package/build/server/chunks/{_server.ts-BEjyvkVV.js → _server.ts-C3Y82EbX.js} +4 -4
  163. package/build/server/chunks/{_server.ts-BEjyvkVV.js.map → _server.ts-C3Y82EbX.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-4HorMS2R.js → _server.ts-C58ziWGi.js} +4 -4
  165. package/build/server/chunks/{_server.ts-4HorMS2R.js.map → _server.ts-C58ziWGi.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-DLVGDzlE.js → _server.ts-C8NNR7lm.js} +4 -4
  167. package/build/server/chunks/{_server.ts-DLVGDzlE.js.map → _server.ts-C8NNR7lm.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-BTvZB-WH.js → _server.ts-CHvr_s0m.js} +4 -4
  169. package/build/server/chunks/{_server.ts-BTvZB-WH.js.map → _server.ts-CHvr_s0m.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-CX2sHcZR.js → _server.ts-CPKa2U2F.js} +4 -4
  171. package/build/server/chunks/{_server.ts-CX2sHcZR.js.map → _server.ts-CPKa2U2F.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-CH8uRkxq.js → _server.ts-CQmJIAUn.js} +4 -4
  173. package/build/server/chunks/{_server.ts-CH8uRkxq.js.map → _server.ts-CQmJIAUn.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-Bu_7eQaL.js → _server.ts-CSzLOBbB.js} +5 -5
  175. package/build/server/chunks/{_server.ts-Bu_7eQaL.js.map → _server.ts-CSzLOBbB.js.map} +1 -1
  176. package/build/server/chunks/_server.ts-CWWHoyPz.js +48 -0
  177. package/build/server/chunks/_server.ts-CWWHoyPz.js.map +1 -0
  178. package/build/server/chunks/{_server.ts-DlwXpopR.js → _server.ts-CakB2g2B.js} +3 -3
  179. package/build/server/chunks/{_server.ts-DlwXpopR.js.map → _server.ts-CakB2g2B.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-BdLKHRnY.js → _server.ts-CbB7X8WD.js} +6 -6
  181. package/build/server/chunks/{_server.ts-BdLKHRnY.js.map → _server.ts-CbB7X8WD.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-BWtTOsFi.js → _server.ts-Ch5VrU5z.js} +4 -4
  183. package/build/server/chunks/{_server.ts-BWtTOsFi.js.map → _server.ts-Ch5VrU5z.js.map} +1 -1
  184. package/build/server/chunks/{_server.ts-C7K7bv8w.js → _server.ts-CmcgtPlf.js} +5 -5
  185. package/build/server/chunks/{_server.ts-C7K7bv8w.js.map → _server.ts-CmcgtPlf.js.map} +1 -1
  186. package/build/server/chunks/_server.ts-Cu3yIoGR.js +627 -0
  187. package/build/server/chunks/_server.ts-Cu3yIoGR.js.map +1 -0
  188. package/build/server/chunks/{_server.ts-CXI7k8hl.js → _server.ts-CuEcjgfs.js} +4 -4
  189. package/build/server/chunks/{_server.ts-CXI7k8hl.js.map → _server.ts-CuEcjgfs.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-pQ9okj_b.js → _server.ts-CyTEh-kp.js} +6 -6
  191. package/build/server/chunks/{_server.ts-pQ9okj_b.js.map → _server.ts-CyTEh-kp.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-BhRtn8Xn.js → _server.ts-CyxjwCIW.js} +4 -4
  193. package/build/server/chunks/{_server.ts-BhRtn8Xn.js.map → _server.ts-CyxjwCIW.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-CXmwf1pu.js → _server.ts-CzHLF3XJ.js} +2 -2
  195. package/build/server/chunks/{_server.ts-CXmwf1pu.js.map → _server.ts-CzHLF3XJ.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-CqH3nv-S.js → _server.ts-CzcX98RF.js} +5 -5
  197. package/build/server/chunks/{_server.ts-CqH3nv-S.js.map → _server.ts-CzcX98RF.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-B31I037d.js → _server.ts-D4hS029K.js} +6 -6
  199. package/build/server/chunks/{_server.ts-B31I037d.js.map → _server.ts-D4hS029K.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-DzIilMO5.js → _server.ts-D5KmG8Iz.js} +2 -2
  201. package/build/server/chunks/{_server.ts-DzIilMO5.js.map → _server.ts-D5KmG8Iz.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-CbOKfJ3v.js → _server.ts-D6bq6_Fp.js} +6 -6
  203. package/build/server/chunks/{_server.ts-CbOKfJ3v.js.map → _server.ts-D6bq6_Fp.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-BUIWPYRF.js → _server.ts-DEL6C5fs.js} +4 -4
  205. package/build/server/chunks/{_server.ts-BUIWPYRF.js.map → _server.ts-DEL6C5fs.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-BGqa6Laa.js → _server.ts-DLMyOePt.js} +4 -4
  207. package/build/server/chunks/_server.ts-DLMyOePt.js.map +1 -0
  208. package/build/server/chunks/{_server.ts-CNLz6iJ7.js → _server.ts-DLkvAnm7.js} +4 -4
  209. package/build/server/chunks/{_server.ts-CNLz6iJ7.js.map → _server.ts-DLkvAnm7.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-B1Jl9Grz.js → _server.ts-DTVKXoI5.js} +4 -4
  211. package/build/server/chunks/{_server.ts-B1Jl9Grz.js.map → _server.ts-DTVKXoI5.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-Bq4Oko-2.js → _server.ts-DZ7Ko_32.js} +4 -4
  213. package/build/server/chunks/{_server.ts-Bq4Oko-2.js.map → _server.ts-DZ7Ko_32.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-DL9hlvL8.js → _server.ts-DZY0Qpnk.js} +4 -4
  215. package/build/server/chunks/{_server.ts-DL9hlvL8.js.map → _server.ts-DZY0Qpnk.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-BY7nR9Ev.js → _server.ts-DcW9CTcB.js} +4 -4
  217. package/build/server/chunks/{_server.ts-BY7nR9Ev.js.map → _server.ts-DcW9CTcB.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-1mdOjWEN.js → _server.ts-Df17RBWC.js} +5 -5
  219. package/build/server/chunks/{_server.ts-1mdOjWEN.js.map → _server.ts-Df17RBWC.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DsTUwnu1.js → _server.ts-Dh9SJATt.js} +4 -4
  221. package/build/server/chunks/{_server.ts-DsTUwnu1.js.map → _server.ts-Dh9SJATt.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-CIEz-ybk.js → _server.ts-DlDgeWtr.js} +4 -4
  223. package/build/server/chunks/{_server.ts-CIEz-ybk.js.map → _server.ts-DlDgeWtr.js.map} +1 -1
  224. package/build/server/chunks/{_server.ts-C8BrkC8T.js → _server.ts-Dmtbp8AT.js} +5 -5
  225. package/build/server/chunks/{_server.ts-C8BrkC8T.js.map → _server.ts-Dmtbp8AT.js.map} +1 -1
  226. package/build/server/chunks/_server.ts-Dnq1yxVI.js +205 -0
  227. package/build/server/chunks/_server.ts-Dnq1yxVI.js.map +1 -0
  228. package/build/server/chunks/{_server.ts-Dd4Mh0JV.js → _server.ts-DolRZ_5Z.js} +4 -4
  229. package/build/server/chunks/{_server.ts-Dd4Mh0JV.js.map → _server.ts-DolRZ_5Z.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-CpJ08_Lw.js → _server.ts-DrccDqL8.js} +4 -4
  231. package/build/server/chunks/{_server.ts-CpJ08_Lw.js.map → _server.ts-DrccDqL8.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-CD-Cddqe.js → _server.ts-Drxntihb.js} +5 -5
  233. package/build/server/chunks/{_server.ts-CD-Cddqe.js.map → _server.ts-Drxntihb.js.map} +1 -1
  234. package/build/server/chunks/{_server.ts-B3ntDGZM.js → _server.ts-Du4lTXoC.js} +5 -5
  235. package/build/server/chunks/{_server.ts-B3ntDGZM.js.map → _server.ts-Du4lTXoC.js.map} +1 -1
  236. package/build/server/chunks/{_server.ts-B8EZxkK3.js → _server.ts-Dvo786k1.js} +5 -5
  237. package/build/server/chunks/{_server.ts-B8EZxkK3.js.map → _server.ts-Dvo786k1.js.map} +1 -1
  238. package/build/server/chunks/{_server.ts-Lzz9ashZ.js → _server.ts-DxE9zbbG.js} +4 -4
  239. package/build/server/chunks/{_server.ts-Lzz9ashZ.js.map → _server.ts-DxE9zbbG.js.map} +1 -1
  240. package/build/server/chunks/{_server.ts-C4pf3VKi.js → _server.ts-DzVt4tZV.js} +4 -4
  241. package/build/server/chunks/{_server.ts-C4pf3VKi.js.map → _server.ts-DzVt4tZV.js.map} +1 -1
  242. package/build/server/chunks/{_server.ts-DY3ZDXdA.js → _server.ts-GnnvjDGL.js} +4 -4
  243. package/build/server/chunks/{_server.ts-DY3ZDXdA.js.map → _server.ts-GnnvjDGL.js.map} +1 -1
  244. package/build/server/chunks/{_server.ts-CVxiERfc.js → _server.ts-H1fnqBYP.js} +4 -4
  245. package/build/server/chunks/{_server.ts-CVxiERfc.js.map → _server.ts-H1fnqBYP.js.map} +1 -1
  246. package/build/server/chunks/{_server.ts-yWBMi6sn.js → _server.ts-OVberUvp.js} +6 -6
  247. package/build/server/chunks/{_server.ts-yWBMi6sn.js.map → _server.ts-OVberUvp.js.map} +1 -1
  248. package/build/server/chunks/_server.ts-Oh6upxFv.js +86 -0
  249. package/build/server/chunks/_server.ts-Oh6upxFv.js.map +1 -0
  250. package/build/server/chunks/{_server.ts-j5xF-dJX.js → _server.ts-TkRG9AFn.js} +4 -4
  251. package/build/server/chunks/{_server.ts-j5xF-dJX.js.map → _server.ts-TkRG9AFn.js.map} +1 -1
  252. package/build/server/chunks/{_server.ts-SLlbT28g.js → _server.ts-UwHoFWx1.js} +2 -2
  253. package/build/server/chunks/{_server.ts-SLlbT28g.js.map → _server.ts-UwHoFWx1.js.map} +1 -1
  254. package/build/server/chunks/{_server.ts-CtltE_T-.js → _server.ts-XArez5bY.js} +2 -2
  255. package/build/server/chunks/{_server.ts-CtltE_T-.js.map → _server.ts-XArez5bY.js.map} +1 -1
  256. package/build/server/chunks/{_server.ts-IzD0bafW.js → _server.ts-ZfDsuW2E.js} +5 -5
  257. package/build/server/chunks/{_server.ts-IzD0bafW.js.map → _server.ts-ZfDsuW2E.js.map} +1 -1
  258. package/build/server/chunks/{_server.ts-CzoE8edN.js → _server.ts-chaYrNFx.js} +5 -5
  259. package/build/server/chunks/{_server.ts-CzoE8edN.js.map → _server.ts-chaYrNFx.js.map} +1 -1
  260. package/build/server/chunks/{_server.ts-B8YF9aVx.js → _server.ts-lZxRvx5G.js} +4 -4
  261. package/build/server/chunks/{_server.ts-B8YF9aVx.js.map → _server.ts-lZxRvx5G.js.map} +1 -1
  262. package/build/server/chunks/{_server.ts-BHmCir74.js → _server.ts-v7meNBSR.js} +4 -4
  263. package/build/server/chunks/{_server.ts-BHmCir74.js.map → _server.ts-v7meNBSR.js.map} +1 -1
  264. package/build/server/chunks/{_server.ts-CExwMomX.js → _server.ts-vSoEzokn.js} +4 -4
  265. package/build/server/chunks/{_server.ts-CExwMomX.js.map → _server.ts-vSoEzokn.js.map} +1 -1
  266. package/build/server/chunks/{_server.ts-BLUm8wAq.js → _server.ts-x3-1Iy5T.js} +4 -4
  267. package/build/server/chunks/{_server.ts-BLUm8wAq.js.map → _server.ts-x3-1Iy5T.js.map} +1 -1
  268. package/build/server/chunks/{_server.ts-C_EnHMEu.js → _server.ts-z9JFYptL.js} +4 -4
  269. package/build/server/chunks/{_server.ts-C_EnHMEu.js.map → _server.ts-z9JFYptL.js.map} +1 -1
  270. package/build/server/chunks/{addon-helpers-DBJL8kvq.js → addon-helpers-o7ish5mE.js} +3 -3
  271. package/build/server/chunks/{addon-helpers-DBJL8kvq.js.map → addon-helpers-o7ish5mE.js.map} +1 -1
  272. package/build/server/chunks/{akm-hO0p79ZE.js → akm-W9nWVWkP.js} +2 -2
  273. package/build/server/chunks/{akm-hO0p79ZE.js.map → akm-W9nWVWkP.js.map} +1 -1
  274. package/build/server/chunks/{client-DchoQXpW.js → client-BxrkCo8A.js} +2 -2
  275. package/build/server/chunks/{client-DchoQXpW.js.map → client-BxrkCo8A.js.map} +1 -1
  276. package/build/server/chunks/{config-5vfdWPGq.js → config-DHWE6_Oh.js} +2 -2
  277. package/build/server/chunks/{config-5vfdWPGq.js.map → config-DHWE6_Oh.js.map} +1 -1
  278. package/build/server/chunks/{docker-DYeytgDI.js → docker-DTmz3vyS.js} +2 -2
  279. package/build/server/chunks/{docker-DYeytgDI.js.map → docker-DTmz3vyS.js.map} +1 -1
  280. package/build/server/chunks/{endpoints-pIoXJCW6.js → endpoints-DeqIjeS-.js} +19 -6
  281. package/build/server/chunks/endpoints-DeqIjeS-.js.map +1 -0
  282. package/build/server/chunks/{environment-B0PbsX5P.js → environment-eUM4Nrm3.js} +2 -2
  283. package/build/server/chunks/{environment-B0PbsX5P.js.map → environment-eUM4Nrm3.js.map} +1 -1
  284. package/build/server/chunks/{error.svelte-Cmr7gpdL.js → error.svelte-C1YZdXu0.js} +4 -4
  285. package/build/server/chunks/{error.svelte-Cmr7gpdL.js.map → error.svelte-C1YZdXu0.js.map} +1 -1
  286. package/build/server/chunks/{helpers-CVirrNSz.js → helpers-BxClonOR.js} +3 -3
  287. package/build/server/chunks/{helpers-CVirrNSz.js.map → helpers-BxClonOR.js.map} +1 -1
  288. package/build/server/chunks/{hooks.server-pc-TSpQy.js → hooks.server-BbqU1Xkl.js} +6 -6
  289. package/build/server/chunks/hooks.server-BbqU1Xkl.js.map +1 -0
  290. package/build/server/chunks/{http-DGsfa0DV.js → http-B4lcqCl2.js} +2 -2
  291. package/build/server/chunks/{http-DGsfa0DV.js.map → http-B4lcqCl2.js.map} +1 -1
  292. package/build/server/chunks/{internal-DriC3vi3.js → internal-BqydNqHi.js} +3 -3
  293. package/build/server/chunks/{internal-DriC3vi3.js.map → internal-BqydNqHi.js.map} +1 -1
  294. package/build/server/chunks/{session-cookie-DEuOwtHY.js → session-cookie-BhONF37G.js} +2 -2
  295. package/build/server/chunks/{session-cookie-DEuOwtHY.js.map → session-cookie-BhONF37G.js.map} +1 -1
  296. package/build/server/chunks/{setup-deploy-D4bnmfpV.js → setup-deploy-XJpbNV-N.js} +2 -2
  297. package/build/server/chunks/{setup-deploy-D4bnmfpV.js.map → setup-deploy-XJpbNV-N.js.map} +1 -1
  298. package/build/server/chunks/{src-CyeWH4Df.js → src-DGGmhx-_.js} +523 -69
  299. package/build/server/chunks/src-DGGmhx-_.js.map +1 -0
  300. package/build/server/chunks/{state-BcUnjLg5.js → state-Dd9gBPIF.js} +2 -2
  301. package/build/server/chunks/{state-BcUnjLg5.js.map → state-Dd9gBPIF.js.map} +1 -1
  302. package/build/server/chunks/{theme-state.svelte-CeABRes-.js → theme-state.svelte-_CMr5Hu9.js} +96 -24
  303. package/build/server/chunks/theme-state.svelte-_CMr5Hu9.js.map +1 -0
  304. package/build/server/index.js +2 -2
  305. package/build/server/manifest.js +106 -85
  306. package/build/server/manifest.js.map +1 -1
  307. package/package.json +3 -2
  308. package/build/client/_app/immutable/assets/4.BFLRjZM9.css +0 -1
  309. package/build/client/_app/immutable/assets/4.BFLRjZM9.css.br +0 -0
  310. package/build/client/_app/immutable/assets/4.BFLRjZM9.css.gz +0 -0
  311. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css +0 -1
  312. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.br +0 -0
  313. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.gz +0 -0
  314. package/build/client/_app/immutable/chunks/0swOyi-5.js +0 -3
  315. package/build/client/_app/immutable/chunks/0swOyi-5.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/0swOyi-5.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/B4LSIsxy.js +0 -1
  318. package/build/client/_app/immutable/chunks/B4LSIsxy.js.br +0 -2
  319. package/build/client/_app/immutable/chunks/B4LSIsxy.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/BQ0vnNWj.js.br +0 -1
  321. package/build/client/_app/immutable/chunks/BQ0vnNWj.js.gz +0 -0
  322. package/build/client/_app/immutable/chunks/BTsRblfw.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/BTsRblfw.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/Bmfn2m9N.js +0 -1
  325. package/build/client/_app/immutable/chunks/Bmfn2m9N.js.br +0 -1
  326. package/build/client/_app/immutable/chunks/Bmfn2m9N.js.gz +0 -0
  327. package/build/client/_app/immutable/chunks/C-9oV3QK.js +0 -1
  328. package/build/client/_app/immutable/chunks/C-9oV3QK.js.br +0 -0
  329. package/build/client/_app/immutable/chunks/C-9oV3QK.js.gz +0 -0
  330. package/build/client/_app/immutable/chunks/CDS1U3lf.js.br +0 -0
  331. package/build/client/_app/immutable/chunks/CDS1U3lf.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/TM1MyO6b.js +0 -5
  333. package/build/client/_app/immutable/chunks/TM1MyO6b.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/TM1MyO6b.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/irujFCsS.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/irujFCsS.js.gz +0 -0
  337. package/build/client/_app/immutable/entry/app.j4FjlmJV.js +0 -2
  338. package/build/client/_app/immutable/entry/app.j4FjlmJV.js.br +0 -0
  339. package/build/client/_app/immutable/entry/app.j4FjlmJV.js.gz +0 -0
  340. package/build/client/_app/immutable/entry/start.BG0VgQz3.js +0 -1
  341. package/build/client/_app/immutable/entry/start.BG0VgQz3.js.br +0 -1
  342. package/build/client/_app/immutable/entry/start.BG0VgQz3.js.gz +0 -0
  343. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js +0 -1
  344. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.br +0 -0
  345. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.gz +0 -0
  346. package/build/client/_app/immutable/nodes/1.DOderKqv.js +0 -1
  347. package/build/client/_app/immutable/nodes/1.DOderKqv.js.br +0 -1
  348. package/build/client/_app/immutable/nodes/1.DOderKqv.js.gz +0 -0
  349. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js +0 -1
  350. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.br +0 -0
  351. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.gz +0 -0
  352. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js +0 -1
  353. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.br +0 -0
  354. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.gz +0 -0
  355. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js +0 -19
  356. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.br +0 -0
  357. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.gz +0 -0
  358. package/build/client/_app/immutable/nodes/5.By0afU0Y.js +0 -4
  359. package/build/client/_app/immutable/nodes/5.By0afU0Y.js.br +0 -0
  360. package/build/client/_app/immutable/nodes/5.By0afU0Y.js.gz +0 -0
  361. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js +0 -1
  362. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.br +0 -0
  363. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.gz +0 -0
  364. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js +0 -15
  365. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/8.Dytsowyk.js +0 -1
  368. package/build/client/_app/immutable/nodes/8.Dytsowyk.js.br +0 -0
  369. package/build/client/_app/immutable/nodes/8.Dytsowyk.js.gz +0 -0
  370. package/build/client/_app/immutable/nodes/9.CFQabEMi.js +0 -5
  371. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.br +0 -0
  372. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.gz +0 -0
  373. package/build/server/chunks/0-BGsPZcaQ.js +0 -9
  374. package/build/server/chunks/1-Daoybjaw.js +0 -9
  375. package/build/server/chunks/4-Lm1O6Rmh.js +0 -9
  376. package/build/server/chunks/4-Lm1O6Rmh.js.map +0 -1
  377. package/build/server/chunks/5-BfmhtNP9.js +0 -9
  378. package/build/server/chunks/6-AcylLX8-.js +0 -9
  379. package/build/server/chunks/7-BT0zxD9E.js +0 -9
  380. package/build/server/chunks/7-BT0zxD9E.js.map +0 -1
  381. package/build/server/chunks/Navbar-C9kE6wR-.js.map +0 -1
  382. package/build/server/chunks/_page.svelte-C0eMsRDk.js.map +0 -1
  383. package/build/server/chunks/_page.svelte-Dl3WoXNo.js.map +0 -1
  384. package/build/server/chunks/_server.ts-B79PxL9c.js +0 -91
  385. package/build/server/chunks/_server.ts-B79PxL9c.js.map +0 -1
  386. package/build/server/chunks/_server.ts-BGqa6Laa.js.map +0 -1
  387. package/build/server/chunks/endpoints-pIoXJCW6.js.map +0 -1
  388. package/build/server/chunks/hooks.server-pc-TSpQy.js.map +0 -1
  389. package/build/server/chunks/src-CyeWH4Df.js.map +0 -1
  390. package/build/server/chunks/theme-state.svelte-CeABRes-.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DLMyOePt.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/automations/_name_/file/_server.ts.js"],"sourcesContent":["import { et as assertSafeTaskFilename, nt as removeTaskFile, rt as writeTaskFile, tt as readTaskFile } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/automations/[name]/file/+server.ts\nfunction guard(name, requestId) {\n\ttry {\n\t\tassertSafeTaskFilename(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 = guard(name, requestId);\n\tif (bad) return bad;\n\tconst content = readTaskFile(getState().stashDir, name);\n\tif (content === null) return errorResponse(404, \"not_found\", `Task file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tcontent\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 = guard(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 content = result.data.content;\n\tif (typeof content !== \"string\") return errorResponse(400, \"bad_request\", \"content must be a string\", {}, requestId);\n\twriteTaskFile(getState().stashDir, name, content);\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 = guard(name, requestId);\n\tif (bad) return bad;\n\tremoveTaskFile(getState().stashDir, 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,5 +1,5 @@
1
- import { aq as resolveDataDir, at as seedUiBuild, z as createLogger } from './src-CyeWH4Df.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-CVirrNSz.js';
1
+ import { as as resolveDataDir, av as seedUiBuild, z as createLogger } from './src-DGGmhx-_.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BxClonOR.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import 'node:fs';
@@ -19,7 +19,7 @@ import 'assert';
19
19
  import 'zlib';
20
20
  import 'node:assert';
21
21
  import 'node:fs/promises';
22
- import './endpoints-pIoXJCW6.js';
22
+ import './endpoints-DeqIjeS-.js';
23
23
 
24
24
  //#region src/routes/admin/ui-version/+server.ts
25
25
  var logger = createLogger("ui-version");
@@ -59,4 +59,4 @@ var POST = async (event) => {
59
59
  };
60
60
 
61
61
  export { POST };
62
- //# sourceMappingURL=_server.ts-CNLz6iJ7.js.map
62
+ //# sourceMappingURL=_server.ts-DLkvAnm7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CNLz6iJ7.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/ui-version/_server.ts.js"],"sourcesContent":["import { It as resolveDataDir, jt as seedUiBuild, zt as createLogger } from \"../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/ui-version/+server.ts\nvar logger = createLogger(\"ui-version\");\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\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n\t}\n\tconst tag = typeof body.tag === \"string\" ? body.tag.trim() : \"\";\n\tif (!tag) return errorResponse(400, \"tag_required\", \"tag is required\", {}, requestId);\n\tif (!/^[a-zA-Z0-9._\\-]+$/.test(tag)) return errorResponse(400, \"invalid_tag\", \"Tag must be alphanumeric with . _ or - only\", {}, requestId);\n\tconst dataDir = resolveDataDir();\n\tconst repoRef = tag.startsWith(\"v\") ? tag : `v${tag}`;\n\ttry {\n\t\tawait seedUiBuild(repoRef, dataDir, { forceRemote: true });\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"ui-version download failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"download_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"ui-version downloaded\", {\n\t\trequestId,\n\t\ttag\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\ttag\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;AACpC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7F,CAAC;AACD,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC;AACtF,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,CAAC,MAAM,OAAO,GAAG,cAAc,EAAE;AACjC,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC,IAAI;AACL,EAAE,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;AAC7C,GAAG,SAAS;AACZ,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC;AAChF,CAAC;AACD,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,EAAE,SAAS;AACX,EAAE;AACF,EAAE,CAAC;AACH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-DLkvAnm7.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/ui-version/_server.ts.js"],"sourcesContent":["import { Nt as seedUiBuild, Rt as resolveDataDir, Vt as createLogger } from \"../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/ui-version/+server.ts\nvar logger = createLogger(\"ui-version\");\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\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n\t}\n\tconst tag = typeof body.tag === \"string\" ? body.tag.trim() : \"\";\n\tif (!tag) return errorResponse(400, \"tag_required\", \"tag is required\", {}, requestId);\n\tif (!/^[a-zA-Z0-9._\\-]+$/.test(tag)) return errorResponse(400, \"invalid_tag\", \"Tag must be alphanumeric with . _ or - only\", {}, requestId);\n\tconst dataDir = resolveDataDir();\n\tconst repoRef = tag.startsWith(\"v\") ? tag : `v${tag}`;\n\ttry {\n\t\tawait seedUiBuild(repoRef, dataDir, { forceRemote: true });\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"ui-version download failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"download_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"ui-version downloaded\", {\n\t\trequestId,\n\t\ttag\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\ttag\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;AACpC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7F,CAAC;AACD,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC;AACtF,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,CAAC,MAAM,OAAO,GAAG,cAAc,EAAE;AACjC,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC,IAAI;AACL,EAAE,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;AAC7C,GAAG,SAAS;AACZ,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC;AAChF,CAAC;AACD,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,EAAE,SAAS;AACX,EAAE;AACF,EAAE,CAAC;AACH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { g as getActiveEndpoint } from './endpoints-pIoXJCW6.js';
2
- import { d as getRequestId, r as requireAdmin } from './helpers-CVirrNSz.js';
3
- import './src-CyeWH4Df.js';
1
+ import { g as getActiveEndpoint } from './endpoints-DeqIjeS-.js';
2
+ import { d as getRequestId, r as requireAdmin } from './helpers-BxClonOR.js';
3
+ import './src-DGGmhx-_.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -106,4 +106,4 @@ var PUT = handler;
106
106
  var DELETE = handler;
107
107
 
108
108
  export { DELETE, GET, POST, PUT };
109
- //# sourceMappingURL=_server.ts-B1Jl9Grz.js.map
109
+ //# sourceMappingURL=_server.ts-DTVKXoI5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-B1Jl9Grz.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DTVKXoI5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { a4 as isSetupComplete, as as resolveStackDir, G as detectGpu, I as detectLocalProviders, H as detectHostOpenCode, am as recommendSetup, i as authJsonPath, P as PROVIDER_KEY_MAP } from './src-CyeWH4Df.js';
3
- import { b as getState } from './endpoints-pIoXJCW6.js';
4
- import { r as requireAdmin, d as getRequestId, g as getOpenCodeClient } from './helpers-CVirrNSz.js';
2
+ import { a5 as isSetupComplete, au as resolveStackDir, G as detectGpu, I as detectLocalProviders, H as detectHostOpenCode, ao as recommendSetup, i as authJsonPath, P as PROVIDER_KEY_MAP } from './src-DGGmhx-_.js';
3
+ import { b as getState } from './endpoints-DeqIjeS-.js';
4
+ import { r as requireAdmin, d as getRequestId, g as getOpenCodeClient } from './helpers-BxClonOR.js';
5
5
  import { existsSync, readFileSync } from 'node:fs';
6
6
  import './utils-BSRjJDrZ.js';
7
7
  import './chunk-CLZ62Ad-.js';
@@ -94,4 +94,4 @@ var GET = async (event) => {
94
94
  };
95
95
 
96
96
  export { GET };
97
- //# sourceMappingURL=_server.ts-Bq4Oko-2.js.map
97
+ //# sourceMappingURL=_server.ts-DZ7Ko_32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Bq4Oko-2.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/recommend/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { At as authJsonPath, Bt as PROVIDER_KEY_MAP, Lt as resolveStackDir, Q as isSetupComplete, c as detectGpu, l as detectLocalProviders, s as recommendSetup, t as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { a as getOpenCodeClient, d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/recommend/+server.ts\n/** Local providers are detected separately as host providers — exclude from \"cloud\". */\nvar LOCAL_PROVIDER_IDS = new Set([\n\t\"ollama\",\n\t\"lmstudio\",\n\t\"model-runner\",\n\t\"openai-compatible\"\n]);\n/** Providers that have credentials stored in OP_HOME auth.json (API key or OAuth). */\nfunction authJsonConnected() {\n\ttry {\n\t\tconst path = authJsonPath(getState());\n\t\tif (!existsSync(path)) return [];\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\treturn Object.keys(data ?? {});\n\t} catch {\n\t\treturn [];\n\t}\n}\n/** Fallback: providers whose API-key env var is present in the process env. */\nfunction envKeyConnected() {\n\tconst out = [];\n\tfor (const [provider, envVar] of Object.entries(PROVIDER_KEY_MAP)) if (process.env[envVar]) out.push(provider);\n\treturn out;\n}\n/** Cloud providers = OpenCode connected[] ∪ auth.json credentials, minus locals.\n* Falls back to env-key detection when OpenCode is unavailable. */\nasync function detectCloudProviders() {\n\tlet connected = [];\n\ttry {\n\t\tconst client = getOpenCodeClient();\n\t\tif (await client.isAvailable()) {\n\t\t\tconst catalog = await client.proxy(\"/provider\");\n\t\t\tconst raw = catalog.ok ? catalog.data : {};\n\t\t\tconnected = Array.from(new Set([...raw.connected ?? [], ...authJsonConnected()]));\n\t\t} else connected = Array.from(new Set([...authJsonConnected(), ...envKeyConnected()]));\n\t} catch {\n\t\tconnected = Array.from(new Set([...authJsonConnected(), ...envKeyConnected()]));\n\t}\n\treturn connected.filter((id) => !LOCAL_PROVIDER_IDS.has(id));\n}\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst [cloudProviders, gpu, localDetections, hostOpenCode] = await Promise.all([\n\t\tdetectCloudProviders(),\n\t\tdetectGpu(),\n\t\tdetectLocalProviders(),\n\t\tPromise.resolve(detectHostOpenCode())\n\t]);\n\tconst hostProviders = localDetections.filter((p) => p.available).map((p) => ({\n\t\tprovider: p.provider,\n\t\turl: p.url\n\t}));\n\treturn json({\n\t\tok: true,\n\t\trecommendation: recommendSetup({\n\t\t\tcloudProviders,\n\t\t\thostProviders,\n\t\t\tgpu,\n\t\t\thostCredentialCount: hostOpenCode.credentialCount\n\t\t}),\n\t\tgpu,\n\t\tcloudProviders,\n\t\thostProviders\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DZ7Ko_32.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/recommend/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { $ as isSetupComplete, Ht as PROVIDER_KEY_MAP, Mt as authJsonPath, c as recommendSetup, l as detectGpu, n as detectHostOpenCode, u as detectLocalProviders, zt as resolveStackDir } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { a as getOpenCodeClient, d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/recommend/+server.ts\n/** Local providers are detected separately as host providers — exclude from \"cloud\". */\nvar LOCAL_PROVIDER_IDS = new Set([\n\t\"ollama\",\n\t\"lmstudio\",\n\t\"model-runner\",\n\t\"openai-compatible\"\n]);\n/** Providers that have credentials stored in OP_HOME auth.json (API key or OAuth). */\nfunction authJsonConnected() {\n\ttry {\n\t\tconst path = authJsonPath(getState());\n\t\tif (!existsSync(path)) return [];\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\treturn Object.keys(data ?? {});\n\t} catch {\n\t\treturn [];\n\t}\n}\n/** Fallback: providers whose API-key env var is present in the process env. */\nfunction envKeyConnected() {\n\tconst out = [];\n\tfor (const [provider, envVar] of Object.entries(PROVIDER_KEY_MAP)) if (process.env[envVar]) out.push(provider);\n\treturn out;\n}\n/** Cloud providers = OpenCode connected[] ∪ auth.json credentials, minus locals.\n* Falls back to env-key detection when OpenCode is unavailable. */\nasync function detectCloudProviders() {\n\tlet connected = [];\n\ttry {\n\t\tconst client = getOpenCodeClient();\n\t\tif (await client.isAvailable()) {\n\t\t\tconst catalog = await client.proxy(\"/provider\");\n\t\t\tconst raw = catalog.ok ? catalog.data : {};\n\t\t\tconnected = Array.from(new Set([...raw.connected ?? [], ...authJsonConnected()]));\n\t\t} else connected = Array.from(new Set([...authJsonConnected(), ...envKeyConnected()]));\n\t} catch {\n\t\tconnected = Array.from(new Set([...authJsonConnected(), ...envKeyConnected()]));\n\t}\n\treturn connected.filter((id) => !LOCAL_PROVIDER_IDS.has(id));\n}\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst [cloudProviders, gpu, localDetections, hostOpenCode] = await Promise.all([\n\t\tdetectCloudProviders(),\n\t\tdetectGpu(),\n\t\tdetectLocalProviders(),\n\t\tPromise.resolve(detectHostOpenCode())\n\t]);\n\tconst hostProviders = localDetections.filter((p) => p.available).map((p) => ({\n\t\tprovider: p.provider,\n\t\turl: p.url\n\t}));\n\treturn json({\n\t\tok: true,\n\t\trecommendation: recommendSetup({\n\t\t\tcloudProviders,\n\t\t\thostProviders,\n\t\t\tgpu,\n\t\t\thostCredentialCount: hostOpenCode.credentialCount\n\t\t}),\n\t\tgpu,\n\t\tcloudProviders,\n\t\thostProviders\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { n as checkDocker, d as applyTagChange, z as createLogger } from './src-CyeWH4Df.js';
2
- import { b as getState } from './endpoints-pIoXJCW6.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-CVirrNSz.js';
1
+ import { n as checkDocker, d as applyTagChange, z as createLogger } from './src-DGGmhx-_.js';
2
+ import { b as getState } from './endpoints-DeqIjeS-.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BxClonOR.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -65,4 +65,4 @@ var PATCH = async (event) => {
65
65
  };
66
66
 
67
67
  export { PATCH };
68
- //# sourceMappingURL=_server.ts-DL9hlvL8.js.map
68
+ //# sourceMappingURL=_server.ts-DZY0Qpnk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DL9hlvL8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/stack-version/_server.ts.js"],"sourcesContent":["import { L as checkDocker, b as applyTagChange, zt as createLogger } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/stack-version/+server.ts\nvar logger = createLogger(\"stack-version\");\nvar PATCH = 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\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n\t}\n\tconst tag = typeof body.tag === \"string\" ? body.tag.trim() : \"\";\n\tif (!tag) return errorResponse(400, \"tag_required\", \"tag is required\", {}, requestId);\n\tif (!/^[a-zA-Z0-9._\\-]+$/.test(tag)) return errorResponse(400, \"invalid_tag\", \"Tag must be alphanumeric with . _ or - only\", {}, requestId);\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tif (!dockerCheck.ok) {\n\t\tlogger.error(\"stack-version aborted: docker unavailable\", { requestId });\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 applyTagChange(state, tag);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"stack-version apply failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"apply_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"stack-version applied\", {\n\t\trequestId,\n\t\timageTag: result.imageTag\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\timageTag: result.imageTag,\n\t\trestarted: result.restarted\n\t}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AACvC,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK;AAC7B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7F,CAAC;AACD,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC;AACtF,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACtB,EAAE,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC1E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AACvH,CAAC;AACD,CAAC,IAAI,MAAM;AACX,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;AAC7C,GAAG,SAAS;AACZ,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC;AAC7E,CAAC;AACD,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,EAAE,SAAS;AACX,EAAE,QAAQ,EAAE,MAAM,CAAC;AACnB,EAAE,CAAC;AACH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC3B,EAAE,SAAS,EAAE,MAAM,CAAC;AACpB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-DZY0Qpnk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/stack-version/_server.ts.js"],"sourcesContent":["import { R as checkDocker, Vt as createLogger, x as applyTagChange } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/stack-version/+server.ts\nvar logger = createLogger(\"stack-version\");\nvar PATCH = 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\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n\t}\n\tconst tag = typeof body.tag === \"string\" ? body.tag.trim() : \"\";\n\tif (!tag) return errorResponse(400, \"tag_required\", \"tag is required\", {}, requestId);\n\tif (!/^[a-zA-Z0-9._\\-]+$/.test(tag)) return errorResponse(400, \"invalid_tag\", \"Tag must be alphanumeric with . _ or - only\", {}, requestId);\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tif (!dockerCheck.ok) {\n\t\tlogger.error(\"stack-version aborted: docker unavailable\", { requestId });\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 applyTagChange(state, tag);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"stack-version apply failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"apply_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"stack-version applied\", {\n\t\trequestId,\n\t\timageTag: result.imageTag\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\timageTag: result.imageTag,\n\t\trestarted: result.restarted\n\t}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AACvC,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK;AAC7B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7F,CAAC;AACD,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAChE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC;AACtF,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACtB,EAAE,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC1E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AACvH,CAAC;AACD,CAAC,IAAI,MAAM;AACX,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;AAC7C,GAAG,SAAS;AACZ,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC;AAC7E,CAAC;AACD,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACtC,EAAE,SAAS;AACX,EAAE,QAAQ,EAAE,MAAM,CAAC;AACnB,EAAE,CAAC;AACH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC3B,EAAE,SAAS,EAAE,MAAM,CAAC;AACpB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ab as parseEnvFile } from './src-CyeWH4Df.js';
3
- import { b as getState } from './endpoints-pIoXJCW6.js';
4
- import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-CVirrNSz.js';
2
+ import { ac as parseEnvFile } from './src-DGGmhx-_.js';
3
+ import { b as getState } from './endpoints-DeqIjeS-.js';
4
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-BxClonOR.js';
5
5
  import { existsSync } from 'node:fs';
6
6
  import './utils-BSRjJDrZ.js';
7
7
  import './chunk-CLZ62Ad-.js';
@@ -46,4 +46,4 @@ var GET = (event) => {
46
46
  };
47
47
 
48
48
  export { GET };
49
- //# sourceMappingURL=_server.ts-BY7nR9Ev.js.map
49
+ //# sourceMappingURL=_server.ts-DcW9CTcB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BY7nR9Ev.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { Pt as parseEnvFile } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\nvar GET = (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst stackEnvPath = `${state.stashDir}/env/stack.env`;\n\tconst imageTag = (existsSync(stackEnvPath) ? parseEnvFile(stackEnvPath) : {}).OP_IMAGE_TAG ?? \"latest\";\n\tconst inElectron = process.env.OP_INSIDE_ELECTRON === \"1\";\n\tconst electronVersion = process.env.OP_ELECTRON_VERSION ?? null;\n\tconst electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;\n\treturn json({\n\t\timageTag,\n\t\tinElectron,\n\t\telectronVersion,\n\t\telectronLatestVersion,\n\t\telectronLatestUrl: process.env.OP_ELECTRON_LATEST_URL ?? null,\n\t\telectronUpdateAvailable: !!electronLatestVersion\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACG,IAAC,GAAG,GAAG,CAAC,KAAK,KAAK;AACrB,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,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;AACvD,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,YAAY,IAAI,QAAQ;AACvG,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG;AAC1D,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI;AAChE,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI;AAC7E,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE,eAAe;AACjB,EAAE,qBAAqB;AACvB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI;AAC/D,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC7B,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DcW9CTcB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { It as parseEnvFile } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\nvar GET = (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst stackEnvPath = `${state.stashDir}/env/stack.env`;\n\tconst imageTag = (existsSync(stackEnvPath) ? parseEnvFile(stackEnvPath) : {}).OP_IMAGE_TAG ?? \"latest\";\n\tconst inElectron = process.env.OP_INSIDE_ELECTRON === \"1\";\n\tconst electronVersion = process.env.OP_ELECTRON_VERSION ?? null;\n\tconst electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;\n\treturn json({\n\t\timageTag,\n\t\tinElectron,\n\t\telectronVersion,\n\t\telectronLatestVersion,\n\t\telectronLatestUrl: process.env.OP_ELECTRON_LATEST_URL ?? null,\n\t\telectronUpdateAvailable: !!electronLatestVersion\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACG,IAAC,GAAG,GAAG,CAAC,KAAK,KAAK;AACrB,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,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;AACvD,CAAC,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,YAAY,IAAI,QAAQ;AACvG,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG;AAC1D,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI;AAChE,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI;AAC7E,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE,eAAe;AACjB,EAAE,qBAAqB;AACvB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI;AAC/D,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC7B,EAAE,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { b as getState } from './endpoints-pIoXJCW6.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-CVirrNSz.js';
3
- import { r as runAkmCommand } from './akm-hO0p79ZE.js';
4
- import './src-CyeWH4Df.js';
1
+ import { b as getState } from './endpoints-DeqIjeS-.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BxClonOR.js';
3
+ import { r as runAkmCommand } from './akm-W9nWVWkP.js';
4
+ import './src-DGGmhx-_.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import 'node:fs';
@@ -37,4 +37,4 @@ var POST = async (event) => {
37
37
  };
38
38
 
39
39
  export { POST };
40
- //# sourceMappingURL=_server.ts-1mdOjWEN.js.map
40
+ //# sourceMappingURL=_server.ts-Df17RBWC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-1mdOjWEN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/reindex/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { n as runAkmCommand } from \"../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/reindex/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await runAkmCommand(getState(), [\"index\", \"--full\"], 15 * 6e4);\n\tif (!result.ok) return errorResponse(502, \"akm_reindex_failed\", result.stderr.trim() || result.stdout.trim() || \"AKM re-index failed.\", {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tmessage: \"AKM index rebuilt successfully.\",\n\t\toutput: result.stdout.trim()\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC;AAC9E,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvJ,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,OAAO,EAAE,iCAAiC;AAC5C,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;AAC5B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-Df17RBWC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/reindex/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { n as runAkmCommand } from \"../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/reindex/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await runAkmCommand(getState(), [\"index\", \"--full\"], 15 * 6e4);\n\tif (!result.ok) return errorResponse(502, \"akm_reindex_failed\", result.stderr.trim() || result.stdout.trim() || \"AKM re-index failed.\", {}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tmessage: \"AKM index rebuilt successfully.\",\n\t\toutput: result.stdout.trim()\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC;AAC9E,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvJ,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,OAAO,EAAE,iCAAiC;AAC5C,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;AAC5B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { n as checkDocker, w as composeStats, l as buildComposeOptions } from './src-CyeWH4Df.js';
2
- import { b as getState } from './endpoints-pIoXJCW6.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-CVirrNSz.js';
1
+ import { n as checkDocker, w as composeStats, l as buildComposeOptions } from './src-DGGmhx-_.js';
2
+ import { b as getState } from './endpoints-DeqIjeS-.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BxClonOR.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import 'node:fs';
@@ -41,4 +41,4 @@ var GET = async (event) => {
41
41
  };
42
42
 
43
43
  export { GET };
44
- //# sourceMappingURL=_server.ts-DsTUwnu1.js.map
44
+ //# sourceMappingURL=_server.ts-Dh9SJATt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DsTUwnu1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { E as buildComposeOptions, K as composeStats, L as checkDocker } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\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-Dh9SJATt.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/stats/_server.ts.js"],"sourcesContent":["import { D as buildComposeOptions, R as checkDocker, q as composeStats } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/stats/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeStats(buildComposeOptions(state));\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get container stats: ${result.stderr}`, {}, requestId);\n\tlet stats = [];\n\tif (result.stdout.trim()) try {\n\t\tstats = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.stats] Failed to parse Docker stats output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker stats output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { stats }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,IAAI,KAAK,GAAG,EAAE;AACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,CAAC,CAAC;AAC3E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;AAC/C;;;;"}
@@ -1,6 +1,6 @@
1
- import { z as createLogger, N as ensureHomeDirs, Q as ensureOpenCodeConfig, R as ensureOpenCodeSystemConfig, S as ensureSecrets, c as applyInstall, m as buildManagedServices, n as checkDocker, y as composeUp, l as buildComposeOptions, C as CORE_SERVICES } from './src-CyeWH4Df.js';
2
- import { b as getState } from './endpoints-pIoXJCW6.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-CVirrNSz.js';
1
+ import { z as createLogger, N as ensureHomeDirs, Q as ensureOpenCodeConfig, R as ensureOpenCodeSystemConfig, S as ensureSecrets, c as applyInstall, m as buildManagedServices, n as checkDocker, y as composeUp, l as buildComposeOptions, C as CORE_SERVICES } from './src-DGGmhx-_.js';
2
+ import { b as getState } from './endpoints-DeqIjeS-.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-BxClonOR.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -80,4 +80,4 @@ var POST = async (event) => {
80
80
  };
81
81
 
82
82
  export { POST };
83
- //# sourceMappingURL=_server.ts-CIEz-ybk.js.map
83
+ //# sourceMappingURL=_server.ts-DlDgeWtr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CIEz-ybk.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { C as buildManagedServices, E as buildComposeOptions, Ft as ensureHomeDirs, J as composeUp, L as checkDocker, Rt as CORE_SERVICES, _t as ensureOpenCodeSystemConfig, vt as ensureOpenCodeConfig, y as applyInstall, yt as ensureSecrets, zt as createLogger } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tlogger.info(\"ensuring home directories and seeding config\", { requestId });\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tensureSecrets(state);\n\t\t\tawait applyInstall(state);\n\t\t\tconst managedServices = await buildManagedServices(state);\n\t\t\tlogger.info(\"checking Docker availability\", { requestId });\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tlet dockerResult = null;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tlogger.info(\"starting compose up\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t\tdockerResult = await composeUp({\n\t\t\t\t\t...buildComposeOptions(state),\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst started = [...CORE_SERVICES];\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeOk: dockerResult?.ok ?? null\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeResult: dockerResult ? {\n\t\t\t\t\tok: dockerResult.ok,\n\t\t\t\t\tstderr: dockerResult.stderr\n\t\t\t\t} : null\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7E,GAAG,cAAc,EAAE;AACnB,GAAG,oBAAoB,EAAE;AACzB,GAAG,0BAA0B,EAAE;AAC/B,GAAG,aAAa,CAAC,KAAK,CAAC;AACvB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC5D,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,YAAY,GAAG,IAAI;AAC1B,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACvC,KAAK,SAAS;AACd,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,MAAM,SAAS,CAAC;AACnC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAClC,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,GAAG;AACH,GAAG,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC;AACrC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI;AACnC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,aAAa,EAAE,YAAY,GAAG;AAClC,KAAK,EAAE,EAAE,YAAY,CAAC,EAAE;AACxB,KAAK,MAAM,EAAE,YAAY,CAAC;AAC1B,KAAK,GAAG;AACR,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DlDgeWtr.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/install/_server.ts.js"],"sourcesContent":["import { Bt as CORE_SERVICES, D as buildComposeOptions, Lt as ensureHomeDirs, R as checkDocker, Vt as createLogger, Y as composeUp, b as applyInstall, bt as ensureSecrets, vt as ensureOpenCodeSystemConfig, w as buildManagedServices, yt as ensureOpenCodeConfig } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/install/+server.ts\nvar logger = createLogger(\"install\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"install request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:install\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tlogger.info(\"ensuring home directories and seeding config\", { requestId });\n\t\t\tensureHomeDirs();\n\t\t\tensureOpenCodeConfig();\n\t\t\tensureOpenCodeSystemConfig();\n\t\t\tensureSecrets(state);\n\t\t\tawait applyInstall(state);\n\t\t\tconst managedServices = await buildManagedServices(state);\n\t\t\tlogger.info(\"checking Docker availability\", { requestId });\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tlet dockerResult = null;\n\t\t\tif (dockerCheck.ok) {\n\t\t\t\tlogger.info(\"starting compose up\", {\n\t\t\t\t\trequestId,\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t\tdockerResult = await composeUp({\n\t\t\t\t\t...buildComposeOptions(state),\n\t\t\t\t\tservices: managedServices\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst started = [...CORE_SERVICES];\n\t\t\tlogger.info(\"install completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeOk: dockerResult?.ok ?? null\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tstarted,\n\t\t\t\tdockerAvailable: dockerCheck.ok,\n\t\t\t\tcomposeResult: dockerResult ? {\n\t\t\t\t\tok: dockerResult.ok,\n\t\t\t\t\tstderr: dockerResult.stderr\n\t\t\t\t} : null\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"install failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"install_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;AACjC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,eAAe,EAAE,YAAY;AACrD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7E,GAAG,cAAc,EAAE;AACnB,GAAG,oBAAoB,EAAE;AACzB,GAAG,0BAA0B,EAAE;AAC/B,GAAG,aAAa,CAAC,KAAK,CAAC;AACvB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AAC5B,GAAG,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AAC5D,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,YAAY,GAAG,IAAI;AAC1B,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;AACvB,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACvC,KAAK,SAAS;AACd,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,MAAM,SAAS,CAAC;AACnC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAClC,KAAK,QAAQ,EAAE;AACf,KAAK,CAAC;AACN,GAAG;AACH,GAAG,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC;AACrC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,SAAS,EAAE,YAAY,EAAE,EAAE,IAAI;AACnC,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO;AACX,IAAI,eAAe,EAAE,WAAW,CAAC,EAAE;AACnC,IAAI,aAAa,EAAE,YAAY,GAAG;AAClC,KAAK,EAAE,EAAE,YAAY,CAAC,EAAE;AACxB,KAAK,MAAM,EAAE,YAAY,CAAC;AAC1B,KAAK,GAAG;AACR,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAClC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AAClE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { b as getState } from './endpoints-pIoXJCW6.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-CVirrNSz.js';
3
- import { d as detectEmbeddingSettings } from './akm-hO0p79ZE.js';
4
- import './src-CyeWH4Df.js';
1
+ import { b as getState } from './endpoints-DeqIjeS-.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-BxClonOR.js';
3
+ import { d as detectEmbeddingSettings } from './akm-W9nWVWkP.js';
4
+ import './src-DGGmhx-_.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import 'node:fs';
@@ -33,4 +33,4 @@ var POST = async (event) => {
33
33
  };
34
34
 
35
35
  export { POST };
36
- //# sourceMappingURL=_server.ts-C8BrkC8T.js.map
36
+ //# sourceMappingURL=_server.ts-Dmtbp8AT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C8BrkC8T.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/detect/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../chunks/helpers.js\";\nimport { t as detectEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/detect/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst detected = await detectEmbeddingSettings(getState());\n\tif (!detected.ok) return errorResponse(404, \"embedding_not_detected\", detected.message, {}, requestId);\n\treturn jsonResponse(200, detected, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACvG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC9C;;;;"}
1
+ {"version":3,"file":"_server.ts-Dmtbp8AT.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/detect/_server.ts.js"],"sourcesContent":["import { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../chunks/helpers.js\";\nimport { t as detectEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/detect/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst detected = await detectEmbeddingSettings(getState());\n\tif (!detected.ok) return errorResponse(404, \"embedding_not_detected\", detected.message, {}, requestId);\n\treturn jsonResponse(200, detected, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,CAAC;AAC3D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACvG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC;AAC9C;;;;"}
@@ -0,0 +1,205 @@
1
+ import { aj as readStackEnv } from './src-DGGmhx-_.js';
2
+ import { b as getState } from './endpoints-DeqIjeS-.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-BxClonOR.js';
4
+ import { o as opencodeFetch } from './http-B4lcqCl2.js';
5
+ import { g as getCurrentConfig } from './config-DHWE6_Oh.js';
6
+ import { existsSync, readFileSync } from 'node:fs';
7
+ import { join } from 'node:path';
8
+ import './chunk-CLZ62Ad-.js';
9
+ import 'node:module';
10
+ import 'buffer';
11
+ import 'node:os';
12
+ import 'fs';
13
+ import 'path';
14
+ import 'node:child_process';
15
+ import 'node:url';
16
+ import 'node:crypto';
17
+ import 'events';
18
+ import 'node:events';
19
+ import 'node:stream';
20
+ import 'node:string_decoder';
21
+ import 'assert';
22
+ import 'zlib';
23
+ import 'node:assert';
24
+ import 'node:fs/promises';
25
+ import './coercion-TNFJisCC.js';
26
+
27
+ //#region src/lib/server/speech-prep.ts
28
+ function personaPath() {
29
+ return join(getState().configDir, "assistant", "openpalm.md");
30
+ }
31
+ function readPersona() {
32
+ const path = personaPath();
33
+ if (!existsSync(path)) return "";
34
+ try {
35
+ return readFileSync(path, "utf-8").trim();
36
+ } catch {
37
+ return "";
38
+ }
39
+ }
40
+ function extractText(response) {
41
+ return (response.parts ?? []).filter((part) => part.type === "text" && typeof part.text === "string").map((part) => part.text?.trim() ?? "").join(" ").trim();
42
+ }
43
+ function buildPrompt(input) {
44
+ const personaBlock = input.persona ? input.persona : "No persona markdown is configured. Use a neutral, helpful, conversational tone.";
45
+ if (input.mode === "chat_ack") return [
46
+ "You are preparing a short spoken acknowledgement for text-to-speech.",
47
+ "Return only the exact words to speak.",
48
+ "Keep it to one brief sentence.",
49
+ "Sound conversational and aligned with the persona context.",
50
+ "Do not use markdown, lists, or quotes.",
51
+ "Do not answer the full request. Just acknowledge that you are working on it.",
52
+ "",
53
+ "Persona markdown:",
54
+ personaBlock,
55
+ "",
56
+ "User request:",
57
+ input.userText
58
+ ].join("\n");
59
+ return [
60
+ "You are preparing a spoken summary for text-to-speech.",
61
+ "Return only the exact words to speak.",
62
+ "Rewrite the final assistant reply into a concise, natural, conversational response.",
63
+ "Preserve the meaning and important caveats.",
64
+ "Keep it brief enough for audio playback.",
65
+ "Do not use markdown, lists, or quotes.",
66
+ "",
67
+ "Persona markdown:",
68
+ personaBlock,
69
+ "",
70
+ "User request:",
71
+ input.userText,
72
+ "",
73
+ "Final assistant reply:",
74
+ input.assistantText ?? ""
75
+ ].join("\n");
76
+ }
77
+ function resolveSpeechModel(config) {
78
+ const small = typeof config.small_model === "string" ? config.small_model.trim() : "";
79
+ if (small) return small;
80
+ return (typeof config.model === "string" ? config.model.trim() : "") || null;
81
+ }
82
+ async function loadSpeechConfig() {
83
+ try {
84
+ return await opencodeFetch("/config");
85
+ } catch {
86
+ return getCurrentConfig();
87
+ }
88
+ }
89
+ async function prepareSpeechText(input) {
90
+ const userText = input.userText.trim();
91
+ if (!userText) return null;
92
+ if (input.mode === "chat_reply" && !input.assistantText?.trim()) return null;
93
+ const persona = readPersona();
94
+ const model = resolveSpeechModel(await loadSpeechConfig());
95
+ const prompt = buildPrompt({
96
+ mode: input.mode,
97
+ userText,
98
+ assistantText: input.assistantText?.trim(),
99
+ persona
100
+ });
101
+ let sessionId = "";
102
+ try {
103
+ const created = await opencodeFetch("/session", {
104
+ method: "POST",
105
+ body: JSON.stringify({})
106
+ });
107
+ sessionId = typeof created.id === "string" ? created.id : "";
108
+ if (!sessionId) return null;
109
+ return extractText(await opencodeFetch(`/session/${encodeURIComponent(sessionId)}/message`, {
110
+ method: "POST",
111
+ body: JSON.stringify({
112
+ parts: [{
113
+ type: "text",
114
+ text: prompt
115
+ }],
116
+ ...model ? { model } : {}
117
+ })
118
+ })) || null;
119
+ } finally {
120
+ if (sessionId) await opencodeFetch(`/session/${encodeURIComponent(sessionId)}`, { method: "DELETE" }).catch(() => {});
121
+ }
122
+ }
123
+ //#endregion
124
+ //#region src/routes/api/speak/+server.ts
125
+ var DEFAULT_MODEL = "kokoro";
126
+ var DEFAULT_VOICE = "bf_isabella";
127
+ var DEFAULT_FORMAT = "wav";
128
+ var UPSTREAM_TIMEOUT_MS = 6e4;
129
+ function redactKey(s) {
130
+ return s.replace(/(sk-[A-Za-z0-9_-]{4,})/g, "sk-***").replace(/(Bearer\s+)[A-Za-z0-9._-]+/gi, "$1***");
131
+ }
132
+ var POST = async (event) => {
133
+ const requestId = getRequestId(event);
134
+ const authError = requireAdmin(event, requestId);
135
+ if (authError) return authError;
136
+ const stackEnv = readStackEnv(getState().stackDir);
137
+ const ttsBaseURL = (stackEnv.OP_TTS_BASE_URL || process.env.OP_TTS_BASE_URL || "").trim();
138
+ const ttsModel = (stackEnv.OP_TTS_MODEL || process.env.OP_TTS_MODEL || "").trim() || DEFAULT_MODEL;
139
+ const ttsVoice = (stackEnv.OP_TTS_VOICE || process.env.OP_TTS_VOICE || "").trim() || DEFAULT_VOICE;
140
+ const ttsApiKey = (process.env.OP_TTS_API_KEY ?? "").trim();
141
+ if (!ttsBaseURL) return errorResponse(503, "tts_not_configured", "Configure a TTS engine in Admin → Voice settings.", {}, requestId);
142
+ let body;
143
+ try {
144
+ body = await event.request.json();
145
+ } catch {
146
+ return errorResponse(400, "bad_request", "Invalid JSON body", {}, requestId);
147
+ }
148
+ const b = body ?? {};
149
+ const text = typeof b.text === "string" ? b.text.trim() : "";
150
+ if (!text) return errorResponse(400, "bad_request", "\"text\" is required", {}, requestId);
151
+ const mode = b.mode === "chat_ack" || b.mode === "chat_reply" ? b.mode : null;
152
+ const userText = typeof b.userText === "string" ? b.userText.trim() : "";
153
+ const assistantText = typeof b.assistantText === "string" ? b.assistantText.trim() : "";
154
+ const voice = typeof b.voice === "string" && b.voice.trim() ? b.voice.trim() : ttsVoice;
155
+ const format = typeof b.format === "string" && b.format.trim() ? b.format.trim() : DEFAULT_FORMAT;
156
+ let speechText = text;
157
+ if (mode) try {
158
+ const prepared = await prepareSpeechText({
159
+ mode,
160
+ userText,
161
+ assistantText
162
+ });
163
+ if (prepared) speechText = prepared;
164
+ } catch (err) {
165
+ console.warn("[api/speak] speech prep failed; falling back to raw text", err);
166
+ }
167
+ const upstreamUrl = ttsBaseURL.replace(/\/+$/, "") + "/v1/audio/speech";
168
+ const headers = { "content-type": "application/json" };
169
+ if (ttsApiKey) headers["authorization"] = `Bearer ${ttsApiKey}`;
170
+ let upstream;
171
+ try {
172
+ upstream = await fetch(upstreamUrl, {
173
+ method: "POST",
174
+ headers,
175
+ body: JSON.stringify({
176
+ model: ttsModel,
177
+ voice,
178
+ input: speechText,
179
+ response_format: format
180
+ }),
181
+ signal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS)
182
+ });
183
+ } catch (err) {
184
+ return errorResponse(502, "upstream_error", `Could not reach TTS endpoint: ${redactKey(err instanceof Error ? err.message : String(err))}`, { upstream: upstreamUrl }, requestId);
185
+ }
186
+ if (!upstream.ok) {
187
+ const body = await upstream.text().catch(() => "");
188
+ return errorResponse(502, "upstream_error", `TTS endpoint returned ${upstream.status}`, {
189
+ upstreamStatus: upstream.status,
190
+ body: redactKey(body).slice(0, 500)
191
+ }, requestId);
192
+ }
193
+ const responseHeaders = new Headers();
194
+ responseHeaders.set("content-type", upstream.headers.get("content-type") ?? "audio/wav");
195
+ const contentLength = upstream.headers.get("content-length");
196
+ if (contentLength) responseHeaders.set("content-length", contentLength);
197
+ responseHeaders.set("x-request-id", requestId);
198
+ return new Response(upstream.body, {
199
+ status: 200,
200
+ headers: responseHeaders
201
+ });
202
+ };
203
+
204
+ export { POST };
205
+ //# sourceMappingURL=_server.ts-Dnq1yxVI.js.map