@openpalm/ui 0.12.34 → 0.12.35

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 (307) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/{B5tYS-bg.js → BJ1FElAi.js} +2 -2
  3. package/build/client/_app/immutable/chunks/BJ1FElAi.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BJ1FElAi.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/BllPz2fN.js +1 -0
  6. package/build/client/_app/immutable/chunks/BllPz2fN.js.br +2 -0
  7. package/build/client/_app/immutable/chunks/BllPz2fN.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{CJjzJNol.js → Cn5j2N5s.js} +1 -1
  9. package/build/client/_app/immutable/chunks/Cn5j2N5s.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/Cn5j2N5s.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{CS-tYlaw.js → Dma1yH6T.js} +1 -1
  12. package/build/client/_app/immutable/chunks/Dma1yH6T.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/Dma1yH6T.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/{app.D7TBsXqj.js → app.DCTrXp6P.js} +2 -2
  15. package/build/client/_app/immutable/entry/app.DCTrXp6P.js.br +0 -0
  16. package/build/client/_app/immutable/entry/app.DCTrXp6P.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/start.DSb-TcOn.js +1 -0
  18. package/build/client/_app/immutable/entry/start.DSb-TcOn.js.br +1 -0
  19. package/build/client/_app/immutable/entry/start.DSb-TcOn.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.Bi6WIdhc.js → 1.DeODpuBZ.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.DeODpuBZ.js.br +0 -0
  22. package/build/client/_app/immutable/nodes/1.DeODpuBZ.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{4.NXDNIo_o.js → 4.BPWbyAG8.js} +1 -1
  24. package/build/client/_app/immutable/nodes/4.BPWbyAG8.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/4.BPWbyAG8.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{5.CGz0srSp.js → 5.DSNlc6_T.js} +1 -1
  27. package/build/client/_app/immutable/nodes/5.DSNlc6_T.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/5.DSNlc6_T.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{6.BUJ84ynI.js → 6.BXpzaUL0.js} +1 -1
  30. package/build/client/_app/immutable/nodes/6.BXpzaUL0.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/6.BXpzaUL0.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{7.D4v1j10K.js → 7.BrFVK4tb.js} +1 -1
  33. package/build/client/_app/immutable/nodes/7.BrFVK4tb.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/7.BrFVK4tb.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{8.eBCg3Ry9.js → 8.w_eWNqum.js} +1 -1
  36. package/build/client/_app/immutable/nodes/8.w_eWNqum.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/8.w_eWNqum.js.gz +0 -0
  38. package/build/client/_app/version.json +1 -1
  39. package/build/client/_app/version.json.br +1 -1
  40. package/build/client/_app/version.json.gz +0 -0
  41. package/build/server/chunks/1-DHr2ahqY.js +9 -0
  42. package/build/server/chunks/{1-DrFASQif.js.map → 1-DHr2ahqY.js.map} +1 -1
  43. package/build/server/chunks/{10-B6IaM0-e.js → 10-Bhcyw8HA.js} +5 -5
  44. package/build/server/chunks/{10-B6IaM0-e.js.map → 10-Bhcyw8HA.js.map} +1 -1
  45. package/build/server/chunks/{4-C3H9LKRg.js → 4-Cd3Q4DoQ.js} +3 -3
  46. package/build/server/chunks/{4-C3H9LKRg.js.map → 4-Cd3Q4DoQ.js.map} +1 -1
  47. package/build/server/chunks/{5-BGxY0RSD.js → 5-BBhfqYBp.js} +3 -3
  48. package/build/server/chunks/{5-BGxY0RSD.js.map → 5-BBhfqYBp.js.map} +1 -1
  49. package/build/server/chunks/{6-BZ-Odk7I.js → 6-Djg8mg9E.js} +3 -3
  50. package/build/server/chunks/{6-BZ-Odk7I.js.map → 6-Djg8mg9E.js.map} +1 -1
  51. package/build/server/chunks/{7-etzd-Xd2.js → 7-D2mE5z4a.js} +3 -3
  52. package/build/server/chunks/{7-etzd-Xd2.js.map → 7-D2mE5z4a.js.map} +1 -1
  53. package/build/server/chunks/{8-CNz8Jpc-.js → 8-BZ53nosC.js} +3 -3
  54. package/build/server/chunks/{8-CNz8Jpc-.js.map → 8-BZ53nosC.js.map} +1 -1
  55. package/build/server/chunks/{Navbar-CXNzYgdt.js → Navbar-DmstJWgp.js} +3 -3
  56. package/build/server/chunks/{Navbar-CXNzYgdt.js.map → Navbar-DmstJWgp.js.map} +1 -1
  57. package/build/server/chunks/{_page.svelte-mebE6HA8.js → _page.svelte-6H8jZf49.js} +3 -3
  58. package/build/server/chunks/{_page.svelte-mebE6HA8.js.map → _page.svelte-6H8jZf49.js.map} +1 -1
  59. package/build/server/chunks/{_page.svelte-DhOqX8mJ.js → _page.svelte-CupozR5-.js} +3 -3
  60. package/build/server/chunks/{_page.svelte-DhOqX8mJ.js.map → _page.svelte-CupozR5-.js.map} +1 -1
  61. package/build/server/chunks/{_page.svelte-DSEIDtL1.js → _page.svelte-CzA8BxOP.js} +5 -5
  62. package/build/server/chunks/{_page.svelte-DSEIDtL1.js.map → _page.svelte-CzA8BxOP.js.map} +1 -1
  63. package/build/server/chunks/{_page.svelte-Cj0Y9tCh.js → _page.svelte-DGMNp0WD.js} +5 -5
  64. package/build/server/chunks/{_page.svelte-Cj0Y9tCh.js.map → _page.svelte-DGMNp0WD.js.map} +1 -1
  65. package/build/server/chunks/{_page.svelte-DtgRYmye.js → _page.svelte-DmAj2xUu.js} +5 -5
  66. package/build/server/chunks/{_page.svelte-DtgRYmye.js.map → _page.svelte-DmAj2xUu.js.map} +1 -1
  67. package/build/server/chunks/{_server.ts-jf6Xk_xd.js → _server.ts-17Sm7tBJ.js} +5 -5
  68. package/build/server/chunks/{_server.ts-jf6Xk_xd.js.map → _server.ts-17Sm7tBJ.js.map} +1 -1
  69. package/build/server/chunks/{_server.ts-DoHWs9cP.js → _server.ts-4mcrPKs8.js} +5 -5
  70. package/build/server/chunks/{_server.ts-DoHWs9cP.js.map → _server.ts-4mcrPKs8.js.map} +1 -1
  71. package/build/server/chunks/{_server.ts-COm0mfdC.js → _server.ts-644qDVn-.js} +5 -5
  72. package/build/server/chunks/{_server.ts-COm0mfdC.js.map → _server.ts-644qDVn-.js.map} +1 -1
  73. package/build/server/chunks/{_server.ts-BbuEozdR.js → _server.ts-7HHVmf6s.js} +5 -5
  74. package/build/server/chunks/{_server.ts-BbuEozdR.js.map → _server.ts-7HHVmf6s.js.map} +1 -1
  75. package/build/server/chunks/{_server.ts-Df9n4LH_.js → _server.ts-7PYmr9Z-.js} +5 -5
  76. package/build/server/chunks/{_server.ts-Df9n4LH_.js.map → _server.ts-7PYmr9Z-.js.map} +1 -1
  77. package/build/server/chunks/{_server.ts-OiPARfGO.js → _server.ts-7YfKZbRf.js} +6 -6
  78. package/build/server/chunks/{_server.ts-OiPARfGO.js.map → _server.ts-7YfKZbRf.js.map} +1 -1
  79. package/build/server/chunks/{_server.ts-B1ToGf9w.js → _server.ts-B4IkHWrK.js} +5 -5
  80. package/build/server/chunks/{_server.ts-B1ToGf9w.js.map → _server.ts-B4IkHWrK.js.map} +1 -1
  81. package/build/server/chunks/{_server.ts-BagzUjh6.js → _server.ts-B4sIzTwj.js} +5 -5
  82. package/build/server/chunks/{_server.ts-BagzUjh6.js.map → _server.ts-B4sIzTwj.js.map} +1 -1
  83. package/build/server/chunks/{_server.ts-Dg9JwLNX.js → _server.ts-BHglX11P.js} +7 -7
  84. package/build/server/chunks/{_server.ts-Dg9JwLNX.js.map → _server.ts-BHglX11P.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-Adh_oL_T.js → _server.ts-BIKnhFxu.js} +5 -5
  86. package/build/server/chunks/{_server.ts-Adh_oL_T.js.map → _server.ts-BIKnhFxu.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-CjQHzpFo.js → _server.ts-BItwSO5E.js} +2 -2
  88. package/build/server/chunks/{_server.ts-CjQHzpFo.js.map → _server.ts-BItwSO5E.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-BsCPihL8.js → _server.ts-BJlwCXg-.js} +5 -5
  90. package/build/server/chunks/{_server.ts-BsCPihL8.js.map → _server.ts-BJlwCXg-.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-GtYK4DYD.js → _server.ts-BR0sBzB0.js} +5 -5
  92. package/build/server/chunks/{_server.ts-GtYK4DYD.js.map → _server.ts-BR0sBzB0.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-DaWQ85du.js → _server.ts-Baozh1FE.js} +5 -5
  94. package/build/server/chunks/{_server.ts-DaWQ85du.js.map → _server.ts-Baozh1FE.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-CxB6_YDS.js → _server.ts-BbtNmpd6.js} +5 -5
  96. package/build/server/chunks/{_server.ts-CxB6_YDS.js.map → _server.ts-BbtNmpd6.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-DkNKtYwN.js → _server.ts-BexCNXZL.js} +5 -5
  98. package/build/server/chunks/{_server.ts-DkNKtYwN.js.map → _server.ts-BexCNXZL.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-WvKWpw-U.js → _server.ts-Bh-5jiYC.js} +5 -5
  100. package/build/server/chunks/{_server.ts-WvKWpw-U.js.map → _server.ts-Bh-5jiYC.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-CtKU8FWp.js → _server.ts-Bh5t8TMR.js} +5 -5
  102. package/build/server/chunks/{_server.ts-CtKU8FWp.js.map → _server.ts-Bh5t8TMR.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-B80VYpEB.js → _server.ts-BkKDLEw2.js} +5 -5
  104. package/build/server/chunks/{_server.ts-B80VYpEB.js.map → _server.ts-BkKDLEw2.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-n1RjgFMa.js → _server.ts-BlGrZPhR.js} +7 -7
  106. package/build/server/chunks/{_server.ts-n1RjgFMa.js.map → _server.ts-BlGrZPhR.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-BUrVYBb9.js → _server.ts-BmQzKzgF.js} +5 -5
  108. package/build/server/chunks/{_server.ts-BUrVYBb9.js.map → _server.ts-BmQzKzgF.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-CZuDLyOr.js → _server.ts-Bp8WEV3T.js} +5 -5
  110. package/build/server/chunks/{_server.ts-CZuDLyOr.js.map → _server.ts-Bp8WEV3T.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-CT31IqQJ.js → _server.ts-BrMoDp9S.js} +5 -5
  112. package/build/server/chunks/{_server.ts-CT31IqQJ.js.map → _server.ts-BrMoDp9S.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-C0kEzW7V.js → _server.ts-Bv2PmRE5.js} +7 -7
  114. package/build/server/chunks/{_server.ts-C0kEzW7V.js.map → _server.ts-Bv2PmRE5.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-DtycNfMN.js → _server.ts-BvJoozcb.js} +5 -5
  116. package/build/server/chunks/{_server.ts-DtycNfMN.js.map → _server.ts-BvJoozcb.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-I0lkvp1g.js → _server.ts-Bzx8e_vT.js} +5 -5
  118. package/build/server/chunks/{_server.ts-I0lkvp1g.js.map → _server.ts-Bzx8e_vT.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-BBHgp0iO.js → _server.ts-C759kKrI.js} +5 -5
  120. package/build/server/chunks/{_server.ts-BBHgp0iO.js.map → _server.ts-C759kKrI.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-cT2SjALE.js → _server.ts-C7BHJSCS.js} +6 -6
  122. package/build/server/chunks/{_server.ts-cT2SjALE.js.map → _server.ts-C7BHJSCS.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-BwZW3eok.js → _server.ts-C7EVl-bi.js} +5 -5
  124. package/build/server/chunks/{_server.ts-BwZW3eok.js.map → _server.ts-C7EVl-bi.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-qwACnEWC.js → _server.ts-C8owE7KE.js} +5 -5
  126. package/build/server/chunks/{_server.ts-qwACnEWC.js.map → _server.ts-C8owE7KE.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-CY5x6NoR.js → _server.ts-CCSbDOWm.js} +5 -5
  128. package/build/server/chunks/{_server.ts-CY5x6NoR.js.map → _server.ts-CCSbDOWm.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-fEdCKaDh.js → _server.ts-CFPp8keI.js} +5 -5
  130. package/build/server/chunks/{_server.ts-fEdCKaDh.js.map → _server.ts-CFPp8keI.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-Z4V3QkQm.js → _server.ts-CKnr7Uu8.js} +2 -2
  132. package/build/server/chunks/{_server.ts-Z4V3QkQm.js.map → _server.ts-CKnr7Uu8.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-4BGJWB3J.js → _server.ts-CMfWgDOR.js} +6 -6
  134. package/build/server/chunks/{_server.ts-4BGJWB3J.js.map → _server.ts-CMfWgDOR.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-Dosr-dE4.js → _server.ts-CPEbL-Pt.js} +6 -6
  136. package/build/server/chunks/{_server.ts-Dosr-dE4.js.map → _server.ts-CPEbL-Pt.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-CM7rcTWq.js → _server.ts-CUSgj-vr.js} +7 -7
  138. package/build/server/chunks/{_server.ts-CM7rcTWq.js.map → _server.ts-CUSgj-vr.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-DvFTsvub.js → _server.ts-CWb18g88.js} +8 -8
  140. package/build/server/chunks/{_server.ts-DvFTsvub.js.map → _server.ts-CWb18g88.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-DVQsU_HM.js → _server.ts-CWz-e7Hy.js} +7 -7
  142. package/build/server/chunks/{_server.ts-DVQsU_HM.js.map → _server.ts-CWz-e7Hy.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-B_d52cJx.js → _server.ts-CZJ1Q1LT.js} +7 -7
  144. package/build/server/chunks/{_server.ts-B_d52cJx.js.map → _server.ts-CZJ1Q1LT.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-CftDPhoe.js → _server.ts-Caecp_9T.js} +6 -6
  146. package/build/server/chunks/{_server.ts-CftDPhoe.js.map → _server.ts-Caecp_9T.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-DllcywUx.js → _server.ts-CbW89QHq.js} +5 -5
  148. package/build/server/chunks/{_server.ts-DllcywUx.js.map → _server.ts-CbW89QHq.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-DG6KmiIw.js → _server.ts-CeuX4TD2.js} +6 -6
  150. package/build/server/chunks/{_server.ts-DG6KmiIw.js.map → _server.ts-CeuX4TD2.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-fCo6TSRW.js → _server.ts-CjrBMt_s.js} +5 -5
  152. package/build/server/chunks/{_server.ts-fCo6TSRW.js.map → _server.ts-CjrBMt_s.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-DNRHhDFK.js → _server.ts-Clnw_CPP.js} +4 -4
  154. package/build/server/chunks/{_server.ts-DNRHhDFK.js.map → _server.ts-Clnw_CPP.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-CawziIqs.js → _server.ts-Co5cJt5A.js} +2 -2
  156. package/build/server/chunks/{_server.ts-CawziIqs.js.map → _server.ts-Co5cJt5A.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-Ce-Yb2f8.js → _server.ts-CswojIO6.js} +5 -5
  158. package/build/server/chunks/{_server.ts-Ce-Yb2f8.js.map → _server.ts-CswojIO6.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-B1BKJgU_.js → _server.ts-CwLV4b1f.js} +27 -5
  160. package/build/server/chunks/_server.ts-CwLV4b1f.js.map +1 -0
  161. package/build/server/chunks/{_server.ts-B3BDnoZu.js → _server.ts-CyCT3WI1.js} +5 -5
  162. package/build/server/chunks/{_server.ts-B3BDnoZu.js.map → _server.ts-CyCT3WI1.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-DYCdg-2V.js → _server.ts-D-kETy9m.js} +5 -5
  164. package/build/server/chunks/{_server.ts-DYCdg-2V.js.map → _server.ts-D-kETy9m.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-BAZYZreJ.js → _server.ts-D02ydqWj.js} +5 -5
  166. package/build/server/chunks/{_server.ts-BAZYZreJ.js.map → _server.ts-D02ydqWj.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-Dr9Qc9qb.js → _server.ts-D1SQw1xr.js} +5 -5
  168. package/build/server/chunks/{_server.ts-Dr9Qc9qb.js.map → _server.ts-D1SQw1xr.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-mL9UAmlh.js → _server.ts-D92SRQrD.js} +5 -5
  170. package/build/server/chunks/{_server.ts-mL9UAmlh.js.map → _server.ts-D92SRQrD.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-BWbP8wPw.js → _server.ts-DEmX_Z0O.js} +6 -6
  172. package/build/server/chunks/{_server.ts-BWbP8wPw.js.map → _server.ts-DEmX_Z0O.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-Bdv1N4Zn.js → _server.ts-DEmtjEMi.js} +5 -5
  174. package/build/server/chunks/{_server.ts-Bdv1N4Zn.js.map → _server.ts-DEmtjEMi.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-ZReIn63p.js → _server.ts-DGdvFSCJ.js} +5 -5
  176. package/build/server/chunks/{_server.ts-ZReIn63p.js.map → _server.ts-DGdvFSCJ.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-C7mCmTRF.js → _server.ts-DI7DVHmY.js} +5 -5
  178. package/build/server/chunks/{_server.ts-C7mCmTRF.js.map → _server.ts-DI7DVHmY.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-DBG9PZWB.js → _server.ts-DKAThwNY.js} +5 -5
  180. package/build/server/chunks/{_server.ts-DBG9PZWB.js.map → _server.ts-DKAThwNY.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-B2oxlCMT.js → _server.ts-DMk0lyPh.js} +5 -5
  182. package/build/server/chunks/{_server.ts-B2oxlCMT.js.map → _server.ts-DMk0lyPh.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-BPposGPj.js → _server.ts-DP5YV8h3.js} +5 -5
  184. package/build/server/chunks/{_server.ts-BPposGPj.js.map → _server.ts-DP5YV8h3.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-DcJBYt6E.js → _server.ts-DTa1SYz_.js} +5 -5
  186. package/build/server/chunks/{_server.ts-DcJBYt6E.js.map → _server.ts-DTa1SYz_.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BfQ7ldwW.js → _server.ts-DYjYHIIg.js} +5 -5
  188. package/build/server/chunks/{_server.ts-BfQ7ldwW.js.map → _server.ts-DYjYHIIg.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-DB3tMVgG.js → _server.ts-De3Ci2sP.js} +5 -5
  190. package/build/server/chunks/{_server.ts-DB3tMVgG.js.map → _server.ts-De3Ci2sP.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-DlEksmNN.js → _server.ts-De6opDLP.js} +5 -5
  192. package/build/server/chunks/{_server.ts-DlEksmNN.js.map → _server.ts-De6opDLP.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-D2ZlFfi4.js → _server.ts-Der6MKsu.js} +2 -2
  194. package/build/server/chunks/{_server.ts-D2ZlFfi4.js.map → _server.ts-Der6MKsu.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-DtLrRPqj.js → _server.ts-DfwiRzeI.js} +5 -5
  196. package/build/server/chunks/{_server.ts-DtLrRPqj.js.map → _server.ts-DfwiRzeI.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-CxiVPWJk.js → _server.ts-Dg1Zjg-X.js} +2 -2
  198. package/build/server/chunks/{_server.ts-CxiVPWJk.js.map → _server.ts-Dg1Zjg-X.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-C5OqiDmH.js → _server.ts-DgYWHXWn.js} +5 -5
  200. package/build/server/chunks/{_server.ts-C5OqiDmH.js.map → _server.ts-DgYWHXWn.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-NMR4dwKz.js → _server.ts-DkpnaxtR.js} +6 -6
  202. package/build/server/chunks/{_server.ts-NMR4dwKz.js.map → _server.ts-DkpnaxtR.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-COIxtLd8.js → _server.ts-DnTpL24U.js} +5 -5
  204. package/build/server/chunks/{_server.ts-COIxtLd8.js.map → _server.ts-DnTpL24U.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-DT10TFj6.js → _server.ts-Do9vXHTl.js} +5 -5
  206. package/build/server/chunks/{_server.ts-DT10TFj6.js.map → _server.ts-Do9vXHTl.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-BMZDMOWe.js → _server.ts-Dr9Nrd0B.js} +4 -4
  208. package/build/server/chunks/{_server.ts-BMZDMOWe.js.map → _server.ts-Dr9Nrd0B.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-DrHTacva.js → _server.ts-DuzwVKnI.js} +6 -6
  210. package/build/server/chunks/{_server.ts-DrHTacva.js.map → _server.ts-DuzwVKnI.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-C6EvDiCB.js → _server.ts-DyAq_u9y.js} +5 -5
  212. package/build/server/chunks/{_server.ts-C6EvDiCB.js.map → _server.ts-DyAq_u9y.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-CpOcb-Dy.js → _server.ts-F9jr1TXS.js} +5 -5
  214. package/build/server/chunks/{_server.ts-CpOcb-Dy.js.map → _server.ts-F9jr1TXS.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-CWdInfEp.js → _server.ts-Ff36E_kQ.js} +5 -5
  216. package/build/server/chunks/{_server.ts-CWdInfEp.js.map → _server.ts-Ff36E_kQ.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-BYJr9N2P.js → _server.ts-IrIGIyzI.js} +6 -6
  218. package/build/server/chunks/{_server.ts-BYJr9N2P.js.map → _server.ts-IrIGIyzI.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-iMaXV6FY.js → _server.ts-IuJoqgcf.js} +5 -5
  220. package/build/server/chunks/{_server.ts-iMaXV6FY.js.map → _server.ts-IuJoqgcf.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-CFXMWI2h.js → _server.ts-Q6gku721.js} +5 -5
  222. package/build/server/chunks/{_server.ts-CFXMWI2h.js.map → _server.ts-Q6gku721.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-CvE-xhWs.js → _server.ts-WRqR790z.js} +5 -5
  224. package/build/server/chunks/{_server.ts-CvE-xhWs.js.map → _server.ts-WRqR790z.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-D45cu11n.js → _server.ts-aIvJGwVD.js} +5 -5
  226. package/build/server/chunks/{_server.ts-D45cu11n.js.map → _server.ts-aIvJGwVD.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-r4_ma4-J.js → _server.ts-p6BIfEPN.js} +6 -6
  228. package/build/server/chunks/{_server.ts-r4_ma4-J.js.map → _server.ts-p6BIfEPN.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-BD8TAE0P.js → _server.ts-wZerakZf.js} +5 -5
  230. package/build/server/chunks/{_server.ts-BD8TAE0P.js.map → _server.ts-wZerakZf.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-BzpCbc3S.js → _server.ts-x2T-1ecq.js} +27 -5
  232. package/build/server/chunks/_server.ts-x2T-1ecq.js.map +1 -0
  233. package/build/server/chunks/{_server.ts-Cxr9pVQe.js → _server.ts-ygo2IFet.js} +5 -5
  234. package/build/server/chunks/{_server.ts-Cxr9pVQe.js.map → _server.ts-ygo2IFet.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-DK2txFVU.js → _server.ts-zlBR3T4Z.js} +6 -6
  236. package/build/server/chunks/{_server.ts-DK2txFVU.js.map → _server.ts-zlBR3T4Z.js.map} +1 -1
  237. package/build/server/chunks/{addon-helpers-BiMRh0Y0.js → addon-helpers-XImVlKha.js} +3 -3
  238. package/build/server/chunks/{addon-helpers-BiMRh0Y0.js.map → addon-helpers-XImVlKha.js.map} +1 -1
  239. package/build/server/chunks/{akm-Ry9Pheex.js → akm-BHWIeMbV.js} +2 -2
  240. package/build/server/chunks/{akm-Ry9Pheex.js.map → akm-BHWIeMbV.js.map} +1 -1
  241. package/build/server/chunks/{catalog-UO1eH4XT.js → catalog-Fe3z4JM_.js} +5 -5
  242. package/build/server/chunks/{catalog-UO1eH4XT.js.map → catalog-Fe3z4JM_.js.map} +1 -1
  243. package/build/server/chunks/{client-DrRpdh3J.js → client-lMbA6Jug.js} +2 -2
  244. package/build/server/chunks/{client-DrRpdh3J.js.map → client-lMbA6Jug.js.map} +1 -1
  245. package/build/server/chunks/{config-CJ5lgj6m.js → config-B2V9qVRT.js} +2 -2
  246. package/build/server/chunks/{config-CJ5lgj6m.js.map → config-B2V9qVRT.js.map} +1 -1
  247. package/build/server/chunks/{docker-BA7ZmLlN.js → docker-CEt-3e57.js} +2 -2
  248. package/build/server/chunks/{docker-BA7ZmLlN.js.map → docker-CEt-3e57.js.map} +1 -1
  249. package/build/server/chunks/{endpoints-CaZDtz1E.js → endpoints-ev9YSBb8.js} +2 -2
  250. package/build/server/chunks/{endpoints-CaZDtz1E.js.map → endpoints-ev9YSBb8.js.map} +1 -1
  251. package/build/server/chunks/{error.svelte-HbdmPA5p.js → error.svelte-CIoDqhLx.js} +4 -4
  252. package/build/server/chunks/{error.svelte-HbdmPA5p.js.map → error.svelte-CIoDqhLx.js.map} +1 -1
  253. package/build/server/chunks/{helpers-CbGxMTVo.js → helpers-BluGgY3g.js} +3 -3
  254. package/build/server/chunks/{helpers-CbGxMTVo.js.map → helpers-BluGgY3g.js.map} +1 -1
  255. package/build/server/chunks/{hooks.server-wW3pI-qp.js → hooks.server-DMdbB9Fv.js} +7 -7
  256. package/build/server/chunks/{hooks.server-wW3pI-qp.js.map → hooks.server-DMdbB9Fv.js.map} +1 -1
  257. package/build/server/chunks/{http-BJBLvJS_.js → http-BmFqfzyw.js} +2 -2
  258. package/build/server/chunks/{http-BJBLvJS_.js.map → http-BmFqfzyw.js.map} +1 -1
  259. package/build/server/chunks/{internal-Cg-mVr8r.js → internal-CGvCj4Lu.js} +3 -3
  260. package/build/server/chunks/{internal-Cg-mVr8r.js.map → internal-CGvCj4Lu.js.map} +1 -1
  261. package/build/server/chunks/{migration-status-DwG2iEgP.js → migration-status-UK_z_iXN.js} +2 -2
  262. package/build/server/chunks/{migration-status-DwG2iEgP.js.map → migration-status-UK_z_iXN.js.map} +1 -1
  263. package/build/server/chunks/{session-cookie-CAsGSkTV.js → session-cookie-Cn2O_Cv6.js} +2 -2
  264. package/build/server/chunks/{session-cookie-CAsGSkTV.js.map → session-cookie-Cn2O_Cv6.js.map} +1 -1
  265. package/build/server/chunks/{setup-deploy-BfBaLbir.js → setup-deploy-B9QxcV6K.js} +2 -2
  266. package/build/server/chunks/{setup-deploy-BfBaLbir.js.map → setup-deploy-B9QxcV6K.js.map} +1 -1
  267. package/build/server/chunks/{src-BunIUeZg.js → src-Bms-Wpj4.js} +205 -134
  268. package/build/server/chunks/src-Bms-Wpj4.js.map +1 -0
  269. package/build/server/chunks/{state-DvXQigXN.js → state-dBGSHxF6.js} +2 -2
  270. package/build/server/chunks/{state-DvXQigXN.js.map → state-dBGSHxF6.js.map} +1 -1
  271. package/build/server/chunks/{state2-CH9BSbkr.js → state2-tak_X-zN.js} +2 -2
  272. package/build/server/chunks/{state2-CH9BSbkr.js.map → state2-tak_X-zN.js.map} +1 -1
  273. package/build/server/index.js +1 -1
  274. package/build/server/index.js.map +1 -1
  275. package/build/server/manifest.js +93 -93
  276. package/build/server/manifest.js.map +1 -1
  277. package/package.json +2 -2
  278. package/build/client/_app/immutable/chunks/B5tYS-bg.js.br +0 -0
  279. package/build/client/_app/immutable/chunks/B5tYS-bg.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/CJjzJNol.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/CJjzJNol.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/CS-tYlaw.js.br +0 -0
  283. package/build/client/_app/immutable/chunks/CS-tYlaw.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/D2tCvxVC.js +0 -1
  285. package/build/client/_app/immutable/chunks/D2tCvxVC.js.br +0 -2
  286. package/build/client/_app/immutable/chunks/D2tCvxVC.js.gz +0 -0
  287. package/build/client/_app/immutable/entry/app.D7TBsXqj.js.br +0 -0
  288. package/build/client/_app/immutable/entry/app.D7TBsXqj.js.gz +0 -0
  289. package/build/client/_app/immutable/entry/start.BBl-U2qJ.js +0 -1
  290. package/build/client/_app/immutable/entry/start.BBl-U2qJ.js.br +0 -0
  291. package/build/client/_app/immutable/entry/start.BBl-U2qJ.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/1.Bi6WIdhc.js.br +0 -1
  293. package/build/client/_app/immutable/nodes/1.Bi6WIdhc.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/4.NXDNIo_o.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/4.NXDNIo_o.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/5.CGz0srSp.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/5.CGz0srSp.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/6.BUJ84ynI.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/6.BUJ84ynI.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/7.D4v1j10K.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/7.D4v1j10K.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/8.eBCg3Ry9.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/8.eBCg3Ry9.js.gz +0 -0
  304. package/build/server/chunks/1-DrFASQif.js +0 -9
  305. package/build/server/chunks/_server.ts-B1BKJgU_.js.map +0 -1
  306. package/build/server/chunks/_server.ts-BzpCbc3S.js.map +0 -1
  307. package/build/server/chunks/src-BunIUeZg.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { F as head, d as attr, s as escape_html, p as derived } from './dev-D85DamNs.js';
