@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 +1 @@
1
- {"version":3,"file":"_server.ts-COIxtLd8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/latest/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Mt as DOCKER_IMAGE_NAMES, Nt as SERVICE_VERSION_KEYS } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/latest/+server.ts\nvar DOCKER_HUB_NAMESPACE = \"openpalm\";\nvar STABLE_SEMVER = /^(v\\d+\\.\\d+\\.\\d+)$/;\nvar VOICE_STABLE = /^(v\\d+\\.\\d+\\.\\d+)-\\w+$/;\nfunction semverCompare(a, b) {\n\tconst pa = a.replace(/^v/, \"\").split(\".\").map(Number);\n\tconst pb = b.replace(/^v/, \"\").split(\".\").map(Number);\n\tfor (let i = 0; i < 3; i++) if (pa[i] !== pb[i]) return pa[i] - pb[i];\n\treturn 0;\n}\nasync function resolveNpmLatest(pkg) {\n\ttry {\n\t\tconst res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(pkg)}/latest`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(6e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\treturn typeof data.version === \"string\" ? data.version : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function resolveDockerLatest(image) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${DOCKER_HUB_NAMESPACE}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER);\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain[1]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE);\n\t\t\t\tif (voice) candidates.push(voice[1]);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(semverCompare).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar CACHE_TTL_MS = 300 * 1e3;\nvar cachedResult = null;\nvar cacheExpiresAt = 0;\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\tif (cachedResult && Date.now() < cacheExpiresAt) return json(cachedResult);\n\tconst errors = [];\n\tconst [dockerResults, uiResult] = await Promise.all([Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\tconst version = await resolveDockerLatest(image);\n\t\tif (!version) errors.push(`Docker Hub: could not resolve latest for ${DOCKER_HUB_NAMESPACE}/${image}`);\n\t\treturn [key, version];\n\t})), resolveNpmLatest(\"@openpalm/ui\").then((v) => {\n\t\tif (!v) errors.push(\"npm: could not resolve latest for @openpalm/ui\");\n\t\treturn [\"OP_UI_VERSION\", v];\n\t})]);\n\tconst versions = {};\n\tfor (const [key, val] of [...dockerResults, uiResult]) versions[key] = val;\n\tconst result = {\n\t\tversions,\n\t\terrors,\n\t\tfetchedAt: (/* @__PURE__ */ new Date()).toISOString()\n\t};\n\tcachedResult = result;\n\tcacheExpiresAt = Date.now() + CACHE_TTL_MS;\n\treturn json(result);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DnTpL24U.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/latest/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Mt as DOCKER_IMAGE_NAMES, Nt as SERVICE_VERSION_KEYS } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/versions/latest/+server.ts\nvar DOCKER_HUB_NAMESPACE = \"openpalm\";\nvar STABLE_SEMVER = /^(v\\d+\\.\\d+\\.\\d+)$/;\nvar VOICE_STABLE = /^(v\\d+\\.\\d+\\.\\d+)-\\w+$/;\nfunction semverCompare(a, b) {\n\tconst pa = a.replace(/^v/, \"\").split(\".\").map(Number);\n\tconst pb = b.replace(/^v/, \"\").split(\".\").map(Number);\n\tfor (let i = 0; i < 3; i++) if (pa[i] !== pb[i]) return pa[i] - pb[i];\n\treturn 0;\n}\nasync function resolveNpmLatest(pkg) {\n\ttry {\n\t\tconst res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(pkg)}/latest`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(6e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\treturn typeof data.version === \"string\" ? data.version : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function resolveDockerLatest(image) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${DOCKER_HUB_NAMESPACE}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER);\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain[1]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE);\n\t\t\t\tif (voice) candidates.push(voice[1]);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(semverCompare).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar CACHE_TTL_MS = 300 * 1e3;\nvar cachedResult = null;\nvar cacheExpiresAt = 0;\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\tif (cachedResult && Date.now() < cacheExpiresAt) return json(cachedResult);\n\tconst errors = [];\n\tconst [dockerResults, uiResult] = await Promise.all([Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\tconst version = await resolveDockerLatest(image);\n\t\tif (!version) errors.push(`Docker Hub: could not resolve latest for ${DOCKER_HUB_NAMESPACE}/${image}`);\n\t\treturn [key, version];\n\t})), resolveNpmLatest(\"@openpalm/ui\").then((v) => {\n\t\tif (!v) errors.push(\"npm: could not resolve latest for @openpalm/ui\");\n\t\treturn [\"OP_UI_VERSION\", v];\n\t})]);\n\tconst versions = {};\n\tfor (const [key, val] of [...dockerResults, uiResult]) versions[key] = val;\n\tconst result = {\n\t\tversions,\n\t\terrors,\n\t\tfetchedAt: (/* @__PURE__ */ new Date()).toISOString()\n\t};\n\tcachedResult = result;\n\tcacheExpiresAt = Date.now() + CACHE_TTL_MS;\n\treturn json(result);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { F as createLogger } from './src-BunIUeZg.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-CbGxMTVo.js';
1
+ import { F as createLogger } from './src-Bms-Wpj4.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-BluGgY3g.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/admin/opencode/providers/[id]/auth/+server.ts
28
28
  var logger = createLogger("opencode.auth");
@@ -163,4 +163,4 @@ var DELETE = async (event) => {
163
163
  };
164
164
 
165
165
  export { DELETE, GET, POST };
166
- //# sourceMappingURL=_server.ts-DT10TFj6.js.map
166
+ //# sourceMappingURL=_server.ts-Do9vXHTl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DT10TFj6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { _n as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Do9vXHTl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { _n as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { g as getDeployState } from './setup-deploy-BfBaLbir.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { g as getDeployState } from './setup-deploy-B9QxcV6K.js';
4
4
  import './utils-BSRjJDrZ.js';
5
- import './src-BunIUeZg.js';
5
+ import './src-Bms-Wpj4.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
8
8
  import './provider-constants-DPrj3yBX.js';
@@ -47,4 +47,4 @@ var GET = () => {
47
47
  };
48
48
 
49
49
  export { GET };
50
- //# sourceMappingURL=_server.ts-BMZDMOWe.js.map
50
+ //# sourceMappingURL=_server.ts-Dr9Nrd0B.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BMZDMOWe.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/deploy-status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { t as getDeployState } from \"../../../../../chunks/setup-deploy.js\";\n//#region src/routes/api/setup/deploy-status/+server.ts\nfunction resolvePorts() {\n\treturn {\n\t\tadmin: Number(process.env.OP_HOST_UI_PORT) || 3880,\n\t\tassistant: Number(process.env.OP_HOST_ASSISTANT_PORT) || 3800\n\t};\n}\nvar GET = () => {\n\tconst state = getDeployState(getState());\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: state.setupComplete,\n\t\tdeploying: state.deploying,\n\t\tdeployStatus: state.deployStatus,\n\t\tdeployError: state.deployError,\n\t\timageWarning: state.imageWarning,\n\t\tphase: state.phase,\n\t\tports: resolvePorts()\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,SAAS,YAAY,GAAG;AACxB,CAAC,OAAO;AACR,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;AACpD,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI;AAC3D,EAAE;AACF;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;AACpC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;AAC5B,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY;AAClC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW;AAChC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY;AAClC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;AACpB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-Dr9Nrd0B.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/deploy-status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { t as getDeployState } from \"../../../../../chunks/setup-deploy.js\";\n//#region src/routes/api/setup/deploy-status/+server.ts\nfunction resolvePorts() {\n\treturn {\n\t\tadmin: Number(process.env.OP_HOST_UI_PORT) || 3880,\n\t\tassistant: Number(process.env.OP_HOST_ASSISTANT_PORT) || 3800\n\t};\n}\nvar GET = () => {\n\tconst state = getDeployState(getState());\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: state.setupComplete,\n\t\tdeploying: state.deploying,\n\t\tdeployStatus: state.deployStatus,\n\t\tdeployError: state.deployError,\n\t\timageWarning: state.imageWarning,\n\t\tphase: state.phase,\n\t\tports: resolvePorts()\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,SAAS,YAAY,GAAG;AACxB,CAAC,OAAO;AACR,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI;AACpD,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI;AAC3D,EAAE;AACF;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;AACpC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;AAC5B,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY;AAClC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW;AAChC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY;AAClC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;AACpB,EAAE,KAAK,EAAE,YAAY;AACrB,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-CbGxMTVo.js';
2
- import { t as testEmbeddingSettings } from './akm-Ry9Pheex.js';
3
- import './src-BunIUeZg.js';
1
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-BluGgY3g.js';
2
+ import { t as testEmbeddingSettings } from './akm-BHWIeMbV.js';
3
+ import './src-Bms-Wpj4.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
26
- import './state-DvXQigXN.js';
25
+ import './endpoints-ev9YSBb8.js';
26
+ import './state-dBGSHxF6.js';
27
27
 
28
28
  //#region src/routes/admin/akm/embedding/test/+server.ts
29
29
  var POST = async (event) => {
@@ -51,4 +51,4 @@ var POST = async (event) => {
51
51
  };
52
52
 
53
53
  export { POST };
54
- //# sourceMappingURL=_server.ts-DrHTacva.js.map
54
+ //# sourceMappingURL=_server.ts-DuzwVKnI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DrHTacva.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/test/_server.ts.js"],"sourcesContent":["import { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\nimport { r as testEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/test/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst endpoint = typeof body.endpoint === \"string\" ? body.endpoint : \"\";\n\tconst model = typeof body.model === \"string\" ? body.model : \"\";\n\tconst provider = typeof body.provider === \"string\" ? body.provider : \"\";\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst dimension = typeof body.dimension === \"number\" ? body.dimension : void 0;\n\tif (!endpoint.trim() || !model.trim()) return errorResponse(400, \"bad_request\", \"Endpoint and model are required.\", {}, requestId);\n\tconst result = await testEmbeddingSettings({\n\t\tendpoint,\n\t\tmodel,\n\t\tprovider,\n\t\tapiKey,\n\t\tdimension\n\t});\n\tif (!result.ok) return errorResponse(502, \"embedding_test_failed\", result.message, {}, requestId);\n\treturn jsonResponse(200, result, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAC/D,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM;AAC/E,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnI,CAAC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;AAC5C,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE;AACF,EAAE,CAAC;AACH,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AAClG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;AAC5C;;;;"}
1
+ {"version":3,"file":"_server.ts-DuzwVKnI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/embedding/test/_server.ts.js"],"sourcesContent":["import { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\nimport { r as testEmbeddingSettings } from \"../../../../../../chunks/akm.js\";\n//#region src/routes/admin/akm/embedding/test/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst body = parsed.data;\n\tconst endpoint = typeof body.endpoint === \"string\" ? body.endpoint : \"\";\n\tconst model = typeof body.model === \"string\" ? body.model : \"\";\n\tconst provider = typeof body.provider === \"string\" ? body.provider : \"\";\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst dimension = typeof body.dimension === \"number\" ? body.dimension : void 0;\n\tif (!endpoint.trim() || !model.trim()) return errorResponse(400, \"bad_request\", \"Endpoint and model are required.\", {}, requestId);\n\tconst result = await testEmbeddingSettings({\n\t\tendpoint,\n\t\tmodel,\n\t\tprovider,\n\t\tapiKey,\n\t\tdimension\n\t});\n\tif (!result.ok) return errorResponse(502, \"embedding_test_failed\", result.message, {}, requestId);\n\treturn jsonResponse(200, result, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAC/D,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM;AAC/E,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnI,CAAC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;AAC5C,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE;AACF,EAAE,CAAC;AACH,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AAClG,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;AAC5C;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { ai as isSetupComplete, aQ as resolveStackDir, a5 as getAddonProfileSelection, b as annotateAddonProfileAvailability, a6 as getAddonProfiles } from './src-BunIUeZg.js';
3
- import { g as getState } from './state-DvXQigXN.js';
4
- import { r as requireAdmin, d as getRequestId } from './helpers-CbGxMTVo.js';
2
+ import { ai as isSetupComplete, aQ as resolveStackDir, a5 as getAddonProfileSelection, b as annotateAddonProfileAvailability, a6 as getAddonProfiles } from './src-Bms-Wpj4.js';
3
+ import { g as getState } from './state-dBGSHxF6.js';
4
+ import { r as requireAdmin, d as getRequestId } from './helpers-BluGgY3g.js';
5
5
  import './utils-BSRjJDrZ.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -24,7 +24,7 @@ import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
26
  import 'node:os';
27
- import './endpoints-CaZDtz1E.js';
27
+ import './endpoints-ev9YSBb8.js';
28
28
 
29
29
  //#region src/routes/api/setup/ollama-profiles/+server.ts
30
30
  var GET = async (event) => {
@@ -41,4 +41,4 @@ var GET = async (event) => {
41
41
  };
42
42
 
43
43
  export { GET };
44
- //# sourceMappingURL=_server.ts-C6EvDiCB.js.map
44
+ //# sourceMappingURL=_server.ts-DyAq_u9y.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C6EvDiCB.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/ollama-profiles/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { _t as annotateAddonProfileAvailability, bt as getAddonProfiles, en as resolveStackDir, lt as isSetupComplete, yt as getAddonProfileSelection } 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/routes/api/setup/ollama-profiles/+server.ts\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst state = getState();\n\treturn json({\n\t\tok: true,\n\t\tprofiles: await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\")),\n\t\tselectedProfile: getAddonProfileSelection(state.stackDir, \"ollama\")\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7F,EAAE,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ;AACpE,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DyAq_u9y.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/ollama-profiles/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { _t as annotateAddonProfileAvailability, bt as getAddonProfiles, en as resolveStackDir, lt as isSetupComplete, yt as getAddonProfileSelection } 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/routes/api/setup/ollama-profiles/+server.ts\nvar GET = async (event) => {\n\tif (isSetupComplete(resolveStackDir())) {\n\t\tconst authError = requireAdmin(event, getRequestId(event));\n\t\tif (authError) return authError;\n\t}\n\tconst state = getState();\n\treturn json({\n\t\tok: true,\n\t\tprofiles: await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\")),\n\t\tselectedProfile: getAddonProfileSelection(state.stackDir, \"ollama\")\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS;AACjC,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC7F,EAAE,eAAe,EAAE,wBAAwB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ;AACpE,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { am as listEnabledAddonIds } from './src-BunIUeZg.js';
2
- import { g as getState } from './state-DvXQigXN.js';
3
- import { d as getRequestId, k as jsonResponse } from './helpers-CbGxMTVo.js';
1
+ import { am as listEnabledAddonIds } from './src-Bms-Wpj4.js';
2
+ import { g as getState } from './state-dBGSHxF6.js';
3
+ import { d as getRequestId, k as jsonResponse } from './helpers-BluGgY3g.js';
4
4
  import { execFile } from 'node:child_process';
5
5
  import { promisify } from 'node:util';
6
6
  import './chunk-CLZ62Ad-.js';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-CaZDtz1E.js';
26
+ import './endpoints-ev9YSBb8.js';
27
27
 
28
28
  //#region src/routes/guardian/health/+server.ts
29
29
  var execFileAsync = promisify(execFile);
@@ -82,4 +82,4 @@ var GET = async (event) => {
82
82
  };
83
83
 
84
84
  export { GET };
85
- //# sourceMappingURL=_server.ts-CpOcb-Dy.js.map
85
+ //# sourceMappingURL=_server.ts-F9jr1TXS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CpOcb-Dy.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/guardian/health/_server.ts.js"],"sourcesContent":["import { wt as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n//#region src/routes/guardian/health/+server.ts\nvar execFileAsync = promisify(execFile);\nvar PORTAL_ADDON_IDS = [\n\t\"api\",\n\t\"chat\",\n\t\"discord\",\n\t\"slack\"\n];\n/**\n* Guardian health — queries the running container directly.\n*\n* Guardian has no host port mapping in the 0.11.0+ layout (it's reachable\n* only on the internal portal_net/assistant_net networks). The previous\n* implementation read the UI's in-memory ControlPlaneState, which is stale\n* whenever the stack was started by something other than the UI itself\n* (CLI, docker compose directly, AppImage on a pre-existing stack).\n*\n* `docker container inspect ... --format '{{.State.Health.Status}}'` is the\n* authoritative source: it reads the compose-defined healthcheck the\n* guardian container already runs internally. Same approach as the\n* admin-tools-plugin host-side health-check tool.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\ttry {\n\t\tif (!listEnabledAddonIds(getState().homeDir).some((a) => PORTAL_ADDON_IDS.includes(a))) return jsonResponse(200, {\n\t\t\tstatus: \"not_deployed\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch {}\n\ttry {\n\t\tconst { stdout } = await execFileAsync(\"docker\", [\n\t\t\t\"container\",\n\t\t\t\"inspect\",\n\t\t\t\"openpalm-guardian-1\",\n\t\t\t\"--format\",\n\t\t\t\"{{.State.Health.Status}}\"\n\t\t], { timeout: 5e3 });\n\t\tconst status = stdout.trim();\n\t\tif (status === \"healthy\") return jsonResponse(200, {\n\t\t\tstatus: \"ok\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: status || \"unknown\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: \"unreachable\",\n\t\t\tservice: \"guardian\",\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t}, requestId);\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,gBAAgB,GAAG;AACvB,CAAC,KAAK;AACN,CAAC,MAAM;AACP,CAAC,SAAS;AACV,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACnH,GAAG,MAAM,EAAE,cAAc;AACzB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACnD,GAAG,WAAW;AACd,GAAG,SAAS;AACZ,GAAG,qBAAqB;AACxB,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtB,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACrD,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS;AAC9B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,OAAO,EAAE,UAAU;AACtB,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-F9jr1TXS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/guardian/health/_server.ts.js"],"sourcesContent":["import { wt as listEnabledAddonIds } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n//#region src/routes/guardian/health/+server.ts\nvar execFileAsync = promisify(execFile);\nvar PORTAL_ADDON_IDS = [\n\t\"api\",\n\t\"chat\",\n\t\"discord\",\n\t\"slack\"\n];\n/**\n* Guardian health — queries the running container directly.\n*\n* Guardian has no host port mapping in the 0.11.0+ layout (it's reachable\n* only on the internal portal_net/assistant_net networks). The previous\n* implementation read the UI's in-memory ControlPlaneState, which is stale\n* whenever the stack was started by something other than the UI itself\n* (CLI, docker compose directly, AppImage on a pre-existing stack).\n*\n* `docker container inspect ... --format '{{.State.Health.Status}}'` is the\n* authoritative source: it reads the compose-defined healthcheck the\n* guardian container already runs internally. Same approach as the\n* admin-tools-plugin host-side health-check tool.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\ttry {\n\t\tif (!listEnabledAddonIds(getState().homeDir).some((a) => PORTAL_ADDON_IDS.includes(a))) return jsonResponse(200, {\n\t\t\tstatus: \"not_deployed\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch {}\n\ttry {\n\t\tconst { stdout } = await execFileAsync(\"docker\", [\n\t\t\t\"container\",\n\t\t\t\"inspect\",\n\t\t\t\"openpalm-guardian-1\",\n\t\t\t\"--format\",\n\t\t\t\"{{.State.Health.Status}}\"\n\t\t], { timeout: 5e3 });\n\t\tconst status = stdout.trim();\n\t\tif (status === \"healthy\") return jsonResponse(200, {\n\t\t\tstatus: \"ok\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: status || \"unknown\",\n\t\t\tservice: \"guardian\"\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn jsonResponse(503, {\n\t\t\tstatus: \"unreachable\",\n\t\t\tservice: \"guardian\",\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t}, requestId);\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC;AACvC,IAAI,gBAAgB,GAAG;AACvB,CAAC,KAAK;AACN,CAAC,MAAM;AACP,CAAC,SAAS;AACV,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACnH,GAAG,MAAM,EAAE,cAAc;AACzB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE;AACnD,GAAG,WAAW;AACd,GAAG,SAAS;AACZ,GAAG,qBAAqB;AACxB,GAAG,UAAU;AACb,GAAG;AACH,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtB,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACrD,GAAG,MAAM,EAAE,IAAI;AACf,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,MAAM,IAAI,SAAS;AAC9B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,MAAM,EAAE,aAAa;AACxB,GAAG,OAAO,EAAE,UAAU;AACtB,GAAG,KAAK,EAAE,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG;AACzD,GAAG,EAAE,SAAS,CAAC;AACf,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse } from './helpers-CbGxMTVo.js';
1
+ import { d as getRequestId, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse } from './helpers-BluGgY3g.js';
2
2
  import { b as asRecord } from './coercion-TNFJisCC.js';
3
- import './src-BunIUeZg.js';
3
+ import './src-Bms-Wpj4.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
26
- import './state-DvXQigXN.js';
25
+ import './endpoints-ev9YSBb8.js';
26
+ import './state-dBGSHxF6.js';
27
27
 
28
28
  //#region src/lib/opencode/provider-models.ts
29
29
  function sanitizeOpenCodeModels(models, fallbackProviderId) {
@@ -56,4 +56,4 @@ var GET = async (event) => {
56
56
  };
57
57
 
58
58
  export { GET };
59
- //# sourceMappingURL=_server.ts-CWdInfEp.js.map
59
+ //# sourceMappingURL=_server.ts-Ff36E_kQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CWdInfEp.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/models/_server.ts.js"],"sourcesContent":["import { a as getOpenCodeClient, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { n as asRecord } from \"../../../../../../../chunks/coercion.js\";\n//#region src/lib/opencode/provider-models.ts\nfunction sanitizeOpenCodeModels(models, fallbackProviderId) {\n\tif (!models || typeof models !== \"object\") return [];\n\treturn Object.values(models).map((value) => asRecord(value)).filter((model) => typeof model?.id === \"string\").map((model) => {\n\t\tconst id = model.id;\n\t\treturn {\n\t\t\tid,\n\t\t\tname: typeof model.name === \"string\" ? model.name : id,\n\t\t\tfamily: typeof model.family === \"string\" ? model.family : \"\",\n\t\t\tproviderID: typeof model.providerID === \"string\" ? model.providerID : fallbackProviderId,\n\t\t\tstatus: typeof model.status === \"string\" ? model.status : \"active\",\n\t\t\tcapabilities: asRecord(model.capabilities) ?? {}\n\t\t};\n\t});\n}\n//#endregion\n//#region src/routes/admin/opencode/providers/[id]/models/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst result = await getOpenCodeClient().proxy(\"/provider\");\n\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\tconst provider = result.data.all?.find((p) => p.id === providerId);\n\tif (!provider) return errorResponse(404, \"not_found\", `Provider \"${providerId}\" not found`, {}, requestId);\n\tif (!provider.models) return jsonResponse(200, { models: [] }, requestId);\n\treturn jsonResponse(200, { models: sanitizeOpenCodeModels(provider.models, providerId) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE;AAC5D,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,OAAO,EAAE;AACrD,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC9H,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE;AACrB,EAAE,OAAO;AACT,GAAG,EAAE;AACL,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE;AACzD,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE;AAC/D,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,GAAG,KAAK,CAAC,UAAU,GAAG,kBAAkB;AAC3F,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ;AACrE,GAAG,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;AACjD,GAAG;AACH,CAAC,CAAC,CAAC;AACH;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,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;AACnC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;AAC5D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC;AACnE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3G,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1E,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC;AACrG;;;;"}
1
+ {"version":3,"file":"_server.ts-Ff36E_kQ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/models/_server.ts.js"],"sourcesContent":["import { a as getOpenCodeClient, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { n as asRecord } from \"../../../../../../../chunks/coercion.js\";\n//#region src/lib/opencode/provider-models.ts\nfunction sanitizeOpenCodeModels(models, fallbackProviderId) {\n\tif (!models || typeof models !== \"object\") return [];\n\treturn Object.values(models).map((value) => asRecord(value)).filter((model) => typeof model?.id === \"string\").map((model) => {\n\t\tconst id = model.id;\n\t\treturn {\n\t\t\tid,\n\t\t\tname: typeof model.name === \"string\" ? model.name : id,\n\t\t\tfamily: typeof model.family === \"string\" ? model.family : \"\",\n\t\t\tproviderID: typeof model.providerID === \"string\" ? model.providerID : fallbackProviderId,\n\t\t\tstatus: typeof model.status === \"string\" ? model.status : \"active\",\n\t\t\tcapabilities: asRecord(model.capabilities) ?? {}\n\t\t};\n\t});\n}\n//#endregion\n//#region src/routes/admin/opencode/providers/[id]/models/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id;\n\tconst result = await getOpenCodeClient().proxy(\"/provider\");\n\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\tconst provider = result.data.all?.find((p) => p.id === providerId);\n\tif (!provider) return errorResponse(404, \"not_found\", `Provider \"${providerId}\" not found`, {}, requestId);\n\tif (!provider.models) return jsonResponse(200, { models: [] }, requestId);\n\treturn jsonResponse(200, { models: sanitizeOpenCodeModels(provider.models, providerId) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE;AAC5D,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,OAAO,EAAE;AACrD,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC9H,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE;AACrB,EAAE,OAAO;AACT,GAAG,EAAE;AACL,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE;AACzD,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE;AAC/D,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,GAAG,KAAK,CAAC,UAAU,GAAG,kBAAkB;AAC3F,GAAG,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ;AACrE,GAAG,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;AACjD,GAAG;AACH,CAAC,CAAC,CAAC;AACH;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,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;AACnC,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;AAC5D,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AAChG,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC;AACnE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3G,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1E,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC;AACrG;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-CbGxMTVo.js';
2
- import { o as opencodeFetch } from './http-BJBLvJS_.js';
3
- import './src-BunIUeZg.js';
1
+ import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-BluGgY3g.js';
2
+ import { o as opencodeFetch } from './http-BmFqfzyw.js';
3
+ import './src-Bms-Wpj4.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CaZDtz1E.js';
26
- import './state-DvXQigXN.js';
25
+ import './endpoints-ev9YSBb8.js';
26
+ import './state-dBGSHxF6.js';
27
27
 
28
28
  //#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts
29
29
  var POST = async (event) => {
@@ -52,4 +52,4 @@ var POST = async (event) => {
52
52
  };
53
53
 
54
54
  export { POST };
55
- //# sourceMappingURL=_server.ts-BYJr9N2P.js.map
55
+ //# sourceMappingURL=_server.ts-IrIGIyzI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BYJr9N2P.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/_providerId_/callback/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\n//#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst { providerId } = event.params;\n\tif (!providerId) return errorResponse(400, \"missing_provider\", \"Provider ID is required.\", {}, requestId);\n\ttry {\n\t\tconst body = await event.request.text();\n\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody\n\t\t});\n\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t...requestId ? { \"x-request-id\": requestId } : {}\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\treturn errorResponse(502, \"oauth_callback_failed\", error instanceof Error ? error.message : \"OAuth callback failed\", {}, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM;AACpC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1G,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACzC,EAAE,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACpF,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,GAAG,SAAS,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG;AACnD;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,uBAAuB,EAAE,EAAE,EAAE,SAAS,CAAC;AACrI,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-IrIGIyzI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/oauth/_providerId_/callback/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\n//#region src/routes/admin/providers/oauth/[providerId]/callback/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst { providerId } = event.params;\n\tif (!providerId) return errorResponse(400, \"missing_provider\", \"Provider ID is required.\", {}, requestId);\n\ttry {\n\t\tconst body = await event.request.text();\n\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody\n\t\t});\n\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t...requestId ? { \"x-request-id\": requestId } : {}\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\treturn errorResponse(502, \"oauth_callback_failed\", error instanceof Error ? error.message : \"OAuth callback failed\", {}, requestId);\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM;AACpC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1G,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACzC,EAAE,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACpF,GAAG,MAAM,EAAE,MAAM;AACjB,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,OAAO,EAAE;AACZ,IAAI,eAAe,EAAE,UAAU;AAC/B,IAAI,cAAc,EAAE,kBAAkB;AACtC,IAAI,GAAG,SAAS,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG;AACnD;AACA,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE;AACjB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,uBAAuB,EAAE,EAAE,EAAE,SAAS,CAAC;AACrI,CAAC;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { r as requireAdmin, d as getRequestId } from './helpers-CbGxMTVo.js';
2
+ import { r as requireAdmin, d as getRequestId } from './helpers-BluGgY3g.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-BunIUeZg.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';
@@ -23,8 +23,8 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-CaZDtz1E.js';
27
- import './state-DvXQigXN.js';
26
+ import './endpoints-ev9YSBb8.js';
27
+ import './state-dBGSHxF6.js';
28
28
 
29
29
  //#region src/lib/server/release-units.ts
30
30
  var ELECTRON_ASSET_PATTERN = /^OpenPalm-.*\.(dmg|AppImage|zip|deb|rpm|pkg)$/i;
@@ -117,4 +117,4 @@ var GET = async (event) => {
117
117
  };
118
118
 
119
119
  export { GET };
120
- //# sourceMappingURL=_server.ts-iMaXV6FY.js.map
120
+ //# sourceMappingURL=_server.ts-IuJoqgcf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-iMaXV6FY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/releases/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/lib/server/release-units.ts\nvar ELECTRON_ASSET_PATTERN = /^OpenPalm-.*\\.(dmg|AppImage|zip|deb|rpm|pkg)$/i;\nvar PLATFORM_TAG_PATTERN = /^platform-(\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]*)?)$/;\nvar LEGACY_V_TAG_PATTERN = /^v(\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]*)?)$/;\n/**\n* Select only platform releases that carry installable app assets (Electron\n* installer or skeleton/deploy bundle), skipping per-unit container-image\n* releases.\n*\n* Per-unit version pickers now read from Docker Hub tags (not GitHub releases),\n* so the releases endpoint only needs app-level releases — the ones with\n* downloadable installer/bundle assets. This dramatically reduces the data the\n* UI holds and keeps the GitHub API call to its existing single request (the\n* filtering is client-side of the fetch, not a second fetch).\n*\n* Deduplicates by semver so `{#each r.tag}` keys stay unique when a platform\n* release created both a `platform-X.Y.Z` and a legacy `vX.Y.Z` tag. Preserves\n* GitHub's `created_at` desc ordering.\n*/\nfunction selectInstallableReleases(raw) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst releases = [];\n\tfor (const r of raw) {\n\t\tconst hasElectronBuild = r.assets.some((a) => ELECTRON_ASSET_PATTERN.test(a.name));\n\t\tif (!hasElectronBuild) continue;\n\t\tconst platformMatch = r.tag_name.match(PLATFORM_TAG_PATTERN);\n\t\tif (platformMatch) {\n\t\t\tconst tag = platformMatch[1];\n\t\t\tif (!seen.has(tag)) {\n\t\t\t\tseen.add(tag);\n\t\t\t\treleases.push({\n\t\t\t\t\ttag,\n\t\t\t\t\tprerelease: r.prerelease,\n\t\t\t\t\tpublishedAt: r.published_at,\n\t\t\t\t\thasElectronBuild\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst legacyMatch = r.tag_name.match(LEGACY_V_TAG_PATTERN);\n\t\tif (legacyMatch) {\n\t\t\tconst tag = legacyMatch[1];\n\t\t\tif (!seen.has(tag)) {\n\t\t\t\tseen.add(tag);\n\t\t\t\treleases.push({\n\t\t\t\t\ttag,\n\t\t\t\t\tprerelease: r.prerelease,\n\t\t\t\t\tpublishedAt: r.published_at,\n\t\t\t\t\thasElectronBuild\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn releases;\n}\n//#endregion\n//#region src/routes/admin/versions/releases/+server.ts\n/**\n* GET /admin/versions/releases — list installable platform releases from GitHub.\n*\n* Powers the desktop App-update badge: only platform releases that carry an\n* Electron installer asset. Best-effort — a GitHub outage yields an empty list\n* with an error signal rather than failing the page. (No server-side cache: the\n* admin UI no longer polls this, so a direct fetch per visit is fine.)\n*/\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(\"https://api.github.com/repos/itlackey/openpalm/releases?per_page=20\", {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/vnd.github+json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\treleases: [],\n\t\t\terror: \"GitHub releases unavailable\"\n\t\t});\n\t\treturn json({ releases: selectInstallableReleases(await res.json()) });\n\t} catch {\n\t\treturn json({\n\t\t\treleases: [],\n\t\t\terror: \"GitHub releases unavailable\"\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-IuJoqgcf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/releases/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/lib/server/release-units.ts\nvar ELECTRON_ASSET_PATTERN = /^OpenPalm-.*\\.(dmg|AppImage|zip|deb|rpm|pkg)$/i;\nvar PLATFORM_TAG_PATTERN = /^platform-(\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]*)?)$/;\nvar LEGACY_V_TAG_PATTERN = /^v(\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]*)?)$/;\n/**\n* Select only platform releases that carry installable app assets (Electron\n* installer or skeleton/deploy bundle), skipping per-unit container-image\n* releases.\n*\n* Per-unit version pickers now read from Docker Hub tags (not GitHub releases),\n* so the releases endpoint only needs app-level releases — the ones with\n* downloadable installer/bundle assets. This dramatically reduces the data the\n* UI holds and keeps the GitHub API call to its existing single request (the\n* filtering is client-side of the fetch, not a second fetch).\n*\n* Deduplicates by semver so `{#each r.tag}` keys stay unique when a platform\n* release created both a `platform-X.Y.Z` and a legacy `vX.Y.Z` tag. Preserves\n* GitHub's `created_at` desc ordering.\n*/\nfunction selectInstallableReleases(raw) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst releases = [];\n\tfor (const r of raw) {\n\t\tconst hasElectronBuild = r.assets.some((a) => ELECTRON_ASSET_PATTERN.test(a.name));\n\t\tif (!hasElectronBuild) continue;\n\t\tconst platformMatch = r.tag_name.match(PLATFORM_TAG_PATTERN);\n\t\tif (platformMatch) {\n\t\t\tconst tag = platformMatch[1];\n\t\t\tif (!seen.has(tag)) {\n\t\t\t\tseen.add(tag);\n\t\t\t\treleases.push({\n\t\t\t\t\ttag,\n\t\t\t\t\tprerelease: r.prerelease,\n\t\t\t\t\tpublishedAt: r.published_at,\n\t\t\t\t\thasElectronBuild\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst legacyMatch = r.tag_name.match(LEGACY_V_TAG_PATTERN);\n\t\tif (legacyMatch) {\n\t\t\tconst tag = legacyMatch[1];\n\t\t\tif (!seen.has(tag)) {\n\t\t\t\tseen.add(tag);\n\t\t\t\treleases.push({\n\t\t\t\t\ttag,\n\t\t\t\t\tprerelease: r.prerelease,\n\t\t\t\t\tpublishedAt: r.published_at,\n\t\t\t\t\thasElectronBuild\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t}\n\treturn releases;\n}\n//#endregion\n//#region src/routes/admin/versions/releases/+server.ts\n/**\n* GET /admin/versions/releases — list installable platform releases from GitHub.\n*\n* Powers the desktop App-update badge: only platform releases that carry an\n* Electron installer asset. Best-effort — a GitHub outage yields an empty list\n* with an error signal rather than failing the page. (No server-side cache: the\n* admin UI no longer polls this, so a direct fetch per visit is fine.)\n*/\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\ttry {\n\t\tconst res = await fetch(\"https://api.github.com/repos/itlackey/openpalm/releases?per_page=20\", {\n\t\t\theaders: {\n\t\t\t\t\"User-Agent\": \"openpalm-admin/1.0\",\n\t\t\t\tAccept: \"application/vnd.github+json\"\n\t\t\t},\n\t\t\tsignal: AbortSignal.timeout(8e3)\n\t\t});\n\t\tif (!res.ok) return json({\n\t\t\treleases: [],\n\t\t\terror: \"GitHub releases unavailable\"\n\t\t});\n\t\treturn json({ releases: selectInstallableReleases(await res.json()) });\n\t} catch {\n\t\treturn json({\n\t\t\treleases: [],\n\t\t\terror: \"GitHub releases unavailable\"\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { U as dismissSecretStripNotice, aC as readSecretStripNotice, 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 { U as dismissSecretStripNotice, aC as readSecretStripNotice, 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/secret-notice/+server.ts
28
28
  var logger = createLogger("secret-notice");
@@ -61,4 +61,4 @@ var DELETE = async (event) => {
61
61
  };
62
62
 
63
63
  export { DELETE, GET };
64
- //# sourceMappingURL=_server.ts-CFXMWI2h.js.map
64
+ //# sourceMappingURL=_server.ts-Q6gku721.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CFXMWI2h.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secret-notice/_server.ts.js"],"sourcesContent":["import { Ot as dismissSecretStripNotice, _n as createLogger, kt as readSecretStripNotice } 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/secret-notice/+server.ts\nvar logger = createLogger(\"secret-notice\");\n/**\n* #502 — one-time notice that secret-looking keys were removed from stack.env.\n* The strip itself is correct per the secret-boundary contract; this surfaces\n* it so the user knows where their value went and how to re-add it.\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\tnotice: readSecretStripNotice(state)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"secret_notice_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/** Dismiss the one-time notice. */\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\tdismissSecretStripNotice(state);\n\t\tlogger.info(\"secret-strip notice dismissed\", { requestId });\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"secret_notice_dismiss_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, GET };\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,MAAM,EAAE,qBAAqB,CAAC,KAAK;AACtC,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;AACA;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,wBAAwB,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AACnD,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,8BAA8B,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACtH,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-Q6gku721.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/secret-notice/_server.ts.js"],"sourcesContent":["import { Ot as dismissSecretStripNotice, _n as createLogger, kt as readSecretStripNotice } 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/secret-notice/+server.ts\nvar logger = createLogger(\"secret-notice\");\n/**\n* #502 — one-time notice that secret-looking keys were removed from stack.env.\n* The strip itself is correct per the secret-boundary contract; this surfaces\n* it so the user knows where their value went and how to re-add it.\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\tnotice: readSecretStripNotice(state)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"secret_notice_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/** Dismiss the one-time notice. */\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\tdismissSecretStripNotice(state);\n\t\tlogger.info(\"secret-strip notice dismissed\", { requestId });\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"secret_notice_dismiss_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, GET };\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,MAAM,EAAE,qBAAqB,CAAC,KAAK;AACtC,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;AACA;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,wBAAwB,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7D,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AACnD,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,8BAA8B,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACtH,CAAC;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { aD as readStackEnv, aF as readStackSecretEnv, b as annotateAddonProfileAvailability, a6 as getAddonProfiles, a5 as getAddonProfileSelection, am as listEnabledAddonIds } from './src-BunIUeZg.js';
3
- import { g as getState } from './state-DvXQigXN.js';
4
- import { r as requireAdmin, d as getRequestId, f as getUiLoginPassword } from './helpers-CbGxMTVo.js';
2
+ import { aD as readStackEnv, aF as readStackSecretEnv, b as annotateAddonProfileAvailability, a6 as getAddonProfiles, a5 as getAddonProfileSelection, am as listEnabledAddonIds } from './src-Bms-Wpj4.js';
3
+ import { g as getState } from './state-dBGSHxF6.js';
4
+ import { r as requireAdmin, d as getRequestId, f as getUiLoginPassword } from './helpers-BluGgY3g.js';
5
5
  import { existsSync, readFileSync } from 'node:fs';
6
6
  import { join } from 'node:path';
7
7
  import './utils-BSRjJDrZ.js';
@@ -24,7 +24,7 @@ import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
26
  import 'node:os';
27
- import './endpoints-CaZDtz1E.js';
27
+ import './endpoints-ev9YSBb8.js';
28
28
 
29
29
  //#region src/routes/api/setup/current-config/+server.ts
30
30
  function readAkmConfig(configDir) {
@@ -146,4 +146,4 @@ var GET = async (event) => {
146
146
  };
147
147
 
148
148
  export { GET };
149
- //# sourceMappingURL=_server.ts-CvE-xhWs.js.map
149
+ //# sourceMappingURL=_server.ts-WRqR790z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CvE-xhWs.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/current-config/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Vt as readStackSecretEnv, _t as annotateAddonProfileAvailability, bt as getAddonProfiles, wt as listEnabledAddonIds, yt as getAddonProfileSelection, zt as readStackEnv } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, g as getUiLoginPassword, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/routes/api/setup/current-config/+server.ts\nfunction readAkmConfig(configDir) {\n\tconst path = join(configDir, \"akm\", \"config.json\");\n\tif (!existsSync(path)) return {};\n\ttry {\n\t\treturn JSON.parse(readFileSync(path, \"utf-8\"));\n\t} catch {\n\t\treturn {};\n\t}\n}\n/**\n* Read model preferences persisted by importHostOpenCode into\n* <configDir>/assistant/opencode.json. This is the on-disk source of truth\n* after a host import; reusing it means wizard reruns restore the same\n* preferences without re-detecting the (possibly absent) host install.\n* Returns undefined if the file doesn't exist or contains no model keys.\n*/\nfunction readPersistedModelPreferences(configDir) {\n\tconst path = join(configDir, \"assistant\", \"opencode.json\");\n\tif (!existsSync(path)) return void 0;\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\tconst prefs = {};\n\t\tif (typeof parsed.model === \"string\" && parsed.model) prefs.model = parsed.model;\n\t\tif (typeof parsed.small_model === \"string\" && parsed.small_model) prefs.small_model = parsed.small_model;\n\t\treturn prefs.model || prefs.small_model ? prefs : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction deriveBaseUrl(endpoint) {\n\tif (!endpoint) return \"\";\n\treturn endpoint.replace(/\\/chat\\/completions\\/?$/, \"\").replace(/\\/embeddings\\/?$/, \"\").replace(/\\/+$/, \"\");\n}\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst configured = getUiLoginPassword();\n\tconst env = readStackEnv(state.stackDir);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\tconst akm = readAkmConfig(state.configDir);\n\tconst importedModelPreferences = readPersistedModelPreferences(state.configDir);\n\tconst voiceProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"voice\"));\n\tconst selectedVoiceProfile = getAddonProfileSelection(state.stackDir, \"voice\");\n\tconst ollamaProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\"));\n\tconst selectedOllamaProfile = getAddonProfileSelection(state.stackDir, \"ollama\");\n\tconst hostHome = process.env.HOME ?? process.env.USERPROFILE ?? \"\";\n\tconst hostAkm = !!hostHome && env.OP_AKM_STASH === `${hostHome}/akm` && env.OP_AKM_CONFIG === `${hostHome}/.config/akm`;\n\tconst meta = (envKey) => ({\n\t\tenvKey,\n\t\tpresent: Boolean(secretEnv[envKey])\n\t});\n\tconst discord = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tbotToken: \"DISCORD_BOT_TOKEN\",\n\t\tapplicationId: \"DISCORD_APPLICATION_ID\",\n\t\tregisterCommands: \"DISCORD_REGISTER_COMMANDS\",\n\t\tallowedGuilds: \"DISCORD_ALLOWED_GUILDS\",\n\t\tallowedRoles: \"DISCORD_ALLOWED_ROLES\",\n\t\tallowedUsers: \"DISCORD_ALLOWED_USERS\",\n\t\tblockedUsers: \"DISCORD_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) discord[field] = meta(envKey);\n\tconst slack = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tslackBotToken: \"SLACK_BOT_TOKEN\",\n\t\tslackAppToken: \"SLACK_APP_TOKEN\",\n\t\tallowedChannels: \"SLACK_ALLOWED_CHANNELS\",\n\t\tallowedUsers: \"SLACK_ALLOWED_USERS\",\n\t\tblockedUsers: \"SLACK_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) slack[field] = meta(envKey);\n\tconst portalCredentials = {};\n\tif (Object.keys(discord).length > 0) portalCredentials.discord = discord;\n\tif (Object.keys(slack).length > 0) portalCredentials.slack = slack;\n\treturn json({\n\t\tok: true,\n\t\thasPassword: typeof configured === \"string\" && configured.length > 0,\n\t\tassistantVersion: env.OP_ASSISTANT_VERSION ?? \"\",\n\t\tguardianVersion: env.OP_GUARDIAN_VERSION ?? \"\",\n\t\tportalVersion: env.OP_PORTAL_VERSION ?? \"\",\n\t\tvoiceVersion: env.OP_VOICE_VERSION ?? \"\",\n\t\thostAkm,\n\t\tllm: akm.llm ? {\n\t\t\tprovider: akm.llm.provider ?? \"\",\n\t\t\tmodel: akm.llm.model ?? \"\",\n\t\t\tbaseUrl: deriveBaseUrl(akm.llm.endpoint)\n\t\t} : null,\n\t\tembedding: akm.embedding ? {\n\t\t\tprovider: akm.embedding.provider ?? \"\",\n\t\t\tmodel: akm.embedding.model ?? \"\",\n\t\t\tdims: akm.embedding.dimension ?? 0,\n\t\t\tbaseUrl: deriveBaseUrl(akm.embedding.endpoint)\n\t\t} : null,\n\t\tvoice: {\n\t\t\ttts: {\n\t\t\t\tengine: env.OP_TTS_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_TTS_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_TTS_MODEL ?? \"\",\n\t\t\t\tvoice: env.OP_TTS_VOICE ?? \"\"\n\t\t\t},\n\t\t\tstt: {\n\t\t\t\tengine: env.OP_STT_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_STT_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_STT_MODEL ?? \"\",\n\t\t\t\tlanguage: env.OP_STT_LANGUAGE ?? \"\"\n\t\t\t},\n\t\t\tprofiles: voiceProfiles,\n\t\t\tselectedProfile: selectedVoiceProfile\n\t\t},\n\t\tollama: {\n\t\t\tprofiles: ollamaProfiles,\n\t\t\tselectedProfile: selectedOllamaProfile\n\t\t},\n\t\tenabledAddons: listEnabledAddonIds(state.homeDir),\n\t\tportalCredentials,\n\t\timportedModelPreferences: importedModelPreferences ?? null\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-WRqR790z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/current-config/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Vt as readStackSecretEnv, _t as annotateAddonProfileAvailability, bt as getAddonProfiles, wt as listEnabledAddonIds, yt as getAddonProfileSelection, zt as readStackEnv } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, g as getUiLoginPassword, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/routes/api/setup/current-config/+server.ts\nfunction readAkmConfig(configDir) {\n\tconst path = join(configDir, \"akm\", \"config.json\");\n\tif (!existsSync(path)) return {};\n\ttry {\n\t\treturn JSON.parse(readFileSync(path, \"utf-8\"));\n\t} catch {\n\t\treturn {};\n\t}\n}\n/**\n* Read model preferences persisted by importHostOpenCode into\n* <configDir>/assistant/opencode.json. This is the on-disk source of truth\n* after a host import; reusing it means wizard reruns restore the same\n* preferences without re-detecting the (possibly absent) host install.\n* Returns undefined if the file doesn't exist or contains no model keys.\n*/\nfunction readPersistedModelPreferences(configDir) {\n\tconst path = join(configDir, \"assistant\", \"opencode.json\");\n\tif (!existsSync(path)) return void 0;\n\ttry {\n\t\tconst parsed = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\tconst prefs = {};\n\t\tif (typeof parsed.model === \"string\" && parsed.model) prefs.model = parsed.model;\n\t\tif (typeof parsed.small_model === \"string\" && parsed.small_model) prefs.small_model = parsed.small_model;\n\t\treturn prefs.model || prefs.small_model ? prefs : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction deriveBaseUrl(endpoint) {\n\tif (!endpoint) return \"\";\n\treturn endpoint.replace(/\\/chat\\/completions\\/?$/, \"\").replace(/\\/embeddings\\/?$/, \"\").replace(/\\/+$/, \"\");\n}\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst configured = getUiLoginPassword();\n\tconst env = readStackEnv(state.stackDir);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\tconst akm = readAkmConfig(state.configDir);\n\tconst importedModelPreferences = readPersistedModelPreferences(state.configDir);\n\tconst voiceProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"voice\"));\n\tconst selectedVoiceProfile = getAddonProfileSelection(state.stackDir, \"voice\");\n\tconst ollamaProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\"));\n\tconst selectedOllamaProfile = getAddonProfileSelection(state.stackDir, \"ollama\");\n\tconst hostHome = process.env.HOME ?? process.env.USERPROFILE ?? \"\";\n\tconst hostAkm = !!hostHome && env.OP_AKM_STASH === `${hostHome}/akm` && env.OP_AKM_CONFIG === `${hostHome}/.config/akm`;\n\tconst meta = (envKey) => ({\n\t\tenvKey,\n\t\tpresent: Boolean(secretEnv[envKey])\n\t});\n\tconst discord = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tbotToken: \"DISCORD_BOT_TOKEN\",\n\t\tapplicationId: \"DISCORD_APPLICATION_ID\",\n\t\tregisterCommands: \"DISCORD_REGISTER_COMMANDS\",\n\t\tallowedGuilds: \"DISCORD_ALLOWED_GUILDS\",\n\t\tallowedRoles: \"DISCORD_ALLOWED_ROLES\",\n\t\tallowedUsers: \"DISCORD_ALLOWED_USERS\",\n\t\tblockedUsers: \"DISCORD_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) discord[field] = meta(envKey);\n\tconst slack = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tslackBotToken: \"SLACK_BOT_TOKEN\",\n\t\tslackAppToken: \"SLACK_APP_TOKEN\",\n\t\tallowedChannels: \"SLACK_ALLOWED_CHANNELS\",\n\t\tallowedUsers: \"SLACK_ALLOWED_USERS\",\n\t\tblockedUsers: \"SLACK_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) slack[field] = meta(envKey);\n\tconst portalCredentials = {};\n\tif (Object.keys(discord).length > 0) portalCredentials.discord = discord;\n\tif (Object.keys(slack).length > 0) portalCredentials.slack = slack;\n\treturn json({\n\t\tok: true,\n\t\thasPassword: typeof configured === \"string\" && configured.length > 0,\n\t\tassistantVersion: env.OP_ASSISTANT_VERSION ?? \"\",\n\t\tguardianVersion: env.OP_GUARDIAN_VERSION ?? \"\",\n\t\tportalVersion: env.OP_PORTAL_VERSION ?? \"\",\n\t\tvoiceVersion: env.OP_VOICE_VERSION ?? \"\",\n\t\thostAkm,\n\t\tllm: akm.llm ? {\n\t\t\tprovider: akm.llm.provider ?? \"\",\n\t\t\tmodel: akm.llm.model ?? \"\",\n\t\t\tbaseUrl: deriveBaseUrl(akm.llm.endpoint)\n\t\t} : null,\n\t\tembedding: akm.embedding ? {\n\t\t\tprovider: akm.embedding.provider ?? \"\",\n\t\t\tmodel: akm.embedding.model ?? \"\",\n\t\t\tdims: akm.embedding.dimension ?? 0,\n\t\t\tbaseUrl: deriveBaseUrl(akm.embedding.endpoint)\n\t\t} : null,\n\t\tvoice: {\n\t\t\ttts: {\n\t\t\t\tengine: env.OP_TTS_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_TTS_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_TTS_MODEL ?? \"\",\n\t\t\t\tvoice: env.OP_TTS_VOICE ?? \"\"\n\t\t\t},\n\t\t\tstt: {\n\t\t\t\tengine: env.OP_STT_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_STT_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_STT_MODEL ?? \"\",\n\t\t\t\tlanguage: env.OP_STT_LANGUAGE ?? \"\"\n\t\t\t},\n\t\t\tprofiles: voiceProfiles,\n\t\t\tselectedProfile: selectedVoiceProfile\n\t\t},\n\t\tollama: {\n\t\t\tprofiles: ollamaProfiles,\n\t\t\tselectedProfile: selectedOllamaProfile\n\t\t},\n\t\tenabledAddons: listEnabledAddonIds(state.homeDir),\n\t\tportalCredentials,\n\t\timportedModelPreferences: importedModelPreferences ?? null\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } 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 { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } 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/akm/host-sharing/+server.ts
28
28
  var GET = async (event) => {
@@ -52,4 +52,4 @@ var DELETE = async (event) => {
52
52
  };
53
53
 
54
54
  export { DELETE, GET, PUT };
55
- //# sourceMappingURL=_server.ts-D45cu11n.js.map
55
+ //# sourceMappingURL=_server.ts-aIvJGwVD.js.map