@openpalm/ui 0.11.0-rc.10
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.
- package/README.md +160 -0
- package/build/.openpalm-ui-version +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css +1 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +1 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css +1 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css +1 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +1 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css +1 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.br +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js +5 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js +1 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js +1 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js +1 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js +1 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js +1 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js +2 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js +1 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js +1 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +18 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js +4 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js +1 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +15 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +2 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +1 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/banner.png +0 -0
- package/build/client/fu-128.png +0 -0
- package/build/client/fu.png +0 -0
- package/build/client/logo-128.png +0 -0
- package/build/client/logo.png +0 -0
- package/build/client/setup/wizard.css +1639 -0
- package/build/client/setup/wizard.css.br +0 -0
- package/build/client/setup/wizard.css.gz +0 -0
- package/build/client/wizard-128.png +0 -0
- package/build/client/wizard.png +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-TTdZdv8o.js +9 -0
- package/build/server/chunks/0-TTdZdv8o.js.map +1 -0
- package/build/server/chunks/1-XPMbcj69.js +9 -0
- package/build/server/chunks/1-XPMbcj69.js.map +1 -0
- package/build/server/chunks/2-C2y4ydWU.js +9 -0
- package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
- package/build/server/chunks/3-BgeGdVvT.js +23 -0
- package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
- package/build/server/chunks/4-v8u4eatk.js +9 -0
- package/build/server/chunks/4-v8u4eatk.js.map +1 -0
- package/build/server/chunks/5-BkUoZ2K4.js +9 -0
- package/build/server/chunks/5-BkUoZ2K4.js.map +1 -0
- package/build/server/chunks/6-Cep4AGS2.js +9 -0
- package/build/server/chunks/6-Cep4AGS2.js.map +1 -0
- package/build/server/chunks/7-DOEFGynd.js +9 -0
- package/build/server/chunks/7-DOEFGynd.js.map +1 -0
- package/build/server/chunks/8-EJHw3wqt.js +9 -0
- package/build/server/chunks/8-EJHw3wqt.js.map +1 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js +741 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js.map +1 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js +15 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +1 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js +60 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +1 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js +69 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js.map +1 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js +408 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js.map +1 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js +5540 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +1 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js +106 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js.map +1 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js +514 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js.map +1 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js +64 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js.map +1 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js +70 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js.map +1 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js +82 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js.map +1 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js +41 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js.map +1 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js +68 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js.map +1 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js +107 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js.map +1 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js +97 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js.map +1 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js +44 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js.map +1 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js +41 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js.map +1 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js +60 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js +33 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js +65 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js.map +1 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js +73 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js.map +1 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js +70 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js.map +1 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js +40 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js.map +1 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js +55 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js.map +1 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js +163 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js.map +1 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js +59 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js.map +1 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js +33 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js.map +1 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js +200 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js.map +1 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js +52 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js.map +1 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js +79 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js.map +1 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js +63 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js.map +1 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js +83 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js.map +1 -0
- package/build/server/chunks/_server.ts-CG409cWi.js +46 -0
- package/build/server/chunks/_server.ts-CG409cWi.js.map +1 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js +56 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js.map +1 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js +204 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js.map +1 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js +50 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js.map +1 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js +101 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js.map +1 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js +41 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js.map +1 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js +79 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js.map +1 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js +44 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js.map +1 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js +41 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js.map +1 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js +53 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js.map +1 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js +53 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js.map +1 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js +88 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js.map +1 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js +70 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js.map +1 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js +103 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js.map +1 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js +41 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js.map +1 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js +65 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js.map +1 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js +90 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js.map +1 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js +33 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js.map +1 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js +96 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js.map +1 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js +54 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js.map +1 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js +149 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js.map +1 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js +56 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js.map +1 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js +82 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js.map +1 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js +54 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js.map +1 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js +44 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js.map +1 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js +159 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js.map +1 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js +759 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js.map +1 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js +40 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js.map +1 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js +46 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js.map +1 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js +72 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js.map +1 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js +55 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js.map +1 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js +46 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js.map +1 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js +62 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js.map +1 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js +77 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js.map +1 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js +55 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js.map +1 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js +79 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js.map +1 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js +121 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js.map +1 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js +63 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js.map +1 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js +67 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js.map +1 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js +42 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js.map +1 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js +109 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js.map +1 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js +139 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js.map +1 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js +49 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js.map +1 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js +157 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js.map +1 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js +60 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js.map +1 -0
- package/build/server/chunks/_server.ts-yimewsjO.js +57 -0
- package/build/server/chunks/_server.ts-yimewsjO.js.map +1 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js +49 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js.map +1 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
- package/build/server/chunks/coercion-TNFJisCC.js +34 -0
- package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
- package/build/server/chunks/config-0LFudKuE.js +121 -0
- package/build/server/chunks/config-0LFudKuE.js.map +1 -0
- package/build/server/chunks/dev-DjANv7AF.js +4389 -0
- package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
- package/build/server/chunks/docker-B23w4kr6.js +20 -0
- package/build/server/chunks/docker-B23w4kr6.js.map +1 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js +340 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js.map +1 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js +16 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js.map +1 -0
- package/build/server/chunks/exports-D1quPX8S.js +124 -0
- package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
- package/build/server/chunks/helpers-CX6xRBmt.js +226 -0
- package/build/server/chunks/helpers-CX6xRBmt.js.map +1 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js +86 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
- package/build/server/chunks/http-VqOG8hyj.js +31 -0
- package/build/server/chunks/http-VqOG8hyj.js.map +1 -0
- package/build/server/chunks/internal-CeK24Lte.js +1544 -0
- package/build/server/chunks/internal-CeK24Lte.js.map +1 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js +529 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js.map +1 -0
- package/build/server/chunks/src-BkvQ5Uuf.js +14082 -0
- package/build/server/chunks/src-BkvQ5Uuf.js.map +1 -0
- package/build/server/chunks/state-D7JS-l_D.js +203 -0
- package/build/server/chunks/state-D7JS-l_D.js.map +1 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js +520 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +1 -0
- package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
- package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
- package/build/server/index.js +4389 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +584 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +68 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { g as getActiveEndpoint } from './endpoints-Drq_J-2Z.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse } from './helpers-CX6xRBmt.js';
|
|
3
|
+
import './src-BkvQ5Uuf.js';
|
|
4
|
+
import './chunk-CLZ62Ad-.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/admin/health/+server.ts
|
|
25
|
+
var GET = async (event) => {
|
|
26
|
+
const requestId = getRequestId(event);
|
|
27
|
+
const authError = requireAdmin(event, requestId);
|
|
28
|
+
if (authError) return authError;
|
|
29
|
+
const endpoint = getActiveEndpoint();
|
|
30
|
+
let opencode = false;
|
|
31
|
+
try {
|
|
32
|
+
const headers = {};
|
|
33
|
+
if (endpoint.password) {
|
|
34
|
+
const user = endpoint.username || "openpalm";
|
|
35
|
+
headers["authorization"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;
|
|
36
|
+
}
|
|
37
|
+
opencode = (await fetch(`${endpoint.url}/health`, {
|
|
38
|
+
headers,
|
|
39
|
+
signal: AbortSignal.timeout(2e3)
|
|
40
|
+
})).ok;
|
|
41
|
+
} catch {}
|
|
42
|
+
return jsonResponse(200, {
|
|
43
|
+
ok: true,
|
|
44
|
+
opencode,
|
|
45
|
+
endpoint: {
|
|
46
|
+
id: endpoint.id,
|
|
47
|
+
label: endpoint.label,
|
|
48
|
+
url: endpoint.url,
|
|
49
|
+
isDefault: endpoint.isDefault
|
|
50
|
+
}
|
|
51
|
+
}, requestId);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { GET };
|
|
55
|
+
//# sourceMappingURL=_server.ts-P4pmd9NX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-P4pmd9NX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/health/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/health/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tlet opencode = false;\n\ttry {\n\t\tconst headers = {};\n\t\tif (endpoint.password) {\n\t\t\tconst user = endpoint.username || \"openpalm\";\n\t\t\theaders[\"authorization\"] = `Basic ${btoa(`${user}:${endpoint.password}`)}`;\n\t\t}\n\t\topencode = (await fetch(`${endpoint.url}/health`, {\n\t\t\theaders,\n\t\t\tsignal: AbortSignal.timeout(2e3)\n\t\t})).ok;\n\t} catch {}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\topencode,\n\t\tendpoint: {\n\t\t\tid: endpoint.id,\n\t\t\tlabel: endpoint.label,\n\t\t\turl: endpoint.url,\n\t\t\tisDefault: endpoint.isDefault\n\t\t}\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE;AACrC,CAAC,IAAI,QAAQ,GAAG,KAAK;AACrB,CAAC,IAAI;AACL,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACzB,GAAG,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,IAAI,UAAU;AAC/C,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACpD,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC,EAAE,EAAE;AACR,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ,EAAE;AACZ,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE;AAClB,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK;AACxB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAG;AACpB,GAAG,SAAS,EAAE,QAAQ,CAAC;AACvB;AACA,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
+
import { i as authJsonPath } from './src-BkvQ5Uuf.js';
|
|
3
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
4
|
+
import { g as getOpenCodeClient } from './helpers-CX6xRBmt.js';
|
|
5
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
6
|
+
import './utils-BSRjJDrZ.js';
|
|
7
|
+
import './chunk-CLZ62Ad-.js';
|
|
8
|
+
import 'node:module';
|
|
9
|
+
import 'node:path';
|
|
10
|
+
import 'node:child_process';
|
|
11
|
+
import 'node:os';
|
|
12
|
+
import 'buffer';
|
|
13
|
+
import 'node:url';
|
|
14
|
+
import 'node:crypto';
|
|
15
|
+
import 'events';
|
|
16
|
+
import 'fs';
|
|
17
|
+
import 'node:events';
|
|
18
|
+
import 'node:stream';
|
|
19
|
+
import 'node:string_decoder';
|
|
20
|
+
import 'path';
|
|
21
|
+
import 'assert';
|
|
22
|
+
import 'zlib';
|
|
23
|
+
import 'node:assert';
|
|
24
|
+
import 'node:fs/promises';
|
|
25
|
+
|
|
26
|
+
//#region src/routes/api/setup/opencode/providers/+server.ts
|
|
27
|
+
function selectedModels() {
|
|
28
|
+
try {
|
|
29
|
+
const path = `${getState().configDir}/assistant/opencode.json`;
|
|
30
|
+
if (!existsSync(path)) return {};
|
|
31
|
+
const data = JSON.parse(readFileSync(path, "utf-8"));
|
|
32
|
+
return {
|
|
33
|
+
...typeof data.model === "string" && data.model ? { llm: data.model } : {},
|
|
34
|
+
...typeof data.small_model === "string" && data.small_model ? { small: data.small_model } : {}
|
|
35
|
+
};
|
|
36
|
+
} catch {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Providers that have credentials stored in OP_HOME auth.json (API key or OAuth). */
|
|
41
|
+
function authJsonConnected() {
|
|
42
|
+
try {
|
|
43
|
+
const path = authJsonPath(getState());
|
|
44
|
+
if (!existsSync(path)) return [];
|
|
45
|
+
const data = JSON.parse(readFileSync(path, "utf-8"));
|
|
46
|
+
return Object.keys(data ?? {});
|
|
47
|
+
} catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
var GET = async () => {
|
|
52
|
+
try {
|
|
53
|
+
const client = getOpenCodeClient();
|
|
54
|
+
if (!await client.isAvailable()) return json({
|
|
55
|
+
ok: true,
|
|
56
|
+
available: false,
|
|
57
|
+
providers: []
|
|
58
|
+
});
|
|
59
|
+
const [catalog, auth] = await Promise.all([client.proxy("/provider"), client.getProviderAuth()]);
|
|
60
|
+
const raw = catalog.ok ? catalog.data : {};
|
|
61
|
+
return json({
|
|
62
|
+
ok: true,
|
|
63
|
+
available: true,
|
|
64
|
+
providers: Array.isArray(raw.all) ? raw.all : [],
|
|
65
|
+
auth,
|
|
66
|
+
connected: Array.from(new Set([...raw.connected ?? [], ...authJsonConnected()])),
|
|
67
|
+
selectedModels: selectedModels()
|
|
68
|
+
});
|
|
69
|
+
} catch {
|
|
70
|
+
return json({
|
|
71
|
+
ok: true,
|
|
72
|
+
available: false,
|
|
73
|
+
providers: []
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { GET };
|
|
79
|
+
//# sourceMappingURL=_server.ts-UF_kxNaU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-UF_kxNaU.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { Et as authJsonPath } from \"../../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../../chunks/endpoints.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/api/setup/opencode/providers/+server.ts\nfunction selectedModels() {\n\ttry {\n\t\tconst path = `${getState().configDir}/assistant/opencode.json`;\n\t\tif (!existsSync(path)) return {};\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\treturn {\n\t\t\t...typeof data.model === \"string\" && data.model ? { llm: data.model } : {},\n\t\t\t...typeof data.small_model === \"string\" && data.small_model ? { small: data.small_model } : {}\n\t\t};\n\t} catch {\n\t\treturn {};\n\t}\n}\n/** Providers that have credentials stored in OP_HOME auth.json (API key or OAuth). */\nfunction authJsonConnected() {\n\ttry {\n\t\tconst path = authJsonPath(getState());\n\t\tif (!existsSync(path)) return [];\n\t\tconst data = JSON.parse(readFileSync(path, \"utf-8\"));\n\t\treturn Object.keys(data ?? {});\n\t} catch {\n\t\treturn [];\n\t}\n}\nvar GET = async () => {\n\ttry {\n\t\tconst client = getOpenCodeClient();\n\t\tif (!await client.isAvailable()) return json({\n\t\t\tok: true,\n\t\t\tavailable: false,\n\t\t\tproviders: []\n\t\t});\n\t\tconst [catalog, auth] = await Promise.all([client.proxy(\"/provider\"), client.getProviderAuth()]);\n\t\tconst raw = catalog.ok ? catalog.data : {};\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: true,\n\t\t\tproviders: Array.isArray(raw.all) ? raw.all : [],\n\t\t\tauth,\n\t\t\tconnected: Array.from(new Set([...raw.connected ?? [], ...authJsonConnected()])),\n\t\t\tselectedModels: selectedModels()\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: false,\n\t\t\tproviders: []\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACA,SAAS,cAAc,GAAG;AAC1B,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC;AAChE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;AAClC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtD,EAAE,OAAO;AACT,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;AAC7E,GAAG,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG;AAC/F,GAAG;AACH,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,EAAE;AACX,CAAC;AACD;AACA;AACA,SAAS,iBAAiB,GAAG;AAC7B,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AACvC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;AAClC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtD,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,EAAE;AACX,CAAC;AACD;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,iBAAiB,EAAE;AACpC,EAAE,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,EAAE,OAAO,IAAI,CAAC;AAC/C,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;AAClG,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE;AAC5C,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,IAAI;AAClB,GAAG,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE;AACnD,GAAG,IAAI;AACP,GAAG,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC;AACnF,GAAG,cAAc,EAAE,cAAc;AACjC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
+
import { aa as readStackEnv, ac as readStackSecretEnv, b as annotateAddonProfileAvailability, R as getAddonProfiles, Q as getAddonProfileSelection, a0 as listEnabledAddonIds } from './src-BkvQ5Uuf.js';
|
|
3
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
4
|
+
import { r as requireAdmin, d as getRequestId, f as getUiLoginPassword } from './helpers-CX6xRBmt.js';
|
|
5
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import './utils-BSRjJDrZ.js';
|
|
8
|
+
import './chunk-CLZ62Ad-.js';
|
|
9
|
+
import 'node:module';
|
|
10
|
+
import 'node:child_process';
|
|
11
|
+
import 'node:os';
|
|
12
|
+
import 'buffer';
|
|
13
|
+
import 'node:url';
|
|
14
|
+
import 'node:crypto';
|
|
15
|
+
import 'events';
|
|
16
|
+
import 'fs';
|
|
17
|
+
import 'node:events';
|
|
18
|
+
import 'node:stream';
|
|
19
|
+
import 'node:string_decoder';
|
|
20
|
+
import 'path';
|
|
21
|
+
import 'assert';
|
|
22
|
+
import 'zlib';
|
|
23
|
+
import 'node:assert';
|
|
24
|
+
import 'node:fs/promises';
|
|
25
|
+
|
|
26
|
+
//#region src/routes/api/setup/current-config/+server.ts
|
|
27
|
+
function readAkmConfig(configDir) {
|
|
28
|
+
const path = join(configDir, "akm", "config.json");
|
|
29
|
+
if (!existsSync(path)) return {};
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
32
|
+
} catch {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function deriveBaseUrl(endpoint) {
|
|
37
|
+
if (!endpoint) return "";
|
|
38
|
+
return endpoint.replace(/\/chat\/completions\/?$/, "").replace(/\/embeddings\/?$/, "").replace(/\/+$/, "");
|
|
39
|
+
}
|
|
40
|
+
var GET = async (event) => {
|
|
41
|
+
const authError = requireAdmin(event, getRequestId(event));
|
|
42
|
+
if (authError) return authError;
|
|
43
|
+
const state = getState();
|
|
44
|
+
const configured = getUiLoginPassword();
|
|
45
|
+
const env = readStackEnv(state.stackDir);
|
|
46
|
+
const secretEnv = readStackSecretEnv(state.stackDir);
|
|
47
|
+
const akm = readAkmConfig(state.configDir);
|
|
48
|
+
const voiceProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, "voice"));
|
|
49
|
+
const selectedVoiceProfile = getAddonProfileSelection(state.stackDir, "voice");
|
|
50
|
+
const ollamaProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, "ollama"));
|
|
51
|
+
const selectedOllamaProfile = getAddonProfileSelection(state.stackDir, "ollama");
|
|
52
|
+
const hostHome = process.env.HOME ?? process.env.USERPROFILE ?? "";
|
|
53
|
+
const hostAkm = !!hostHome && env.OP_AKM_STASH === `${hostHome}/akm` && env.OP_AKM_CONFIG === `${hostHome}/.config/akm`;
|
|
54
|
+
const meta = (envKey) => ({
|
|
55
|
+
envKey,
|
|
56
|
+
present: Boolean(secretEnv[envKey])
|
|
57
|
+
});
|
|
58
|
+
const discord = {};
|
|
59
|
+
for (const [field, envKey] of Object.entries({
|
|
60
|
+
botToken: "DISCORD_BOT_TOKEN",
|
|
61
|
+
applicationId: "DISCORD_APPLICATION_ID",
|
|
62
|
+
registerCommands: "DISCORD_REGISTER_COMMANDS",
|
|
63
|
+
allowedGuilds: "DISCORD_ALLOWED_GUILDS",
|
|
64
|
+
allowedRoles: "DISCORD_ALLOWED_ROLES",
|
|
65
|
+
allowedUsers: "DISCORD_ALLOWED_USERS",
|
|
66
|
+
blockedUsers: "DISCORD_BLOCKED_USERS"
|
|
67
|
+
})) if (secretEnv[envKey]) discord[field] = meta(envKey);
|
|
68
|
+
const slack = {};
|
|
69
|
+
for (const [field, envKey] of Object.entries({
|
|
70
|
+
slackBotToken: "SLACK_BOT_TOKEN",
|
|
71
|
+
slackAppToken: "SLACK_APP_TOKEN",
|
|
72
|
+
allowedChannels: "SLACK_ALLOWED_CHANNELS",
|
|
73
|
+
allowedUsers: "SLACK_ALLOWED_USERS",
|
|
74
|
+
blockedUsers: "SLACK_BLOCKED_USERS"
|
|
75
|
+
})) if (secretEnv[envKey]) slack[field] = meta(envKey);
|
|
76
|
+
const channelCredentials = {};
|
|
77
|
+
if (Object.keys(discord).length > 0) channelCredentials.discord = discord;
|
|
78
|
+
if (Object.keys(slack).length > 0) channelCredentials.slack = slack;
|
|
79
|
+
return json({
|
|
80
|
+
ok: true,
|
|
81
|
+
hasPassword: typeof configured === "string" && configured.length > 0,
|
|
82
|
+
imageTag: env.OP_IMAGE_TAG ?? "",
|
|
83
|
+
hostAkm,
|
|
84
|
+
llm: akm.llm ? {
|
|
85
|
+
provider: akm.llm.provider ?? "",
|
|
86
|
+
model: akm.llm.model ?? "",
|
|
87
|
+
baseUrl: deriveBaseUrl(akm.llm.endpoint)
|
|
88
|
+
} : null,
|
|
89
|
+
embedding: akm.embedding ? {
|
|
90
|
+
provider: akm.embedding.provider ?? "",
|
|
91
|
+
model: akm.embedding.model ?? "",
|
|
92
|
+
dims: akm.embedding.dimension ?? 0,
|
|
93
|
+
baseUrl: deriveBaseUrl(akm.embedding.endpoint)
|
|
94
|
+
} : null,
|
|
95
|
+
voice: {
|
|
96
|
+
tts: {
|
|
97
|
+
engine: env.OP_TTS_ENGINE ?? "",
|
|
98
|
+
baseURL: env.OP_TTS_BASE_URL ?? "",
|
|
99
|
+
model: env.OP_TTS_MODEL ?? "",
|
|
100
|
+
voice: env.OP_TTS_VOICE ?? ""
|
|
101
|
+
},
|
|
102
|
+
stt: {
|
|
103
|
+
engine: env.OP_STT_ENGINE ?? "",
|
|
104
|
+
baseURL: env.OP_STT_BASE_URL ?? "",
|
|
105
|
+
model: env.OP_STT_MODEL ?? "",
|
|
106
|
+
language: env.OP_STT_LANGUAGE ?? ""
|
|
107
|
+
},
|
|
108
|
+
profiles: voiceProfiles,
|
|
109
|
+
selectedProfile: selectedVoiceProfile
|
|
110
|
+
},
|
|
111
|
+
ollama: {
|
|
112
|
+
profiles: ollamaProfiles,
|
|
113
|
+
selectedProfile: selectedOllamaProfile
|
|
114
|
+
},
|
|
115
|
+
enabledAddons: listEnabledAddonIds(state.homeDir),
|
|
116
|
+
channelCredentials
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export { GET };
|
|
121
|
+
//# sourceMappingURL=_server.ts-b3mVtmkb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-b3mVtmkb.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/current-config/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { et as annotateAddonProfileAvailability, gt as readStackEnv, nt as getAddonProfileSelection, rt as getAddonProfiles, st as listEnabledAddonIds, vt as readStackSecretEnv } from \"../../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId, s as getUiLoginPassword } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/routes/api/setup/current-config/+server.ts\nfunction readAkmConfig(configDir) {\n\tconst path = join(configDir, \"akm\", \"config.json\");\n\tif (!existsSync(path)) return {};\n\ttry {\n\t\treturn JSON.parse(readFileSync(path, \"utf-8\"));\n\t} catch {\n\t\treturn {};\n\t}\n}\nfunction deriveBaseUrl(endpoint) {\n\tif (!endpoint) return \"\";\n\treturn endpoint.replace(/\\/chat\\/completions\\/?$/, \"\").replace(/\\/embeddings\\/?$/, \"\").replace(/\\/+$/, \"\");\n}\nvar GET = async (event) => {\n\tconst authError = requireAdmin(event, getRequestId(event));\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst configured = getUiLoginPassword();\n\tconst env = readStackEnv(state.stackDir);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\tconst akm = readAkmConfig(state.configDir);\n\tconst voiceProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"voice\"));\n\tconst selectedVoiceProfile = getAddonProfileSelection(state.stackDir, \"voice\");\n\tconst ollamaProfiles = await annotateAddonProfileAvailability(getAddonProfiles(state.homeDir, \"ollama\"));\n\tconst selectedOllamaProfile = getAddonProfileSelection(state.stackDir, \"ollama\");\n\tconst hostHome = process.env.HOME ?? process.env.USERPROFILE ?? \"\";\n\tconst hostAkm = !!hostHome && env.OP_AKM_STASH === `${hostHome}/akm` && env.OP_AKM_CONFIG === `${hostHome}/.config/akm`;\n\tconst meta = (envKey) => ({\n\t\tenvKey,\n\t\tpresent: Boolean(secretEnv[envKey])\n\t});\n\tconst discord = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tbotToken: \"DISCORD_BOT_TOKEN\",\n\t\tapplicationId: \"DISCORD_APPLICATION_ID\",\n\t\tregisterCommands: \"DISCORD_REGISTER_COMMANDS\",\n\t\tallowedGuilds: \"DISCORD_ALLOWED_GUILDS\",\n\t\tallowedRoles: \"DISCORD_ALLOWED_ROLES\",\n\t\tallowedUsers: \"DISCORD_ALLOWED_USERS\",\n\t\tblockedUsers: \"DISCORD_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) discord[field] = meta(envKey);\n\tconst slack = {};\n\tfor (const [field, envKey] of Object.entries({\n\t\tslackBotToken: \"SLACK_BOT_TOKEN\",\n\t\tslackAppToken: \"SLACK_APP_TOKEN\",\n\t\tallowedChannels: \"SLACK_ALLOWED_CHANNELS\",\n\t\tallowedUsers: \"SLACK_ALLOWED_USERS\",\n\t\tblockedUsers: \"SLACK_BLOCKED_USERS\"\n\t})) if (secretEnv[envKey]) slack[field] = meta(envKey);\n\tconst channelCredentials = {};\n\tif (Object.keys(discord).length > 0) channelCredentials.discord = discord;\n\tif (Object.keys(slack).length > 0) channelCredentials.slack = slack;\n\treturn json({\n\t\tok: true,\n\t\thasPassword: typeof configured === \"string\" && configured.length > 0,\n\t\timageTag: env.OP_IMAGE_TAG ?? \"\",\n\t\thostAkm,\n\t\tllm: akm.llm ? {\n\t\t\tprovider: akm.llm.provider ?? \"\",\n\t\t\tmodel: akm.llm.model ?? \"\",\n\t\t\tbaseUrl: deriveBaseUrl(akm.llm.endpoint)\n\t\t} : null,\n\t\tembedding: akm.embedding ? {\n\t\t\tprovider: akm.embedding.provider ?? \"\",\n\t\t\tmodel: akm.embedding.model ?? \"\",\n\t\t\tdims: akm.embedding.dimension ?? 0,\n\t\t\tbaseUrl: deriveBaseUrl(akm.embedding.endpoint)\n\t\t} : null,\n\t\tvoice: {\n\t\t\ttts: {\n\t\t\t\tengine: env.OP_TTS_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_TTS_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_TTS_MODEL ?? \"\",\n\t\t\t\tvoice: env.OP_TTS_VOICE ?? \"\"\n\t\t\t},\n\t\t\tstt: {\n\t\t\t\tengine: env.OP_STT_ENGINE ?? \"\",\n\t\t\t\tbaseURL: env.OP_STT_BASE_URL ?? \"\",\n\t\t\t\tmodel: env.OP_STT_MODEL ?? \"\",\n\t\t\t\tlanguage: env.OP_STT_LANGUAGE ?? \"\"\n\t\t\t},\n\t\t\tprofiles: voiceProfiles,\n\t\t\tselectedProfile: selectedVoiceProfile\n\t\t},\n\t\tollama: {\n\t\t\tprofiles: ollamaProfiles,\n\t\t\tselectedProfile: selectedOllamaProfile\n\t\t},\n\t\tenabledAddons: listEnabledAddonIds(state.homeDir),\n\t\tchannelCredentials\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { y as createLogger, m as checkDocker, o as composeDown, k as buildComposeOptions, e as applyUninstall } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, e as errorResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:child_process';
|
|
10
|
+
import 'node:os';
|
|
11
|
+
import 'buffer';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'events';
|
|
15
|
+
import 'fs';
|
|
16
|
+
import 'node:events';
|
|
17
|
+
import 'node:stream';
|
|
18
|
+
import 'node:string_decoder';
|
|
19
|
+
import 'path';
|
|
20
|
+
import 'assert';
|
|
21
|
+
import 'zlib';
|
|
22
|
+
import 'node:assert';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
|
|
25
|
+
//#region src/routes/admin/uninstall/+server.ts
|
|
26
|
+
var logger = createLogger("uninstall");
|
|
27
|
+
var POST = async (event) => {
|
|
28
|
+
const requestId = getRequestId(event);
|
|
29
|
+
logger.info("uninstall request received", { requestId });
|
|
30
|
+
const authError = requireAdmin(event, requestId);
|
|
31
|
+
if (authError) return authError;
|
|
32
|
+
return withSerialQueue("admin:uninstall", async () => {
|
|
33
|
+
try {
|
|
34
|
+
const state = getState();
|
|
35
|
+
const dockerCheck = await checkDocker();
|
|
36
|
+
if (dockerCheck.ok) await composeDown(buildComposeOptions(state));
|
|
37
|
+
logger.info("stopping containers and applying uninstall", {
|
|
38
|
+
requestId,
|
|
39
|
+
dockerAvailable: dockerCheck.ok
|
|
40
|
+
});
|
|
41
|
+
const result = await applyUninstall(state);
|
|
42
|
+
logger.info("uninstall completed", {
|
|
43
|
+
requestId,
|
|
44
|
+
stopped: result.stopped
|
|
45
|
+
});
|
|
46
|
+
return jsonResponse(200, {
|
|
47
|
+
ok: true,
|
|
48
|
+
...result,
|
|
49
|
+
dockerAvailable: dockerCheck.ok
|
|
50
|
+
}, requestId);
|
|
51
|
+
} catch (err) {
|
|
52
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
53
|
+
logger.error("uninstall failed", {
|
|
54
|
+
requestId,
|
|
55
|
+
error: msg
|
|
56
|
+
});
|
|
57
|
+
return errorResponse(500, "uninstall_failed", msg, {}, requestId);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export { POST };
|
|
63
|
+
//# sourceMappingURL=_server.ts-dhkEt2p6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-dhkEt2p6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/uninstall/_server.ts.js"],"sourcesContent":["import { D as composeDown, Nt as createLogger, T as checkDocker, w as buildComposeOptions, y as applyUninstall } from \"../../../../chunks/src.js\";\nimport { c as getState } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/uninstall/+server.ts\nvar logger = createLogger(\"uninstall\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"uninstall request received\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:uninstall\", async () => {\n\t\ttry {\n\t\t\tconst state = getState();\n\t\t\tconst dockerCheck = await checkDocker();\n\t\t\tif (dockerCheck.ok) await composeDown(buildComposeOptions(state));\n\t\t\tlogger.info(\"stopping containers and applying uninstall\", {\n\t\t\t\trequestId,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t});\n\t\t\tconst result = await applyUninstall(state);\n\t\t\tlogger.info(\"uninstall completed\", {\n\t\t\t\trequestId,\n\t\t\t\tstopped: result.stopped\n\t\t\t});\n\t\t\treturn jsonResponse(200, {\n\t\t\t\tok: true,\n\t\t\t\t...result,\n\t\t\t\tdockerAvailable: dockerCheck.ok\n\t\t\t}, requestId);\n\t\t} catch (err) {\n\t\t\tconst msg = err instanceof Error ? err.message : String(err);\n\t\t\tlogger.error(\"uninstall failed\", {\n\t\t\t\trequestId,\n\t\t\t\terror: msg\n\t\t\t});\n\t\t\treturn errorResponse(500, \"uninstall_failed\", msg, {}, requestId);\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC;AACnC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,iBAAiB,EAAE,YAAY;AACvD,EAAE,IAAI;AACN,GAAG,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC3B,GAAG,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AAC1C,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpE,GAAG,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;AAC7D,IAAI,SAAS;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,CAAC;AACL,GAAG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;AAC7C,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACtC,IAAI,SAAS;AACb,IAAI,OAAO,EAAE,MAAM,CAAC;AACpB,IAAI,CAAC;AACL,GAAG,OAAO,YAAY,CAAC,GAAG,EAAE;AAC5B,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,GAAG,MAAM;AACb,IAAI,eAAe,EAAE,WAAW,CAAC;AACjC,IAAI,EAAE,SAAS,CAAC;AAChB,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/D,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE;AACpC,IAAI,SAAS;AACb,IAAI,KAAK,EAAE;AACX,IAAI,CAAC;AACL,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACpE,EAAE;AACF,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { g as getActiveEndpoint, l as listEndpoints, v as validateEndpointUrl, a as addEndpoint } from './endpoints-Drq_J-2Z.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, w as withAdminBody, e as errorResponse } from './helpers-CX6xRBmt.js';
|
|
3
|
+
import './src-BkvQ5Uuf.js';
|
|
4
|
+
import './chunk-CLZ62Ad-.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/admin/endpoints/+server.ts
|
|
25
|
+
function publish(e) {
|
|
26
|
+
return {
|
|
27
|
+
id: e.id,
|
|
28
|
+
label: e.label,
|
|
29
|
+
url: e.url,
|
|
30
|
+
isDefault: e.isDefault,
|
|
31
|
+
hasPassword: Boolean(e.password)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
var GET = async (event) => {
|
|
35
|
+
const requestId = getRequestId(event);
|
|
36
|
+
const authError = requireAdmin(event, requestId);
|
|
37
|
+
if (authError) return authError;
|
|
38
|
+
return jsonResponse(200, {
|
|
39
|
+
endpoints: listEndpoints().map(publish),
|
|
40
|
+
activeId: publish(getActiveEndpoint()).id
|
|
41
|
+
}, requestId);
|
|
42
|
+
};
|
|
43
|
+
var POST = async (event) => withAdminBody(event, async ({ requestId, body }) => {
|
|
44
|
+
const label = typeof body.label === "string" ? body.label : "";
|
|
45
|
+
const url = typeof body.url === "string" ? body.url : "";
|
|
46
|
+
const password = typeof body.password === "string" && body.password.length > 0 ? body.password : void 0;
|
|
47
|
+
const urlCheck = validateEndpointUrl(url);
|
|
48
|
+
if (!urlCheck.ok) {
|
|
49
|
+
if (urlCheck.reason === "http_not_allowed") return errorResponse(400, "http_not_allowed", "Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.", {}, requestId);
|
|
50
|
+
return errorResponse(400, "invalid_endpoint", "URL must be a valid http(s) URL", {}, requestId);
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return jsonResponse(201, { endpoint: publish({
|
|
54
|
+
...addEndpoint({
|
|
55
|
+
label,
|
|
56
|
+
url: urlCheck.url,
|
|
57
|
+
password
|
|
58
|
+
}),
|
|
59
|
+
isDefault: false
|
|
60
|
+
}) }, requestId);
|
|
61
|
+
} catch (e) {
|
|
62
|
+
return errorResponse(400, "invalid_endpoint", e instanceof Error ? e.message : "failed to create endpoint", {}, requestId);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
export { GET, POST };
|
|
67
|
+
//# sourceMappingURL=_server.ts-eK_9jY-9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-eK_9jY-9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/_server.ts.js"],"sourcesContent":["import { i as listEndpoints, r as getActiveEndpoint, s as validateEndpointUrl, t as addEndpoint } from \"../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, p as withAdminBody } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/+server.ts\nfunction publish(e) {\n\treturn {\n\t\tid: e.id,\n\t\tlabel: e.label,\n\t\turl: e.url,\n\t\tisDefault: e.isDefault,\n\t\thasPassword: Boolean(e.password)\n\t};\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, {\n\t\tendpoints: listEndpoints().map(publish),\n\t\tactiveId: publish(getActiveEndpoint()).id\n\t}, requestId);\n};\nvar POST = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst label = typeof body.label === \"string\" ? body.label : \"\";\n\tconst url = typeof body.url === \"string\" ? body.url : \"\";\n\tconst password = typeof body.password === \"string\" && body.password.length > 0 ? body.password : void 0;\n\tconst urlCheck = validateEndpointUrl(url);\n\tif (!urlCheck.ok) {\n\t\tif (urlCheck.reason === \"http_not_allowed\") return errorResponse(400, \"http_not_allowed\", \"Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.\", {}, requestId);\n\t\treturn errorResponse(400, \"invalid_endpoint\", \"URL must be a valid http(s) URL\", {}, requestId);\n\t}\n\ttry {\n\t\treturn jsonResponse(201, { endpoint: publish({\n\t\t\t...addEndpoint({\n\t\t\t\tlabel,\n\t\t\t\turl: urlCheck.url,\n\t\t\t\tpassword\n\t\t\t}),\n\t\t\tisDefault: false\n\t\t}) }, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(400, \"invalid_endpoint\", e instanceof Error ? e.message : \"failed to create endpoint\", {}, requestId);\n\t}\n});\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE;AACV,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK;AAChB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG;AACZ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS;AACxB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ;AACjC,EAAE;AACF;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACzC,EAAE,EAAE,SAAS,CAAC;AACd;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAChF,CAAC,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;AAC/D,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE;AACzD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM;AACxG,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC;AAC1C,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACnB,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,gGAAgG,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5M,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC/C,GAAG,GAAG,WAAW,CAAC;AAClB,IAAI,KAAK;AACT,IAAI,GAAG,EAAE,QAAQ,CAAC,GAAG;AACrB,IAAI;AACJ,IAAI,CAAC;AACL,GAAG,SAAS,EAAE;AACd,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;AAClB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,2BAA2B,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5H,CAAC;AACD,CAAC;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
+
import { g as getOpenCodeClient } from './helpers-CX6xRBmt.js';
|
|
3
|
+
import './utils-BSRjJDrZ.js';
|
|
4
|
+
import './src-BkvQ5Uuf.js';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:path';
|
|
9
|
+
import 'node:child_process';
|
|
10
|
+
import 'node:os';
|
|
11
|
+
import 'buffer';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'node:crypto';
|
|
14
|
+
import 'events';
|
|
15
|
+
import 'fs';
|
|
16
|
+
import 'node:events';
|
|
17
|
+
import 'node:stream';
|
|
18
|
+
import 'node:string_decoder';
|
|
19
|
+
import 'path';
|
|
20
|
+
import 'assert';
|
|
21
|
+
import 'zlib';
|
|
22
|
+
import 'node:assert';
|
|
23
|
+
import 'node:fs/promises';
|
|
24
|
+
import './endpoints-Drq_J-2Z.js';
|
|
25
|
+
|
|
26
|
+
//#region src/routes/api/setup/opencode/status/+server.ts
|
|
27
|
+
var GET = async () => {
|
|
28
|
+
try {
|
|
29
|
+
return json({
|
|
30
|
+
ok: true,
|
|
31
|
+
available: await getOpenCodeClient().isAvailable()
|
|
32
|
+
});
|
|
33
|
+
} catch {
|
|
34
|
+
return json({
|
|
35
|
+
ok: true,
|
|
36
|
+
available: false
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { GET };
|
|
42
|
+
//# sourceMappingURL=_server.ts-fsEmx9mw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-fsEmx9mw.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/status/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: await getOpenCodeClient().isAvailable()\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tavailable: false\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,iBAAiB,EAAE,CAAC,WAAW;AACnD,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE;AACd,GAAG,CAAC;AACJ,CAAC;AACD;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { g as getActiveEndpoint } from './endpoints-Drq_J-2Z.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin } from './helpers-CX6xRBmt.js';
|
|
3
|
+
import './src-BkvQ5Uuf.js';
|
|
4
|
+
import './chunk-CLZ62Ad-.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import 'node:fs';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/proxy/assistant/[...path]/+server.ts
|
|
25
|
+
/**
|
|
26
|
+
* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.
|
|
27
|
+
*
|
|
28
|
+
* Auth: requires the operator's `op_session` cookie (cookie-only since
|
|
29
|
+
* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback
|
|
30
|
+
* was removed).
|
|
31
|
+
* Forwards the full request body and method unchanged.
|
|
32
|
+
* The target URL and per-endpoint Basic-auth password are resolved per-request
|
|
33
|
+
* from the active endpoint store, so switching endpoints in the UI takes
|
|
34
|
+
* effect immediately without restarting the server.
|
|
35
|
+
*
|
|
36
|
+
* Streaming: the upstream response body is forwarded as-is (no buffering) so
|
|
37
|
+
* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not
|
|
38
|
+
* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run
|
|
39
|
+
* for minutes. Instead the per-request AbortController is wired to the client
|
|
40
|
+
* disconnect signal (`event.request.signal`); when the browser aborts (tab
|
|
41
|
+
* close, navigation away), we propagate the abort to upstream.
|
|
42
|
+
*/
|
|
43
|
+
function buildForwardHeaders(incomingContentType, username, password) {
|
|
44
|
+
const headers = {};
|
|
45
|
+
if (incomingContentType) headers["content-type"] = incomingContentType;
|
|
46
|
+
if (password) headers["authorization"] = `Basic ${btoa(`${username || "openpalm"}:${password}`)}`;
|
|
47
|
+
return headers;
|
|
48
|
+
}
|
|
49
|
+
function buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {
|
|
50
|
+
const headers = new Headers();
|
|
51
|
+
headers.set("content-type", upstream.headers.get("content-type") ?? "application/json");
|
|
52
|
+
const cacheControl = upstream.headers.get("cache-control");
|
|
53
|
+
if (cacheControl) headers.set("cache-control", cacheControl);
|
|
54
|
+
const transferEncoding = upstream.headers.get("transfer-encoding");
|
|
55
|
+
if (transferEncoding) headers.set("transfer-encoding", transferEncoding);
|
|
56
|
+
headers.set("x-request-id", requestId);
|
|
57
|
+
headers.set("x-endpoint-id", endpointId);
|
|
58
|
+
headers.set("x-endpoint-label", encodeURIComponent(endpointLabel));
|
|
59
|
+
return headers;
|
|
60
|
+
}
|
|
61
|
+
var handler = async (event) => {
|
|
62
|
+
const requestId = getRequestId(event);
|
|
63
|
+
const authError = requireAdmin(event, requestId);
|
|
64
|
+
if (authError) return authError;
|
|
65
|
+
const endpoint = getActiveEndpoint();
|
|
66
|
+
const { path } = event.params;
|
|
67
|
+
const targetUrl = `${endpoint.url}/${path}${event.url.search}`;
|
|
68
|
+
const method = event.request.method;
|
|
69
|
+
const contentType = event.request.headers.get("content-type");
|
|
70
|
+
const body = method !== "GET" && method !== "HEAD" ? await event.request.arrayBuffer() : void 0;
|
|
71
|
+
const controller = new AbortController();
|
|
72
|
+
const onClientAbort = () => controller.abort();
|
|
73
|
+
event.request.signal.addEventListener("abort", onClientAbort, { once: true });
|
|
74
|
+
try {
|
|
75
|
+
const upstream = await fetch(targetUrl, {
|
|
76
|
+
method,
|
|
77
|
+
headers: buildForwardHeaders(contentType, endpoint.username, endpoint.password),
|
|
78
|
+
body,
|
|
79
|
+
signal: controller.signal
|
|
80
|
+
});
|
|
81
|
+
return new Response(upstream.body, {
|
|
82
|
+
status: upstream.status,
|
|
83
|
+
headers: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)
|
|
84
|
+
});
|
|
85
|
+
} catch (e) {
|
|
86
|
+
event.request.signal.removeEventListener("abort", onClientAbort);
|
|
87
|
+
console.warn("[proxy/assistant] Upstream request failed:", e);
|
|
88
|
+
return new Response(JSON.stringify({
|
|
89
|
+
error: "endpoint_unreachable",
|
|
90
|
+
message: `Assistant endpoint "${endpoint.label}" is not reachable`,
|
|
91
|
+
endpointId: endpoint.id,
|
|
92
|
+
endpointLabel: endpoint.label,
|
|
93
|
+
url: endpoint.url
|
|
94
|
+
}), {
|
|
95
|
+
status: 503,
|
|
96
|
+
headers: {
|
|
97
|
+
"content-type": "application/json",
|
|
98
|
+
"x-request-id": requestId
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var GET = handler;
|
|
104
|
+
var POST = handler;
|
|
105
|
+
var PUT = handler;
|
|
106
|
+
var DELETE = handler;
|
|
107
|
+
|
|
108
|
+
export { DELETE, GET, POST, PUT };
|
|
109
|
+
//# sourceMappingURL=_server.ts-l4CK3c4j.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-l4CK3c4j.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
|