2
2
  import 'node:module';
3
- import { a as afterNavigate } from './client-DrRpdh3J.js';
4
- import { p as page } from './state2-CH9BSbkr.js';
3
+ import { a as afterNavigate } from './client-lMbA6Jug.js';
4
+ import { p as page } from './state2-tak_X-zN.js';
5
5
  import { o as endpointsService, m as chat, j as buildAdvancedIframeUrl } from './IconMic-DK0ZRKNm.js';
6
- import { N as Navbar } from './Navbar-CXNzYgdt.js';
7
- import './internal-Cg-mVr8r.js';
6
+ import { N as Navbar } from './Navbar-DmstJWgp.js';
7
+ import './internal-CGvCj4Lu.js';
8
8
  import './utils-BSRjJDrZ.js';
9
9
  import './chunk-CLZ62Ad-.js';
10
10
  import './theme-state.svelte-DshW_ZYI.js';
@@ -83,4 +83,4 @@ function _page($$renderer, $$props) {
83
83
  }
84
84
 
85
85
  export { _page as default };
86
- //# sourceMappingURL=_page.svelte-Cj0Y9tCh.js.map
86
+ //# sourceMappingURL=_page.svelte-DGMNp0WD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-Cj0Y9tCh.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/advanced/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, s as head } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { t as afterNavigate } from \"../../../chunks/client.js\";\nimport { t as page } from \"../../../chunks/state2.js\";\nimport \"../../../chunks/navigation.js\";\nimport { _ as chat, c as endpointsService, p as buildAdvancedIframeUrl } from \"../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../chunks/Navbar.js\";\n//#region src/routes/advanced/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tconst active = derived(() => endpointsService.active);\n\t\tconst requestedSessionId = derived(() => page.url.searchParams.get(\"session\"));\n\t\tlet frameUrl = \"\";\n\t\tlet probeState = \"checking\";\n\t\tlet reconnecting = false;\n\t\tlet probeToken = 0;\n\t\tasync function resolve() {\n\t\t\tconst token = ++probeToken;\n\t\t\tprobeState = \"checking\";\n\t\t\tconst base = active()?.url ?? \"http://127.0.0.1:3800\";\n\t\t\ttry {\n\t\t\t\tconst root = await fetch(\"/proxy/assistant/\", { headers: { accept: \"text/html\" } });\n\t\t\t\tif (token !== probeToken) return;\n\t\t\t\tif (!root.ok) {\n\t\t\t\t\tprobeState = \"dead\";\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet url = base;\n\t\t\t\tif (requestedSessionId()) {\n\t\t\t\t\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(requestedSessionId())}`, { headers: { accept: \"application/json\" } });\n\t\t\t\t\tif (token !== probeToken) return;\n\t\t\t\t\tif (res.ok) {\n\t\t\t\t\t\tconst session = await res.json().catch(() => null);\n\t\t\t\t\t\tif (token !== probeToken) return;\n\t\t\t\t\t\turl = buildAdvancedIframeUrl(base, requestedSessionId(), session?.directory);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tframeUrl = url;\n\t\t\t\tprobeState = \"ready\";\n\t\t\t} catch {\n\t\t\t\tif (token !== probeToken) return;\n\t\t\t\tprobeState = \"dead\";\n\t\t\t}\n\t\t}\n\t\tafterNavigate(({ to }) => {\n\t\t\tconst sid = to?.url.searchParams.get(\"session\") ?? null;\n\t\t\tif (sid) chat.setActiveSessionId(sid);\n\t\t\tendpointsService.load().then(() => resolve());\n\t\t});\n\t\thead(\"1z0msvj\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Advanced Chat — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <div class=\"advanced-layout svelte-1z0msvj\">`);\n\t\tif (probeState === \"ready\") {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<!---->`);\n\t\t\t$$renderer.push(`<iframe class=\"opencode-frame svelte-1z0msvj\"${attr(\"src\", frameUrl)} title=\"OpenCode — Advanced Chat\" allow=\"clipboard-read; clipboard-write; microphone\"></iframe>`);\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<div class=\"advanced-status svelte-1z0msvj\"${attr(\"role\", probeState === \"dead\" ? \"alert\" : \"status\")} aria-live=\"polite\">`);\n\t\t\tif (probeState === \"checking\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<p class=\"status-line svelte-1z0msvj\">Connecting to ${escape_html(active()?.label ?? \"your assistant\")}…</p>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<h2 class=\"svelte-1z0msvj\">Can’t reach ${escape_html(active()?.label ?? \"your assistant\")}</h2> <p class=\"svelte-1z0msvj\">The connection looks dead or its session expired. Reconnect to try again, or pick a different assistant from the switcher above.</p> <button class=\"btn btn-primary btn-lg svelte-1z0msvj\"${attr(\"disabled\", reconnecting, true)}>${escape_html(\"Reconnect\")}</button>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_page.svelte-DGMNp0WD.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/advanced/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, s as head } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { t as afterNavigate } from \"../../../chunks/client.js\";\nimport { t as page } from \"../../../chunks/state2.js\";\nimport \"../../../chunks/navigation.js\";\nimport { _ as chat, c as endpointsService, p as buildAdvancedIframeUrl } from \"../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../chunks/Navbar.js\";\n//#region src/routes/advanced/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tconst active = derived(() => endpointsService.active);\n\t\tconst requestedSessionId = derived(() => page.url.searchParams.get(\"session\"));\n\t\tlet frameUrl = \"\";\n\t\tlet probeState = \"checking\";\n\t\tlet reconnecting = false;\n\t\tlet probeToken = 0;\n\t\tasync function resolve() {\n\t\t\tconst token = ++probeToken;\n\t\t\tprobeState = \"checking\";\n\t\t\tconst base = active()?.url ?? \"http://127.0.0.1:3800\";\n\t\t\ttry {\n\t\t\t\tconst root = await fetch(\"/proxy/assistant/\", { headers: { accept: \"text/html\" } });\n\t\t\t\tif (token !== probeToken) return;\n\t\t\t\tif (!root.ok) {\n\t\t\t\t\tprobeState = \"dead\";\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet url = base;\n\t\t\t\tif (requestedSessionId()) {\n\t\t\t\t\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(requestedSessionId())}`, { headers: { accept: \"application/json\" } });\n\t\t\t\t\tif (token !== probeToken) return;\n\t\t\t\t\tif (res.ok) {\n\t\t\t\t\t\tconst session = await res.json().catch(() => null);\n\t\t\t\t\t\tif (token !== probeToken) return;\n\t\t\t\t\t\turl = buildAdvancedIframeUrl(base, requestedSessionId(), session?.directory);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tframeUrl = url;\n\t\t\t\tprobeState = \"ready\";\n\t\t\t} catch {\n\t\t\t\tif (token !== probeToken) return;\n\t\t\t\tprobeState = \"dead\";\n\t\t\t}\n\t\t}\n\t\tafterNavigate(({ to }) => {\n\t\t\tconst sid = to?.url.searchParams.get(\"session\") ?? null;\n\t\t\tif (sid) chat.setActiveSessionId(sid);\n\t\t\tendpointsService.load().then(() => resolve());\n\t\t});\n\t\thead(\"1z0msvj\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Advanced Chat — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <div class=\"advanced-layout svelte-1z0msvj\">`);\n\t\tif (probeState === \"ready\") {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<!---->`);\n\t\t\t$$renderer.push(`<iframe class=\"opencode-frame svelte-1z0msvj\"${attr(\"src\", frameUrl)} title=\"OpenCode — Advanced Chat\" allow=\"clipboard-read; clipboard-write; microphone\"></iframe>`);\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<div class=\"advanced-status svelte-1z0msvj\"${attr(\"role\", probeState === \"dead\" ? \"alert\" : \"status\")} aria-live=\"polite\">`);\n\t\t\tif (probeState === \"checking\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<p class=\"status-line svelte-1z0msvj\">Connecting to ${escape_html(active()?.label ?? \"your assistant\")}…</p>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<h2 class=\"svelte-1z0msvj\">Can’t reach ${escape_html(active()?.label ?? \"your assistant\")}</h2> <p class=\"svelte-1z0msvj\">The connection looks dead or its session expired. Reconnect to try again, or pick a different assistant from the switcher above.</p> <button class=\"btn btn-primary btn-lg svelte-1z0msvj\"${attr(\"disabled\", reconnecting, true)}>${escape_html(\"Reconnect\")}</button>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { F as head, s as escape_html, q as ensure_array_like, e as attr_class, d as attr, p as derived } from './dev-D85DamNs.js';
2
2
  import 'node:module';
