@openpalm/ui 0.13.0-beta.1 → 0.13.0-beta.2

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 (408) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/9.vqGkbIg9.css +1 -0
  3. package/build/client/_app/immutable/assets/9.vqGkbIg9.css.br +0 -0
  4. package/build/client/_app/immutable/assets/9.vqGkbIg9.css.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{BMyudKzg.js → 9mRSvTWj.js} +1 -1
  6. package/build/client/_app/immutable/chunks/9mRSvTWj.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/9mRSvTWj.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/BApqEZP1.js +3 -0
  9. package/build/client/_app/immutable/chunks/BApqEZP1.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/BApqEZP1.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/B_Sgy7qx.js +1 -0
  12. package/build/client/_app/immutable/chunks/B_Sgy7qx.js.br +2 -0
  13. package/build/client/_app/immutable/chunks/B_Sgy7qx.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{D1nSxXur.js → B_jhBV5Z.js} +1 -1
  15. package/build/client/_app/immutable/chunks/B_jhBV5Z.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/B_jhBV5Z.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/Be7qat4r.js +3 -0
  18. package/build/client/_app/immutable/chunks/Be7qat4r.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/Be7qat4r.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{Db8xkqW6.js → BoOBAdGl.js} +1 -1
  21. package/build/client/_app/immutable/chunks/BoOBAdGl.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/BoOBAdGl.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{CvItGqWG.js → DBHgGGCD.js} +1 -1
  24. package/build/client/_app/immutable/chunks/DBHgGGCD.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/DBHgGGCD.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/DSs95sLz.js +1 -0
  27. package/build/client/_app/immutable/chunks/DSs95sLz.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/DSs95sLz.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/{app.ByeYK7_P.js → app.DZwy1Y3W.js} +2 -2
  30. package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.br +0 -0
  31. package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/start.C0ic7Ewp.js +1 -0
  33. package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.br +1 -0
  34. package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js +1 -0
  36. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{1.DOwkg43h.js → 1.Bxihn5f1.js} +1 -1
  39. package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{10.Cs6atPP0.js → 10.BZ76_WLP.js} +1 -1
  42. package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{11.D1ux0xRH.js → 11.Bzf3G5G0.js} +2 -2
  45. package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{4.vRThg0Ke.js → 4.D-CwW2PH.js} +1 -1
  48. package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{5.y3u2P8a-.js → 5.BbStivMI.js} +1 -1
  51. package/build/client/_app/immutable/nodes/5.BbStivMI.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/5.BbStivMI.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/6.BKVgKxKO.js +2 -0
  54. package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/{7.DQ9bZrdN.js → 7.DuXt155R.js} +2 -2
  57. package/build/client/_app/immutable/nodes/7.DuXt155R.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/7.DuXt155R.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/9.BdeFVi2a.js +126 -0
  60. package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.gz +0 -0
  62. package/build/client/_app/version.json +1 -1
  63. package/build/client/_app/version.json.br +1 -1
  64. package/build/client/_app/version.json.gz +0 -0
  65. package/build/server/chunks/{0-D6JYWBmc.js → 0-C7zzjezl.js} +5 -5
  66. package/build/server/chunks/{0-D6JYWBmc.js.map → 0-C7zzjezl.js.map} +1 -1
  67. package/build/server/chunks/1-Ceq9WsUZ.js +9 -0
  68. package/build/server/chunks/{1-QFaO6yhK.js.map → 1-Ceq9WsUZ.js.map} +1 -1
  69. package/build/server/chunks/{10-BHQuL7xa.js → 10-DbLLQ-Uy.js} +3 -3
  70. package/build/server/chunks/{10-BHQuL7xa.js.map → 10-DbLLQ-Uy.js.map} +1 -1
  71. package/build/server/chunks/{11-nYH7HWHs.js → 11-Dryt5Piv.js} +3 -3
  72. package/build/server/chunks/{11-nYH7HWHs.js.map → 11-Dryt5Piv.js.map} +1 -1
  73. package/build/server/chunks/{3-DflhJGSw.js → 3-CAH3EmhU.js} +7 -7
  74. package/build/server/chunks/{3-DflhJGSw.js.map → 3-CAH3EmhU.js.map} +1 -1
  75. package/build/server/chunks/4-DxmFWVQJ.js +9 -0
  76. package/build/server/chunks/4-DxmFWVQJ.js.map +1 -0
  77. package/build/server/chunks/{5-_ostMB1h.js → 5-CQ9cELI7.js} +3 -3
  78. package/build/server/chunks/{5-_ostMB1h.js.map → 5-CQ9cELI7.js.map} +1 -1
  79. package/build/server/chunks/6-B-hnmc7F.js +9 -0
  80. package/build/server/chunks/6-B-hnmc7F.js.map +1 -0
  81. package/build/server/chunks/7-BE6BzHsh.js +9 -0
  82. package/build/server/chunks/7-BE6BzHsh.js.map +1 -0
  83. package/build/server/chunks/{9-DPtmsJHR.js → 9-BWzd_hmh.js} +5 -5
  84. package/build/server/chunks/{9-DPtmsJHR.js.map → 9-BWzd_hmh.js.map} +1 -1
  85. package/build/server/chunks/{ChatNavbar-ZxJwQIGL.js → ChatNavbar-BonHVqfi.js} +8 -8
  86. package/build/server/chunks/{ChatNavbar-ZxJwQIGL.js.map → ChatNavbar-BonHVqfi.js.map} +1 -1
  87. package/build/server/chunks/{IconServer-ByAeszv0.js → IconServer-fOHYHe-O.js} +5 -5
  88. package/build/server/chunks/IconServer-fOHYHe-O.js.map +1 -0
  89. package/build/server/chunks/{IconStop-DFbhUtaJ.js → IconSoundOn-DHtvjphK.js} +4 -10
  90. package/build/server/chunks/IconSoundOn-DHtvjphK.js.map +1 -0
  91. package/build/server/chunks/{format-date-gcou_Av8.js → IconStop-C89_dmt4.js} +9 -3
  92. package/build/server/chunks/IconStop-C89_dmt4.js.map +1 -0
  93. package/build/server/chunks/{_layout.svelte-DFMW9sdO.js → _layout.svelte-BLxvGwKC.js} +5 -3
  94. package/build/server/chunks/_layout.svelte-BLxvGwKC.js.map +1 -0
  95. package/build/server/chunks/{_page.svelte-CKJNzmVG.js → _page.svelte-0Rf024eH.js} +7 -7
  96. package/build/server/chunks/{_page.svelte-CKJNzmVG.js.map → _page.svelte-0Rf024eH.js.map} +1 -1
  97. package/build/server/chunks/{_page.svelte-Cz3JYioD.js → _page.svelte-BWNjxN63.js} +11 -11
  98. package/build/server/chunks/_page.svelte-BWNjxN63.js.map +1 -0
  99. package/build/server/chunks/{_page.svelte-CborsVrn.js → _page.svelte-BXeh8wzh.js} +5 -5
  100. package/build/server/chunks/_page.svelte-BXeh8wzh.js.map +1 -0
  101. package/build/server/chunks/{_page.svelte-DDFJprLE.js → _page.svelte-Bovrn7AQ.js} +3 -3
  102. package/build/server/chunks/{_page.svelte-DDFJprLE.js.map → _page.svelte-Bovrn7AQ.js.map} +1 -1
  103. package/build/server/chunks/{_page.svelte-BLGF_oAz.js → _page.svelte-COf36oAu.js} +11 -11
  104. package/build/server/chunks/{_page.svelte-BLGF_oAz.js.map → _page.svelte-COf36oAu.js.map} +1 -1
  105. package/build/server/chunks/{_page.svelte-CknIT-b6.js → _page.svelte-DkZsmNYc.js} +3 -3
  106. package/build/server/chunks/{_page.svelte-CknIT-b6.js.map → _page.svelte-DkZsmNYc.js.map} +1 -1
  107. package/build/server/chunks/{_page.svelte-DojSR6TL.js → _page.svelte-LsoJ7E5M.js} +30 -14
  108. package/build/server/chunks/_page.svelte-LsoJ7E5M.js.map +1 -0
  109. package/build/server/chunks/{_server.ts-CTKwaXm1.js → _server.ts-2-50j5S8.js} +6 -6
  110. package/build/server/chunks/{_server.ts-CTKwaXm1.js.map → _server.ts-2-50j5S8.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-Dk7RL-D7.js → _server.ts-2Z0JYuCr.js} +6 -6
  112. package/build/server/chunks/{_server.ts-Dk7RL-D7.js.map → _server.ts-2Z0JYuCr.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-BUE0dmBz.js → _server.ts-42ZGRWhn.js} +6 -6
  114. package/build/server/chunks/{_server.ts-BUE0dmBz.js.map → _server.ts-42ZGRWhn.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-CyzJdUdD.js → _server.ts-6EuPIrt7.js} +6 -6
  116. package/build/server/chunks/{_server.ts-CyzJdUdD.js.map → _server.ts-6EuPIrt7.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-BI2IrCte.js → _server.ts-6muCM4Nz.js} +6 -6
  118. package/build/server/chunks/{_server.ts-BI2IrCte.js.map → _server.ts-6muCM4Nz.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-BYUzlpfe.js → _server.ts-B28SfXaZ.js} +6 -6
  120. package/build/server/chunks/{_server.ts-BYUzlpfe.js.map → _server.ts-B28SfXaZ.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-Q1zB1kiD.js → _server.ts-BA11l9Z1.js} +6 -6
  122. package/build/server/chunks/{_server.ts-Q1zB1kiD.js.map → _server.ts-BA11l9Z1.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-D2dBUHv-.js → _server.ts-BA7wxHYg.js} +6 -6
  124. package/build/server/chunks/{_server.ts-D2dBUHv-.js.map → _server.ts-BA7wxHYg.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-4SFWMa3H.js → _server.ts-BARmSEZ2.js} +6 -6
  126. package/build/server/chunks/{_server.ts-4SFWMa3H.js.map → _server.ts-BARmSEZ2.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-CUPbFKq2.js → _server.ts-BBewn2kP.js} +6 -6
  128. package/build/server/chunks/{_server.ts-CUPbFKq2.js.map → _server.ts-BBewn2kP.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-4eT-crTl.js → _server.ts-BEaiuN8Q.js} +6 -6
  130. package/build/server/chunks/{_server.ts-4eT-crTl.js.map → _server.ts-BEaiuN8Q.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-rPbq-4rb.js → _server.ts-BJrYBXpY.js} +6 -6
  132. package/build/server/chunks/{_server.ts-rPbq-4rb.js.map → _server.ts-BJrYBXpY.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-Ci1n4eQ3.js → _server.ts-BJv74_DI.js} +6 -6
  134. package/build/server/chunks/{_server.ts-Ci1n4eQ3.js.map → _server.ts-BJv74_DI.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-DVXK2VD6.js → _server.ts-BKWx8K8U.js} +7 -7
  136. package/build/server/chunks/{_server.ts-DVXK2VD6.js.map → _server.ts-BKWx8K8U.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-CtiJiKFW.js → _server.ts-BLn_cTkK.js} +6 -6
  138. package/build/server/chunks/{_server.ts-CtiJiKFW.js.map → _server.ts-BLn_cTkK.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-FhE6fUSD.js → _server.ts-BR24J2uB.js} +7 -7
  140. package/build/server/chunks/{_server.ts-FhE6fUSD.js.map → _server.ts-BR24J2uB.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-D81J9NzU.js → _server.ts-BRdjsMSd.js} +6 -6
  142. package/build/server/chunks/{_server.ts-D81J9NzU.js.map → _server.ts-BRdjsMSd.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-BV6i7XBr.js → _server.ts-BTPbwN92.js} +6 -6
  144. package/build/server/chunks/{_server.ts-BV6i7XBr.js.map → _server.ts-BTPbwN92.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-Bj17GHeW.js → _server.ts-BUDMOZOz.js} +6 -6
  146. package/build/server/chunks/{_server.ts-Bj17GHeW.js.map → _server.ts-BUDMOZOz.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-uqxkiRQ1.js → _server.ts-BVMpHE3G.js} +6 -6
  148. package/build/server/chunks/{_server.ts-uqxkiRQ1.js.map → _server.ts-BVMpHE3G.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-B9GH6f46.js → _server.ts-BWO1Eoro.js} +6 -6
  150. package/build/server/chunks/{_server.ts-B9GH6f46.js.map → _server.ts-BWO1Eoro.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-C0Zlu5Xy.js → _server.ts-Ba8xSIQn.js} +6 -6
  152. package/build/server/chunks/{_server.ts-C0Zlu5Xy.js.map → _server.ts-Ba8xSIQn.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-y7XlQItn.js → _server.ts-BeP_sHqj.js} +2 -2
  154. package/build/server/chunks/{_server.ts-y7XlQItn.js.map → _server.ts-BeP_sHqj.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-CKcFu8B-.js → _server.ts-BhAp0vvt.js} +7 -7
  156. package/build/server/chunks/_server.ts-BhAp0vvt.js.map +1 -0
  157. package/build/server/chunks/{_server.ts-tchYVZRL.js → _server.ts-Bi0rRbcw.js} +2 -2
  158. package/build/server/chunks/{_server.ts-tchYVZRL.js.map → _server.ts-Bi0rRbcw.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-Bfkzx4ao.js → _server.ts-BjD0Uf0U.js} +6 -6
  160. package/build/server/chunks/{_server.ts-Bfkzx4ao.js.map → _server.ts-BjD0Uf0U.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-D1mP7Ux6.js → _server.ts-BjjicBDy.js} +6 -6
  162. package/build/server/chunks/{_server.ts-D1mP7Ux6.js.map → _server.ts-BjjicBDy.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-C43E5b3d.js → _server.ts-BsPu8Fny.js} +6 -6
  164. package/build/server/chunks/{_server.ts-C43E5b3d.js.map → _server.ts-BsPu8Fny.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-C_qRsJI2.js → _server.ts-C-tvKaFE.js} +6 -6
  166. package/build/server/chunks/{_server.ts-C_qRsJI2.js.map → _server.ts-C-tvKaFE.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-DJFB76Z4.js → _server.ts-C83FzZfP.js} +6 -6
  168. package/build/server/chunks/{_server.ts-DJFB76Z4.js.map → _server.ts-C83FzZfP.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-Bu-Ie_Mc.js → _server.ts-C8eCqXP6.js} +6 -6
  170. package/build/server/chunks/{_server.ts-Bu-Ie_Mc.js.map → _server.ts-C8eCqXP6.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-DK409rto.js → _server.ts-C9F005zM.js} +6 -6
  172. package/build/server/chunks/{_server.ts-DK409rto.js.map → _server.ts-C9F005zM.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-C7wn5VUY.js → _server.ts-CCmsGl_u.js} +6 -6
  174. package/build/server/chunks/{_server.ts-C7wn5VUY.js.map → _server.ts-CCmsGl_u.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-Bbtu4jaC.js → _server.ts-CG60Cdqf.js} +8 -8
  176. package/build/server/chunks/{_server.ts-Bbtu4jaC.js.map → _server.ts-CG60Cdqf.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-CXt9azl0.js → _server.ts-CGZizh2V.js} +6 -6
  178. package/build/server/chunks/{_server.ts-CXt9azl0.js.map → _server.ts-CGZizh2V.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-BLxV2y7p.js → _server.ts-CIv0zM75.js} +7 -7
  180. package/build/server/chunks/{_server.ts-BLxV2y7p.js.map → _server.ts-CIv0zM75.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-Cg_4-N8w.js → _server.ts-CJVwtNhA.js} +2 -2
  182. package/build/server/chunks/{_server.ts-Cg_4-N8w.js.map → _server.ts-CJVwtNhA.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-B0jGXHG1.js → _server.ts-CMAepV0J.js} +6 -6
  184. package/build/server/chunks/{_server.ts-B0jGXHG1.js.map → _server.ts-CMAepV0J.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-S90K5IJI.js → _server.ts-COcv1puW.js} +7 -7
  186. package/build/server/chunks/{_server.ts-S90K5IJI.js.map → _server.ts-COcv1puW.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BG50sNod.js → _server.ts-CQHkw9ni.js} +6 -6
  188. package/build/server/chunks/{_server.ts-BG50sNod.js.map → _server.ts-CQHkw9ni.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-DjFDthjg.js → _server.ts-CS2LQKMb.js} +7 -7
  190. package/build/server/chunks/{_server.ts-DjFDthjg.js.map → _server.ts-CS2LQKMb.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-9TnX_Hfn.js → _server.ts-CX_CwTW0.js} +3 -3
  192. package/build/server/chunks/{_server.ts-9TnX_Hfn.js.map → _server.ts-CX_CwTW0.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-BjEVNsPT.js → _server.ts-CcoaYeM8.js} +6 -6
  194. package/build/server/chunks/{_server.ts-BjEVNsPT.js.map → _server.ts-CcoaYeM8.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-DhfQc2ah.js → _server.ts-CfuLncMW.js} +6 -6
  196. package/build/server/chunks/{_server.ts-DhfQc2ah.js.map → _server.ts-CfuLncMW.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-HN1FxysS.js → _server.ts-CjPhaG_g.js} +7 -7
  198. package/build/server/chunks/{_server.ts-HN1FxysS.js.map → _server.ts-CjPhaG_g.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-c64R3qMS.js → _server.ts-CmUo0zla.js} +6 -6
  200. package/build/server/chunks/{_server.ts-c64R3qMS.js.map → _server.ts-CmUo0zla.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-Db2X5ulY.js → _server.ts-CnQ4hgIT.js} +7 -7
  202. package/build/server/chunks/{_server.ts-Db2X5ulY.js.map → _server.ts-CnQ4hgIT.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CP02aPdv.js → _server.ts-CncBUb14.js} +6 -6
  204. package/build/server/chunks/{_server.ts-CP02aPdv.js.map → _server.ts-CncBUb14.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-HlB5nMY9.js → _server.ts-CnrWBkQ7.js} +6 -6
  206. package/build/server/chunks/{_server.ts-HlB5nMY9.js.map → _server.ts-CnrWBkQ7.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-GuptvcVQ.js → _server.ts-CspCDw2x.js} +6 -6
  208. package/build/server/chunks/{_server.ts-GuptvcVQ.js.map → _server.ts-CspCDw2x.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-CbkJG3Yk.js → _server.ts-D-6mgHZB.js} +6 -6
  210. package/build/server/chunks/{_server.ts-CbkJG3Yk.js.map → _server.ts-D-6mgHZB.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-C7uAOfo3.js → _server.ts-D-Rf8If2.js} +8 -8
  212. package/build/server/chunks/{_server.ts-C7uAOfo3.js.map → _server.ts-D-Rf8If2.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-B46NQmKl.js → _server.ts-D5F-pzp2.js} +6 -6
  214. package/build/server/chunks/{_server.ts-B46NQmKl.js.map → _server.ts-D5F-pzp2.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-B8p1cZWN.js → _server.ts-D6wuFDe4.js} +6 -6
  216. package/build/server/chunks/{_server.ts-B8p1cZWN.js.map → _server.ts-D6wuFDe4.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-CMwOXeFC.js → _server.ts-D7VWMcNm.js} +7 -7
  218. package/build/server/chunks/{_server.ts-CMwOXeFC.js.map → _server.ts-D7VWMcNm.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-Rv6Qmjnm.js → _server.ts-D7X0LmkL.js} +6 -6
  220. package/build/server/chunks/{_server.ts-Rv6Qmjnm.js.map → _server.ts-D7X0LmkL.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-Y4JoeA12.js → _server.ts-D9yQyMbZ.js} +6 -6
  222. package/build/server/chunks/{_server.ts-Y4JoeA12.js.map → _server.ts-D9yQyMbZ.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-BG89__4Y.js → _server.ts-DE-c3Y5D.js} +7 -7
  224. package/build/server/chunks/{_server.ts-BG89__4Y.js.map → _server.ts-DE-c3Y5D.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-DTOMs2Oo.js → _server.ts-DH343hlx.js} +7 -7
  226. package/build/server/chunks/{_server.ts-DTOMs2Oo.js.map → _server.ts-DH343hlx.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-BeCTOV2T.js → _server.ts-DH3Uc_0m.js} +6 -6
  228. package/build/server/chunks/{_server.ts-BeCTOV2T.js.map → _server.ts-DH3Uc_0m.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-DJxUVpVr.js → _server.ts-DHeSwA7p.js} +6 -6
  230. package/build/server/chunks/{_server.ts-DJxUVpVr.js.map → _server.ts-DHeSwA7p.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-BvwD-tU2.js → _server.ts-DJCIu42O.js} +4 -4
  232. package/build/server/chunks/{_server.ts-BvwD-tU2.js.map → _server.ts-DJCIu42O.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-y3HSMNEG.js → _server.ts-DJqSQny9.js} +2 -2
  234. package/build/server/chunks/{_server.ts-y3HSMNEG.js.map → _server.ts-DJqSQny9.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-BFOoXmaJ.js → _server.ts-DKYXeaKr.js} +6 -6
  236. package/build/server/chunks/{_server.ts-BFOoXmaJ.js.map → _server.ts-DKYXeaKr.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-C1k-QptM.js → _server.ts-DM9EsKQc.js} +6 -6
  238. package/build/server/chunks/{_server.ts-C1k-QptM.js.map → _server.ts-DM9EsKQc.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-1Vco45Qu.js → _server.ts-DQozxLn6.js} +6 -6
  240. package/build/server/chunks/{_server.ts-1Vco45Qu.js.map → _server.ts-DQozxLn6.js.map} +1 -1
  241. package/build/server/chunks/{_server.ts-nasuSdo-.js → _server.ts-DTQe-U35.js} +6 -6
  242. package/build/server/chunks/{_server.ts-nasuSdo-.js.map → _server.ts-DTQe-U35.js.map} +1 -1
  243. package/build/server/chunks/{_server.ts-DvKpBV-Y.js → _server.ts-Dcf84tjG.js} +2 -2
  244. package/build/server/chunks/{_server.ts-DvKpBV-Y.js.map → _server.ts-Dcf84tjG.js.map} +1 -1
  245. package/build/server/chunks/{_server.ts-DPw-9Fvz.js → _server.ts-DdHx6Xig.js} +6 -6
  246. package/build/server/chunks/{_server.ts-DPw-9Fvz.js.map → _server.ts-DdHx6Xig.js.map} +1 -1
  247. package/build/server/chunks/{_server.ts-BRiu2AFG.js → _server.ts-DdoJFQaX.js} +8 -8
  248. package/build/server/chunks/{_server.ts-BRiu2AFG.js.map → _server.ts-DdoJFQaX.js.map} +1 -1
  249. package/build/server/chunks/{_server.ts-1VKTjr08.js → _server.ts-DdocuErM.js} +7 -7
  250. package/build/server/chunks/{_server.ts-1VKTjr08.js.map → _server.ts-DdocuErM.js.map} +1 -1
  251. package/build/server/chunks/_server.ts-Ddqhnr_7.js +58 -0
  252. package/build/server/chunks/_server.ts-Ddqhnr_7.js.map +1 -0
  253. package/build/server/chunks/{_server.ts-B7jtS1rc.js → _server.ts-Dj6nwJgl.js} +9 -9
  254. package/build/server/chunks/{_server.ts-B7jtS1rc.js.map → _server.ts-Dj6nwJgl.js.map} +1 -1
  255. package/build/server/chunks/{_server.ts-C5NMGLvR.js → _server.ts-Dl-Rn5Ku.js} +6 -6
  256. package/build/server/chunks/{_server.ts-C5NMGLvR.js.map → _server.ts-Dl-Rn5Ku.js.map} +1 -1
  257. package/build/server/chunks/{_server.ts-MvwnQkPT.js → _server.ts-DnczK3Pw.js} +4 -4
  258. package/build/server/chunks/{_server.ts-MvwnQkPT.js.map → _server.ts-DnczK3Pw.js.map} +1 -1
  259. package/build/server/chunks/{_server.ts-CHuyT9rF.js → _server.ts-Dq4RvC5F.js} +6 -6
  260. package/build/server/chunks/{_server.ts-CHuyT9rF.js.map → _server.ts-Dq4RvC5F.js.map} +1 -1
  261. package/build/server/chunks/{_server.ts-Cp6d9DIG.js → _server.ts-DrGzrygC.js} +6 -6
  262. package/build/server/chunks/{_server.ts-Cp6d9DIG.js.map → _server.ts-DrGzrygC.js.map} +1 -1
  263. package/build/server/chunks/{_server.ts-at5EQV31.js → _server.ts-Ds62LEMU.js} +8 -8
  264. package/build/server/chunks/{_server.ts-at5EQV31.js.map → _server.ts-Ds62LEMU.js.map} +1 -1
  265. package/build/server/chunks/{_server.ts-CQIXn8xb.js → _server.ts-DsVbuYhj.js} +7 -7
  266. package/build/server/chunks/{_server.ts-CQIXn8xb.js.map → _server.ts-DsVbuYhj.js.map} +1 -1
  267. package/build/server/chunks/{_server.ts-DrHEkbDq.js → _server.ts-Dy65kWxL.js} +7 -7
  268. package/build/server/chunks/{_server.ts-DrHEkbDq.js.map → _server.ts-Dy65kWxL.js.map} +1 -1
  269. package/build/server/chunks/{_server.ts-CYY3W2qh.js → _server.ts-Dy9l5NMO.js} +10 -10
  270. package/build/server/chunks/_server.ts-Dy9l5NMO.js.map +1 -0
  271. package/build/server/chunks/{_server.ts-Chf0EFLa.js → _server.ts-JO0zy17P.js} +6 -6
  272. package/build/server/chunks/{_server.ts-Chf0EFLa.js.map → _server.ts-JO0zy17P.js.map} +1 -1
  273. package/build/server/chunks/{_server.ts-ClO4pSRG.js → _server.ts-LokXM9hH.js} +6 -6
  274. package/build/server/chunks/{_server.ts-ClO4pSRG.js.map → _server.ts-LokXM9hH.js.map} +1 -1
  275. package/build/server/chunks/{_server.ts-DW3mRh_v.js → _server.ts-pRYFJihh.js} +7 -7
  276. package/build/server/chunks/{_server.ts-DW3mRh_v.js.map → _server.ts-pRYFJihh.js.map} +1 -1
  277. package/build/server/chunks/{_server.ts-CFz_IeN4.js → _server.ts-xPuEhFJO.js} +7 -7
  278. package/build/server/chunks/{_server.ts-CFz_IeN4.js.map → _server.ts-xPuEhFJO.js.map} +1 -1
  279. package/build/server/chunks/{addon-helpers-Cpj40OF3.js → addon-helpers-Cgg8lPxe.js} +3 -3
  280. package/build/server/chunks/{addon-helpers-Cpj40OF3.js.map → addon-helpers-Cgg8lPxe.js.map} +1 -1
  281. package/build/server/chunks/{akm-D8uSJNzt.js → akm-5HN45xWY.js} +2 -2
  282. package/build/server/chunks/{akm-D8uSJNzt.js.map → akm-5HN45xWY.js.map} +1 -1
  283. package/build/server/chunks/{catalog-C9ClLZ62.js → catalog-7z8dgrJF.js} +5 -5
  284. package/build/server/chunks/{catalog-C9ClLZ62.js.map → catalog-7z8dgrJF.js.map} +1 -1
  285. package/build/server/chunks/{client-utk4T8Jl.js → client-D2lMniPd.js} +2 -2
  286. package/build/server/chunks/{client-utk4T8Jl.js.map → client-D2lMniPd.js.map} +1 -1
  287. package/build/server/chunks/{compose-args2-cix5m26E.js → compose-args2-BFdWixAZ.js} +2 -2
  288. package/build/server/chunks/compose-args2-BFdWixAZ.js.map +1 -0
  289. package/build/server/chunks/{config-BV78mCrh.js → config-I5hb-W80.js} +2 -2
  290. package/build/server/chunks/{config-BV78mCrh.js.map → config-I5hb-W80.js.map} +1 -1
  291. package/build/server/chunks/{connections-api-CpQ5k7QC.js → connections-api-NkotVLIl.js} +2 -2
  292. package/build/server/chunks/{connections-api-CpQ5k7QC.js.map → connections-api-NkotVLIl.js.map} +1 -1
  293. package/build/server/chunks/{docker2-DqIy9JYf.js → docker2-HZnACjh6.js} +2 -2
  294. package/build/server/chunks/docker2-HZnACjh6.js.map +1 -0
  295. package/build/server/chunks/{docker3-DvrSgFLt.js → docker3-Dj9Pc_Pt.js} +2 -2
  296. package/build/server/chunks/{docker3-DvrSgFLt.js.map → docker3-Dj9Pc_Pt.js.map} +1 -1
  297. package/build/server/chunks/{endpoints-CU3ehglV.js → endpoints-B9ePqrMw.js} +3 -3
  298. package/build/server/chunks/{endpoints-CU3ehglV.js.map → endpoints-B9ePqrMw.js.map} +1 -1
  299. package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
  300. package/build/server/chunks/{error.svelte-B9DQG_Wh.js → error.svelte-DGngrZ2V.js} +4 -4
  301. package/build/server/chunks/{error.svelte-B9DQG_Wh.js.map → error.svelte-DGngrZ2V.js.map} +1 -1
  302. package/build/server/chunks/{features-DLGlNjZX.js → features-0lgyQreD.js} +3 -3
  303. package/build/server/chunks/{features-DLGlNjZX.js.map → features-0lgyQreD.js.map} +1 -1
  304. package/build/server/chunks/{helpers-7BvhniSt.js → helpers-q4Ng8QTq.js} +4 -4
  305. package/build/server/chunks/{helpers-7BvhniSt.js.map → helpers-q4Ng8QTq.js.map} +1 -1
  306. package/build/server/chunks/{hooks.server-CwIkB_d8.js → hooks.server-BTXqUhpH.js} +21 -15
  307. package/build/server/chunks/hooks.server-BTXqUhpH.js.map +1 -0
  308. package/build/server/chunks/{http-D0qKwTqb.js → http-jBNJXVHg.js} +2 -2
  309. package/build/server/chunks/{http-D0qKwTqb.js.map → http-jBNJXVHg.js.map} +1 -1
  310. package/build/server/chunks/{internal-CVxYC2gp.js → internal-G-Uk-kCA.js} +3 -3
  311. package/build/server/chunks/{internal-CVxYC2gp.js.map → internal-G-Uk-kCA.js.map} +1 -1
  312. package/build/server/chunks/{landing-BAWznbys.js → landing-BR5KUuDz.js} +46 -9
  313. package/build/server/chunks/landing-BR5KUuDz.js.map +1 -0
  314. package/build/server/chunks/{paths-lkOb-n87.js → paths-tzRSDsKc.js} +2 -2
  315. package/build/server/chunks/{paths-lkOb-n87.js.map → paths-tzRSDsKc.js.map} +1 -1
  316. package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js +72 -0
  317. package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js.map +1 -0
  318. package/build/server/chunks/{session-cookie-WuIYBiMY.js → session-cookie-qHDuQboc.js} +2 -2
  319. package/build/server/chunks/{session-cookie-WuIYBiMY.js.map → session-cookie-qHDuQboc.js.map} +1 -1
  320. package/build/server/chunks/{setup-deploy-DaMn6d6g.js → setup-deploy-DleJTifu.js} +2 -2
  321. package/build/server/chunks/{setup-deploy-DaMn6d6g.js.map → setup-deploy-DleJTifu.js.map} +1 -1
  322. package/build/server/chunks/{src-CS2sSYOR.js → src-BwQUi60U.js} +4 -4
  323. package/build/server/chunks/{src-CS2sSYOR.js.map → src-BwQUi60U.js.map} +1 -1
  324. package/build/server/chunks/{state-BRh7vs9j.js → state-Dm7U51xT.js} +2 -2
  325. package/build/server/chunks/{state-BRh7vs9j.js.map → state-Dm7U51xT.js.map} +1 -1
  326. package/build/server/chunks/{state2-COVNCCTq.js → state2-BhKHITEo.js} +2 -2
  327. package/build/server/chunks/{state2-COVNCCTq.js.map → state2-BhKHITEo.js.map} +1 -1
  328. package/build/server/chunks/{voice-state.svelte-bOoc1Vo0.js → voice-state.svelte-BAiqUOIX.js} +2 -2
  329. package/build/server/chunks/voice-state.svelte-BAiqUOIX.js.map +1 -0
  330. package/build/server/index.js +1 -1
  331. package/build/server/manifest.js +102 -95
  332. package/build/server/manifest.js.map +1 -1
  333. package/package.json +3 -3
  334. package/build/client/_app/immutable/assets/9.B0-fGtW-.css +0 -1
  335. package/build/client/_app/immutable/assets/9.B0-fGtW-.css.br +0 -0
  336. package/build/client/_app/immutable/assets/9.B0-fGtW-.css.gz +0 -0
  337. package/build/client/_app/immutable/chunks/BLc6D58Y.js +0 -3
  338. package/build/client/_app/immutable/chunks/BLc6D58Y.js.br +0 -0
  339. package/build/client/_app/immutable/chunks/BLc6D58Y.js.gz +0 -0
  340. package/build/client/_app/immutable/chunks/BMyudKzg.js.br +0 -0
  341. package/build/client/_app/immutable/chunks/BMyudKzg.js.gz +0 -0
  342. package/build/client/_app/immutable/chunks/BNkLu9ey.js +0 -3
  343. package/build/client/_app/immutable/chunks/BNkLu9ey.js.br +0 -0
  344. package/build/client/_app/immutable/chunks/BNkLu9ey.js.gz +0 -0
  345. package/build/client/_app/immutable/chunks/BkqRukKX.js +0 -1
  346. package/build/client/_app/immutable/chunks/BkqRukKX.js.br +0 -2
  347. package/build/client/_app/immutable/chunks/BkqRukKX.js.gz +0 -0
  348. package/build/client/_app/immutable/chunks/CvItGqWG.js.br +0 -0
  349. package/build/client/_app/immutable/chunks/CvItGqWG.js.gz +0 -0
  350. package/build/client/_app/immutable/chunks/D1nSxXur.js.br +0 -0
  351. package/build/client/_app/immutable/chunks/D1nSxXur.js.gz +0 -0
  352. package/build/client/_app/immutable/chunks/DIM-KrDw.js +0 -1
  353. package/build/client/_app/immutable/chunks/DIM-KrDw.js.br +0 -0
  354. package/build/client/_app/immutable/chunks/DIM-KrDw.js.gz +0 -0
  355. package/build/client/_app/immutable/chunks/Db8xkqW6.js.br +0 -0
  356. package/build/client/_app/immutable/chunks/Db8xkqW6.js.gz +0 -0
  357. package/build/client/_app/immutable/entry/app.ByeYK7_P.js.br +0 -0
  358. package/build/client/_app/immutable/entry/app.ByeYK7_P.js.gz +0 -0
  359. package/build/client/_app/immutable/entry/start.kykyp6T0.js +0 -1
  360. package/build/client/_app/immutable/entry/start.kykyp6T0.js.br +0 -1
  361. package/build/client/_app/immutable/entry/start.kykyp6T0.js.gz +0 -0
  362. package/build/client/_app/immutable/nodes/0.CLEDwEKf.js +0 -1
  363. package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.gz +0 -0
  365. package/build/client/_app/immutable/nodes/1.DOwkg43h.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/1.DOwkg43h.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.br +0 -0
  368. package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.gz +0 -0
  369. package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.br +0 -0
  370. package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.gz +0 -0
  371. package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.br +0 -0
  372. package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.gz +0 -0
  373. package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.br +0 -0
  374. package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.gz +0 -0
  375. package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js +0 -2
  376. package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.br +0 -0
  377. package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.gz +0 -0
  378. package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.br +0 -0
  379. package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.gz +0 -0
  380. package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js +0 -126
  381. package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.br +0 -0
  382. package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.gz +0 -0
  383. package/build/server/chunks/1-QFaO6yhK.js +0 -9
  384. package/build/server/chunks/4-dgm3mFwb.js +0 -9
  385. package/build/server/chunks/4-dgm3mFwb.js.map +0 -1
  386. package/build/server/chunks/6-Bz787Ixu.js +0 -9
  387. package/build/server/chunks/6-Bz787Ixu.js.map +0 -1
  388. package/build/server/chunks/7-Cs4tQiJY.js +0 -9
  389. package/build/server/chunks/7-Cs4tQiJY.js.map +0 -1
  390. package/build/server/chunks/IconServer-ByAeszv0.js.map +0 -1
  391. package/build/server/chunks/IconStop-DFbhUtaJ.js.map +0 -1
  392. package/build/server/chunks/_layout.svelte-DFMW9sdO.js.map +0 -1
  393. package/build/server/chunks/_page.svelte-CborsVrn.js.map +0 -1
  394. package/build/server/chunks/_page.svelte-Cz3JYioD.js.map +0 -1
  395. package/build/server/chunks/_page.svelte-DojSR6TL.js.map +0 -1
  396. package/build/server/chunks/_server.ts-CKcFu8B-.js.map +0 -1
  397. package/build/server/chunks/_server.ts-CYY3W2qh.js.map +0 -1
  398. package/build/server/chunks/compose-args2-cix5m26E.js.map +0 -1
  399. package/build/server/chunks/docker2-DqIy9JYf.js.map +0 -1
  400. package/build/server/chunks/format-date-gcou_Av8.js.map +0 -1
  401. package/build/server/chunks/hooks.server-CwIkB_d8.js.map +0 -1
  402. package/build/server/chunks/landing-BAWznbys.js.map +0 -1
  403. package/build/server/chunks/runtime-context.svelte-FZapSP7A.js +0 -24
  404. package/build/server/chunks/runtime-context.svelte-FZapSP7A.js.map +0 -1
  405. package/build/server/chunks/voice-state.svelte-bOoc1Vo0.js.map +0 -1
  406. /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css → IconSoundOn.BsTA83Hx.css} +0 -0
  407. /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css.br → IconSoundOn.BsTA83Hx.css.br} +0 -0
  408. /package/build/client/_app/immutable/assets/{IconStop.BsTA83Hx.css.gz → IconSoundOn.BsTA83Hx.css.gz} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CQIXn8xb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/auth/session/_server.ts.js"],"sourcesContent":["import { a as getRequestId, f as safeTokenCompare, g as getUiLoginPassword, h as createSession, r as errorResponse } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/api/auth/session/+server.ts\n/**\n* POST /api/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/api/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-DsVbuYhj.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/auth/session/_server.ts.js"],"sourcesContent":["import { a as getRequestId, f as safeTokenCompare, g as getUiLoginPassword, h as createSession, r as errorResponse } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/api/auth/session/+server.ts\n/**\n* POST /api/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/api/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { l as requireCapability, d as getRequestId, w as withAdminBody, k as jsonResponse } from './helpers-7BvhniSt.js';
2
- import { o as opencodeFetch } from './http-D0qKwTqb.js';
1
+ import { l as requireCapability, d as getRequestId, w as withAdminBody, k as jsonResponse } from './helpers-q4Ng8QTq.js';
2
+ import { o as opencodeFetch } from './http-jBNJXVHg.js';
3
3
  import { a as asStringOrEmpty, e as extractInputs } from './_helpers-CafYq-UD.js';
4
- import './src-CS2sSYOR.js';
4
+ import './src-BwQUi60U.js';
5
5
  import './provider-constants-1s1k8kbj.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -22,9 +22,9 @@ import 'assert';
22
22
  import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
- import './endpoints-CU3ehglV.js';
26
- import './state-BRh7vs9j.js';
27
- import './features-DLGlNjZX.js';
25
+ import './endpoints-B9ePqrMw.js';
26
+ import './state-Dm7U51xT.js';
27
+ import './features-0lgyQreD.js';
28
28
  import './coercion-TNFJisCC.js';
29
29
 
30
30
  //#region src/routes/api/host/providers/oauth/start/+server.ts
@@ -81,4 +81,4 @@ var POST = async (event) => {
81
81
  };
82
82
 
83
83
  export { POST };
84
- //# sourceMappingURL=_server.ts-DrHEkbDq.js.map
84
+ //# sourceMappingURL=_server.ts-Dy65kWxL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DrHEkbDq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/providers/oauth/start/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, p as withAdminBody } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\nimport { r as extractInputs, t as asStringOrEmpty } from \"../../../../../../../chunks/_helpers.js\";\n//#region src/routes/api/host/providers/oauth/start/+server.ts\n/**\n* POST /api/host/providers/oauth/start — Begin an OpenCode-mediated OAuth\n* sign-in for a provider. Returns the authorization URL and any extra\n* inputs the operator needs to confirm in the UI.\n*\n* Forwards directly to the running assistant's OpenCode at\n* OP_OPENCODE_URL, which holds the OAuth methods map needed to issue\n* the authorize request.\n*/\nvar POST = async (event) => {\n\tconst capabilityError = requireCapability(event, \"host:secrets\", getRequestId(event));\n\tif (capabilityError) return capabilityError;\n\treturn withAdminBody(event, async ({ requestId, body }) => {\n\t\ttry {\n\t\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\t\tif (!providerId || Number.isNaN(methodIndex)) return jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: \"Choose a provider sign-in method first.\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t\tconst inputs = extractInputs(body);\n\t\t\tconst oauth = await opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/authorize`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tmethod: methodIndex,\n\t\t\t\t\t...inputs ? { inputs } : {}\n\t\t\t\t})\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tmessage: \"OAuth flow prepared. Open the link below to continue.\",\n\t\t\t\tselectedProviderId: providerId,\n\t\t\t\toauth: {\n\t\t\t\t\tproviderId,\n\t\t\t\t\tmethodIndex,\n\t\t\t\t\turl: oauth.url,\n\t\t\t\t\tmode: oauth.method,\n\t\t\t\t\tinstructions: oauth.instructions,\n\t\t\t\t\tinputs\n\t\t\t\t}\n\t\t\t}, requestId);\n\t\t} catch (error) {\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC5D,EAAE,IAAI;AACN,GAAG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1E,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAI,EAAE,SAAS,CAAC;AAChB,GAAG,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AACrC,GAAG,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,EAAE;AACpG,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,KAAK,MAAM,EAAE,WAAW;AACxB,KAAK,GAAG,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG;AAC9B,KAAK;AACL,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,uDAAuD;AACpE,IAAI,kBAAkB,EAAE,UAAU;AAClC,IAAI,KAAK,EAAE;AACX,KAAK,UAAU;AACf,KAAK,WAAW;AAChB,KAAK,GAAG,EAAE,KAAK,CAAC,GAAG;AACnB,KAAK,IAAI,EAAE,KAAK,CAAC,MAAM;AACvB,KAAK,YAAY,EAAE,KAAK,CAAC,YAAY;AACrC,KAAK;AACL;AACA,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACtE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-Dy65kWxL.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/providers/oauth/start/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, p as withAdminBody } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\nimport { r as extractInputs, t as asStringOrEmpty } from \"../../../../../../../chunks/_helpers.js\";\n//#region src/routes/api/host/providers/oauth/start/+server.ts\n/**\n* POST /api/host/providers/oauth/start — Begin an OpenCode-mediated OAuth\n* sign-in for a provider. Returns the authorization URL and any extra\n* inputs the operator needs to confirm in the UI.\n*\n* Forwards directly to the running assistant's OpenCode at\n* OP_OPENCODE_URL, which holds the OAuth methods map needed to issue\n* the authorize request.\n*/\nvar POST = async (event) => {\n\tconst capabilityError = requireCapability(event, \"host:secrets\", getRequestId(event));\n\tif (capabilityError) return capabilityError;\n\treturn withAdminBody(event, async ({ requestId, body }) => {\n\t\ttry {\n\t\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\t\tif (!providerId || Number.isNaN(methodIndex)) return jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: \"Choose a provider sign-in method first.\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t\tconst inputs = extractInputs(body);\n\t\t\tconst oauth = await opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/authorize`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tmethod: methodIndex,\n\t\t\t\t\t...inputs ? { inputs } : {}\n\t\t\t\t})\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tmessage: \"OAuth flow prepared. Open the link below to continue.\",\n\t\t\t\tselectedProviderId: providerId,\n\t\t\t\toauth: {\n\t\t\t\t\tproviderId,\n\t\t\t\t\tmethodIndex,\n\t\t\t\t\turl: oauth.url,\n\t\t\t\t\tmode: oauth.method,\n\t\t\t\t\tinstructions: oauth.instructions,\n\t\t\t\t\tinputs\n\t\t\t\t}\n\t\t\t}, requestId);\n\t\t} catch (error) {\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC5D,EAAE,IAAI;AACN,GAAG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1E,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAI,EAAE,SAAS,CAAC;AAChB,GAAG,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;AACrC,GAAG,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,gBAAgB,CAAC,EAAE;AACpG,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,KAAK,MAAM,EAAE,WAAW;AACxB,KAAK,GAAG,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG;AAC9B,KAAK;AACL,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,uDAAuD;AACpE,IAAI,kBAAkB,EAAE,UAAU;AAClC,IAAI,KAAK,EAAE;AACX,KAAK,UAAU;AACf,KAAK,WAAW;AAChB,KAAK,GAAG,EAAE,KAAK,CAAC,GAAG;AACnB,KAAK,IAAI,EAAE,KAAK,CAAC,MAAM;AACvB,KAAK,YAAY,EAAE,KAAK,CAAC,YAAY;AACrC,KAAK;AACL;AACA,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACtE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { aE as readStackEnv, c as annotateAddonProfileAvailability, a5 as getAddonProfiles, a4 as getAddonProfileSelection, b as addonProfileId, bc as writeVoiceVars, am as listEnabledAddonIds, F as composeStop, n as buildComposeOptions, a_ as setAddonProfileSelection, aZ as setAddonEnabled, a3 as getAddonProfileAvailability, Y as dockerHasNvidiaRuntime, U as detectRootlessDocker, $ as execFileNoThrow, a$ as stackDirFor, e as applyStack } from './src-CS2sSYOR.js';
2
- import { g as getState } from './state-BRh7vs9j.js';
3
- import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-7BvhniSt.js';
1
+ import { aE as readStackEnv, c as annotateAddonProfileAvailability, a5 as getAddonProfiles, a4 as getAddonProfileSelection, b as addonProfileId, bc as writeVoiceVars, am as listEnabledAddonIds, F as composeStop, n as buildComposeOptions, a_ as setAddonProfileSelection, aZ as setAddonEnabled, a3 as getAddonProfileAvailability, Y as dockerHasNvidiaRuntime, U as detectRootlessDocker, $ as execFileNoThrow, a$ as stackDirFor, e as applyStack } from './src-BwQUi60U.js';
2
+ import { g as getState } from './state-Dm7U51xT.js';
3
+ import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-q4Ng8QTq.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import { existsSync } from 'node:fs';
6
6
  import { join } from 'node:path';
@@ -23,8 +23,8 @@ import 'assert';
23
23
  import 'zlib';
24
24
  import 'node:assert';
25
25
  import 'node:fs/promises';
26
- import './endpoints-CU3ehglV.js';
27
- import './features-DLGlNjZX.js';
26
+ import './endpoints-B9ePqrMw.js';
27
+ import './features-0lgyQreD.js';
28
28
 
29
29
  //#region src/lib/server/voice-errors.ts
30
30
  /**
@@ -53,7 +53,7 @@ function translateDockerError(stderr) {
53
53
  //#region src/lib/server/voice/bring-up.ts
54
54
  /**
55
55
  * Voice addon bring-up engine — the Docker/compose infrastructure behind
56
- * PUT /admin/voice. Extracted from the route so the HTTP handler stays a
56
+ * PUT /api/host/voice. Extracted from the route so the HTTP handler stays a
57
57
  * thin request-validation + delegation layer (mirrors the
58
58
  * lib/server/endpoints.ts ↔ admin/endpoints/+server.ts split).
59
59
  *
@@ -318,7 +318,7 @@ async function runBringUp(input) {
318
318
  /**
319
319
  * Background variant: runs runBringUp and persists state transitions
320
320
  * into the activeJobs map. Returns nothing — the UI polls GET
321
- * /admin/voice to observe completion.
321
+ * /api/host/voice to observe completion.
322
322
  */
323
323
  async function runBringUpJob(input) {
324
324
  const steps = [...input.baseSteps];
@@ -356,7 +356,7 @@ async function runBringUpJob(input) {
356
356
  }
357
357
  }
358
358
  /**
359
- * The full PUT /admin/voice bring-up lifecycle after request validation:
359
+ * The full PUT /api/host/voice bring-up lifecycle after request validation:
360
360
  * auto-stop when disengaging, else resolve profile → enable addon →
361
361
  * port pre-flight → image inspect → host fallback overlays → background
362
362
  * short-circuit or synchronous compose-up + /health poll.
@@ -507,7 +507,7 @@ async function engageVoiceAddon(input) {
507
507
  status: "background",
508
508
  wasAlreadyEnabled,
509
509
  steps,
510
- message: "Voice image is downloading in the background (~2–8 GB). Poll GET /admin/voice for progress; UI auto-refreshes."
510
+ message: "Voice image is downloading in the background (~2–8 GB). Poll GET /api/host/voice for progress; UI auto-refreshes."
511
511
  };
512
512
  }
513
513
  const outcome = await runBringUp({
@@ -712,4 +712,4 @@ async function handlePut(event) {
712
712
  }
713
713
 
714
714
  export { GET, PUT };
715
- //# sourceMappingURL=_server.ts-CYY3W2qh.js.map
715
+ //# sourceMappingURL=_server.ts-Dy9l5NMO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Dy9l5NMO.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/voice/_server.ts.js"],"sourcesContent":["import { A as getAddonProfileAvailability, D as setAddonEnabled, Dt as stackDirFor, E as listEnabledAddonIds, O as setAddonProfileSelection, X as readStackEnv, b as getAddonProfileSelection, j as addonProfileId, k as execFileNoThrow, t as buildComposeOptions, x as getAddonProfiles, y as annotateAddonProfileAvailability } from \"../../../../../chunks/compose-args.js\";\nimport { t as applyStack, v as composeStop } from \"../../../../../chunks/docker.js\";\nimport { J as dockerHasNvidiaRuntime, l as writeVoiceVars, q as detectRootlessDocker } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, r as errorResponse, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { connect } from \"node:net\";\n//#region src/lib/server/voice-errors.ts\n/**\n* Translate raw docker / compose stderr into operator-actionable copy.\n*\n* Lives in $lib/server so the route can import it without violating\n* SvelteKit's +server.ts export rules (handlers + `_`-prefixed only).\n*\n* Pattern matches are intentionally case-insensitive and tolerant of\n* compose-CLI prefix decoration. Order matters: more specific patterns\n* first.\n*/\nfunction translateDockerError(stderr) {\n\tconst raw = (stderr ?? \"\").trim();\n\tif (!raw) return \"Docker reported an unknown error (no stderr).\";\n\tif (/spawn .*docker.*ENOENT|no such file or directory.*docker|docker:\\s*command not found/i.test(raw)) return \"Docker isn't installed on this host. Install Docker Engine or Docker Desktop, then retry.\";\n\tif (/pull access denied|manifest unknown|repository does not exist|not found: manifest unknown/i.test(raw)) return \"The voice image for this profile isn't published yet. Try the CPU profile.\";\n\tif (/failed to resolve reference|dial tcp.*lookup .+docker\\.io|i\\/o timeout.*registry|connection refused.*registry/i.test(raw)) return \"Can't reach Docker Hub. Check your internet connection, corporate firewall, or configure a registry mirror.\";\n\tif (/no space left on device|insufficient.*disk space|ENOSPC|write.*disk full/i.test(raw)) return \"Out of disk space. Free space and try again, or run `docker image prune -a` to reclaim unused images.\";\n\tif (/port is already allocated|bind.*address already in use|address already in use|failed to bind host port/i.test(raw)) return \"Port 8880 is already in use on this host. Free it or change the host port (set OP_VOICE_PORT_HOST).\";\n\tif (/unknown[^\\n]*runtime[^\\n]*nvidia|runtime\\s+\"nvidia\"\\s+not\\s+found|nvidia.*runtime.*not[^a-z]+(found|registered)/i.test(raw)) return \"The NVIDIA Docker runtime isn't registered on this machine. Try the CPU profile, or install nvidia-container-toolkit.\";\n\tif (/invoking the NVIDIA Container Runtime Hook/i.test(raw)) return \"Docker is in CDI mode but no CDI spec is registered. Try the CPU profile.\";\n\treturn raw.length > 300 ? `${raw.slice(0, 297)}…` : raw;\n}\n//#endregion\n//#region src/lib/server/voice/bring-up.ts\n/**\n* Voice addon bring-up engine — the Docker/compose infrastructure behind\n* PUT /api/host/voice. Extracted from the route so the HTTP handler stays a\n* thin request-validation + delegation layer (mirrors the\n* lib/server/endpoints.ts ↔ admin/endpoints/+server.ts split).\n*\n* Responsibilities:\n* - Docker image inspection + resolution (dockerImagePresent / resolveServiceImage)\n* - UI-local host probes (TCP port, container health) — the rootless /\n* nvidia-runtime host-fact probes live in lib (control-plane/voice-host-probes.ts)\n* beside hardware-detect.ts, since they inspect the host, not addon/UI state.\n* - Fallback-overlay SELECTION only: voice.compose.cdi.yml and\n* voice.compose.rootless.yml ship as static files in the skeleton's\n* managed system/stack/ tree (packages/skeleton/system/stack/) — nothing\n* here generates compose YAML.\n* - The in-memory background-job registry (activeJobs)\n* - The engageVoiceAddon orchestration that the route delegates to; the\n* actual compose-up + health-wait lifecycle (runBringUp) is a thin\n* shim over `@openpalm/lib`'s single `applyStack` driver (plan 2.2) —\n* this file keeps only job registry + progress-step rendering, plus the\n* \"warming\" re-probe and voice-specific error-copy translation that\n* applyStack's generic result doesn't carry.\n*\n* Everything here is server-only (uses node:child_process / node:net /\n* node:fs) and returns plain data — the route maps the results to HTTP\n* responses.\n*/\nvar VOICE_ADDON = \"voice\";\nvar VOICE_PROBE_TIMEOUT_MS = 18e4;\nvar PORT_PROBE_TIMEOUT_MS = 750;\nvar JOB_RETAIN_MS = 5 * 6e4;\nvar activeJobs = /* @__PURE__ */ new Map();\nfunction setJob(addon, patch) {\n\tconst existing = activeJobs.get(addon);\n\tconst next = existing ? {\n\t\t...existing,\n\t\t...patch\n\t} : {\n\t\tstate: \"pulling\",\n\t\tsteps: [],\n\t\tstartedAt: Date.now(),\n\t\t...patch\n\t};\n\tactiveJobs.set(addon, next);\n\treturn next;\n}\nfunction getActiveJob(addon) {\n\tconst job = activeJobs.get(addon);\n\tif (!job) return void 0;\n\tif (Date.now() - (job.finishedAt ?? job.startedAt) > JOB_RETAIN_MS) {\n\t\tactiveJobs.delete(addon);\n\t\treturn;\n\t}\n\treturn job;\n}\n/**\n* Pick the best profile for this host. Prefers the first available GPU\n* profile (anything that isn't the canonical CPU profile) so operators with NVIDIA/AMD hardware\n* get the accelerated variant auto-selected. Falls back to the labelled\n* default, then first available, then first profile.\n*/\nfunction resolveDefaultProfile(profiles) {\n\tif (profiles.length === 0) return null;\n\tconst availableGpu = profiles.find((p) => p.id !== addonProfileId(\"voice\", \"cpu\") && p.available !== false);\n\tif (availableGpu) return availableGpu.id;\n\tconst labelledDefault = profiles.find((p) => p.default);\n\tif (labelledDefault && labelledDefault.available !== false) return labelledDefault.id;\n\tconst firstAvailable = profiles.find((p) => p.available !== false);\n\tif (firstAvailable) return firstAvailable.id;\n\treturn profiles[0].id;\n}\nfunction voiceHostPort() {\n\tconst raw = process.env.OP_VOICE_PORT_HOST?.trim();\n\tconst n = raw ? Number(raw) : NaN;\n\treturn Number.isFinite(n) && n > 0 ? n : 8880;\n}\nfunction openpalmVoiceBaseURL() {\n\treturn `http://127.0.0.1:${voiceHostPort()}`;\n}\n/**\n* True when the local docker daemon already has the named image cached.\n* `docker image inspect` exits 0 only when the image is present locally.\n*/\nasync function dockerImagePresent(imageRef) {\n\tif (!imageRef) return true;\n\treturn (await execFileNoThrow(\"docker\", [\n\t\t\"image\",\n\t\t\"inspect\",\n\t\timageRef\n\t], 5e3)).ok;\n}\n/**\n* Heuristic: image tags that include `-cu121` / `-rocm6` / `-cpu` are the\n* multi-GB voice images. Show the \"this may take a few minutes\" toast for\n* first pulls so the operator knows the upcoming compose-up isn't stuck.\n*/\nfunction isLargeImageTag(imageRef) {\n\treturn /(-cu\\d+|-rocm\\d+|-cpu)(\\s|$|@|\\b)/i.test(imageRef);\n}\nfunction resolveProjectName() {\n\treturn process.env.OP_PROJECT_NAME?.trim() || process.env.COMPOSE_PROJECT_NAME?.trim() || \"openpalm\";\n}\n/**\n* Read the resolved image for a service from the merged compose config.\n* Best-effort — returns \"\" on any failure so callers can skip the pre-pull\n* check rather than blocking save.\n*/\nasync function resolveServiceImage(composeFiles, service) {\n\tconst args = [\"compose\"];\n\tfor (const f of composeFiles) args.push(\"-f\", f);\n\targs.push(\"--project-name\", resolveProjectName(), \"config\", \"--format\", \"json\");\n\tconst res = await execFileNoThrow(\"docker\", args, 15e3);\n\tif (!res.ok) return \"\";\n\ttry {\n\t\treturn JSON.parse(res.stdout).services?.[service]?.image ?? \"\";\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n/**\n* Probe a TCP port on 127.0.0.1. Resolves true when the connect succeeds\n* within PORT_PROBE_TIMEOUT_MS — meaning something is already listening.\n*/\nfunction isPortListening(port) {\n\treturn new Promise((resolve) => {\n\t\tconst socket = connect({\n\t\t\thost: \"127.0.0.1\",\n\t\t\tport\n\t\t});\n\t\tlet done = false;\n\t\tconst finish = (listening) => {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\ttry {\n\t\t\t\tsocket.destroy();\n\t\t\t} catch {}\n\t\t\tresolve(listening);\n\t\t};\n\t\tsocket.setTimeout(PORT_PROBE_TIMEOUT_MS, () => finish(false));\n\t\tsocket.once(\"connect\", () => finish(true));\n\t\tsocket.once(\"error\", () => finish(false));\n\t});\n}\n/**\n* True when a docker container whose name matches openpalm-voice* is\n* already running and presumably owns the host port. Used by the port\n* pre-flight to avoid false positives when our own voice container is\n* the listener.\n*/\nasync function ourVoiceContainerRunning() {\n\tconst res = await execFileNoThrow(\"docker\", [\n\t\t\"ps\",\n\t\t\"--filter\",\n\t\t\"name=openpalm-voice\",\n\t\t\"--format\",\n\t\t\"{{.Names}}\"\n\t], 5e3);\n\tif (!res.ok) return false;\n\treturn res.stdout.trim().length > 0;\n}\n/**\n* Read the Docker healthcheck state of a container.\n* Returns \"starting\" while compose's start_period grace window is in\n* effect; \"healthy\" / \"unhealthy\" / \"none\" / \"\" otherwise.\n*/\nasync function readContainerHealthStatus(containerNamePrefix) {\n\tconst name = (await execFileNoThrow(\"docker\", [\n\t\t\"ps\",\n\t\t\"--filter\",\n\t\t`name=${containerNamePrefix}`,\n\t\t\"--format\",\n\t\t\"{{.Names}}\"\n\t], 5e3)).stdout.split(\"\\n\").map((s) => s.trim()).find(Boolean);\n\tif (!name) return \"\";\n\treturn (await execFileNoThrow(\"docker\", [\n\t\t\"inspect\",\n\t\tname,\n\t\t\"--format\",\n\t\t\"{{if .State.Health}}{{.State.Health.Status}}{{else}}none{{end}}\"\n\t], 5e3)).stdout.trim();\n}\n/** Path of the static CDI overlay, or null when the managed tree isn't seeded yet. */\nfunction voiceCdiOverlayPath(homeDir) {\n\tconst overlayPath = join(stackDirFor(homeDir), \"voice.compose.cdi.yml\");\n\treturn existsSync(overlayPath) ? overlayPath : null;\n}\n/** Path of the static rootless overlay, or null when the managed tree isn't seeded yet. */\nfunction voiceRootlessOverlayPath(homeDir) {\n\tconst overlayPath = join(stackDirFor(homeDir), \"voice.compose.rootless.yml\");\n\treturn existsSync(overlayPath) ? overlayPath : null;\n}\n/**\n* Stops services from OTHER profiles, then routes the actual compose-up +\n* health-wait through `@openpalm/lib`'s single {@link applyStack} driver\n* (plan 2.2) — this function no longer runs its own composeUp or /health\n* poll. `applyStack`'s health-wait reads the SAME docker HEALTHCHECK every\n* voice compose service already declares (`curl .../health` inside the\n* container, `start_period: 180s`), so it observes exactly what the removed\n* manual HTTP poll observed, just via `docker inspect` instead of a\n* host-side fetch loop.\n*\n* Returns the terminal state. Pushed `steps` get mutated in place so the\n* caller (sync or background) can read progress as it happens.\n*/\nasync function runBringUp(input) {\n\tconst { state, services, activeProfile, extraFiles, availableProfiles, steps } = input;\n\tlet composeOk;\n\tlet composeErr;\n\tlet healthy = false;\n\ttry {\n\t\tconst otherProfileServices = availableProfiles.filter((p) => p.id !== activeProfile).flatMap((p) => p.services).filter((svc) => !services.includes(svc));\n\t\tif (otherProfileServices.length > 0) try {\n\t\t\tawait composeStop(otherProfileServices, buildComposeOptions(state));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[voice] composeStop other profiles failed:\", e);\n\t\t}\n\t\tconst baseOpts = buildComposeOptions(state);\n\t\tconst result = await applyStack({\n\t\t\tkind: \"services\",\n\t\t\tservices\n\t\t}, {\n\t\t\tfiles: [...baseOpts.files, ...extraFiles],\n\t\t\tenvFiles: baseOpts.envFiles,\n\t\t\tprofiles: activeProfile ? [activeProfile] : baseOpts.profiles\n\t\t}, void 0, { healthTimeoutMs: VOICE_PROBE_TIMEOUT_MS });\n\t\tif (result.upFailed) {\n\t\t\tcomposeOk = false;\n\t\t\tcomposeErr = translateDockerError(result.rawStderr || result.error || \"compose up failed\");\n\t\t} else {\n\t\t\tcomposeOk = true;\n\t\t\thealthy = result.ok;\n\t\t}\n\t} catch (e) {\n\t\tcomposeOk = false;\n\t\tcomposeErr = translateDockerError(e instanceof Error ? e.message : String(e));\n\t}\n\tsteps.push({\n\t\tstep: \"compose-up\",\n\t\tok: composeOk,\n\t\t...composeErr ? { detail: composeErr.slice(0, 500) } : {}\n\t});\n\tif (!composeOk) return {\n\t\tcomposeOk,\n\t\tcomposeErr,\n\t\thealthy: false,\n\t\twarming: false,\n\t\tsteps\n\t};\n\tlet warming = false;\n\tif (!healthy) try {\n\t\tif (await readContainerHealthStatus(\"openpalm-voice\") === \"starting\") warming = true;\n\t} catch {}\n\tsteps.push({\n\t\tstep: \"healthy\",\n\t\tok: healthy || warming,\n\t\t...healthy ? {} : warming ? { detail: \"still warming up — refresh in a moment\" } : { detail: `did not become healthy within ${VOICE_PROBE_TIMEOUT_MS / 1e3}s` }\n\t});\n\treturn {\n\t\tcomposeOk,\n\t\thealthy,\n\t\twarming,\n\t\tsteps\n\t};\n}\n/**\n* Background variant: runs runBringUp and persists state transitions\n* into the activeJobs map. Returns nothing — the UI polls GET\n* /api/host/voice to observe completion.\n*/\nasync function runBringUpJob(input) {\n\tconst steps = [...input.baseSteps];\n\ttry {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"starting\",\n\t\t\tsteps\n\t\t});\n\t\tconst outcome = await runBringUp({\n\t\t\t...input,\n\t\t\tsteps\n\t\t});\n\t\tif (!outcome.composeOk) {\n\t\t\tsetJob(VOICE_ADDON, {\n\t\t\t\tstate: \"error\",\n\t\t\t\tsteps: outcome.steps,\n\t\t\t\terror: `Voice addon failed to start: ${outcome.composeErr ?? \"unknown error\"}`,\n\t\t\t\tfinishedAt: Date.now()\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: outcome.healthy ? \"healthy\" : outcome.warming ? \"starting\" : \"error\",\n\t\t\tsteps: outcome.steps,\n\t\t\t...outcome.healthy || outcome.warming ? { error: void 0 } : { error: \"Voice addon is starting but did not become healthy in time.\" },\n\t\t\tfinishedAt: Date.now()\n\t\t});\n\t} catch (e) {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"error\",\n\t\t\tsteps,\n\t\t\terror: e instanceof Error ? e.message : String(e),\n\t\t\tfinishedAt: Date.now()\n\t\t});\n\t}\n}\n/**\n* The full PUT /api/host/voice bring-up lifecycle after request validation:\n* auto-stop when disengaging, else resolve profile → enable addon →\n* port pre-flight → image inspect → host fallback overlays → background\n* short-circuit or synchronous compose-up + /health poll.\n*/\nasync function engageVoiceAddon(input) {\n\tconst { state, wantsVoiceAddon, requestedProfile } = input;\n\tif (!wantsVoiceAddon) {\n\t\tif (listEnabledAddonIds(state.homeDir).includes(\"voice\")) try {\n\t\t\tconst voiceServiceNames = getAddonProfiles(state.homeDir, VOICE_ADDON).flatMap((p) => p.services);\n\t\t\tconst unique = Array.from(new Set(voiceServiceNames));\n\t\t\tif (unique.length > 0) await composeStop(unique, buildComposeOptions(state));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[voice] composeStop on disengage failed:\", e);\n\t\t}\n\t\treturn { status: \"disengaged\" };\n\t}\n\tconst availableProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, VOICE_ADDON));\n\tlet activeProfile = null;\n\tif (requestedProfile) {\n\t\tif (!availableProfiles.some((p) => p.id === requestedProfile)) return {\n\t\t\tstatus: \"invalid_profile\",\n\t\t\tmessage: `Unknown voice profile \"${requestedProfile}\". Available: ${availableProfiles.map((p) => p.id).join(\", \") || \"(none)\"}`\n\t\t};\n\t\tactiveProfile = requestedProfile;\n\t\tsetAddonProfileSelection(state.homeDir, VOICE_ADDON, activeProfile);\n\t} else activeProfile = getAddonProfileSelection(state.homeDir, \"voice\") ?? resolveDefaultProfile(availableProfiles);\n\tconst wasAlreadyEnabled = listEnabledAddonIds(state.homeDir).includes(VOICE_ADDON);\n\tconst steps = [];\n\tif (!wasAlreadyEnabled) try {\n\t\tsetAddonEnabled(state.homeDir, VOICE_ADDON, true, state);\n\t\tsteps.push({\n\t\t\tstep: \"enable\",\n\t\t\tok: true\n\t\t});\n\t} catch (e) {\n\t\tconst detail = e instanceof Error ? e.message : String(e);\n\t\tsteps.push({\n\t\t\tstep: \"enable\",\n\t\t\tok: false,\n\t\t\tdetail\n\t\t});\n\t\treturn {\n\t\t\tstatus: \"error\",\n\t\t\twasAlreadyEnabled,\n\t\t\tsteps,\n\t\t\terror: `Could not enable voice addon: ${detail}`\n\t\t};\n\t}\n\telse steps.push({\n\t\tstep: \"enable\",\n\t\tok: true,\n\t\tdetail: \"already enabled\"\n\t});\n\tconst hostPort = voiceHostPort();\n\tconst inVitest = !!process.env.VITEST;\n\tif (inVitest ? false : await isPortListening(hostPort)) {\n\t\tif (!await ourVoiceContainerRunning()) {\n\t\t\tconst msg = translateDockerError(`Bind for 127.0.0.1:${hostPort} failed: port is already allocated`);\n\t\t\tsteps.push({\n\t\t\t\tstep: \"port-check\",\n\t\t\t\tok: false,\n\t\t\t\tdetail: msg\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstatus: \"error\",\n\t\t\t\twasAlreadyEnabled,\n\t\t\t\tsteps,\n\t\t\t\terror: msg\n\t\t\t};\n\t\t}\n\t\tsteps.push({\n\t\t\tstep: \"port-check\",\n\t\t\tok: true,\n\t\t\tdetail: \"our container is the listener\"\n\t\t});\n\t} else steps.push({\n\t\tstep: \"port-check\",\n\t\tok: true\n\t});\n\tconst profileServices = activeProfile ? availableProfiles.find((p) => p.id === activeProfile)?.services ?? [] : [];\n\tconst services = profileServices.length > 0 ? profileServices : [VOICE_ADDON];\n\tconst composeFilesBase = buildComposeOptions(state).files;\n\tconst primaryService = services[0];\n\tlet backgroundPull = false;\n\tif (primaryService && !inVitest) {\n\t\tconst imageRef = await resolveServiceImage(composeFilesBase, primaryService);\n\t\tif (imageRef && isLargeImageTag(imageRef)) {\n\t\t\tif (!await dockerImagePresent(imageRef)) {\n\t\t\t\tbackgroundPull = true;\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"pulling\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"first-time download — several minutes for several GB\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst extraFiles = [];\n\tconst cdiFallbackSupported = process.platform !== \"win32\";\n\tif (activeProfile === addonProfileId(\"voice\", \"cuda\") && !inVitest && cdiFallbackSupported) {\n\t\tconst runtimeMissing = (await getAddonProfileAvailability({ id: addonProfileId(\"voice\", \"cuda\") })).available === false || !await dockerHasNvidiaRuntime();\n\t\tconst cdiSpecPresent = existsSync(\"/etc/cdi/nvidia.yaml\");\n\t\tif (runtimeMissing && cdiSpecPresent) {\n\t\t\tconst overlay = voiceCdiOverlayPath(state.homeDir);\n\t\t\tif (overlay) {\n\t\t\t\textraFiles.push(overlay);\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"cdi-fallback\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"using CDI device reservation\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tif (!inVitest) try {\n\t\tif (await detectRootlessDocker()) {\n\t\t\tconst overlay = voiceRootlessOverlayPath(state.homeDir);\n\t\t\tif (overlay) {\n\t\t\t\textraFiles.push(overlay);\n\t\t\t\tsteps.push({\n\t\t\t\t\tstep: \"rootless-fallback\",\n\t\t\t\t\tok: true,\n\t\t\t\t\tdetail: \"dropping user: directive for rootless Docker\"\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(\"[voice] rootless detection failed:\", e);\n\t}\n\tif (backgroundPull) {\n\t\tsetJob(VOICE_ADDON, {\n\t\t\tstate: \"pulling\",\n\t\t\tsteps: [...steps],\n\t\t\tstartedAt: Date.now(),\n\t\t\tprofile: activeProfile ?? void 0,\n\t\t\tfinishedAt: void 0,\n\t\t\terror: void 0\n\t\t});\n\t\trunBringUpJob({\n\t\t\tstate,\n\t\t\tservices,\n\t\t\tactiveProfile,\n\t\t\textraFiles,\n\t\t\tavailableProfiles,\n\t\t\tbaseSteps: [...steps]\n\t\t});\n\t\treturn {\n\t\t\tstatus: \"background\",\n\t\t\twasAlreadyEnabled,\n\t\t\tsteps,\n\t\t\tmessage: \"Voice image is downloading in the background (~2–8 GB). Poll GET /api/host/voice for progress; UI auto-refreshes.\"\n\t\t};\n\t}\n\tconst outcome = await runBringUp({\n\t\tstate,\n\t\tservices,\n\t\tactiveProfile,\n\t\textraFiles,\n\t\tavailableProfiles,\n\t\tsteps\n\t});\n\tif (!outcome.composeOk) return {\n\t\tstatus: \"error\",\n\t\twasAlreadyEnabled,\n\t\tsteps: outcome.steps,\n\t\terror: `Voice addon failed to start: ${outcome.composeErr ?? \"unknown error\"}`\n\t};\n\treturn {\n\t\tstatus: \"final\",\n\t\twasAlreadyEnabled,\n\t\tsteps: outcome.steps,\n\t\thealthy: outcome.healthy,\n\t\twarming: outcome.warming\n\t};\n}\n//#endregion\n//#region src/routes/api/host/voice/+server.ts\nvar REACHABILITY_TIMEOUT_MS = 1500;\nasync function probeReachable(baseURL) {\n\tif (!baseURL) return false;\n\tconst url = `${baseURL.replace(/\\/+$/, \"\")}/v1/models`;\n\ttry {\n\t\treturn (await fetch(url, {\n\t\t\tmethod: \"GET\",\n\t\t\tsignal: AbortSignal.timeout(REACHABILITY_TIMEOUT_MS)\n\t\t})).status < 500;\n\t} catch {\n\t\treturn false;\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst env = readStackEnv(state.homeDir);\n\tconst ttsBaseURL = env.OP_TTS_BASE_URL ?? \"\";\n\tconst sttBaseURL = env.OP_STT_BASE_URL ?? \"\";\n\tconst profiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, VOICE_ADDON));\n\tconst selectedProfile = getAddonProfileSelection(state.homeDir, \"voice\") ?? resolveDefaultProfile(profiles);\n\tconst [sttReachable, ttsReachable] = await Promise.all([probeReachable(sttBaseURL), probeReachable(ttsBaseURL)]);\n\treturn jsonResponse(200, {\n\t\ttts: {\n\t\t\tenabled: true,\n\t\t\tengine: env.OP_TTS_ENGINE ?? \"\",\n\t\t\tprovider: env.OP_TTS_PROVIDER ?? \"\",\n\t\t\tbaseURL: ttsBaseURL,\n\t\t\tmodel: env.OP_TTS_MODEL ?? \"\",\n\t\t\tvoice: env.OP_TTS_VOICE ?? \"\"\n\t\t},\n\t\tstt: {\n\t\t\tenabled: true,\n\t\t\tengine: env.OP_STT_ENGINE ?? \"\",\n\t\t\tprovider: env.OP_STT_PROVIDER ?? \"\",\n\t\t\tbaseURL: sttBaseURL,\n\t\t\tmodel: env.OP_STT_MODEL ?? \"\",\n\t\t\tlanguage: env.OP_STT_LANGUAGE ?? \"\"\n\t\t},\n\t\tavailability: {\n\t\t\tstt: {\n\t\t\t\tremoteConfigured: Boolean(sttBaseURL),\n\t\t\t\tremoteReachable: sttReachable\n\t\t\t},\n\t\t\ttts: {\n\t\t\t\tremoteConfigured: Boolean(ttsBaseURL),\n\t\t\t\tremoteReachable: ttsReachable\n\t\t\t}\n\t\t},\n\t\taddon: {\n\t\t\tprofiles,\n\t\t\tselectedProfile,\n\t\t\t...getActiveJob(\"voice\") ? { activeJob: getActiveJob(VOICE_ADDON) } : {}\n\t\t}\n\t}, requestId);\n};\nfunction readSection(raw, kind) {\n\tif (!raw || typeof raw !== \"object\") return null;\n\tconst section = {\n\t\tenabled: raw.enabled !== false,\n\t\tengine: typeof raw.engine === \"string\" ? raw.engine : void 0,\n\t\tprovider: typeof raw.provider === \"string\" ? raw.provider : void 0,\n\t\tbaseURL: typeof raw.baseURL === \"string\" ? raw.baseURL : void 0,\n\t\tmodel: typeof raw.model === \"string\" ? raw.model : void 0\n\t};\n\tif (kind === \"tts\" && typeof raw.voice === \"string\") section.voice = raw.voice;\n\tif (kind === \"stt\" && typeof raw.language === \"string\") section.language = raw.language;\n\treturn section;\n}\nvar OPENPALM_VOICE_TTS_MODEL = \"kokoro\";\nvar OPENPALM_VOICE_STT_MODEL = \"whisper-1\";\nvar OPENPALM_VOICE_DEFAULT_VOICE = \"bf_isabella\";\n/**\n* For `engine === 'openpalm-voice'`, fill in baseURL/model with the addon's\n* preset values when the user didn't provide them. This is the auto-config\n* that makes \"select OpenPalm Voice → Save\" Just Work as long as the addon\n* is enabled. The user can still override (e.g. point at a different\n* voice host on the LAN).\n*/\nfunction applyOpenPalmVoicePreset(section, kind) {\n\tif (section.engine !== \"openpalm-voice\") return;\n\tif (!section.baseURL?.trim()) section.baseURL = openpalmVoiceBaseURL();\n\tif (!section.model?.trim()) section.model = kind === \"tts\" ? OPENPALM_VOICE_TTS_MODEL : OPENPALM_VOICE_STT_MODEL;\n\tif (kind === \"tts\" && !section.voice?.trim()) section.voice = OPENPALM_VOICE_DEFAULT_VOICE;\n}\nfunction validateSection(section, kind) {\n\tif (!section?.engine) return null;\n\tif (section.engine === \"browser\" || section.engine === \"browser-stt\" || section.engine === \"browser-tts\") return null;\n\tif (section.engine.startsWith(\"skip-\")) return null;\n\tif (!section.baseURL?.trim()) return `Remote ${kind.toUpperCase()} requires an endpoint URL.`;\n\treturn null;\n}\nvar PUT = (event) => {\n\treturn withSerialQueue(\"admin:voice:put\", () => handlePut(event));\n};\nasync function handlePut(event) {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:write\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"Bad Request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tif (!body || typeof body !== \"object\") return errorResponse(400, \"Bad Request\", \"Body must be an object\", {}, requestId);\n\tconst b = body;\n\tconst ttsSection = readSection(b.tts, \"tts\");\n\tconst sttSection = readSection(b.stt, \"stt\");\n\tif (ttsSection) applyOpenPalmVoicePreset(ttsSection, \"tts\");\n\tif (sttSection) applyOpenPalmVoicePreset(sttSection, \"stt\");\n\tconst ttsErr = validateSection(ttsSection, \"tts\");\n\tif (ttsErr) return errorResponse(400, \"invalid_tts\", ttsErr, {}, requestId);\n\tconst sttErr = validateSection(sttSection, \"stt\");\n\tif (sttErr) return errorResponse(400, \"invalid_stt\", sttErr, {}, requestId);\n\tconst config = {};\n\tif (ttsSection) config.tts = {\n\t\tenabled: ttsSection.enabled,\n\t\tengine: ttsSection.engine,\n\t\tprovider: ttsSection.provider,\n\t\tbaseURL: ttsSection.baseURL,\n\t\tmodel: ttsSection.model,\n\t\tvoice: ttsSection.voice\n\t};\n\tif (sttSection) config.stt = {\n\t\tenabled: sttSection.enabled,\n\t\tengine: sttSection.engine,\n\t\tprovider: sttSection.provider,\n\t\tbaseURL: sttSection.baseURL,\n\t\tmodel: sttSection.model,\n\t\tlanguage: sttSection.language\n\t};\n\twriteVoiceVars(config, state.homeDir);\n\tconst result = await engageVoiceAddon({\n\t\tstate,\n\t\twantsVoiceAddon: ttsSection?.engine === \"openpalm-voice\" || sttSection?.engine === \"openpalm-voice\",\n\t\trequestedProfile: typeof b.profile === \"string\" ? b.profile.trim() : \"\"\n\t});\n\tswitch (result.status) {\n\t\tcase \"disengaged\": return jsonResponse(200, { ok: true }, requestId);\n\t\tcase \"invalid_profile\": return errorResponse(400, \"invalid_profile\", result.message, {}, requestId);\n\t\tcase \"error\": return jsonResponse(502, {\n\t\t\tok: false,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tsteps: result.steps,\n\t\t\t\terror: result.error\n\t\t\t}\n\t\t}, requestId);\n\t\tcase \"background\": return jsonResponse(202, {\n\t\t\tok: true,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tstatus: \"pulling\",\n\t\t\t\tsteps: result.steps,\n\t\t\t\tmessage: result.message\n\t\t\t}\n\t\t}, requestId);\n\t\tcase \"final\": return jsonResponse(result.healthy || result.warming ? 200 : 502, {\n\t\t\tok: result.healthy || result.warming,\n\t\t\tvoiceAddon: {\n\t\t\t\twasAlreadyEnabled: result.wasAlreadyEnabled,\n\t\t\t\tsteps: result.steps,\n\t\t\t\t...result.warming ? { warming: true } : {},\n\t\t\t\t...result.healthy || result.warming ? {} : { error: \"Voice addon is starting but did not become healthy in time.\" }\n\t\t\t}\n\t\t}, requestId);\n\t}\n}\n//#endregion\nexport { GET, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { g as getActiveConnection } from './endpoints-CU3ehglV.js';
2
- import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-7BvhniSt.js';
3
- import './src-CS2sSYOR.js';
1
+ import { g as getActiveConnection } from './endpoints-B9ePqrMw.js';
2
+ import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-q4Ng8QTq.js';
3
+ import './src-BwQUi60U.js';
4
4
  import './provider-constants-1s1k8kbj.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -21,8 +21,8 @@ import 'assert';
21
21
  import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
- import './state-BRh7vs9j.js';
25
- import './features-DLGlNjZX.js';
24
+ import './state-Dm7U51xT.js';
25
+ import './features-0lgyQreD.js';
26
26
 
27
27
  //#region src/routes/api/host/health/+server.ts
28
28
  var GET = async (event) => {
@@ -57,4 +57,4 @@ var GET = async (event) => {
57
57
  };
58
58
 
59
59
  export { GET };
60
- //# sourceMappingURL=_server.ts-Chf0EFLa.js.map
60
+ //# sourceMappingURL=_server.ts-JO0zy17P.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Chf0EFLa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/health/_server.ts.js"],"sourcesContent":["import { r as getActiveConnection } from \"../../../../../chunks/endpoints.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/host/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveConnection();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders.authorization = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,mBAAmB,EAAE;AACvC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-JO0zy17P.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/health/_server.ts.js"],"sourcesContent":["import { r as getActiveConnection } from \"../../../../../chunks/endpoints.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/host/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveConnection();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders.authorization = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,mBAAmB,EAAE;AACvC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,6 +1,6 @@
1
- import { ao as loadAutomations } from './src-CS2sSYOR.js';
2
- import { g as getState } from './state-BRh7vs9j.js';
3
- import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-7BvhniSt.js';
1
+ import { ao as loadAutomations } from './src-BwQUi60U.js';
2
+ import { g as getState } from './state-Dm7U51xT.js';
3
+ import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-q4Ng8QTq.js';
4
4
  import './provider-constants-1s1k8kbj.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -21,8 +21,8 @@ import 'assert';
21
21
  import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
- import './endpoints-CU3ehglV.js';
25
- import './features-DLGlNjZX.js';
24
+ import './endpoints-B9ePqrMw.js';
25
+ import './features-0lgyQreD.js';
26
26
 
27
27
  //#region src/routes/api/host/automations/+server.ts
28
28
  var GET = async (event) => {
@@ -48,4 +48,4 @@ var GET = async (event) => {
48
48
  };
49
49
 
50
50
  export { GET };
51
- //# sourceMappingURL=_server.ts-ClO4pSRG.js.map
51
+ //# sourceMappingURL=_server.ts-LokXM9hH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-ClO4pSRG.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/automations/_server.ts.js"],"sourcesContent":["import { m as loadAutomations } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/host/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
1
+ {"version":3,"file":"_server.ts-LokXM9hH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/automations/_server.ts.js"],"sourcesContent":["import { m as loadAutomations } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/api/host/automations/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\treturn jsonResponse(200, { automations: loadAutomations(getState().stashDir).map((c) => ({\n\t\tname: c.name,\n\t\tdescription: c.description,\n\t\tschedule: c.schedule,\n\t\ttimezone: c.timezone,\n\t\tenabled: c.enabled,\n\t\taction: {\n\t\t\ttype: c.action.type,\n\t\t\tcontent: c.action.content,\n\t\t\tagent: c.action.agent\n\t\t},\n\t\ton_failure: c.on_failure,\n\t\tfileName: c.fileName\n\t})) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC/C,CAAC,IAAI,OAAO,EAAE,OAAO,OAAO;AAC5B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC1F,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW;AAC5B,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACtB,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AACpB,EAAE,MAAM,EAAE;AACV,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACtB,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AAC5B,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACnB,GAAG;AACH,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;AAC1B,EAAE,QAAQ,EAAE,CAAC,CAAC;AACd,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB;;;;"}
@@ -1,7 +1,7 @@
1
- import { l as requireCapability, d as getRequestId, w as withAdminBody, k as jsonResponse } from './helpers-7BvhniSt.js';
2
- import { o as opencodeFetch } from './http-D0qKwTqb.js';
1
+ import { l as requireCapability, d as getRequestId, w as withAdminBody, k as jsonResponse } from './helpers-q4Ng8QTq.js';
2
+ import { o as opencodeFetch } from './http-jBNJXVHg.js';
3
3
  import { a as asStringOrEmpty } from './_helpers-CafYq-UD.js';
4
- import './src-CS2sSYOR.js';
4
+ import './src-BwQUi60U.js';
5
5
  import './provider-constants-1s1k8kbj.js';
6
6
  import './chunk-CLZ62Ad-.js';
7
7
  import 'node:module';
@@ -22,9 +22,9 @@ import 'assert';
22
22
  import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
- import './endpoints-CU3ehglV.js';
26
- import './state-BRh7vs9j.js';
27
- import './features-DLGlNjZX.js';
25
+ import './endpoints-B9ePqrMw.js';
26
+ import './state-Dm7U51xT.js';
27
+ import './features-0lgyQreD.js';
28
28
  import './coercion-TNFJisCC.js';
29
29
 
30
30
  //#region src/routes/api/host/providers/oauth/finish/+server.ts
@@ -69,4 +69,4 @@ var POST = async (event) => {
69
69
  };
70
70
 
71
71
  export { POST };
72
- //# sourceMappingURL=_server.ts-DW3mRh_v.js.map
72
+ //# sourceMappingURL=_server.ts-pRYFJihh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DW3mRh_v.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/providers/oauth/finish/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, p as withAdminBody } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\nimport { t as asStringOrEmpty } from \"../../../../../../../chunks/_helpers.js\";\n//#region src/routes/api/host/providers/oauth/finish/+server.ts\n/**\n* POST /api/host/providers/oauth/finish — Complete an OAuth code-mode\n* sign-in by exchanging the operator-pasted authorization code with the\n* assistant OpenCode instance.\n*/\nvar POST = async (event) => {\n\tconst capabilityError = requireCapability(event, \"host:secrets\", getRequestId(event));\n\tif (capabilityError) return capabilityError;\n\treturn withAdminBody(event, async ({ requestId, body }) => {\n\t\ttry {\n\t\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\t\tconst code = asStringOrEmpty(body.code);\n\t\t\tif (!providerId || Number.isNaN(methodIndex) || !code) return jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: \"Paste the authorization code before finishing sign-in.\",\n\t\t\t\tselectedProviderId: providerId\n\t\t\t}, requestId);\n\t\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tmethod: methodIndex,\n\t\t\t\t\tcode\n\t\t\t\t})\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tmessage: \"OAuth connection completed.\",\n\t\t\t\tselectedProviderId: providerId\n\t\t\t}, requestId);\n\t\t} catch (error) {\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC5D,EAAE,IAAI;AACN,GAAG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,GAAG,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACnF,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,wDAAwD;AACrE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACrF,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,KAAK,MAAM,EAAE,WAAW;AACxB,KAAK;AACL,KAAK;AACL,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,6BAA6B;AAC1C,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACtE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-pRYFJihh.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/providers/oauth/finish/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, p as withAdminBody } from \"../../../../../../../chunks/helpers.js\";\nimport { t as opencodeFetch } from \"../../../../../../../chunks/http.js\";\nimport { t as asStringOrEmpty } from \"../../../../../../../chunks/_helpers.js\";\n//#region src/routes/api/host/providers/oauth/finish/+server.ts\n/**\n* POST /api/host/providers/oauth/finish — Complete an OAuth code-mode\n* sign-in by exchanging the operator-pasted authorization code with the\n* assistant OpenCode instance.\n*/\nvar POST = async (event) => {\n\tconst capabilityError = requireCapability(event, \"host:secrets\", getRequestId(event));\n\tif (capabilityError) return capabilityError;\n\treturn withAdminBody(event, async ({ requestId, body }) => {\n\t\ttry {\n\t\t\tconst providerId = asStringOrEmpty(body.providerId);\n\t\t\tconst methodIndex = Number(asStringOrEmpty(body.methodIndex));\n\t\t\tconst code = asStringOrEmpty(body.code);\n\t\t\tif (!providerId || Number.isNaN(methodIndex) || !code) return jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: \"Paste the authorization code before finishing sign-in.\",\n\t\t\t\tselectedProviderId: providerId\n\t\t\t}, requestId);\n\t\t\tawait opencodeFetch(`/provider/${encodeURIComponent(providerId)}/oauth/callback`, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tmethod: methodIndex,\n\t\t\t\t\tcode\n\t\t\t\t})\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\tmessage: \"OAuth connection completed.\",\n\t\t\t\tselectedProviderId: providerId\n\t\t\t}, requestId);\n\t\t} catch (error) {\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: false,\n\t\t\t\tmessage: error instanceof Error ? error.message : \"Internal error\",\n\t\t\t\tselectedProviderId: void 0\n\t\t\t}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC5D,EAAE,IAAI;AACN,GAAG,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD,GAAG,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,GAAG,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACnF,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,wDAAwD;AACrE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,GAAG,MAAM,aAAa,CAAC,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EAAE;AACrF,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACzB,KAAK,MAAM,EAAE,WAAW;AACxB,KAAK;AACL,KAAK;AACL,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,6BAA6B;AAC1C,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,gBAAgB;AACtE,IAAI,kBAAkB,EAAE;AACxB,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, l as requireCapability, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-7BvhniSt.js';
2
- import { t as testEmbeddingSettings } from './akm-D8uSJNzt.js';
3
- import './src-CS2sSYOR.js';
1
+ import { d as getRequestId, l as requireCapability, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-q4Ng8QTq.js';
2
+ import { t as testEmbeddingSettings } from './akm-5HN45xWY.js';
3
+ import './src-BwQUi60U.js';
4
4
  import './provider-constants-1s1k8kbj.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -21,9 +21,9 @@ import 'assert';
21
21
  import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
- import './endpoints-CU3ehglV.js';
25
- import './state-BRh7vs9j.js';
26
- import './features-DLGlNjZX.js';
24
+ import './endpoints-B9ePqrMw.js';
25
+ import './state-Dm7U51xT.js';
26
+ import './features-0lgyQreD.js';
27
27
 
28
28
  //#region src/routes/api/host/akm/embedding/test/+server.ts
29
29
  var POST = async (event) => {
@@ -53,4 +53,4 @@ var POST = async (event) => {
53
53
  };
54
54
 
55
55
  export { POST };
56
- //# sourceMappingURL=_server.ts-CFz_IeN4.js.map
56
+ //# sourceMappingURL=_server.ts-xPuEhFJO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CFz_IeN4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/akm/embedding/test/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, l as parseJsonBody, r as errorResponse, s as jsonBodyError, u as requireAdmin } from \"../../../../../../../chunks/helpers.js\";\nimport { r as testEmbeddingSettings } from \"../../../../../../../chunks/akm.js\";\n//#region src/routes/api/host/akm/embedding/test/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\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,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,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-xPuEhFJO.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/akm/embedding/test/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, l as parseJsonBody, r as errorResponse, s as jsonBodyError, u as requireAdmin } from \"../../../../../../../chunks/helpers.js\";\nimport { r as testEmbeddingSettings } from \"../../../../../../../chunks/akm.js\";\n//#region src/routes/api/host/akm/embedding/test/+server.ts\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:read\", requestId);\n\tif (capabilityError) return capabilityError;\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,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAC/E,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,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,5 +1,5 @@
1
- import { am as listEnabledAddonIds, a6 as getAddonServiceNames, p as checkDocker, F as composeStop, n as buildComposeOptions, aZ as setAddonEnabled, G as createLogger } from './src-CS2sSYOR.js';
2
- import { r as resetState } from './state-BRh7vs9j.js';
1
+ import { am as listEnabledAddonIds, a6 as getAddonServiceNames, p as checkDocker, F as composeStop, n as buildComposeOptions, aZ as setAddonEnabled, G as createLogger } from './src-BwQUi60U.js';
2
+ import { r as resetState } from './state-Dm7U51xT.js';
3
3
 
4
4
  //#region src/lib/server/addon-helpers.ts
5
5
  /**
@@ -48,4 +48,4 @@ async function performAddonToggle(state, name, requestedEnabled, requestId) {
48
48
  }
49
49
 
50
50
  export { performAddonToggle as p };
51
- //# sourceMappingURL=addon-helpers-Cpj40OF3.js.map
51
+ //# sourceMappingURL=addon-helpers-Cgg8lPxe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addon-helpers-Cpj40OF3.js","sources":["../../../.svelte-kit/adapter-node/chunks/addon-helpers.js"],"sourcesContent":["import { D as setAddonEnabled, E as listEnabledAddonIds, Nt as createLogger, S as getAddonServiceNames, t as buildComposeOptions } from \"./compose-args.js\";\nimport { i as checkDocker, v as composeStop } from \"./docker.js\";\nimport \"./src.js\";\nimport { n as resetState } from \"./state.js\";\n//#region src/lib/server/addon-helpers.ts\n/**\n* Shared addon enable/disable logic for admin route handlers.\n*\n* Both /admin/addons and /admin/addons/:name share the same POST flow:\n* validate → stop running services if disabling → mutate state → audit.\n* This module houses the shared mutation step so neither route duplicates it.\n*/\nvar logger = createLogger(\"addon-helpers\");\n/**\n* Stop running services if disabling, then call setAddonEnabled.\n* Returns the mutation result with the final enabled state.\n*/\nasync function performAddonToggle(state, name, requestedEnabled, requestId) {\n\tconst wasEnabled = listEnabledAddonIds(state.homeDir).includes(name);\n\tconst nextEnabled = requestedEnabled !== void 0 ? requestedEnabled : wasEnabled;\n\tif (!nextEnabled && wasEnabled) {\n\t\tconst serviceNames = getAddonServiceNames(state.homeDir, name);\n\t\tif (serviceNames.length > 0) {\n\t\t\tif ((await checkDocker()).ok) try {\n\t\t\t\tawait composeStop(serviceNames, buildComposeOptions(state));\n\t\t\t\tlogger.info(\"stopped addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tlogger.warn(\"failed to stop addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\terror: String(err),\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst mutation = setAddonEnabled(state.homeDir, name, nextEnabled, state);\n\tif (!mutation.ok) return mutation;\n\tif (mutation.changed) resetState();\n\treturn {\n\t\tok: true,\n\t\tenabled: listEnabledAddonIds(state.homeDir).includes(name),\n\t\tchanged: mutation.changed\n\t};\n}\n//#endregion\nexport { performAddonToggle as t };\n"],"names":[],"mappings":";;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA,eAAe,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE;AAC5E,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrE,CAAC,MAAM,WAAW,GAAG,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,UAAU;AAChF,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AACjC,EAAE,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AAChE,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI;AACrC,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;AACzD,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK;AACL,KAAK,CAAC;AACN,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;AAChE,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AACvB,KAAK;AACL,KAAK,CAAC;AACN,GAAG;AACH,EAAE;AACF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAC1E,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,QAAQ;AAClC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE;AACnC,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,EAAE,OAAO,EAAE,QAAQ,CAAC;AACpB,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"addon-helpers-Cgg8lPxe.js","sources":["../../../.svelte-kit/adapter-node/chunks/addon-helpers.js"],"sourcesContent":["import { D as setAddonEnabled, E as listEnabledAddonIds, Nt as createLogger, S as getAddonServiceNames, t as buildComposeOptions } from \"./compose-args.js\";\nimport { i as checkDocker, v as composeStop } from \"./docker.js\";\nimport \"./src.js\";\nimport { n as resetState } from \"./state.js\";\n//#region src/lib/server/addon-helpers.ts\n/**\n* Shared addon enable/disable logic for admin route handlers.\n*\n* Both /admin/addons and /admin/addons/:name share the same POST flow:\n* validate → stop running services if disabling → mutate state → audit.\n* This module houses the shared mutation step so neither route duplicates it.\n*/\nvar logger = createLogger(\"addon-helpers\");\n/**\n* Stop running services if disabling, then call setAddonEnabled.\n* Returns the mutation result with the final enabled state.\n*/\nasync function performAddonToggle(state, name, requestedEnabled, requestId) {\n\tconst wasEnabled = listEnabledAddonIds(state.homeDir).includes(name);\n\tconst nextEnabled = requestedEnabled !== void 0 ? requestedEnabled : wasEnabled;\n\tif (!nextEnabled && wasEnabled) {\n\t\tconst serviceNames = getAddonServiceNames(state.homeDir, name);\n\t\tif (serviceNames.length > 0) {\n\t\t\tif ((await checkDocker()).ok) try {\n\t\t\t\tawait composeStop(serviceNames, buildComposeOptions(state));\n\t\t\t\tlogger.info(\"stopped addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tlogger.warn(\"failed to stop addon services before disable\", {\n\t\t\t\t\tname,\n\t\t\t\t\tservices: serviceNames,\n\t\t\t\t\terror: String(err),\n\t\t\t\t\trequestId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tconst mutation = setAddonEnabled(state.homeDir, name, nextEnabled, state);\n\tif (!mutation.ok) return mutation;\n\tif (mutation.changed) resetState();\n\treturn {\n\t\tok: true,\n\t\tenabled: listEnabledAddonIds(state.homeDir).includes(name),\n\t\tchanged: mutation.changed\n\t};\n}\n//#endregion\nexport { performAddonToggle as t };\n"],"names":[],"mappings":";;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA,eAAe,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE;AAC5E,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrE,CAAC,MAAM,WAAW,GAAG,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,UAAU;AAChF,CAAC,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AACjC,EAAE,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AAChE,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI;AACrC,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;AACzD,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK;AACL,KAAK,CAAC;AACN,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;AAChE,KAAK,IAAI;AACT,KAAK,QAAQ,EAAE,YAAY;AAC3B,KAAK,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AACvB,KAAK;AACL,KAAK,CAAC;AACN,GAAG;AACH,EAAE;AACF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAC1E,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,QAAQ;AAClC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE;AACnC,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,EAAE,OAAO,EAAE,QAAQ,CAAC;AACpB,EAAE;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { l as lookupEmbeddingDims } from './provider-constants-1s1k8kbj.js';
2
- import { T as detectLocalProviders, a1 as fetchProviderModels, l as buildAkmEndpoint } from './src-CS2sSYOR.js';
2
+ import { T as detectLocalProviders, a1 as fetchProviderModels, l as buildAkmEndpoint } from './src-BwQUi60U.js';
3
3
 
4
4
  //#region src/lib/server/akm.ts
5
5
  var EMBEDDING_MODEL_HINT_RE = /(?:^|[-/_.])(embed|embedding|bge|gte|e5|nomic|mxbai|arctic-embed|minilm)/i;
@@ -148,4 +148,4 @@ async function detectEmbeddingSettings(state) {
148
148
  }
149
149
 
150
150
  export { detectEmbeddingSettings as d, safeParseJsonObject as s, testEmbeddingSettings as t };
151
- //# sourceMappingURL=akm-D8uSJNzt.js.map
151
+ //# sourceMappingURL=akm-5HN45xWY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"akm-D8uSJNzt.js","sources":["../../../.svelte-kit/adapter-node/chunks/akm.js"],"sourcesContent":["import { o as lookupEmbeddingDims } from \"./provider-constants.js\";\nimport { D as fetchProviderModels, E as buildAkmEndpoint, f as detectLocalProviders } from \"./src.js\";\n//#region src/lib/server/akm.ts\nvar EMBEDDING_MODEL_HINT_RE = /(?:^|[-/_.])(embed|embedding|bge|gte|e5|nomic|mxbai|arctic-embed|minilm)/i;\nvar PREFERRED_EMBEDDING_MODELS = {\n\tollama: [\n\t\t\"mxbai-embed-large:latest\",\n\t\t\"mxbai-embed-large\",\n\t\t\"mxbai-embed-large-v1\",\n\t\t\"nomic-embed-text:latest\",\n\t\t\"nomic-embed-text\",\n\t\t\"snowflake-arctic-embed\",\n\t\t\"all-minilm\"\n\t],\n\t\"model-runner\": [\"ai/mxbai-embed-large-v1\"],\n\tlmstudio: [\n\t\t\"mxbai-embed-large-v1\",\n\t\t\"mxbai-embed-large\",\n\t\t\"nomic-embed-text\"\n\t]\n};\nfunction safeParseJsonObject(s) {\n\ttry {\n\t\tconst v = JSON.parse(s);\n\t\treturn v && typeof v === \"object\" ? v : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction isEmbeddingModel(provider, model) {\n\treturn lookupEmbeddingDims(provider, model) > 0 || EMBEDDING_MODEL_HINT_RE.test(model);\n}\nfunction compareModelPreference(provider, left, right) {\n\tconst preferred = PREFERRED_EMBEDDING_MODELS[provider] ?? [];\n\tconst leftIdx = preferred.indexOf(left);\n\tconst rightIdx = preferred.indexOf(right);\n\tif (leftIdx >= 0 || rightIdx >= 0) {\n\t\tif (leftIdx < 0) return 1;\n\t\tif (rightIdx < 0) return -1;\n\t\treturn leftIdx - rightIdx;\n\t}\n\tconst dimDelta = lookupEmbeddingDims(provider, right) - lookupEmbeddingDims(provider, left);\n\tif (dimDelta !== 0) return dimDelta;\n\treturn left.localeCompare(right);\n}\nfunction bestEmbeddingModel(provider, models) {\n\tconst candidates = models.filter((model) => isEmbeddingModel(provider, model));\n\tif (candidates.length === 0) return null;\n\treturn [...candidates].sort((left, right) => compareModelPreference(provider, left, right))[0] ?? null;\n}\nfunction detectionPriority(left, right) {\n\tconst order = [\n\t\t\"ollama\",\n\t\t\"model-runner\",\n\t\t\"lmstudio\"\n\t];\n\treturn order.indexOf(left.provider) - order.indexOf(right.provider);\n}\nfunction describeUpstreamError(status, raw) {\n\ttry {\n\t\tconst parsed = JSON.parse(raw);\n\t\tconst error = parsed.error;\n\t\tif (typeof error === \"string\" && error) return `Embedding request failed (${status}): ${error}`;\n\t\tif (error && typeof error === \"object\" && typeof error.message === \"string\") return `Embedding request failed (${status}): ${error.message}`;\n\t\tif (typeof parsed.message === \"string\" && parsed.message) return `Embedding request failed (${status}): ${parsed.message}`;\n\t} catch {}\n\treturn `Embedding request failed (${status}).`;\n}\nasync function testEmbeddingSettings(input) {\n\tconst endpoint = input.endpoint.trim();\n\tconst model = input.model.trim();\n\tif (!endpoint) return {\n\t\tok: false,\n\t\tmessage: \"Endpoint is required.\"\n\t};\n\tif (!model) return {\n\t\tok: false,\n\t\tmessage: \"Model is required.\"\n\t};\n\tconst headers = { \"content-type\": \"application/json\" };\n\tconst apiKey = input.apiKey?.trim() ?? \"\";\n\tif (apiKey) headers.authorization = `Bearer ${apiKey}`;\n\ttry {\n\t\tconst response = await fetch(endpoint, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmodel,\n\t\t\t\tinput: [\"OpenPalm embedding settings test\"]\n\t\t\t}),\n\t\t\tsignal: AbortSignal.timeout(1e4)\n\t\t});\n\t\tconst raw = await response.text();\n\t\tif (!response.ok) return {\n\t\t\tok: false,\n\t\t\tmessage: describeUpstreamError(response.status, raw)\n\t\t};\n\t\tconst parsed = safeParseJsonObject(raw);\n\t\tconst first = (Array.isArray(parsed?.data) ? parsed.data : [])[0];\n\t\tconst embedding = first && typeof first === \"object\" ? first.embedding : void 0;\n\t\tif (!Array.isArray(embedding) || embedding.length === 0 || !embedding.every((value) => typeof value === \"number\")) return {\n\t\t\tok: false,\n\t\t\tmessage: \"Endpoint responded, but not with an OpenAI-compatible embeddings payload.\"\n\t\t};\n\t\tconst dimension = embedding.length;\n\t\tconst configuredDimension = typeof input.dimension === \"number\" && input.dimension > 0 ? input.dimension : null;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdimension,\n\t\t\tmessage: configuredDimension && configuredDimension !== dimension ? `Embedding endpoint is working. Returned ${dimension} dimensions; the form has been updated to match.` : `Embedding endpoint is working. Returned ${dimension} dimensions.`,\n\t\t\tprovider: input.provider\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error && error.name === \"TimeoutError\" ? \"Embedding request timed out after 10 seconds.\" : error instanceof Error ? `Embedding request failed: ${error.message}` : \"Embedding request failed.\"\n\t\t};\n\t}\n}\nasync function detectEmbeddingSettings(state) {\n\tconst detected = (await detectLocalProviders()).filter((provider) => provider.available && provider.url).sort(detectionPriority);\n\tfor (const provider of detected) {\n\t\tconst modelsResult = await fetchProviderModels(provider.provider, \"\", provider.url, state.homeDir);\n\t\tif (modelsResult.status !== \"ok\") continue;\n\t\tconst model = bestEmbeddingModel(provider.provider, modelsResult.models);\n\t\tif (!model) continue;\n\t\tconst endpoint = buildAkmEndpoint(provider.provider, provider.url, \"/embeddings\");\n\t\tconst probe = await testEmbeddingSettings({\n\t\t\tendpoint,\n\t\t\tmodel,\n\t\t\tprovider: provider.provider\n\t\t});\n\t\tif (!probe.ok) continue;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tendpoint,\n\t\t\tmodel,\n\t\t\tprovider: provider.provider,\n\t\t\tdimension: probe.dimension,\n\t\t\tmessage: `Detected ${provider.provider} embedding model ${model}.`\n\t\t};\n\t}\n\treturn {\n\t\tok: false,\n\t\tmessage: \"No working local embedding endpoint was detected. Tried common runtimes such as Ollama, Docker Model Runner, and LM Studio.\"\n\t};\n}\n//#endregion\nexport { safeParseJsonObject as n, testEmbeddingSettings as r, detectEmbeddingSettings as t };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"akm-5HN45xWY.js","sources":["../../../.svelte-kit/adapter-node/chunks/akm.js"],"sourcesContent":["import { o as lookupEmbeddingDims } from \"./provider-constants.js\";\nimport { D as fetchProviderModels, E as buildAkmEndpoint, f as detectLocalProviders } from \"./src.js\";\n//#region src/lib/server/akm.ts\nvar EMBEDDING_MODEL_HINT_RE = /(?:^|[-/_.])(embed|embedding|bge|gte|e5|nomic|mxbai|arctic-embed|minilm)/i;\nvar PREFERRED_EMBEDDING_MODELS = {\n\tollama: [\n\t\t\"mxbai-embed-large:latest\",\n\t\t\"mxbai-embed-large\",\n\t\t\"mxbai-embed-large-v1\",\n\t\t\"nomic-embed-text:latest\",\n\t\t\"nomic-embed-text\",\n\t\t\"snowflake-arctic-embed\",\n\t\t\"all-minilm\"\n\t],\n\t\"model-runner\": [\"ai/mxbai-embed-large-v1\"],\n\tlmstudio: [\n\t\t\"mxbai-embed-large-v1\",\n\t\t\"mxbai-embed-large\",\n\t\t\"nomic-embed-text\"\n\t]\n};\nfunction safeParseJsonObject(s) {\n\ttry {\n\t\tconst v = JSON.parse(s);\n\t\treturn v && typeof v === \"object\" ? v : null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction isEmbeddingModel(provider, model) {\n\treturn lookupEmbeddingDims(provider, model) > 0 || EMBEDDING_MODEL_HINT_RE.test(model);\n}\nfunction compareModelPreference(provider, left, right) {\n\tconst preferred = PREFERRED_EMBEDDING_MODELS[provider] ?? [];\n\tconst leftIdx = preferred.indexOf(left);\n\tconst rightIdx = preferred.indexOf(right);\n\tif (leftIdx >= 0 || rightIdx >= 0) {\n\t\tif (leftIdx < 0) return 1;\n\t\tif (rightIdx < 0) return -1;\n\t\treturn leftIdx - rightIdx;\n\t}\n\tconst dimDelta = lookupEmbeddingDims(provider, right) - lookupEmbeddingDims(provider, left);\n\tif (dimDelta !== 0) return dimDelta;\n\treturn left.localeCompare(right);\n}\nfunction bestEmbeddingModel(provider, models) {\n\tconst candidates = models.filter((model) => isEmbeddingModel(provider, model));\n\tif (candidates.length === 0) return null;\n\treturn [...candidates].sort((left, right) => compareModelPreference(provider, left, right))[0] ?? null;\n}\nfunction detectionPriority(left, right) {\n\tconst order = [\n\t\t\"ollama\",\n\t\t\"model-runner\",\n\t\t\"lmstudio\"\n\t];\n\treturn order.indexOf(left.provider) - order.indexOf(right.provider);\n}\nfunction describeUpstreamError(status, raw) {\n\ttry {\n\t\tconst parsed = JSON.parse(raw);\n\t\tconst error = parsed.error;\n\t\tif (typeof error === \"string\" && error) return `Embedding request failed (${status}): ${error}`;\n\t\tif (error && typeof error === \"object\" && typeof error.message === \"string\") return `Embedding request failed (${status}): ${error.message}`;\n\t\tif (typeof parsed.message === \"string\" && parsed.message) return `Embedding request failed (${status}): ${parsed.message}`;\n\t} catch {}\n\treturn `Embedding request failed (${status}).`;\n}\nasync function testEmbeddingSettings(input) {\n\tconst endpoint = input.endpoint.trim();\n\tconst model = input.model.trim();\n\tif (!endpoint) return {\n\t\tok: false,\n\t\tmessage: \"Endpoint is required.\"\n\t};\n\tif (!model) return {\n\t\tok: false,\n\t\tmessage: \"Model is required.\"\n\t};\n\tconst headers = { \"content-type\": \"application/json\" };\n\tconst apiKey = input.apiKey?.trim() ?? \"\";\n\tif (apiKey) headers.authorization = `Bearer ${apiKey}`;\n\ttry {\n\t\tconst response = await fetch(endpoint, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tbody: JSON.stringify({\n\t\t\t\tmodel,\n\t\t\t\tinput: [\"OpenPalm embedding settings test\"]\n\t\t\t}),\n\t\t\tsignal: AbortSignal.timeout(1e4)\n\t\t});\n\t\tconst raw = await response.text();\n\t\tif (!response.ok) return {\n\t\t\tok: false,\n\t\t\tmessage: describeUpstreamError(response.status, raw)\n\t\t};\n\t\tconst parsed = safeParseJsonObject(raw);\n\t\tconst first = (Array.isArray(parsed?.data) ? parsed.data : [])[0];\n\t\tconst embedding = first && typeof first === \"object\" ? first.embedding : void 0;\n\t\tif (!Array.isArray(embedding) || embedding.length === 0 || !embedding.every((value) => typeof value === \"number\")) return {\n\t\t\tok: false,\n\t\t\tmessage: \"Endpoint responded, but not with an OpenAI-compatible embeddings payload.\"\n\t\t};\n\t\tconst dimension = embedding.length;\n\t\tconst configuredDimension = typeof input.dimension === \"number\" && input.dimension > 0 ? input.dimension : null;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tdimension,\n\t\t\tmessage: configuredDimension && configuredDimension !== dimension ? `Embedding endpoint is working. Returned ${dimension} dimensions; the form has been updated to match.` : `Embedding endpoint is working. Returned ${dimension} dimensions.`,\n\t\t\tprovider: input.provider\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tmessage: error instanceof Error && error.name === \"TimeoutError\" ? \"Embedding request timed out after 10 seconds.\" : error instanceof Error ? `Embedding request failed: ${error.message}` : \"Embedding request failed.\"\n\t\t};\n\t}\n}\nasync function detectEmbeddingSettings(state) {\n\tconst detected = (await detectLocalProviders()).filter((provider) => provider.available && provider.url).sort(detectionPriority);\n\tfor (const provider of detected) {\n\t\tconst modelsResult = await fetchProviderModels(provider.provider, \"\", provider.url, state.homeDir);\n\t\tif (modelsResult.status !== \"ok\") continue;\n\t\tconst model = bestEmbeddingModel(provider.provider, modelsResult.models);\n\t\tif (!model) continue;\n\t\tconst endpoint = buildAkmEndpoint(provider.provider, provider.url, \"/embeddings\");\n\t\tconst probe = await testEmbeddingSettings({\n\t\t\tendpoint,\n\t\t\tmodel,\n\t\t\tprovider: provider.provider\n\t\t});\n\t\tif (!probe.ok) continue;\n\t\treturn {\n\t\t\tok: true,\n\t\t\tendpoint,\n\t\t\tmodel,\n\t\t\tprovider: provider.provider,\n\t\t\tdimension: probe.dimension,\n\t\t\tmessage: `Detected ${provider.provider} embedding model ${model}.`\n\t\t};\n\t}\n\treturn {\n\t\tok: false,\n\t\tmessage: \"No working local embedding endpoint was detected. Tried common runtimes such as Ollama, Docker Model Runner, and LM Studio.\"\n\t};\n}\n//#endregion\nexport { safeParseJsonObject as n, testEmbeddingSettings as r, detectEmbeddingSettings as t };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { j as authJsonPath } from './src-CS2sSYOR.js';
2
- import { g as getState } from './state-BRh7vs9j.js';
1
+ import { j as authJsonPath } from './src-BwQUi60U.js';
2
+ import { g as getState } from './state-Dm7U51xT.js';
3
3
  import { b as asRecord, c as asString, a as asNumber, e as asStringRecord, d as asStringArray } from './coercion-TNFJisCC.js';
4
- import { o as opencodeFetch } from './http-D0qKwTqb.js';
5
- import { g as getCurrentConfig } from './config-BV78mCrh.js';
4
+ import { o as opencodeFetch } from './http-jBNJXVHg.js';
5
+ import { g as getCurrentConfig } from './config-I5hb-W80.js';
6
6
  import { existsSync, readFileSync } from 'node:fs';
7
7
 
8
8
  //#region src/lib/server/opencode/catalog.ts
@@ -214,4 +214,4 @@ function asModelRecord(value) {
214
214
  }
215
215
 
216
216
  export { loadSetupProviderPage as a, loadProviderPage as l };
217
- //# sourceMappingURL=catalog-C9ClLZ62.js.map
217
+ //# sourceMappingURL=catalog-7z8dgrJF.js.map