3
3
  import { o as endpointsService } from './IconMic-DK0ZRKNm.js';
4
- import { N as Navbar } from './Navbar-CXNzYgdt.js';
4
+ import { N as Navbar } from './Navbar-DmstJWgp.js';
5
5
  import { I as IconLock } from './IconLock-DHiqGiiZ.js';
6
6
  import './theme-state.svelte-DshW_ZYI.js';
7
7
  import './Spinner-jfNKSy3m.js';
8
- import './client-DrRpdh3J.js';
9
- import './internal-Cg-mVr8r.js';
8
+ import './client-lMbA6Jug.js';
9
+ import './internal-CGvCj4Lu.js';
10
10
  import './utils-BSRjJDrZ.js';
11
11
  import './chunk-CLZ62Ad-.js';
12
12
  import './features.svelte-DsfDrPnq.js';
13
- import './state2-CH9BSbkr.js';
13
+ import './state2-tak_X-zN.js';
14
14
  import './IconLogo-Iv-7q8aY.js';
15
15
 
16
16
  //#region src/routes/admin/endpoints/+page.svelte
@@ -73,4 +73,4 @@ function _page($$renderer, $$props) {
73
73
  }
74
74
 
75
75
  export { _page as default };
76
- //# sourceMappingURL=_page.svelte-DtgRYmye.js.map
76
+ //# sourceMappingURL=_page.svelte-DmAj2xUu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-DtgRYmye.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/endpoints/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, s as head } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { c as endpointsService } from \"../../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../../chunks/Navbar.js\";\nimport { t as IconLock } from \"../../../../chunks/IconLock.js\";\n//#region src/routes/admin/endpoints/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet deletingId = null;\n\t\tconst endpoints = derived(() => endpointsService.endpoints);\n\t\tconst active = derived(() => endpointsService.active);\n\t\thead(\"m7qpzt\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Assistant Endpoints — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <main class=\"page svelte-m7qpzt\"><header class=\"page-header svelte-m7qpzt\"><h1 class=\"svelte-m7qpzt\">Assistant Endpoints</h1> <p class=\"lede svelte-m7qpzt\">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes\n from the environment (set by the launcher) and cannot be deleted. Add more endpoints to\n switch between stacks at any time.</p></header> `);\n\t\tif (endpointsService.error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"alert error svelte-m7qpzt\" role=\"alert\">${escape_html(endpointsService.error)}</div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <section class=\"endpoints-list svelte-m7qpzt\" aria-label=\"Configured endpoints\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(endpoints());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet ep = each_array[$$index];\n\t\t\t$$renderer.push(`<article${attr_class(\"endpoint-card svelte-m7qpzt\", void 0, { \"active\": ep.id === active()?.id })}><div class=\"endpoint-main svelte-m7qpzt\"><div class=\"endpoint-title svelte-m7qpzt\"><span class=\"endpoint-label svelte-m7qpzt\">${escape_html(ep.label)}</span> `);\n\t\t\tif (ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge default svelte-m7qpzt\">Default</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.id === active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge active svelte-m7qpzt\">Active</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.hasPassword) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge password svelte-m7qpzt\" title=\"Server password configured\">`);\n\t\t\t\tIconLock($$renderer, { size: 11 });\n\t\t\t\t$$renderer.push(`<!----></span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"endpoint-url svelte-m7qpzt\">${escape_html(ep.url)}</div></div> <div class=\"endpoint-actions svelte-m7qpzt\">`);\n\t\t\tif (ep.id !== active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary btn-sm\">Use this</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (!ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-secondary btn-sm\">Edit</button> <button type=\"button\" class=\"btn btn-danger btn-sm svelte-m7qpzt\"${attr(\"disabled\", deletingId === ep.id, true)}>${escape_html(deletingId === ep.id ? \"Removing…\" : \"Remove\")}</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></article>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> `);\n\t\t$$renderer.push(\"<!--[0-->\");\n\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary\">+ Add endpoint</button>`);\n\t\t$$renderer.push(`<!--]--></main>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_page.svelte-DmAj2xUu.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/endpoints/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, s as head } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { c as endpointsService } from \"../../../../chunks/IconSoundOn.js\";\nimport { t as Navbar } from \"../../../../chunks/Navbar.js\";\nimport { t as IconLock } from \"../../../../chunks/IconLock.js\";\n//#region src/routes/admin/endpoints/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet deletingId = null;\n\t\tconst endpoints = derived(() => endpointsService.endpoints);\n\t\tconst active = derived(() => endpointsService.active);\n\t\thead(\"m7qpzt\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Assistant Endpoints — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <main class=\"page svelte-m7qpzt\"><header class=\"page-header svelte-m7qpzt\"><h1 class=\"svelte-m7qpzt\">Assistant Endpoints</h1> <p class=\"lede svelte-m7qpzt\">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes\n from the environment (set by the launcher) and cannot be deleted. Add more endpoints to\n switch between stacks at any time.</p></header> `);\n\t\tif (endpointsService.error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"alert error svelte-m7qpzt\" role=\"alert\">${escape_html(endpointsService.error)}</div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <section class=\"endpoints-list svelte-m7qpzt\" aria-label=\"Configured endpoints\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(endpoints());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet ep = each_array[$$index];\n\t\t\t$$renderer.push(`<article${attr_class(\"endpoint-card svelte-m7qpzt\", void 0, { \"active\": ep.id === active()?.id })}><div class=\"endpoint-main svelte-m7qpzt\"><div class=\"endpoint-title svelte-m7qpzt\"><span class=\"endpoint-label svelte-m7qpzt\">${escape_html(ep.label)}</span> `);\n\t\t\tif (ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge default svelte-m7qpzt\">Default</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.id === active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge active svelte-m7qpzt\">Active</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (ep.hasPassword) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span class=\"badge password svelte-m7qpzt\" title=\"Server password configured\">`);\n\t\t\t\tIconLock($$renderer, { size: 11 });\n\t\t\t\t$$renderer.push(`<!----></span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div> <div class=\"endpoint-url svelte-m7qpzt\">${escape_html(ep.url)}</div></div> <div class=\"endpoint-actions svelte-m7qpzt\">`);\n\t\t\tif (ep.id !== active()?.id) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary btn-sm\">Use this</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (!ep.isDefault) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-secondary btn-sm\">Edit</button> <button type=\"button\" class=\"btn btn-danger btn-sm svelte-m7qpzt\"${attr(\"disabled\", deletingId === ep.id, true)}>${escape_html(deletingId === ep.id ? \"Removing…\" : \"Remove\")}</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></article>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> `);\n\t\t$$renderer.push(\"<!--[0-->\");\n\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary\">+ Add endpoint</button>`);\n\t\t$$renderer.push(`<!--]--></main>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { aW as summarizeBackups, al as listBackupDirs, ax as pruneBackupDirs, F as createLogger } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-CbGxMTVo.js';
1
+ import { aW as summarizeBackups, al as listBackupDirs, ax as pruneBackupDirs, F as createLogger } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-BluGgY3g.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
25
+ import './endpoints-ev9YSBb8.js';
26
26
 
27
27
  //#region src/routes/admin/backups/+server.ts
28
28
  var logger = createLogger("backups-admin");
@@ -86,4 +86,4 @@ var POST = async (event) => {
86
86
  };
87
87
 
88
88
  export { GET, POST };
89
- //# sourceMappingURL=_server.ts-jf6Xk_xd.js.map
89
+ //# sourceMappingURL=_server.ts-17Sm7tBJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-jf6Xk_xd.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { _n as createLogger, hn as summarizeBackups, mn as pruneBackupDirs, pn as listBackupDirs } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-17Sm7tBJ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { _n as createLogger, hn as summarizeBackups, mn as pruneBackupDirs, pn as listBackupDirs } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { aK as removeSecretFile, aB as readSecretFile, b1 as writeSecretFile, f as assertSafeSecretFilename } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-CbGxMTVo.js';
1
+ import { aK as removeSecretFile, aB as readSecretFile, b1 as writeSecretFile, f as assertSafeSecretFilename } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-BluGgY3g.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
25
+ import './endpoints-ev9YSBb8.js';
26
26
 
27
27
  //#region src/routes/admin/secrets/[name]/+server.ts
28
28
  function guardName(name, requestId) {
@@ -79,4 +79,4 @@ var DELETE = async (event) => {
79
79
  };
80
80
 
81
81
  export { DELETE, GET, PUT };
82
- //# sourceMappingURL=_server.ts-DoHWs9cP.js.map
82
+ //# sourceMappingURL=_server.ts-4mcrPKs8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DoHWs9cP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Jt as writeSecretFile, Kt as readSecretFile, Ut as assertSafeSecretFilename, qt as removeSecretFile } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-4mcrPKs8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_name_/_server.ts.js"],"sourcesContent":["import { Jt as writeSecretFile, Kt as readSecretFile, Ut as assertSafeSecretFilename, qt as removeSecretFile } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/[name]/+server.ts\nfunction guardName(name, requestId) {\n\ttry {\n\t\tassertSafeSecretFilename(name);\n\t\treturn null;\n\t} catch (err) {\n\t\treturn errorResponse(400, \"bad_request\", err.message, {}, requestId);\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst value = readSecretFile(getState().stackDir, name);\n\tif (value === null) return errorResponse(404, \"not_found\", `Secret file not found: ${name}`, {}, requestId);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tvalue\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst value = result.data.value;\n\tif (typeof value !== \"string\") return errorResponse(400, \"bad_request\", \"value must be a string\", {}, requestId);\n\twriteSecretFile(getState().stackDir, name, value);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst name = event.params.name;\n\tconst bad = guardName(name, requestId);\n\tif (bad) return bad;\n\tremoveSecretFile(getState().stackDir, name);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname\n\t}, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { aZ as useExistingProviderForAssistantCli, F as createLogger } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, p as parseJsonBody, j as jsonBodyError, k as jsonResponse } from './helpers-CbGxMTVo.js';
1
+ import { aZ as useExistingProviderForAssistantCli, F as createLogger } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, p as parseJsonBody, j as jsonBodyError, k as jsonResponse } from './helpers-BluGgY3g.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
25
+ import './endpoints-ev9YSBb8.js';
26
26
 
27
27
  //#region src/routes/admin/providers/assistant-clis/[toolId]/use-provider/+server.ts
28
28
  var logger = createLogger("admin.assistant-cli-tools");
@@ -59,4 +59,4 @@ var POST = async (event) => {
59
59
  };
60
60
 
61
61
  export { POST };
62
- //# sourceMappingURL=_server.ts-COm0mfdC.js.map
62
+ //# sourceMappingURL=_server.ts-644qDVn-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-COm0mfdC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/assistant-clis/_toolId_/use-provider/_server.ts.js"],"sourcesContent":["import { _n as createLogger, gt as useExistingProviderForAssistantCli } from \"../../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/assistant-clis/[toolId]/use-provider/+server.ts\nvar logger = createLogger(\"admin.assistant-cli-tools\");\nfunction isAssistantCliToolId(value) {\n\treturn value === \"codex\" || value === \"claude\" || value === \"copilot\" || value === \"pi\";\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst toolId = event.params.toolId ?? \"\";\n\tif (!isAssistantCliToolId(toolId)) return errorResponse(400, \"bad_request\", \"Invalid assistant CLI tool id\", {}, requestId);\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst providerId = typeof result.data.providerId === \"string\" ? result.data.providerId.trim() : \"\";\n\tif (!providerId) return errorResponse(400, \"bad_request\", \"providerId is required\", {}, requestId);\n\ttry {\n\t\tconst writtenPaths = useExistingProviderForAssistantCli(getState(), toolId, providerId);\n\t\tlogger.info(\"assistant CLI provider mapping written\", {\n\t\t\trequestId,\n\t\t\ttoolId,\n\t\t\tproviderId,\n\t\t\twrittenPaths\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\ttoolId,\n\t\t\tproviderId,\n\t\t\twrittenPaths\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn errorResponse(400, \"bad_request\", error instanceof Error ? error.message : \"Failed to write assistant CLI credentials\", {}, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC;AACtD,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,CAAC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AACxF;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,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACzC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,+BAA+B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;AACnG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,wBAAwB,EAAE,EAAE,EAAE,SAAS,CAAC;AACnG,CAAC,IAAI;AACL,EAAE,MAAM,YAAY,GAAG,kCAAkC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC;AACzF,EAAE,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;AACxD,GAAG,SAAS;AACZ,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,2CAA2C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/I,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-644qDVn-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/assistant-clis/_toolId_/use-provider/_server.ts.js"],"sourcesContent":["import { _n as createLogger, gt as useExistingProviderForAssistantCli } from \"../../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/assistant-clis/[toolId]/use-provider/+server.ts\nvar logger = createLogger(\"admin.assistant-cli-tools\");\nfunction isAssistantCliToolId(value) {\n\treturn value === \"codex\" || value === \"claude\" || value === \"copilot\" || value === \"pi\";\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst toolId = event.params.toolId ?? \"\";\n\tif (!isAssistantCliToolId(toolId)) return errorResponse(400, \"bad_request\", \"Invalid assistant CLI tool id\", {}, requestId);\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst providerId = typeof result.data.providerId === \"string\" ? result.data.providerId.trim() : \"\";\n\tif (!providerId) return errorResponse(400, \"bad_request\", \"providerId is required\", {}, requestId);\n\ttry {\n\t\tconst writtenPaths = useExistingProviderForAssistantCli(getState(), toolId, providerId);\n\t\tlogger.info(\"assistant CLI provider mapping written\", {\n\t\t\trequestId,\n\t\t\ttoolId,\n\t\t\tproviderId,\n\t\t\twrittenPaths\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\ttoolId,\n\t\t\tproviderId,\n\t\t\twrittenPaths\n\t\t}, requestId);\n\t} catch (error) {\n\t\treturn errorResponse(400, \"bad_request\", error instanceof Error ? error.message : \"Failed to write assistant CLI credentials\", {}, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,2BAA2B,CAAC;AACtD,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,CAAC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AACxF;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,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACzC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,+BAA+B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;AACnG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,wBAAwB,EAAE,EAAE,EAAE,SAAS,CAAC;AACnG,CAAC,IAAI;AACL,EAAE,MAAM,YAAY,GAAG,kCAAkC,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC;AACzF,EAAE,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;AACxD,GAAG,SAAS;AACZ,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,2CAA2C,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/I,CAAC;AACD;;;;"}
@@ -1,5 +1,5 @@
1
- import { k as jsonResponse, d as getRequestId } from './helpers-CbGxMTVo.js';
2
- import './src-BunIUeZg.js';
1
+ import { k as jsonResponse, d as getRequestId } from './helpers-BluGgY3g.js';
2
+ import './src-Bms-Wpj4.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import './provider-constants-DPrj3yBX.js';
@@ -21,8 +21,8 @@ import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
23
  import 'node:os';
24
- import './endpoints-CaZDtz1E.js';
25
- import './state-DvXQigXN.js';
24
+ import './endpoints-ev9YSBb8.js';
25
+ import './state-dBGSHxF6.js';
26
26
 
27
27
  //#region src/routes/health/+server.ts
28
28
  var GET = async (event) => {
@@ -33,4 +33,4 @@ var GET = async (event) => {
33
33
  };
34
34
 
35
35
  export { GET };
36
- //# sourceMappingURL=_server.ts-BbuEozdR.js.map
36
+ //# sourceMappingURL=_server.ts-7HHVmf6s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BbuEozdR.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/health/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, o as getRequestId } from \"../../../chunks/helpers.js\";\n//#region src/routes/health/+server.ts\nvar GET = async (event) => {\n\treturn jsonResponse(200, {\n\t\tstatus: \"ok\",\n\t\tservice: \"admin\"\n\t}, getRequestId(event));\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACxB;;;;"}
1
+ {"version":3,"file":"_server.ts-7HHVmf6s.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/health/_server.ts.js"],"sourcesContent":["import { l as jsonResponse, o as getRequestId } from \"../../../chunks/helpers.js\";\n//#region src/routes/health/+server.ts\nvar GET = async (event) => {\n\treturn jsonResponse(200, {\n\t\tstatus: \"ok\",\n\t\tservice: \"admin\"\n\t}, getRequestId(event));\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACxB;;;;"}
@@ -1,6 +1,6 @@
1
- import { aR as runAssistantAkmCommand } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin } from './helpers-CbGxMTVo.js';
1
+ import { aR as runAssistantAkmCommand } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin } from './helpers-BluGgY3g.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
25
+ import './endpoints-ev9YSBb8.js';
26
26
 
27
27
  //#region src/lib/server/akm-health-report.ts
28
28
  var AKM_HEALTH_REPORT_WINDOWS = [
@@ -102,4 +102,4 @@ var GET = async (event) => {
102
102
  };
103
103
 
104
104
  export { GET };
105
- //# sourceMappingURL=_server.ts-Df9n4LH_.js.map
105
+ //# sourceMappingURL=_server.ts-7PYmr9Z-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Df9n4LH_.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health-report/_server.ts.js"],"sourcesContent":["import { r as runAssistantAkmCommand } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/lib/server/akm-health-report.ts\nvar AKM_HEALTH_REPORT_WINDOWS = [\n\t\"24h\",\n\t\"72h\",\n\t\"7d\",\n\t\"14d\",\n\t\"30d\"\n];\nfunction clampWindow(value) {\n\treturn AKM_HEALTH_REPORT_WINDOWS.includes(value ?? \"\") ? value : \"72h\";\n}\nfunction errorHtml(window, missing, detail) {\n\treturn `<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>AKM Health Report</title><style>body{margin:0;font-family:Inter,system-ui,sans-serif;background:#07111f;color:#e5eefc;padding:24px}main{max-width:860px;margin:0 auto;background:#101b2d;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:24px}pre{white-space:pre-wrap;background:#15233a;padding:16px;border-radius:12px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,monospace}</style></head><body><main><h1>${missing ? \"AKM is not available\" : \"AKM health report unavailable\"}</h1><p>${missing ? \"The <code>akm</code> CLI was not found in the running assistant container.\" : `The admin UI could not build the report from <code>akm health</code> for window <code>${window}</code>.`}</p>${detail ? `<pre>${detail.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\")}</pre>` : \"\"}</main></body></html>`;\n}\nasync function buildAkmHealthReport(state, requestedWindow) {\n\tconst window = clampWindow(requestedWindow);\n\tconst result = await runAssistantAkmCommand(state, [\n\t\t\"health\",\n\t\t`--since=${window}`,\n\t\t\"--format\",\n\t\t\"html\"\n\t], 3e4);\n\tif (result.missing) return {\n\t\twindow,\n\t\thtml: errorHtml(window, true, \"\")\n\t};\n\tif (!result.ok || !result.stdout.trim()) return {\n\t\twindow,\n\t\thtml: errorHtml(window, false, [result.stderr.trim(), result.stdout.trim()].filter(Boolean).join(\"\\n\\n\"))\n\t};\n\treturn {\n\t\thtml: result.stdout,\n\t\twindow\n\t};\n}\n//#endregion\n//#region src/routes/admin/akm/health-report/+server.ts\nvar REPORT_CSP = [\n\t\"default-src 'none'\",\n\t\"script-src 'self' 'unsafe-inline'\",\n\t\"style-src 'unsafe-inline'\",\n\t\"img-src 'self' data:\",\n\t\"font-src 'self' data:\",\n\t\"connect-src 'none'\",\n\t\"object-src 'none'\",\n\t\"base-uri 'none'\",\n\t\"form-action 'none'\",\n\t\"frame-ancestors 'self'\"\n].join(\"; \");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\ttry {\n\t\tconst { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get(\"since\"));\n\t\treturn new Response(html, {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/html; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-security-policy\": REPORT_CSP,\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : \"Failed to build AKM health report.\";\n\t\treturn new Response(message, {\n\t\t\tstatus: 500,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/plain; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-7PYmr9Z-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health-report/_server.ts.js"],"sourcesContent":["import { r as runAssistantAkmCommand } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/lib/server/akm-health-report.ts\nvar AKM_HEALTH_REPORT_WINDOWS = [\n\t\"24h\",\n\t\"72h\",\n\t\"7d\",\n\t\"14d\",\n\t\"30d\"\n];\nfunction clampWindow(value) {\n\treturn AKM_HEALTH_REPORT_WINDOWS.includes(value ?? \"\") ? value : \"72h\";\n}\nfunction errorHtml(window, missing, detail) {\n\treturn `<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>AKM Health Report</title><style>body{margin:0;font-family:Inter,system-ui,sans-serif;background:#07111f;color:#e5eefc;padding:24px}main{max-width:860px;margin:0 auto;background:#101b2d;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:24px}pre{white-space:pre-wrap;background:#15233a;padding:16px;border-radius:12px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,monospace}</style></head><body><main><h1>${missing ? \"AKM is not available\" : \"AKM health report unavailable\"}</h1><p>${missing ? \"The <code>akm</code> CLI was not found in the running assistant container.\" : `The admin UI could not build the report from <code>akm health</code> for window <code>${window}</code>.`}</p>${detail ? `<pre>${detail.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\")}</pre>` : \"\"}</main></body></html>`;\n}\nasync function buildAkmHealthReport(state, requestedWindow) {\n\tconst window = clampWindow(requestedWindow);\n\tconst result = await runAssistantAkmCommand(state, [\n\t\t\"health\",\n\t\t`--since=${window}`,\n\t\t\"--format\",\n\t\t\"html\"\n\t], 3e4);\n\tif (result.missing) return {\n\t\twindow,\n\t\thtml: errorHtml(window, true, \"\")\n\t};\n\tif (!result.ok || !result.stdout.trim()) return {\n\t\twindow,\n\t\thtml: errorHtml(window, false, [result.stderr.trim(), result.stdout.trim()].filter(Boolean).join(\"\\n\\n\"))\n\t};\n\treturn {\n\t\thtml: result.stdout,\n\t\twindow\n\t};\n}\n//#endregion\n//#region src/routes/admin/akm/health-report/+server.ts\nvar REPORT_CSP = [\n\t\"default-src 'none'\",\n\t\"script-src 'self' 'unsafe-inline'\",\n\t\"style-src 'unsafe-inline'\",\n\t\"img-src 'self' data:\",\n\t\"font-src 'self' data:\",\n\t\"connect-src 'none'\",\n\t\"object-src 'none'\",\n\t\"base-uri 'none'\",\n\t\"form-action 'none'\",\n\t\"frame-ancestors 'self'\"\n].join(\"; \");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\ttry {\n\t\tconst { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get(\"since\"));\n\t\treturn new Response(html, {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/html; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-security-policy\": REPORT_CSP,\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : \"Failed to build AKM health report.\";\n\t\treturn new Response(message, {\n\t\t\tstatus: 500,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/plain; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ad as importHostOpenCode, h as authJsonPath, O as detectHostOpenCode, F as createLogger, n as checkDocker, l as buildComposeOptions } from './src-BunIUeZg.js';
3
- import { g as getState } from './state-DvXQigXN.js';
4
- import { o as opencodeFetch } from './http-BJBLvJS_.js';
5
- import { c as composeRestart } from './docker-BA7ZmLlN.js';
2
+ import { ad as importHostOpenCode, h as authJsonPath, O as detectHostOpenCode, F as createLogger, n as checkDocker, l as buildComposeOptions } from './src-Bms-Wpj4.js';
3
+ import { g as getState } from './state-dBGSHxF6.js';
4
+ import { o as opencodeFetch } from './http-BmFqfzyw.js';
5
+ import { c as composeRestart } from './docker-CEt-3e57.js';
6
6
  import { existsSync, readFileSync } from 'node:fs';
7
7
  import './utils-BSRjJDrZ.js';
8
8
  import './chunk-CLZ62Ad-.js';
@@ -25,7 +25,7 @@ import 'zlib';
25
25
  import 'node:assert';
26
26
  import 'node:fs/promises';
27
27
  import 'node:os';
28
- import './endpoints-CaZDtz1E.js';
28
+ import './endpoints-ev9YSBb8.js';
29
29
 
30
30
  //#region src/routes/api/setup/import-host/+server.ts
31
31
  /**
@@ -169,4 +169,4 @@ var POST = async () => {
169
169
  };
170
170
 
171
171
  export { POST };
172
- //# sourceMappingURL=_server.ts-OiPARfGO.js.map
172
+ //# sourceMappingURL=_server.ts-7YfKZbRf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-OiPARfGO.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/import-host/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { I as buildComposeOptions, Y as checkDocker, Yt as authJsonPath, _n as createLogger, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/import-host/+server.ts\n/**\n* POST /api/setup/import-host\n*\n* Setup-phase equivalent of POST /admin/providers/import-host.\n* No admin auth required — the admin token hasn't been written yet during setup.\n*\n* Copies host OpenCode config + auth into OP_HOME and live-pushes credentials\n* to the running OpenCode subprocess so providers appear connected immediately.\n*/\nvar logger = createLogger(\"setup:import-host\");\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch (err) {\n\t\treturn {\n\t\t\tpushed: [],\n\t\t\terrors: [{\n\t\t\t\tprovider: \"*\",\n\t\t\t\terror: `Could not read auth.json: ${err instanceof Error ? err.message : String(err)}`\n\t\t\t}]\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: [],\n\t\terrors: [{\n\t\t\tprovider: \"*\",\n\t\t\terror: \"auth.json is not a JSON object\"\n\t\t}]\n\t};\n\tconst pushed = [];\n\tconst errors = [];\n\tfor (const [providerId, value] of Object.entries(raw)) {\n\t\tif (providerId === \"anthropic\") continue;\n\t\ttry {\n\t\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tbody: JSON.stringify(value)\n\t\t\t});\n\t\t\tpushed.push(providerId);\n\t\t} catch (err) {\n\t\t\terrors.push({\n\t\t\t\tprovider: providerId,\n\t\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tpushed,\n\t\terrors\n\t};\n}\n/** Restart provider-consuming services so they re-read imported startup config. */\nasync function restartProviderConsumers(state) {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(state);\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Read the provider ids present in an auth.json, ignoring read/parse errors. */\nfunction providerIdsFromAuth(authPath) {\n\ttry {\n\t\tconst raw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t\tif (raw && typeof raw === \"object\" && !Array.isArray(raw)) return Object.keys(raw);\n\t} catch {}\n\treturn [];\n}\nvar POST = async () => {\n\tconst state = getState();\n\tlet result;\n\ttry {\n\t\tresult = importHostOpenCode(state, { overwriteConflicts: false });\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: `Could not copy host OpenCode config: ${err instanceof Error ? err.message : String(err)}`\n\t\t}, { status: 500 });\n\t}\n\tconst importedAuthPath = authJsonPath(state);\n\tlet importedProviderIds = [];\n\tif (result.imported.credentials > 0 || existsSync(importedAuthPath)) {\n\t\tconst fromDestination = providerIdsFromAuth(importedAuthPath);\n\t\tif (fromDestination.length > 0) importedProviderIds = fromDestination;\n\t\telse if (result.imported.credentials > 0) {\n\t\t\tconst hostStatus = detectHostOpenCode();\n\t\t\tconst hostFallback = hostStatus.authPath ? providerIdsFromAuth(hostStatus.authPath) : [];\n\t\t\tlogger.warn(\"post-copy auth.json read returned no providers despite credentials being reported; falling back to host auth.json\", {\n\t\t\t\timportedAuthPath,\n\t\t\t\timportedCredentials: result.imported.credentials,\n\t\t\t\tfallbackCount: hostFallback.length\n\t\t\t});\n\t\t\timportedProviderIds = hostFallback;\n\t\t}\n\t}\n\tconst conflictProviders = result.conflicts;\n\tconst authPathToUse = existsSync(importedAuthPath) ? importedAuthPath : null;\n\tlet pushResult = {\n\t\tpushed: [],\n\t\terrors: []\n\t};\n\tif (authPathToUse) pushResult = await pushAuthToOpenCode(authPathToUse);\n\tconst restart = await restartProviderConsumers(state);\n\treturn json({\n\t\tok: true,\n\t\timported: result.imported,\n\t\timportedProviders: importedProviderIds,\n\t\tconflicts: result.conflicts.length,\n\t\tconflictProviders,\n\t\tlivePushed: pushResult.pushed.length,\n\t\tpushedProviders: pushResult.pushed,\n\t\terrors: pushResult.errors,\n\t\trestarted: restart.restarted,\n\t\trestartFailed: restart.failed\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-7YfKZbRf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/import-host/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { I as buildComposeOptions, Y as checkDocker, Yt as authJsonPath, _n as createLogger, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/import-host/+server.ts\n/**\n* POST /api/setup/import-host\n*\n* Setup-phase equivalent of POST /admin/providers/import-host.\n* No admin auth required — the admin token hasn't been written yet during setup.\n*\n* Copies host OpenCode config + auth into OP_HOME and live-pushes credentials\n* to the running OpenCode subprocess so providers appear connected immediately.\n*/\nvar logger = createLogger(\"setup:import-host\");\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch (err) {\n\t\treturn {\n\t\t\tpushed: [],\n\t\t\terrors: [{\n\t\t\t\tprovider: \"*\",\n\t\t\t\terror: `Could not read auth.json: ${err instanceof Error ? err.message : String(err)}`\n\t\t\t}]\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: [],\n\t\terrors: [{\n\t\t\tprovider: \"*\",\n\t\t\terror: \"auth.json is not a JSON object\"\n\t\t}]\n\t};\n\tconst pushed = [];\n\tconst errors = [];\n\tfor (const [providerId, value] of Object.entries(raw)) {\n\t\tif (providerId === \"anthropic\") continue;\n\t\ttry {\n\t\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tbody: JSON.stringify(value)\n\t\t\t});\n\t\t\tpushed.push(providerId);\n\t\t} catch (err) {\n\t\t\terrors.push({\n\t\t\t\tprovider: providerId,\n\t\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\tpushed,\n\t\terrors\n\t};\n}\n/** Restart provider-consuming services so they re-read imported startup config. */\nasync function restartProviderConsumers(state) {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(state);\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Read the provider ids present in an auth.json, ignoring read/parse errors. */\nfunction providerIdsFromAuth(authPath) {\n\ttry {\n\t\tconst raw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t\tif (raw && typeof raw === \"object\" && !Array.isArray(raw)) return Object.keys(raw);\n\t} catch {}\n\treturn [];\n}\nvar POST = async () => {\n\tconst state = getState();\n\tlet result;\n\ttry {\n\t\tresult = importHostOpenCode(state, { overwriteConflicts: false });\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: `Could not copy host OpenCode config: ${err instanceof Error ? err.message : String(err)}`\n\t\t}, { status: 500 });\n\t}\n\tconst importedAuthPath = authJsonPath(state);\n\tlet importedProviderIds = [];\n\tif (result.imported.credentials > 0 || existsSync(importedAuthPath)) {\n\t\tconst fromDestination = providerIdsFromAuth(importedAuthPath);\n\t\tif (fromDestination.length > 0) importedProviderIds = fromDestination;\n\t\telse if (result.imported.credentials > 0) {\n\t\t\tconst hostStatus = detectHostOpenCode();\n\t\t\tconst hostFallback = hostStatus.authPath ? providerIdsFromAuth(hostStatus.authPath) : [];\n\t\t\tlogger.warn(\"post-copy auth.json read returned no providers despite credentials being reported; falling back to host auth.json\", {\n\t\t\t\timportedAuthPath,\n\t\t\t\timportedCredentials: result.imported.credentials,\n\t\t\t\tfallbackCount: hostFallback.length\n\t\t\t});\n\t\t\timportedProviderIds = hostFallback;\n\t\t}\n\t}\n\tconst conflictProviders = result.conflicts;\n\tconst authPathToUse = existsSync(importedAuthPath) ? importedAuthPath : null;\n\tlet pushResult = {\n\t\tpushed: [],\n\t\terrors: []\n\t};\n\tif (authPathToUse) pushResult = await pushAuthToOpenCode(authPathToUse);\n\tconst restart = await restartProviderConsumers(state);\n\treturn json({\n\t\tok: true,\n\t\timported: result.imported,\n\t\timportedProviders: importedProviderIds,\n\t\tconflicts: result.conflicts.length,\n\t\tconflictProviders,\n\t\tlivePushed: pushResult.pushed.length,\n\t\tpushedProviders: pushResult.pushed,\n\t\terrors: pushResult.errors,\n\t\trestarted: restart.restarted,\n\t\trestartFailed: restart.failed\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { g as getActiveEndpoint } from './endpoints-CaZDtz1E.js';
2
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-CbGxMTVo.js';
3
- import './state-DvXQigXN.js';
4
- import './src-BunIUeZg.js';
1
+ import { g as getActiveEndpoint } from './endpoints-ev9YSBb8.js';
2
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-BluGgY3g.js';
3
+ import './state-dBGSHxF6.js';
4
+ import './src-Bms-Wpj4.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -55,4 +55,4 @@ var GET = async (event) => {
55
55
  };
56
56
 
57
57
  export { GET };
58
- //# sourceMappingURL=_server.ts-B1ToGf9w.js.map
58
+ //# sourceMappingURL=_server.ts-B4IkHWrK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-B1ToGf9w.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/health/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACrC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-B4IkHWrK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/health/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACrC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { an as listSecretFiles } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-CbGxMTVo.js';
1
+ import { an as listSecretFiles } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-BluGgY3g.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
25
+ import './endpoints-ev9YSBb8.js';
26
26
 
27
27
  //#region src/routes/admin/secrets/+server.ts
28
28
  var GET = async (event) => {
@@ -33,4 +33,4 @@ var GET = async (event) => {
33
33
  };
34
34
 
35
35
  export { GET };
36
- //# sourceMappingURL=_server.ts-BagzUjh6.js.map
36
+ //# sourceMappingURL=_server.ts-B4sIzTwj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BagzUjh6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_server.ts.js"],"sourcesContent":["import { Wt as listSecretFiles } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { files: listSecretFiles(getState().stackDir) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;AACrF;;;;"}
1
+ {"version":3,"file":"_server.ts-B4sIzTwj.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secrets/_server.ts.js"],"sourcesContent":["import { Wt as listSecretFiles } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/secrets/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { files: listSecretFiles(getState().stackDir) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;AACrF;;;;"}
@@ -1,9 +1,9 @@
1
- import { ad as importHostOpenCode, O as detectHostOpenCode, h as authJsonPath, n as checkDocker, l as buildComposeOptions } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-CbGxMTVo.js';
1
+ import { ad as importHostOpenCode, O as detectHostOpenCode, h as authJsonPath, n as checkDocker, l as buildComposeOptions } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-BluGgY3g.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
- import { o as opencodeFetch } from './http-BJBLvJS_.js';
6
- import { c as composeRestart } from './docker-BA7ZmLlN.js';
5
+ import { o as opencodeFetch } from './http-BmFqfzyw.js';
6
+ import { c as composeRestart } from './docker-CEt-3e57.js';
7
7
  import { existsSync, readFileSync } from 'node:fs';
8
8
  import './chunk-CLZ62Ad-.js';
9
9
  import 'node:module';
@@ -25,7 +25,7 @@ import 'zlib';
25
25
  import 'node:assert';
26
26
  import 'node:fs/promises';
27
27
  import 'node:os';
28
- import './endpoints-CaZDtz1E.js';
28
+ import './endpoints-ev9YSBb8.js';
29
29
 
30
30
  //#region src/routes/admin/providers/import-host/+server.ts
31
31
  /**
@@ -157,4 +157,4 @@ var POST = async (event) => {
157
157
  };
158
158
 
159
159
  export { POST };
160
- //# sourceMappingURL=_server.ts-Dg9JwLNX.js.map
160
+ //# sourceMappingURL=_server.ts-BHglX11P.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Dg9JwLNX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { I as buildComposeOptions, Y as checkDocker, Yt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB,GAAG;AAC1C,CAAC,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC;AAC/B,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO;AACvC,EAAE,SAAS,EAAE,EAAE;AACf,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC/B,GAAG,OAAO,EAAE,CAAC;AACb,GAAG,KAAK,EAAE;AACV,GAAG,CAAC;AACJ,EAAE;AACF,CAAC,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAC;AAC7C,CAAC,MAAM,SAAS,GAAG,EAAE;AACrB,CAAC,MAAM,MAAM,GAAG,EAAE;AAClB,CAAC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,IAAI;AACrC,EAAE,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACjD,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,OAAO,MAAM,CAAC,IAAI,CAAC;AACnB,GAAG,OAAO;AACV,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;AACrC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,CAAC,IAAI,CAAC;AACd,GAAG,OAAO;AACV,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO;AACR,EAAE,SAAS;AACX,EAAE;AACF,EAAE;AACF;AACA;AACA,eAAe,kBAAkB,CAAC,QAAQ,EAAE;AAC5C,CAAC,IAAI,GAAG;AACR,CAAC,IAAI;AACL,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO;AACT,GAAG,MAAM,EAAE,CAAC;AACZ,GAAG,MAAM,EAAE;AACX,GAAG;AACH,CAAC;AACD,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO;AACnE,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,MAAM,EAAE;AACV,EAAE;AACF,CAAC,IAAI,MAAM,GAAG,CAAC;AACf,CAAC,MAAM,MAAM,GAAG,EAAE;AAClB,CAAC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI;AAC5D,EAAE,MAAM,aAAa,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AACjE,GAAG,MAAM,EAAE,KAAK;AAChB,GAAG,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;AAC7B,GAAG,CAAC;AACJ,EAAE,MAAM,EAAE;AACV,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AACD,CAAC,OAAO;AACR,EAAE,MAAM;AACR,EAAE;AACF,EAAE;AACF;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,OAAO,eAAe,CAAC,6BAA6B,EAAE,YAAY;AACnE,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,IAAI,kBAAkB,GAAG,KAAK;AAChC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AACtF,GAAG,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACpD,GAAG,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI;AACzF,EAAE;AACF,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI;AACN,GAAG,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,CAAC;AAC7D,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,eAAe,EAAE,EAAE,EAAE,SAAS,CAAC;AAClH,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACzC,EAAE,IAAI,QAAQ,GAAG;AACjB,GAAG,MAAM,EAAE,CAAC;AACZ,GAAG,MAAM,EAAE;AACX,GAAG;AACH,EAAE,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC;AAC9C,EAAE,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,MAAM,kBAAkB,CAAC,gBAAgB,CAAC;AACzF,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC;AACxF,EAAE,MAAM,OAAO,GAAG,MAAM,wBAAwB,EAAE;AAClD,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC5B,GAAG,SAAS,EAAE,MAAM,CAAC,SAAS;AAC9B,GAAG,UAAU,EAAE,QAAQ,CAAC,MAAM;AAC9B,GAAG,cAAc,EAAE,QAAQ,CAAC,MAAM;AAClC,GAAG,SAAS,EAAE,OAAO,CAAC,SAAS;AAC/B,GAAG,aAAa,EAAE,OAAO,CAAC;AAC1B,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-BHglX11P.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { I as buildComposeOptions, Y as checkDocker, Yt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}