@openpalm/ui 0.13.0-beta.2 → 0.13.0-beta.3
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/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js +1 -0
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js.br +2 -0
- package/build/client/_app/immutable/chunks/C3ad4Ajc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Be7qat4r.js → CItB5oU8.js} +2 -2
- package/build/client/_app/immutable/chunks/CItB5oU8.js.br +0 -0
- package/build/client/_app/immutable/chunks/CItB5oU8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{9mRSvTWj.js → DuFsBiCS.js} +1 -1
- package/build/client/_app/immutable/chunks/DuFsBiCS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuFsBiCS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BoOBAdGl.js → Gis7OmMK.js} +1 -1
- package/build/client/_app/immutable/chunks/Gis7OmMK.js.br +0 -0
- package/build/client/_app/immutable/chunks/Gis7OmMK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DSs95sLz.js → S17SDfo_.js} +1 -1
- package/build/client/_app/immutable/chunks/S17SDfo_.js.br +0 -0
- package/build/client/_app/immutable/chunks/S17SDfo_.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DZwy1Y3W.js → app.C4X372ym.js} +2 -2
- package/build/client/_app/immutable/entry/app.C4X372ym.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C4X372ym.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js +1 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js.br +0 -0
- package/build/client/_app/immutable/entry/start.ggMsTuLf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Bxihn5f1.js → 1.CAn1ptt2.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CAn1ptt2.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.CAn1ptt2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.BZ76_WLP.js → 10.3GZpnfRU.js} +1 -1
- package/build/client/_app/immutable/nodes/10.3GZpnfRU.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.3GZpnfRU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.Bzf3G5G0.js → 11.D1-UoUiI.js} +1 -1
- package/build/client/_app/immutable/nodes/11.D1-UoUiI.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D1-UoUiI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.D-CwW2PH.js → 4.6EwsExLl.js} +1 -1
- package/build/client/_app/immutable/nodes/4.6EwsExLl.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.6EwsExLl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.BbStivMI.js → 5.DLFettGd.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DLFettGd.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DLFettGd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BKVgKxKO.js → 6.inuW_1g7.js} +1 -1
- package/build/client/_app/immutable/nodes/6.inuW_1g7.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.inuW_1g7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.DuXt155R.js → 7.Dc4BVu5u.js} +1 -1
- package/build/client/_app/immutable/nodes/7.Dc4BVu5u.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Dc4BVu5u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.BdeFVi2a.js → 9.CJ5rBqR8.js} +1 -1
- package/build/client/_app/immutable/nodes/9.CJ5rBqR8.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CJ5rBqR8.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-C7zzjezl.js → 0-C44Ua1bY.js} +3 -3
- package/build/server/chunks/{0-C7zzjezl.js.map → 0-C44Ua1bY.js.map} +1 -1
- package/build/server/chunks/1-DPdXHBBi.js +9 -0
- package/build/server/chunks/{1-Ceq9WsUZ.js.map → 1-DPdXHBBi.js.map} +1 -1
- package/build/server/chunks/{10-DbLLQ-Uy.js → 10-B6ZAGGzR.js} +3 -3
- package/build/server/chunks/{10-DbLLQ-Uy.js.map → 10-B6ZAGGzR.js.map} +1 -1
- package/build/server/chunks/{11-Dryt5Piv.js → 11-Bi4ih8mU.js} +3 -3
- package/build/server/chunks/{11-Dryt5Piv.js.map → 11-Bi4ih8mU.js.map} +1 -1
- package/build/server/chunks/{3-CAH3EmhU.js → 3-DqhvOSLm.js} +6 -6
- package/build/server/chunks/{3-CAH3EmhU.js.map → 3-DqhvOSLm.js.map} +1 -1
- package/build/server/chunks/{4-DxmFWVQJ.js → 4-bICPXf8d.js} +3 -3
- package/build/server/chunks/{4-DxmFWVQJ.js.map → 4-bICPXf8d.js.map} +1 -1
- package/build/server/chunks/{5-CQ9cELI7.js → 5-pYxB3IGQ.js} +3 -3
- package/build/server/chunks/{5-CQ9cELI7.js.map → 5-pYxB3IGQ.js.map} +1 -1
- package/build/server/chunks/{6-B-hnmc7F.js → 6-2tNBfccH.js} +3 -3
- package/build/server/chunks/{6-B-hnmc7F.js.map → 6-2tNBfccH.js.map} +1 -1
- package/build/server/chunks/{7-BE6BzHsh.js → 7-IbStFnJM.js} +3 -3
- package/build/server/chunks/{7-BE6BzHsh.js.map → 7-IbStFnJM.js.map} +1 -1
- package/build/server/chunks/{9-BWzd_hmh.js → 9-PfezrnbG.js} +4 -4
- package/build/server/chunks/{9-BWzd_hmh.js.map → 9-PfezrnbG.js.map} +1 -1
- package/build/server/chunks/{ChatNavbar-BonHVqfi.js → ChatNavbar-f5OrMEL5.js} +5 -5
- package/build/server/chunks/{ChatNavbar-BonHVqfi.js.map → ChatNavbar-f5OrMEL5.js.map} +1 -1
- package/build/server/chunks/{IconServer-fOHYHe-O.js → IconServer-C0heXLme.js} +2 -2
- package/build/server/chunks/{IconServer-fOHYHe-O.js.map → IconServer-C0heXLme.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BXeh8wzh.js → _page.svelte-BXLl2Q4a.js} +3 -3
- package/build/server/chunks/{_page.svelte-BXeh8wzh.js.map → _page.svelte-BXLl2Q4a.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Bovrn7AQ.js → _page.svelte-BgKDQB1v.js} +3 -3
- package/build/server/chunks/{_page.svelte-Bovrn7AQ.js.map → _page.svelte-BgKDQB1v.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BWNjxN63.js → _page.svelte-Cqsoa84V.js} +7 -7
- package/build/server/chunks/{_page.svelte-BWNjxN63.js.map → _page.svelte-Cqsoa84V.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DkZsmNYc.js → _page.svelte-DV50Zgo7.js} +3 -3
- package/build/server/chunks/{_page.svelte-DkZsmNYc.js.map → _page.svelte-DV50Zgo7.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-LsoJ7E5M.js → _page.svelte-DpFvF_2S.js} +6 -6
- package/build/server/chunks/{_page.svelte-LsoJ7E5M.js.map → _page.svelte-DpFvF_2S.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-0Rf024eH.js → _page.svelte-MAzX_A0b.js} +4 -4
- package/build/server/chunks/{_page.svelte-0Rf024eH.js.map → _page.svelte-MAzX_A0b.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-COf36oAu.js → _page.svelte-fk6X6VPw.js} +7 -7
- package/build/server/chunks/{_page.svelte-COf36oAu.js.map → _page.svelte-fk6X6VPw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DE-c3Y5D.js → _server.ts-2o4Kzn8i.js} +7 -7
- package/build/server/chunks/{_server.ts-DE-c3Y5D.js.map → _server.ts-2o4Kzn8i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BKWx8K8U.js → _server.ts-6-piDAMf.js} +7 -7
- package/build/server/chunks/{_server.ts-BKWx8K8U.js.map → _server.ts-6-piDAMf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DQozxLn6.js → _server.ts-6BViNoJ6.js} +6 -6
- package/build/server/chunks/{_server.ts-DQozxLn6.js.map → _server.ts-6BViNoJ6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUDMOZOz.js → _server.ts-B-6OFzv-.js} +6 -6
- package/build/server/chunks/{_server.ts-BUDMOZOz.js.map → _server.ts-B-6OFzv-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CG60Cdqf.js → _server.ts-B2iTN8SC.js} +8 -8
- package/build/server/chunks/{_server.ts-CG60Cdqf.js.map → _server.ts-B2iTN8SC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CMAepV0J.js → _server.ts-BB6y3ZlT.js} +6 -6
- package/build/server/chunks/{_server.ts-CMAepV0J.js.map → _server.ts-BB6y3ZlT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dy65kWxL.js → _server.ts-BBxdJ3b2.js} +7 -7
- package/build/server/chunks/{_server.ts-Dy65kWxL.js.map → _server.ts-BBxdJ3b2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BhAp0vvt.js → _server.ts-BJ27moeF.js} +6 -6
- package/build/server/chunks/{_server.ts-BhAp0vvt.js.map → _server.ts-BJ27moeF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjjicBDy.js → _server.ts-BM6hefLc.js} +6 -6
- package/build/server/chunks/{_server.ts-BjjicBDy.js.map → _server.ts-BM6hefLc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BTPbwN92.js → _server.ts-BNQHTPJK.js} +6 -6
- package/build/server/chunks/{_server.ts-BTPbwN92.js.map → _server.ts-BNQHTPJK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xPuEhFJO.js → _server.ts-BNnRODmS.js} +7 -7
- package/build/server/chunks/{_server.ts-xPuEhFJO.js.map → _server.ts-BNnRODmS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BLn_cTkK.js → _server.ts-BQyuBKbf.js} +6 -6
- package/build/server/chunks/{_server.ts-BLn_cTkK.js.map → _server.ts-BQyuBKbf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJqSQny9.js → _server.ts-BQzhAVgc.js} +2 -2
- package/build/server/chunks/{_server.ts-DJqSQny9.js.map → _server.ts-BQzhAVgc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjD0Uf0U.js → _server.ts-BTey3b5e.js} +6 -6
- package/build/server/chunks/{_server.ts-BjD0Uf0U.js.map → _server.ts-BTey3b5e.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWO1Eoro.js → _server.ts-BWeAmxEz.js} +6 -6
- package/build/server/chunks/{_server.ts-BWO1Eoro.js.map → _server.ts-BWeAmxEz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COcv1puW.js → _server.ts-BageNPqU.js} +7 -7
- package/build/server/chunks/{_server.ts-COcv1puW.js.map → _server.ts-BageNPqU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHeSwA7p.js → _server.ts-BcsSKsVE.js} +6 -6
- package/build/server/chunks/{_server.ts-DHeSwA7p.js.map → _server.ts-BcsSKsVE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D-6mgHZB.js → _server.ts-Bd15KCCI.js} +6 -6
- package/build/server/chunks/{_server.ts-D-6mgHZB.js.map → _server.ts-Bd15KCCI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DdoJFQaX.js → _server.ts-BiGuckTs.js} +8 -8
- package/build/server/chunks/{_server.ts-DdoJFQaX.js.map → _server.ts-BiGuckTs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CcoaYeM8.js → _server.ts-BlCDDGQe.js} +6 -6
- package/build/server/chunks/{_server.ts-CcoaYeM8.js.map → _server.ts-BlCDDGQe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTQe-U35.js → _server.ts-Bsxn3ZEt.js} +6 -6
- package/build/server/chunks/{_server.ts-DTQe-U35.js.map → _server.ts-Bsxn3ZEt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CX_CwTW0.js → _server.ts-BtlVh8sp.js} +3 -3
- package/build/server/chunks/{_server.ts-CX_CwTW0.js.map → _server.ts-BtlVh8sp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ddqhnr_7.js → _server.ts-BunhH3W1.js} +6 -6
- package/build/server/chunks/{_server.ts-Ddqhnr_7.js.map → _server.ts-BunhH3W1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BR24J2uB.js → _server.ts-BwMkzx-i.js} +7 -7
- package/build/server/chunks/{_server.ts-BR24J2uB.js.map → _server.ts-BwMkzx-i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CnrWBkQ7.js → _server.ts-Bx0tx6Hd.js} +6 -6
- package/build/server/chunks/{_server.ts-CnrWBkQ7.js.map → _server.ts-Bx0tx6Hd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-6EuPIrt7.js → _server.ts-ByVaX_Hp.js} +6 -6
- package/build/server/chunks/{_server.ts-6EuPIrt7.js.map → _server.ts-ByVaX_Hp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-LokXM9hH.js → _server.ts-C-VVdGFH.js} +6 -6
- package/build/server/chunks/{_server.ts-LokXM9hH.js.map → _server.ts-C-VVdGFH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BARmSEZ2.js → _server.ts-C17zuPHB.js} +6 -6
- package/build/server/chunks/{_server.ts-BARmSEZ2.js.map → _server.ts-C17zuPHB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BVMpHE3G.js → _server.ts-C24KcaLY.js} +6 -6
- package/build/server/chunks/{_server.ts-BVMpHE3G.js.map → _server.ts-C24KcaLY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bi0rRbcw.js → _server.ts-C8Tvzew7.js} +2 -2
- package/build/server/chunks/{_server.ts-Bi0rRbcw.js.map → _server.ts-C8Tvzew7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-JO0zy17P.js → _server.ts-CA37rdjz.js} +6 -6
- package/build/server/chunks/{_server.ts-JO0zy17P.js.map → _server.ts-CA37rdjz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CS2LQKMb.js → _server.ts-CBv61dGN.js} +7 -7
- package/build/server/chunks/{_server.ts-CS2LQKMb.js.map → _server.ts-CBv61dGN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CjPhaG_g.js → _server.ts-CEgqNbg2.js} +7 -7
- package/build/server/chunks/{_server.ts-CjPhaG_g.js.map → _server.ts-CEgqNbg2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrGzrygC.js → _server.ts-CF6j3bbg.js} +6 -6
- package/build/server/chunks/{_server.ts-DrGzrygC.js.map → _server.ts-CF6j3bbg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B28SfXaZ.js → _server.ts-CFlF9O0n.js} +6 -6
- package/build/server/chunks/{_server.ts-B28SfXaZ.js.map → _server.ts-CFlF9O0n.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BA7wxHYg.js → _server.ts-CM8lR2Jk.js} +6 -6
- package/build/server/chunks/{_server.ts-BA7wxHYg.js.map → _server.ts-CM8lR2Jk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-6muCM4Nz.js → _server.ts-CMi1odxU.js} +6 -6
- package/build/server/chunks/{_server.ts-6muCM4Nz.js.map → _server.ts-CMi1odxU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DdocuErM.js → _server.ts-CPolXmaB.js} +7 -7
- package/build/server/chunks/{_server.ts-DdocuErM.js.map → _server.ts-CPolXmaB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BEaiuN8Q.js → _server.ts-CZ-P41xW.js} +6 -6
- package/build/server/chunks/{_server.ts-BEaiuN8Q.js.map → _server.ts-CZ-P41xW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BJv74_DI.js → _server.ts-Cc6blM9a.js} +6 -6
- package/build/server/chunks/{_server.ts-BJv74_DI.js.map → _server.ts-Cc6blM9a.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D6wuFDe4.js → _server.ts-CcFK2dxk.js} +6 -6
- package/build/server/chunks/{_server.ts-D6wuFDe4.js.map → _server.ts-CcFK2dxk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CnQ4hgIT.js → _server.ts-CfB1cDLU.js} +7 -7
- package/build/server/chunks/{_server.ts-CnQ4hgIT.js.map → _server.ts-CfB1cDLU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CGZizh2V.js → _server.ts-ChK8wuma.js} +6 -6
- package/build/server/chunks/{_server.ts-CGZizh2V.js.map → _server.ts-ChK8wuma.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CJVwtNhA.js → _server.ts-ClJrWUgt.js} +2 -2
- package/build/server/chunks/{_server.ts-CJVwtNhA.js.map → _server.ts-ClJrWUgt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ds62LEMU.js → _server.ts-CpMO1w5D.js} +8 -8
- package/build/server/chunks/{_server.ts-Ds62LEMU.js.map → _server.ts-CpMO1w5D.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DH3Uc_0m.js → _server.ts-CpwGXL04.js} +6 -6
- package/build/server/chunks/{_server.ts-DH3Uc_0m.js.map → _server.ts-CpwGXL04.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D9yQyMbZ.js → _server.ts-CrUHXfa7.js} +6 -6
- package/build/server/chunks/{_server.ts-D9yQyMbZ.js.map → _server.ts-CrUHXfa7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C83FzZfP.js → _server.ts-CtNaQ39q.js} +6 -6
- package/build/server/chunks/{_server.ts-C83FzZfP.js.map → _server.ts-CtNaQ39q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dy9l5NMO.js → _server.ts-Cu39Y3ON.js} +6 -6
- package/build/server/chunks/{_server.ts-Dy9l5NMO.js.map → _server.ts-Cu39Y3ON.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D7X0LmkL.js → _server.ts-CyHlj4Xc.js} +6 -6
- package/build/server/chunks/{_server.ts-D7X0LmkL.js.map → _server.ts-CyHlj4Xc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJCIu42O.js → _server.ts-CyMs8VXZ.js} +4 -4
- package/build/server/chunks/{_server.ts-DJCIu42O.js.map → _server.ts-CyMs8VXZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BA11l9Z1.js → _server.ts-CydVYzX1.js} +6 -6
- package/build/server/chunks/{_server.ts-BA11l9Z1.js.map → _server.ts-CydVYzX1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dj6nwJgl.js → _server.ts-CyiErd_B.js} +9 -9
- package/build/server/chunks/{_server.ts-Dj6nwJgl.js.map → _server.ts-CyiErd_B.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CspCDw2x.js → _server.ts-Czl57SUr.js} +6 -6
- package/build/server/chunks/{_server.ts-CspCDw2x.js.map → _server.ts-Czl57SUr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DM9EsKQc.js → _server.ts-D7I9KZ4H.js} +6 -6
- package/build/server/chunks/{_server.ts-DM9EsKQc.js.map → _server.ts-D7I9KZ4H.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D5F-pzp2.js → _server.ts-DDweV2eg.js} +6 -6
- package/build/server/chunks/{_server.ts-D5F-pzp2.js.map → _server.ts-DDweV2eg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CmUo0zla.js → _server.ts-DFq2AVjG.js} +6 -6
- package/build/server/chunks/{_server.ts-CmUo0zla.js.map → _server.ts-DFq2AVjG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQHkw9ni.js → _server.ts-DPJJQkZp.js} +6 -6
- package/build/server/chunks/{_server.ts-CQHkw9ni.js.map → _server.ts-DPJJQkZp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CCmsGl_u.js → _server.ts-DQFO2xa9.js} +6 -6
- package/build/server/chunks/{_server.ts-CCmsGl_u.js.map → _server.ts-DQFO2xa9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BRdjsMSd.js → _server.ts-DYS4PknE.js} +6 -6
- package/build/server/chunks/{_server.ts-BRdjsMSd.js.map → _server.ts-DYS4PknE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D-Rf8If2.js → _server.ts-DcBrsY-a.js} +8 -8
- package/build/server/chunks/{_server.ts-D-Rf8If2.js.map → _server.ts-DcBrsY-a.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C-tvKaFE.js → _server.ts-DcZIXa7_.js} +6 -6
- package/build/server/chunks/{_server.ts-C-tvKaFE.js.map → _server.ts-DcZIXa7_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BeP_sHqj.js → _server.ts-DdWIcyaa.js} +2 -2
- package/build/server/chunks/{_server.ts-BeP_sHqj.js.map → _server.ts-DdWIcyaa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CIv0zM75.js → _server.ts-DhZ0i-VZ.js} +7 -7
- package/build/server/chunks/{_server.ts-CIv0zM75.js.map → _server.ts-DhZ0i-VZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dcf84tjG.js → _server.ts-DiY7qGzB.js} +2 -2
- package/build/server/chunks/{_server.ts-Dcf84tjG.js.map → _server.ts-DiY7qGzB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CfuLncMW.js → _server.ts-DkWPvbVT.js} +6 -6
- package/build/server/chunks/{_server.ts-CfuLncMW.js.map → _server.ts-DkWPvbVT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DnczK3Pw.js → _server.ts-DmuQV3XR.js} +4 -4
- package/build/server/chunks/{_server.ts-DnczK3Pw.js.map → _server.ts-DmuQV3XR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DKYXeaKr.js → _server.ts-DprY8V8n.js} +6 -6
- package/build/server/chunks/{_server.ts-DKYXeaKr.js.map → _server.ts-DprY8V8n.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DsVbuYhj.js → _server.ts-Dr7DPWfx.js} +7 -7
- package/build/server/chunks/{_server.ts-DsVbuYhj.js.map → _server.ts-Dr7DPWfx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dl-Rn5Ku.js → _server.ts-DsRKY-Kc.js} +6 -6
- package/build/server/chunks/{_server.ts-Dl-Rn5Ku.js.map → _server.ts-DsRKY-Kc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8eCqXP6.js → _server.ts-DtY45qj6.js} +6 -6
- package/build/server/chunks/{_server.ts-C8eCqXP6.js.map → _server.ts-DtY45qj6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-2Z0JYuCr.js → _server.ts-DxbCMYot.js} +6 -6
- package/build/server/chunks/{_server.ts-2Z0JYuCr.js.map → _server.ts-DxbCMYot.js.map} +1 -1
- package/build/server/chunks/{_server.ts-42ZGRWhn.js → _server.ts-DzO2o8u_.js} +6 -6
- package/build/server/chunks/{_server.ts-42ZGRWhn.js.map → _server.ts-DzO2o8u_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DdHx6Xig.js → _server.ts-G80g1-Vi.js} +6 -6
- package/build/server/chunks/{_server.ts-DdHx6Xig.js.map → _server.ts-G80g1-Vi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-2-50j5S8.js → _server.ts-RjE7mkg4.js} +6 -6
- package/build/server/chunks/{_server.ts-2-50j5S8.js.map → _server.ts-RjE7mkg4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ba8xSIQn.js → _server.ts-SqpxZ5hM.js} +6 -6
- package/build/server/chunks/{_server.ts-Ba8xSIQn.js.map → _server.ts-SqpxZ5hM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DH343hlx.js → _server.ts-TecIejZG.js} +7 -7
- package/build/server/chunks/{_server.ts-DH343hlx.js.map → _server.ts-TecIejZG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BBewn2kP.js → _server.ts-UMlNzGum.js} +6 -6
- package/build/server/chunks/{_server.ts-BBewn2kP.js.map → _server.ts-UMlNzGum.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C9F005zM.js → _server.ts-WTL-RZDk.js} +6 -6
- package/build/server/chunks/{_server.ts-C9F005zM.js.map → _server.ts-WTL-RZDk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pRYFJihh.js → _server.ts-YQAFFkYo.js} +7 -7
- package/build/server/chunks/{_server.ts-pRYFJihh.js.map → _server.ts-YQAFFkYo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CncBUb14.js → _server.ts-ZkptKFXP.js} +6 -6
- package/build/server/chunks/{_server.ts-CncBUb14.js.map → _server.ts-ZkptKFXP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dq4RvC5F.js → _server.ts-opJkoWRS.js} +6 -6
- package/build/server/chunks/{_server.ts-Dq4RvC5F.js.map → _server.ts-opJkoWRS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BJrYBXpY.js → _server.ts-s_DZwJLK.js} +6 -6
- package/build/server/chunks/{_server.ts-BJrYBXpY.js.map → _server.ts-s_DZwJLK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BsPu8Fny.js → _server.ts-ukIYk-_Z.js} +6 -6
- package/build/server/chunks/{_server.ts-BsPu8Fny.js.map → _server.ts-ukIYk-_Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D7VWMcNm.js → _server.ts-vXf4p_i0.js} +7 -7
- package/build/server/chunks/{_server.ts-D7VWMcNm.js.map → _server.ts-vXf4p_i0.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-Cgg8lPxe.js → addon-helpers-CEjIrSBN.js} +3 -3
- package/build/server/chunks/{addon-helpers-Cgg8lPxe.js.map → addon-helpers-CEjIrSBN.js.map} +1 -1
- package/build/server/chunks/{akm-5HN45xWY.js → akm-rRfSaKvH.js} +2 -2
- package/build/server/chunks/{akm-5HN45xWY.js.map → akm-rRfSaKvH.js.map} +1 -1
- package/build/server/chunks/{catalog-7z8dgrJF.js → catalog-DMG_Bwji.js} +5 -5
- package/build/server/chunks/{catalog-7z8dgrJF.js.map → catalog-DMG_Bwji.js.map} +1 -1
- package/build/server/chunks/{client-D2lMniPd.js → client-BvFq2PRx.js} +2 -2
- package/build/server/chunks/{client-D2lMniPd.js.map → client-BvFq2PRx.js.map} +1 -1
- package/build/server/chunks/{compose-args2-BFdWixAZ.js → compose-args2-C39WGM9r.js} +2 -2
- package/build/server/chunks/compose-args2-C39WGM9r.js.map +1 -0
- package/build/server/chunks/{config-I5hb-W80.js → config-BndRz7Yl.js} +2 -2
- package/build/server/chunks/{config-I5hb-W80.js.map → config-BndRz7Yl.js.map} +1 -1
- package/build/server/chunks/{connections-api-NkotVLIl.js → connections-api-BvJpsZBj.js} +2 -2
- package/build/server/chunks/{connections-api-NkotVLIl.js.map → connections-api-BvJpsZBj.js.map} +1 -1
- package/build/server/chunks/{docker2-HZnACjh6.js → docker2-Ba2Whd9Y.js} +2 -2
- package/build/server/chunks/docker2-Ba2Whd9Y.js.map +1 -0
- package/build/server/chunks/{docker3-Dj9Pc_Pt.js → docker3-DhaO_Pxj.js} +2 -2
- package/build/server/chunks/{docker3-Dj9Pc_Pt.js.map → docker3-DhaO_Pxj.js.map} +1 -1
- package/build/server/chunks/{endpoints-B9ePqrMw.js → endpoints-CuL8lAcu.js} +3 -3
- package/build/server/chunks/{endpoints-B9ePqrMw.js.map → endpoints-CuL8lAcu.js.map} +1 -1
- package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
- package/build/server/chunks/{error.svelte-DGngrZ2V.js → error.svelte-C8Qx6FF6.js} +4 -4
- package/build/server/chunks/{error.svelte-DGngrZ2V.js.map → error.svelte-C8Qx6FF6.js.map} +1 -1
- package/build/server/chunks/{features-0lgyQreD.js → features-WsEodW5F.js} +3 -3
- package/build/server/chunks/{features-0lgyQreD.js.map → features-WsEodW5F.js.map} +1 -1
- package/build/server/chunks/{helpers-q4Ng8QTq.js → helpers-XmKveZFr.js} +4 -4
- package/build/server/chunks/{helpers-q4Ng8QTq.js.map → helpers-XmKveZFr.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BTXqUhpH.js → hooks.server-o4bkPFRD.js} +9 -9
- package/build/server/chunks/{hooks.server-BTXqUhpH.js.map → hooks.server-o4bkPFRD.js.map} +1 -1
- package/build/server/chunks/{http-jBNJXVHg.js → http-CL5QncYd.js} +2 -2
- package/build/server/chunks/{http-jBNJXVHg.js.map → http-CL5QncYd.js.map} +1 -1
- package/build/server/chunks/{internal-G-Uk-kCA.js → internal-D66tKQSe.js} +3 -3
- package/build/server/chunks/{internal-G-Uk-kCA.js.map → internal-D66tKQSe.js.map} +1 -1
- package/build/server/chunks/{landing-BR5KUuDz.js → landing-DvVXSE_x.js} +5 -5
- package/build/server/chunks/{landing-BR5KUuDz.js.map → landing-DvVXSE_x.js.map} +1 -1
- package/build/server/chunks/{paths-tzRSDsKc.js → paths-BpdOajoE.js} +2 -2
- package/build/server/chunks/{paths-tzRSDsKc.js.map → paths-BpdOajoE.js.map} +1 -1
- package/build/server/chunks/{session-cookie-qHDuQboc.js → session-cookie-B0Fc-L8S.js} +2 -2
- package/build/server/chunks/{session-cookie-qHDuQboc.js.map → session-cookie-B0Fc-L8S.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-DleJTifu.js → setup-deploy-BjJIt1Gf.js} +2 -2
- package/build/server/chunks/{setup-deploy-DleJTifu.js.map → setup-deploy-BjJIt1Gf.js.map} +1 -1
- package/build/server/chunks/{src-BwQUi60U.js → src-i2v6xhSC.js} +4 -4
- package/build/server/chunks/{src-BwQUi60U.js.map → src-i2v6xhSC.js.map} +1 -1
- package/build/server/chunks/{state-Dm7U51xT.js → state-fVG29xFj.js} +2 -2
- package/build/server/chunks/{state-Dm7U51xT.js.map → state-fVG29xFj.js.map} +1 -1
- package/build/server/chunks/{state2-BhKHITEo.js → state2-Dl7-d1h_.js} +2 -2
- package/build/server/chunks/{state2-BhKHITEo.js.map → state2-Dl7-d1h_.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +96 -96
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/chunks/9mRSvTWj.js.br +0 -0
- package/build/client/_app/immutable/chunks/9mRSvTWj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_Sgy7qx.js +0 -1
- package/build/client/_app/immutable/chunks/B_Sgy7qx.js.br +0 -2
- package/build/client/_app/immutable/chunks/B_Sgy7qx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Be7qat4r.js.br +0 -0
- package/build/client/_app/immutable/chunks/Be7qat4r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoOBAdGl.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoOBAdGl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSs95sLz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSs95sLz.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js +0 -1
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.br +0 -1
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BbStivMI.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BbStivMI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DuXt155R.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DuXt155R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.gz +0 -0
- package/build/server/chunks/1-Ceq9WsUZ.js +0 -9
- package/build/server/chunks/compose-args2-BFdWixAZ.js.map +0 -1
- package/build/server/chunks/docker2-HZnACjh6.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as json } from './exports-CcmcYU0M.js';
|
|
2
|
-
import { a1 as fetchProviderModels, aV as resolveOpenPalmHome } from './src-
|
|
2
|
+
import { a1 as fetchProviderModels, aV as resolveOpenPalmHome } from './src-i2v6xhSC.js';
|
|
3
3
|
import './utils-OXHIhUb5.js';
|
|
4
4
|
import './provider-constants-1s1k8kbj.js';
|
|
5
5
|
import './chunk-CLZ62Ad-.js';
|
|
@@ -53,4 +53,4 @@ var POST = async ({ params, request }) => {
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
export { POST };
|
|
56
|
-
//# sourceMappingURL=_server.ts-
|
|
56
|
+
//# sourceMappingURL=_server.ts-BQzhAVgc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BQzhAVgc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/models/_provider_/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { Tt as resolveOpenPalmHome } from \"../../../../../../chunks/compose-args.js\";\nimport { D as fetchProviderModels } from \"../../../../../../chunks/src.js\";\n//#region src/routes/api/setup/models/[provider]/+server.ts\nvar POST = async ({ params, request }) => {\n\tconst provider = decodeURIComponent(params.provider);\n\tlet body;\n\ttry {\n\t\tbody = await request.json();\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"invalid_json\",\n\t\t\tmessage: \"Request body must be valid JSON\"\n\t\t}, { status: 400 });\n\t}\n\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey : \"\";\n\tconst baseUrl = typeof body.baseUrl === \"string\" ? body.baseUrl : \"\";\n\ttry {\n\t\tconst result = await fetchProviderModels(provider, apiKey, baseUrl, resolveOpenPalmHome());\n\t\treturn json({\n\t\t\tok: result.status === \"ok\",\n\t\t\t...result\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"model_fetch_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC7B,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,cAAc;AACxB,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE;AAClE,CAAC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACrE,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC5F,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI;AAC7B,GAAG,GAAG;AACN,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,oBAAoB;AAC9B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-CcmcYU0M.js';
|
|
2
|
-
import { aJ as readVersions, aA as readPinnedVersions, ay as readChannelPreference, ab as getRunningImages, n as buildComposeOptions, at as parseEnvFile, S as SERVICE_VERSION_KEYS, b0 as stripVoiceVariantSuffix, a2 as formatForDisplay, bb as writeVersions, b5 as writeChannelPreference, ar as mergeEnvContent, D as DOCKER_IMAGE_NAMES, t as compareComparableVersions, P as PLATFORM_VERSION } from './src-
|
|
3
|
-
import { g as getState } from './state-
|
|
4
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse } from './helpers-
|
|
2
|
+
import { aJ as readVersions, aA as readPinnedVersions, ay as readChannelPreference, ab as getRunningImages, n as buildComposeOptions, at as parseEnvFile, S as SERVICE_VERSION_KEYS, b0 as stripVoiceVariantSuffix, a2 as formatForDisplay, bb as writeVersions, b5 as writeChannelPreference, ar as mergeEnvContent, D as DOCKER_IMAGE_NAMES, t as compareComparableVersions, P as PLATFORM_VERSION } from './src-i2v6xhSC.js';
|
|
3
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
4
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse } from './helpers-XmKveZFr.js';
|
|
5
5
|
import { existsSync, writeFileSync, readFileSync } from 'node:fs';
|
|
6
6
|
import './utils-OXHIhUb5.js';
|
|
7
7
|
import './provider-constants-1s1k8kbj.js';
|
|
@@ -23,8 +23,8 @@ import 'assert';
|
|
|
23
23
|
import 'zlib';
|
|
24
24
|
import 'node:assert';
|
|
25
25
|
import 'node:fs/promises';
|
|
26
|
-
import './endpoints-
|
|
27
|
-
import './features-
|
|
26
|
+
import './endpoints-CuL8lAcu.js';
|
|
27
|
+
import './features-WsEodW5F.js';
|
|
28
28
|
|
|
29
29
|
//#region src/routes/api/host/versions/+server.ts
|
|
30
30
|
/**
|
|
@@ -245,4 +245,4 @@ var PATCH = async (event) => {
|
|
|
245
245
|
};
|
|
246
246
|
|
|
247
247
|
export { GET, PATCH };
|
|
248
|
-
//# sourceMappingURL=_server.ts-
|
|
248
|
+
//# sourceMappingURL=_server.ts-BTey3b5e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BjD0Uf0U.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { B as readVersions, F as DOCKER_IMAGE_NAMES, H as writeChannelPreference, I as SERVICE_VERSION_KEYS, R as readChannelPreference, U as writeVersions, V as stripVoiceVariantSuffix, _t as formatForDisplay, gt as compareComparableVersions, ht as PLATFORM_VERSION, t as buildComposeOptions, z as readPinnedVersions } from \"../../../../../chunks/compose-args.js\";\nimport { F as mergeEnvContent, R as parseEnvFile, w as getRunningImages } from \"../../../../../chunks/docker.js\";\nimport \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, d as requireCapability, r as errorResponse, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\n//#region src/routes/api/host/versions/+server.ts\n/**\n* GET /api/host/versions — truthful version state (constitution §4.2, §5)\n* PATCH /api/host/versions — write pins to state file\n*\n* GET returns THREE distinct values per component (§5 / Phase 5):\n* running — the digest + tag the currently running container was CREATED FROM\n* (read from `docker inspect`, never from a pin file). Null when not running.\n* pinned — the explicit version lock from state/stack.state.env, or null = track latest.\n* Moving tags (\"latest\", \"next\") are normalized to null (they express channel\n* preference, not a lock).\n* available — the resolved latest version on the active channel (silent null on registry down).\n*\n* Backward compatibility for the mixed-version window (old UI + new API or vice versa):\n* - The legacy top-level `versions` field is preserved. Old UIs that read only\n* `body.versions[key]` continue to get the same string they always did (the stored\n* pin value / default). New UIs read `body.components[key].{running,pinned,available}`.\n* - Old UIs cannot see `running` (never could — it's new). They may show a stale pin\n* as \"current\", which was the pre-Phase-5 behaviour. That is acceptable for the\n* transition window; Phase 6 (UpdatesTab rebuild) is where the new shape is consumed.\n*\n* Registry-down asymmetry (§4, compliance G2):\n* Background \"available?\" resolution degrades SILENTLY — a registry outage just\n* leaves `available` null; the stack keeps running what it has.\n* A user-pressed update that can't reach the registry FAILS LOUDLY (handled in\n* /api/host/update via applyStack pull-before-up + fatal pull failure).\n*\n* Voice variant on display (§4.2, compliance G3):\n* `running.tag` for the voice service will include the hardware suffix (e.g.\n* \"openpalm/voice:0.12.0-cpu\"). The `running.plainVersion` field strips it for\n* use in the pinning control. `pinned` never carries the suffix (compose adds it).\n*\n* Service-name vs image-name (§5 truthful state):\n* getRunningImages() keys its result by compose SERVICE name, not image name.\n* OP_PORTAL_VERSION images run under services discord/slack/guardian/api/chat/gateway.\n* OP_VOICE_VERSION may run as voice (cpu), voice-cuda, or voice-rocm.\n* We therefore scan runningImages by matching the image tag against the expected\n* image name, not by looking up the image name as a service name.\n*\n* upToDate field removed (§8, Phase-5-item-3):\n* Tag-string equality cannot determine up-to-date status (tags can point to different\n* digests). Phase 6 decides up-to-date by digest comparison after a pull. The route\n* surfaces running.digest, running.plainVersion, pinned, and available as separate\n* truthful values for Phase 6 to use.\n*/\nvar ALLOWED_KEYS = new Set([\n\t...SERVICE_VERSION_KEYS,\n\t\"OP_AUTO_UPDATE\",\n\t\"OP_CHANNEL\"\n]);\nfunction stackEnvPath() {\n\treturn `${getState().stashDir}/env/stack.env`;\n}\nvar STABLE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+)$/;\nvar PRERELEASE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+-(?:rc|alpha|beta|next)\\.\\d+)$/;\nvar VOICE_STABLE = /^v?(\\d+\\.\\d+\\.\\d+)-\\w+$/;\n/**\n* Read the Docker Hub namespace from the stack env (OP_IMAGE_NAMESPACE), defaulting to\n* \"openpalm\". Compose uses the same default: ${OP_IMAGE_NAMESPACE:-openpalm}.\n*/\nfunction imageNamespace(stackEnvContent) {\n\treturn (stackEnvContent.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim() || \"openpalm\";\n}\nasync function resolveDockerLatestSilent(image, namespace, channel) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${namespace}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(5e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER)?.[1];\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE)?.[1];\n\t\t\t\tif (voice) {\n\t\t\t\t\tcandidates.push(voice);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (channel === \"next\") {\n\t\t\t\tconst pre = tag.name.match(PRERELEASE_SEMVER)?.[1];\n\t\t\t\tif (pre) candidates.push(pre);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(compareComparableVersions).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar _availableCache = /* @__PURE__ */ new Map();\nvar CACHE_TTL_MS = 5 * 6e4;\nasync function resolveAvailableVersions(channel, namespace) {\n\tconst cacheKey = `${channel}:${namespace}`;\n\tconst cached = _availableCache.get(cacheKey);\n\tif (cached && Date.now() - cached.fetchedAt < CACHE_TTL_MS) return cached.versions;\n\tconst results = await Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\treturn [key, await resolveDockerLatestSilent(image, namespace, channel)];\n\t}));\n\tconst versions = {};\n\tfor (const [k, v] of results) versions[k] = v;\n\t_availableCache.set(cacheKey, {\n\t\tversions,\n\t\tfetchedAt: Date.now()\n\t});\n\treturn versions;\n}\n/**\n* Find the first running (non-not_installed) container whose image tag contains\n* the given image name (e.g. \"/portal:\" or \"/voice:\"). Returns null if none found.\n*/\nfunction findRunningByImage(runningImages, imageName) {\n\tconst needle = `/${imageName}:`;\n\tfor (const ri of Object.values(runningImages)) if (ri.state !== \"not_installed\" && ri.tag.includes(needle)) return ri;\n\treturn null;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:updates\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst versions = readVersions(state);\n\tconst pinned = readPinnedVersions(state);\n\tconst channel = readChannelPreference(state);\n\tlet runningImages = {};\n\ttry {\n\t\trunningImages = await getRunningImages(buildComposeOptions(state));\n\t} catch {}\n\tconst path = stackEnvPath();\n\tconst env = existsSync(path) ? parseEnvFile(path) : {};\n\tconst available = await resolveAvailableVersions(channel, imageNamespace(env));\n\tconst components = {};\n\tfor (const key of SERVICE_VERSION_KEYS) {\n\t\tconst imageName = DOCKER_IMAGE_NAMES[key];\n\t\tconst ri = findRunningByImage(runningImages, imageName);\n\t\tlet runningEntry = null;\n\t\tif (ri) {\n\t\t\tconst rawTag = ri.tag.split(\":\").pop() ?? ri.tag;\n\t\t\tconst plainVersion = key === \"OP_VOICE_VERSION\" ? stripVoiceVariantSuffix(rawTag) : rawTag;\n\t\t\trunningEntry = {\n\t\t\t\tdigest: ri.digest,\n\t\t\t\ttag: ri.tag,\n\t\t\t\tplainVersion,\n\t\t\t\thealthStatus: ri.healthStatus,\n\t\t\t\tcontainerState: ri.state\n\t\t\t};\n\t\t}\n\t\tcomponents[key] = {\n\t\t\trunning: runningEntry,\n\t\t\tpinned: pinned[key],\n\t\t\tavailable: available[key] ?? null\n\t\t};\n\t}\n\treturn json({\n\t\tcomponents,\n\t\tchannel,\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION),\n\t\tversions,\n\t\tautoUpdate: env.OP_AUTO_UPDATE !== \"false\"\n\t});\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:updates\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst versionUpdates = {};\n\tconst settingUpdates = {};\n\tlet channelUpdate;\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!ALLOWED_KEYS.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Value for ${key} must be a string`, {}, requestId);\n\t\tif (key === \"OP_CHANNEL\") channelUpdate = value;\n\t\telse if (key === \"OP_AUTO_UPDATE\") settingUpdates[key] = value;\n\t\telse versionUpdates[key] = value;\n\t}\n\tif (Object.keys(versionUpdates).length > 0) {\n\t\twriteVersions(state, versionUpdates);\n\t\t_availableCache.clear();\n\t}\n\tif (channelUpdate !== void 0) try {\n\t\twriteChannelPreference(state, channelUpdate);\n\t\t_availableCache.clear();\n\t} catch (e) {\n\t\treturn errorResponse(400, \"invalid_channel\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n\tif (Object.keys(settingUpdates).length > 0) {\n\t\tconst path = stackEnvPath();\n\t\twriteFileSync(path, mergeEnvContent(existsSync(path) ? readFileSync(path, \"utf-8\") : \"\", settingUpdates), { mode: 384 });\n\t}\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_server.ts-BTey3b5e.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { B as readVersions, F as DOCKER_IMAGE_NAMES, H as writeChannelPreference, I as SERVICE_VERSION_KEYS, R as readChannelPreference, U as writeVersions, V as stripVoiceVariantSuffix, _t as formatForDisplay, gt as compareComparableVersions, ht as PLATFORM_VERSION, t as buildComposeOptions, z as readPinnedVersions } from \"../../../../../chunks/compose-args.js\";\nimport { F as mergeEnvContent, R as parseEnvFile, w as getRunningImages } from \"../../../../../chunks/docker.js\";\nimport \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, d as requireCapability, r as errorResponse, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\n//#region src/routes/api/host/versions/+server.ts\n/**\n* GET /api/host/versions — truthful version state (constitution §4.2, §5)\n* PATCH /api/host/versions — write pins to state file\n*\n* GET returns THREE distinct values per component (§5 / Phase 5):\n* running — the digest + tag the currently running container was CREATED FROM\n* (read from `docker inspect`, never from a pin file). Null when not running.\n* pinned — the explicit version lock from state/stack.state.env, or null = track latest.\n* Moving tags (\"latest\", \"next\") are normalized to null (they express channel\n* preference, not a lock).\n* available — the resolved latest version on the active channel (silent null on registry down).\n*\n* Backward compatibility for the mixed-version window (old UI + new API or vice versa):\n* - The legacy top-level `versions` field is preserved. Old UIs that read only\n* `body.versions[key]` continue to get the same string they always did (the stored\n* pin value / default). New UIs read `body.components[key].{running,pinned,available}`.\n* - Old UIs cannot see `running` (never could — it's new). They may show a stale pin\n* as \"current\", which was the pre-Phase-5 behaviour. That is acceptable for the\n* transition window; Phase 6 (UpdatesTab rebuild) is where the new shape is consumed.\n*\n* Registry-down asymmetry (§4, compliance G2):\n* Background \"available?\" resolution degrades SILENTLY — a registry outage just\n* leaves `available` null; the stack keeps running what it has.\n* A user-pressed update that can't reach the registry FAILS LOUDLY (handled in\n* /api/host/update via applyStack pull-before-up + fatal pull failure).\n*\n* Voice variant on display (§4.2, compliance G3):\n* `running.tag` for the voice service will include the hardware suffix (e.g.\n* \"openpalm/voice:0.12.0-cpu\"). The `running.plainVersion` field strips it for\n* use in the pinning control. `pinned` never carries the suffix (compose adds it).\n*\n* Service-name vs image-name (§5 truthful state):\n* getRunningImages() keys its result by compose SERVICE name, not image name.\n* OP_PORTAL_VERSION images run under services discord/slack/guardian/api/chat/gateway.\n* OP_VOICE_VERSION may run as voice (cpu), voice-cuda, or voice-rocm.\n* We therefore scan runningImages by matching the image tag against the expected\n* image name, not by looking up the image name as a service name.\n*\n* upToDate field removed (§8, Phase-5-item-3):\n* Tag-string equality cannot determine up-to-date status (tags can point to different\n* digests). Phase 6 decides up-to-date by digest comparison after a pull. The route\n* surfaces running.digest, running.plainVersion, pinned, and available as separate\n* truthful values for Phase 6 to use.\n*/\nvar ALLOWED_KEYS = new Set([\n\t...SERVICE_VERSION_KEYS,\n\t\"OP_AUTO_UPDATE\",\n\t\"OP_CHANNEL\"\n]);\nfunction stackEnvPath() {\n\treturn `${getState().stashDir}/env/stack.env`;\n}\nvar STABLE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+)$/;\nvar PRERELEASE_SEMVER = /^v?(\\d+\\.\\d+\\.\\d+-(?:rc|alpha|beta|next)\\.\\d+)$/;\nvar VOICE_STABLE = /^v?(\\d+\\.\\d+\\.\\d+)-\\w+$/;\n/**\n* Read the Docker Hub namespace from the stack env (OP_IMAGE_NAMESPACE), defaulting to\n* \"openpalm\". Compose uses the same default: ${OP_IMAGE_NAMESPACE:-openpalm}.\n*/\nfunction imageNamespace(stackEnvContent) {\n\treturn (stackEnvContent.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim() || \"openpalm\";\n}\nasync function resolveDockerLatestSilent(image, namespace, channel) {\n\ttry {\n\t\tconst res = await fetch(`https://hub.docker.com/v2/repositories/${namespace}/${image}/tags?page_size=100&ordering=last_updated`, {\n\t\t\theaders: { Accept: \"application/json\" },\n\t\t\tsignal: AbortSignal.timeout(5e3)\n\t\t});\n\t\tif (!res.ok) return null;\n\t\tconst data = await res.json();\n\t\tconst isVoice = image === \"voice\";\n\t\tconst candidates = [];\n\t\tfor (const tag of data.results ?? []) {\n\t\t\tconst plain = tag.name.match(STABLE_SEMVER)?.[1];\n\t\t\tif (plain) {\n\t\t\t\tcandidates.push(plain);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (isVoice) {\n\t\t\t\tconst voice = tag.name.match(VOICE_STABLE)?.[1];\n\t\t\t\tif (voice) {\n\t\t\t\t\tcandidates.push(voice);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (channel === \"next\") {\n\t\t\t\tconst pre = tag.name.match(PRERELEASE_SEMVER)?.[1];\n\t\t\t\tif (pre) candidates.push(pre);\n\t\t\t}\n\t\t}\n\t\tif (candidates.length === 0) return null;\n\t\treturn candidates.sort(compareComparableVersions).at(-1) ?? null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nvar _availableCache = /* @__PURE__ */ new Map();\nvar CACHE_TTL_MS = 5 * 6e4;\nasync function resolveAvailableVersions(channel, namespace) {\n\tconst cacheKey = `${channel}:${namespace}`;\n\tconst cached = _availableCache.get(cacheKey);\n\tif (cached && Date.now() - cached.fetchedAt < CACHE_TTL_MS) return cached.versions;\n\tconst results = await Promise.all(SERVICE_VERSION_KEYS.map(async (key) => {\n\t\tconst image = DOCKER_IMAGE_NAMES[key];\n\t\treturn [key, await resolveDockerLatestSilent(image, namespace, channel)];\n\t}));\n\tconst versions = {};\n\tfor (const [k, v] of results) versions[k] = v;\n\t_availableCache.set(cacheKey, {\n\t\tversions,\n\t\tfetchedAt: Date.now()\n\t});\n\treturn versions;\n}\n/**\n* Find the first running (non-not_installed) container whose image tag contains\n* the given image name (e.g. \"/portal:\" or \"/voice:\"). Returns null if none found.\n*/\nfunction findRunningByImage(runningImages, imageName) {\n\tconst needle = `/${imageName}:`;\n\tfor (const ri of Object.values(runningImages)) if (ri.state !== \"not_installed\" && ri.tag.includes(needle)) return ri;\n\treturn null;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:updates\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst versions = readVersions(state);\n\tconst pinned = readPinnedVersions(state);\n\tconst channel = readChannelPreference(state);\n\tlet runningImages = {};\n\ttry {\n\t\trunningImages = await getRunningImages(buildComposeOptions(state));\n\t} catch {}\n\tconst path = stackEnvPath();\n\tconst env = existsSync(path) ? parseEnvFile(path) : {};\n\tconst available = await resolveAvailableVersions(channel, imageNamespace(env));\n\tconst components = {};\n\tfor (const key of SERVICE_VERSION_KEYS) {\n\t\tconst imageName = DOCKER_IMAGE_NAMES[key];\n\t\tconst ri = findRunningByImage(runningImages, imageName);\n\t\tlet runningEntry = null;\n\t\tif (ri) {\n\t\t\tconst rawTag = ri.tag.split(\":\").pop() ?? ri.tag;\n\t\t\tconst plainVersion = key === \"OP_VOICE_VERSION\" ? stripVoiceVariantSuffix(rawTag) : rawTag;\n\t\t\trunningEntry = {\n\t\t\t\tdigest: ri.digest,\n\t\t\t\ttag: ri.tag,\n\t\t\t\tplainVersion,\n\t\t\t\thealthStatus: ri.healthStatus,\n\t\t\t\tcontainerState: ri.state\n\t\t\t};\n\t\t}\n\t\tcomponents[key] = {\n\t\t\trunning: runningEntry,\n\t\t\tpinned: pinned[key],\n\t\t\tavailable: available[key] ?? null\n\t\t};\n\t}\n\treturn json({\n\t\tcomponents,\n\t\tchannel,\n\t\tplatformVersion: formatForDisplay(PLATFORM_VERSION),\n\t\tversions,\n\t\tautoUpdate: env.OP_AUTO_UPDATE !== \"false\"\n\t});\n};\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:updates\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_body\", \"Request body must be JSON\", {}, requestId);\n\t}\n\tconst versions = body?.versions;\n\tif (!versions || typeof versions !== \"object\") return errorResponse(400, \"invalid_body\", \"Body must include a versions object\", {}, requestId);\n\tconst versionUpdates = {};\n\tconst settingUpdates = {};\n\tlet channelUpdate;\n\tfor (const [key, value] of Object.entries(versions)) {\n\t\tif (!ALLOWED_KEYS.has(key)) return errorResponse(400, \"unknown_version_key\", `Unknown key: ${key}`, {}, requestId);\n\t\tif (typeof value !== \"string\") return errorResponse(400, \"invalid_version_value\", `Value for ${key} must be a string`, {}, requestId);\n\t\tif (key === \"OP_CHANNEL\") channelUpdate = value;\n\t\telse if (key === \"OP_AUTO_UPDATE\") settingUpdates[key] = value;\n\t\telse versionUpdates[key] = value;\n\t}\n\tif (Object.keys(versionUpdates).length > 0) {\n\t\twriteVersions(state, versionUpdates);\n\t\t_availableCache.clear();\n\t}\n\tif (channelUpdate !== void 0) try {\n\t\twriteChannelPreference(state, channelUpdate);\n\t\t_availableCache.clear();\n\t} catch (e) {\n\t\treturn errorResponse(400, \"invalid_channel\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n\tif (Object.keys(settingUpdates).length > 0) {\n\t\tconst path = stackEnvPath();\n\t\twriteFileSync(path, mergeEnvContent(existsSync(path) ? readFileSync(path, \"utf-8\") : \"\", settingUpdates), { mode: 384 });\n\t}\n\treturn json({\n\t\tok: true,\n\t\tversions: readVersions(state)\n\t});\n};\n//#endregion\nexport { GET, PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,IAAI,GAAG,CAAC;AAC3B,CAAC,GAAG,oBAAoB;AACxB,CAAC,gBAAgB;AACjB,CAAC;AACD,CAAC,CAAC;AACF,SAAS,YAAY,GAAG;AACxB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC9C;AACA,IAAI,aAAa,GAAG,qBAAqB;AACzC,IAAI,iBAAiB,GAAG,iDAAiD;AACzE,IAAI,YAAY,GAAG,yBAAyB;AAC5C;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,eAAe,EAAE;AACzC,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,EAAE,IAAI,EAAE,IAAI,UAAU;AACjH;AACA,eAAe,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;AACpE,CAAC,IAAI;AACL,EAAE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,uCAAuC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,yCAAyC,CAAC,EAAE;AACnI,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;AAC1C,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;AAClC,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,IAAI;AAC1B,EAAE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAC/B,EAAE,MAAM,OAAO,GAAG,KAAK,KAAK,OAAO;AACnC,EAAE,MAAM,UAAU,GAAG,EAAE;AACvB,EAAE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AACxC,GAAG,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACnD,GAAG,IAAI,KAAK,EAAE;AACd,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,IAAI;AACJ,GAAG;AACH,GAAG,IAAI,OAAO,EAAE;AAChB,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACnD,IAAI,IAAI,KAAK,EAAE;AACf,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI;AACJ,GAAG;AACH,GAAG,IAAI,OAAO,KAAK,MAAM,EAAE;AAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACtD,IAAI,IAAI,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACjC,GAAG;AACH,EAAE;AACF,EAAE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;AAC1C,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;AAClE,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI;AACb,CAAC;AACD;AACA,IAAI,eAAe,mBAAmB,IAAI,GAAG,EAAE;AAC/C,IAAI,YAAY,GAAG,CAAC,GAAG,GAAG;AAC1B,eAAe,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE;AAC5D,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,YAAY,EAAE,OAAO,MAAM,CAAC,QAAQ;AACnF,CAAC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK;AAC3E,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC;AACvC,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,yBAAyB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC,CAAC;AACJ,CAAC,MAAM,QAAQ,GAAG,EAAE;AACpB,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC/B,EAAE,QAAQ;AACV,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG;AACrB,EAAE,CAAC;AACH,CAAC,OAAO,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,aAAa,EAAE,SAAS,EAAE;AACtD,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAChC,CAAC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,eAAe,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE;AACtH,CAAC,OAAO,IAAI;AACZ;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,cAAc,EAAE,SAAS,CAAC;AAC5E,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,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;AACrC,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACzC,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAC7C,CAAC,IAAI,aAAa,GAAG,EAAE;AACvB,CAAC,IAAI;AACL,EAAE,aAAa,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC,MAAM,CAAC;AACV,CAAC,MAAM,IAAI,GAAG,YAAY,EAAE;AAC5B,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACvD,CAAC,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;AAC/E,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAC3C,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC;AACzD,EAAE,IAAI,YAAY,GAAG,IAAI;AACzB,EAAE,IAAI,EAAE,EAAE;AACV,GAAG,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG;AACnD,GAAG,MAAM,YAAY,GAAG,GAAG,KAAK,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM;AAC7F,GAAG,YAAY,GAAG;AAClB,IAAI,MAAM,EAAE,EAAE,CAAC,MAAM;AACrB,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG;AACf,IAAI,YAAY;AAChB,IAAI,YAAY,EAAE,EAAE,CAAC,YAAY;AACjC,IAAI,cAAc,EAAE,EAAE,CAAC;AACvB,IAAI;AACJ,EAAE;AACF,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG;AACpB,GAAG,OAAO,EAAE,YAAY;AACxB,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;AACtB,GAAG,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI;AAChC,GAAG;AACH,CAAC;AACD,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,EAAE,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;AACrD,EAAE,QAAQ;AACV,EAAE,UAAU,EAAE,GAAG,CAAC,cAAc,KAAK;AACrC,EAAE,CAAC;AACH;AACG,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK;AAC7B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,CAAC;AAC5E,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,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,EAAE,EAAE,SAAS,CAAC;AACnH,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ;AAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/I,CAAC,MAAM,cAAc,GAAG,EAAE;AAC1B,CAAC,MAAM,cAAc,GAAG,EAAE;AAC1B,CAAC,IAAI,aAAa;AAClB,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACtD,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACpH,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvI,EAAE,IAAI,GAAG,KAAK,YAAY,EAAE,aAAa,GAAG,KAAK;AACjD,OAAO,IAAI,GAAG,KAAK,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK;AAChE,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK;AAClC,CAAC;AACD,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,EAAE,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;AACtC,EAAE,eAAe,CAAC,KAAK,EAAE;AACzB,CAAC;AACD,CAAC,IAAI,aAAa,KAAK,MAAM,EAAE,IAAI;AACnC,EAAE,sBAAsB,CAAC,KAAK,EAAE,aAAa,CAAC;AAC9C,EAAE,eAAe,CAAC,KAAK,EAAE;AACzB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACzG,CAAC;AACD,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,EAAE,MAAM,IAAI,GAAG,YAAY,EAAE;AAC7B,EAAE,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1H,CAAC;AACD,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK;AAC9B,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { b4 as validateProposedState, G as createLogger } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-
|
|
1
|
+
import { b4 as validateProposedState, G as createLogger } from './src-i2v6xhSC.js';
|
|
2
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
3
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-XmKveZFr.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-
|
|
25
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './features-WsEodW5F.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/api/host/config/validate/+server.ts
|
|
28
28
|
var logger = createLogger("admin.config.validate");
|
|
@@ -42,4 +42,4 @@ var GET = async (event) => {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
export { GET };
|
|
45
|
-
//# sourceMappingURL=_server.ts-
|
|
45
|
+
//# sourceMappingURL=_server.ts-BWeAmxEz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BWeAmxEz.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/config/validate/_server.ts.js"],"sourcesContent":["import { Nt as createLogger } from \"../../../../../../chunks/compose-args.js\";\nimport { P as validateProposedState } 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/config/validate/+server.ts\nvar logger = createLogger(\"admin.config.validate\");\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\tconst result = await validateProposedState(getState());\n\tif (!result.ok) logger.warn(\"config validation failed\", {\n\t\trequestId,\n\t\terrors: result.errors,\n\t\twarnings: result.warnings\n\t});\n\treturn jsonResponse(200, result, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC;AAC/C,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,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,CAAC;AACvD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACzD,EAAE,SAAS;AACX,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACvB,EAAE,QAAQ,EAAE,MAAM,CAAC;AACnB,EAAE,CAAC;AACH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC;AAC5C;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-
|
|
2
|
-
import { s as sessionCookieHeader } from './session-cookie-
|
|
3
|
-
import './src-
|
|
1
|
+
import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-XmKveZFr.js';
|
|
2
|
+
import { s as sessionCookieHeader } from './session-cookie-B0Fc-L8S.js';
|
|
3
|
+
import './src-i2v6xhSC.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-
|
|
25
|
-
import './state-
|
|
26
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './state-fVG29xFj.js';
|
|
26
|
+
import './features-WsEodW5F.js';
|
|
27
27
|
|
|
28
28
|
//#region src/routes/api/auth/login/+server.ts
|
|
29
29
|
var POST = async (event) => {
|
|
@@ -54,4 +54,4 @@ var POST = async (event) => {
|
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
export { POST };
|
|
57
|
-
//# sourceMappingURL=_server.ts-
|
|
57
|
+
//# sourceMappingURL=_server.ts-BageNPqU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BageNPqU.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/auth/login/_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/login/+server.ts\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({\n\t\tok: true,\n\t\trole: \"admin\"\n\t}), {\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;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;AACpC,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE;AACR,EAAE,CAAC,EAAE;AACL,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,6 +1,6 @@
|
|
|
1
|
-
import { ax as readAutomationLogs } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ax as readAutomationLogs } from './src-i2v6xhSC.js';
|
|
2
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
3
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-XmKveZFr.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-
|
|
25
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './features-WsEodW5F.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/api/host/automations/[name]/log/+server.ts
|
|
28
28
|
var SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\.ya?ml)?$/;
|
|
@@ -52,4 +52,4 @@ var GET = async (event) => {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
export { GET };
|
|
55
|
-
//# sourceMappingURL=_server.ts-
|
|
55
|
+
//# sourceMappingURL=_server.ts-BcsSKsVE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BcsSKsVE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/automations/_name_/log/_server.ts.js"],"sourcesContent":["import { h as readAutomationLogs } 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\";\n//#region src/routes/api/host/automations/[name]/log/+server.ts\nvar SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\\.ya?ml)?$/;\nvar DEFAULT_LIMIT = 50;\nvar MAX_LIMIT = 500;\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:logs\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst rawName = event.params.name ?? \"\";\n\tconst taskId = rawName.replace(/\\.ya?ml$/, \"\");\n\tif (!SAFE_NAME_RE.test(rawName) || rawName.includes(\"..\") || rawName.includes(\"/\")) return errorResponse(400, \"invalid_input\", \"name must match /^[a-zA-Z0-9._-]+$/\", {}, requestId);\n\tconst limitParam = event.url.searchParams.get(\"limit\");\n\tlet limit = DEFAULT_LIMIT;\n\tif (limitParam !== null) {\n\t\tconst parsed = Number.parseInt(limitParam, 10);\n\t\tif (!Number.isFinite(parsed) || parsed <= 0) return errorResponse(400, \"invalid_input\", \"limit must be a positive integer\", {}, requestId);\n\t\tlimit = Math.min(parsed, MAX_LIMIT);\n\t}\n\treturn jsonResponse(200, {\n\t\tname: taskId,\n\t\tlines: readAutomationLogs(taskId, state.dataDir, limit)\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,+BAA+B;AAClD,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,SAAS,GAAG,GAAG;AAChB,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC;AACzE,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,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxC,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AACrL,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACvD,CAAC,IAAI,KAAK,GAAG,aAAa;AAC1B,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;AAChD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,kCAAkC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5I,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACrC,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK;AACxD,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { p as checkDocker, y as composePs, n as buildComposeOptions, o as buildManagedServices } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-
|
|
1
|
+
import { p as checkDocker, y as composePs, n as buildComposeOptions, o as buildManagedServices } from './src-i2v6xhSC.js';
|
|
2
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
3
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse } from './helpers-XmKveZFr.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-
|
|
25
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './features-WsEodW5F.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/api/host/containers/list/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -69,4 +69,4 @@ var GET = async (event) => {
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
export { GET };
|
|
72
|
-
//# sourceMappingURL=_server.ts-
|
|
72
|
+
//# sourceMappingURL=_server.ts-Bd15KCCI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Bd15KCCI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/containers/list/_server.ts.js"],"sourcesContent":["import { o as buildManagedServices, t as buildComposeOptions } from \"../../../../../../chunks/compose-args.js\";\nimport { i as checkDocker, m as composePs } from \"../../../../../../chunks/docker.js\";\nimport \"../../../../../../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/containers/list/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:containers\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tlet dockerContainers = null;\n\tif (dockerCheck.ok) {\n\t\tconst ps = await composePs(buildComposeOptions(state));\n\t\tif (ps.ok && ps.stdout.trim()) try {\n\t\t\tdockerContainers = ps.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[containers.list] Failed to parse docker compose ps output\", e);\n\t\t\tdockerContainers = null;\n\t\t}\n\t}\n\tif (dockerContainers) {\n\t\tconst dockerStateByService = /* @__PURE__ */ new Map();\n\t\tfor (const c of dockerContainers) if (c.Service && c.State) dockerStateByService.set(c.Service, c.State);\n\t\tfor (const service of Object.keys(state.services)) {\n\t\t\tconst dockerState = dockerStateByService.get(service);\n\t\t\tif (dockerState) state.services[service] = dockerState === \"running\" ? \"running\" : \"stopped\";\n\t\t}\n\t}\n\tlet managedServices;\n\ttry {\n\t\tmanagedServices = await buildManagedServices(state);\n\t} catch {\n\t\tmanagedServices = Object.keys(state.services);\n\t}\n\tconst managedSet = new Set(managedServices);\n\tconst containers = {};\n\tfor (const [name, status] of Object.entries(state.services)) if (managedSet.has(name)) containers[name] = status;\n\treturn jsonResponse(200, {\n\t\tcontainers,\n\t\tdockerContainers,\n\t\tdockerAvailable: dockerCheck.ok,\n\t\tmanagedServices\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;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,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AACrC,GAAG,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,CAAC;AAChF,GAAG,gBAAgB,GAAG,IAAI;AAC1B,EAAE;AACF,CAAC;AACD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AACxD,EAAE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;AAC1G,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,GAAG,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AACxD,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/F,EAAE;AACF,CAAC;AACD,CAAC,IAAI,eAAe;AACpB,CAAC,IAAI;AACL,EAAE,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,CAAC;AACD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AACjH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,UAAU;AACZ,EAAE,gBAAgB;AAClB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;AACjC,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-
|
|
2
|
-
import { u as unsetMainModel, s as setMainModel } from './config-
|
|
3
|
-
import './src-
|
|
1
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-XmKveZFr.js';
|
|
2
|
+
import { u as unsetMainModel, s as setMainModel } from './config-BndRz7Yl.js';
|
|
3
|
+
import './src-i2v6xhSC.js';
|
|
4
4
|
import './provider-constants-1s1k8kbj.js';
|
|
5
5
|
import './chunk-CLZ62Ad-.js';
|
|
6
6
|
import 'node:module';
|
|
@@ -21,11 +21,11 @@ import 'assert';
|
|
|
21
21
|
import 'zlib';
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
|
-
import './endpoints-
|
|
25
|
-
import './state-
|
|
26
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './state-fVG29xFj.js';
|
|
26
|
+
import './features-WsEodW5F.js';
|
|
27
27
|
import './coercion-TNFJisCC.js';
|
|
28
|
-
import './http-
|
|
28
|
+
import './http-CL5QncYd.js';
|
|
29
29
|
|
|
30
30
|
//#region src/routes/api/assistant/model/+server.ts
|
|
31
31
|
var GET = async (event) => {
|
|
@@ -86,4 +86,4 @@ var POST = async (event) => {
|
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
export { GET, POST };
|
|
89
|
-
//# sourceMappingURL=_server.ts-
|
|
89
|
+
//# sourceMappingURL=_server.ts-BiGuckTs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BiGuckTs.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/assistant/model/_server.ts.js"],"sourcesContent":["import { a as getRequestId, c as jsonResponse, d as requireCapability, i as getOpenCodeClient, l as parseJsonBody, r as errorResponse, s as jsonBodyError, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { i as setMainModel, s as unsetMainModel } from \"../../../../../chunks/config.js\";\n//#region src/routes/api/assistant/model/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"assistant-settings:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst config = await getOpenCodeClient().getConfig();\n\tif (!config) return errorResponse(503, \"opencode_unavailable\", \"OpenCode is not reachable\", {}, requestId);\n\treturn jsonResponse(200, {\n\t\tmodel: config.model ?? \"\",\n\t\tsmall_model: config.small_model ?? \"\"\n\t}, requestId);\n};\n/** Parse a \"provider/model\" string. Returns null if the input is empty or malformed. */\nfunction parseProviderModel(raw) {\n\tif (typeof raw !== \"string\") return null;\n\tconst trimmed = raw.trim();\n\tif (!trimmed) return null;\n\tconst slash = trimmed.indexOf(\"/\");\n\tif (slash <= 0 || slash === trimmed.length - 1) return null;\n\treturn {\n\t\tprovider: trimmed.slice(0, slash),\n\t\tmodel: trimmed.slice(slash + 1)\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"assistant-settings:write\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst hasModel = \"model\" in body;\n\tconst hasSmallModel = \"small_model\" in body;\n\tif (!hasModel && !hasSmallModel) return errorResponse(400, \"bad_request\", \"model or small_model is required\", {}, requestId);\n\ttry {\n\t\tif (hasModel) if (body.model === null || body.model === \"\") await unsetMainModel(\"model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"model\");\n\t\t}\n\t\tif (hasSmallModel) if (body.small_model === null || body.small_model === \"\") await unsetMainModel(\"small_model\");\n\t\telse {\n\t\t\tconst parsed = parseProviderModel(body.small_model);\n\t\t\tif (!parsed) return errorResponse(400, \"bad_request\", \"small_model must be in \\\"provider/model\\\" format\", {}, requestId);\n\t\t\tawait setMainModel(parsed.provider, parsed.model, \"small_model\");\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn(\"[opencode.model] Failed to persist model selection\", e);\n\t\treturn errorResponse(500, \"internal_error\", \"Failed to persist model selection\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ao as loadAutomations, a0 as executeAutomation, m as buildAkmEnv } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ao as loadAutomations, a0 as executeAutomation, m as buildAkmEnv } from './src-i2v6xhSC.js';
|
|
2
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
3
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-XmKveZFr.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-
|
|
25
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './features-WsEodW5F.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/api/host/automations/[name]/run/+server.ts
|
|
28
28
|
var SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\.ya?ml)?$/;
|
|
@@ -47,4 +47,4 @@ var POST = async (event) => {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
export { POST };
|
|
50
|
-
//# sourceMappingURL=_server.ts-
|
|
50
|
+
//# sourceMappingURL=_server.ts-BlCDDGQe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BlCDDGQe.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/host/automations/_name_/run/_server.ts.js"],"sourcesContent":["import { _ as buildAkmEnv, m as loadAutomations, p as executeAutomation } 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\";\n//#region src/routes/api/host/automations/[name]/run/+server.ts\nvar SAFE_NAME_RE = /^[a-zA-Z0-9._-]+(?:\\.ya?ml)?$/;\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"host:stack:write\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst rawName = event.params.name ?? \"\";\n\tconst taskId = rawName.replace(/\\.ya?ml$/, \"\");\n\tif (!SAFE_NAME_RE.test(rawName) || rawName.includes(\"..\") || rawName.includes(\"/\")) return errorResponse(400, \"invalid_input\", \"name must match /^[a-zA-Z0-9._-]+$/\", {}, requestId);\n\tif (!loadAutomations(state.stashDir).some((c) => c.name === taskId)) return errorResponse(404, \"not_found\", `Automation '${taskId}' is not installed.`, {}, requestId);\n\tconst result = await executeAutomation(taskId, buildAkmEnv(state));\n\treturn jsonResponse(202, {\n\t\tok: result.ok,\n\t\tname: taskId,\n\t\tstatus: result.status,\n\t\terror: result.error ?? null\n\t}, requestId);\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,YAAY,GAAG,+BAA+B;AAC/C,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC;AAChF,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,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACxC,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC/C,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,qCAAqC,EAAE,EAAE,EAAE,SAAS,CAAC;AACrL,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvK,CAAC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACf,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;AACvB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI;AACzB,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { b6 as writeFileAtomic } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse, w as withAdminBody, e as errorResponse } from './helpers-
|
|
1
|
+
import { b6 as writeFileAtomic } from './src-i2v6xhSC.js';
|
|
2
|
+
import { g as getState } from './state-fVG29xFj.js';
|
|
3
|
+
import { d as getRequestId, l as requireCapability, r as requireAdmin, k as jsonResponse, w as withAdminBody, e as errorResponse } from './helpers-XmKveZFr.js';
|
|
4
4
|
import { existsSync, readFileSync, mkdirSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import './provider-constants-1s1k8kbj.js';
|
|
@@ -21,8 +21,8 @@ import 'assert';
|
|
|
21
21
|
import 'zlib';
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
|
-
import './endpoints-
|
|
25
|
-
import './features-
|
|
24
|
+
import './endpoints-CuL8lAcu.js';
|
|
25
|
+
import './features-WsEodW5F.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/api/assistant/persona/+server.ts
|
|
28
28
|
/**
|
|
@@ -77,4 +77,4 @@ var PUT = async (event) => {
|
|
|
77
77
|
};
|
|
78
78
|
|
|
79
79
|
export { GET, PUT };
|
|
80
|
-
//# sourceMappingURL=_server.ts-
|
|
80
|
+
//# sourceMappingURL=_server.ts-Bsxn3ZEt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Bsxn3ZEt.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/assistant/persona/_server.ts.js"],"sourcesContent":["import { nt as writeFileAtomic } from \"../../../../../chunks/compose-args.js\";\nimport \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { a as getRequestId, c as jsonResponse, d as requireCapability, p as withAdminBody, r as errorResponse, u as requireAdmin } from \"../../../../../chunks/helpers.js\";\nimport { existsSync, mkdirSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n//#region src/routes/api/assistant/persona/+server.ts\n/**\n* GET/PUT /api/assistant/persona — the assistant-owned persona markdown\n* (plan ui-runtime-modes-plan.md Phase 4 step 2, §5.F, §6.4).\n*\n* The ASSISTANT-SCOPED half of the old /admin/assistant endpoint. Persona\n* lives in config/assistant/persona.md — one of the two read/write mounts the\n* assistant container keeps (plan §6.9) — so assistant-container mode CAN\n* edit it, while pwa-static (no assistant-settings capability) is refused\n* with 403 even for a valid admin session (plan §8.5).\n*/\nfunction personaPath(configDir) {\n\treturn join(configDir, \"assistant\", \"persona.md\");\n}\nfunction readPersona(configDir) {\n\tconst path = personaPath(configDir);\n\tif (!existsSync(path)) return \"\";\n\ttry {\n\t\treturn readFileSync(path, \"utf-8\");\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst capabilityError = requireCapability(event, \"assistant-settings:read\", requestId);\n\tif (capabilityError) return capabilityError;\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\treturn jsonResponse(200, {\n\t\tpersonaPath: \"config/assistant/persona.md\",\n\t\tpersonaContent: readPersona(getState().configDir)\n\t}, requestId);\n};\nvar PUT = async (event) => {\n\tconst capabilityError = requireCapability(event, \"assistant-settings:write\", getRequestId(event));\n\tif (capabilityError) return capabilityError;\n\treturn withAdminBody(event, async ({ requestId, body }) => {\n\t\tif (typeof body.personaContent !== \"string\") return errorResponse(400, \"bad_request\", \"personaContent must be a string\", {}, requestId);\n\t\tconst state = getState();\n\t\tconst path = personaPath(state.configDir);\n\t\tmkdirSync(join(state.configDir, \"assistant\"), { recursive: true });\n\t\tconst personaContent = body.personaContent.endsWith(\"\\n\") ? body.personaContent : `${body.personaContent}\\n`;\n\t\twriteFileAtomic(path, personaContent, 420);\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tpersonaPath: \"config/assistant/persona.md\",\n\t\t\tpersonaContent\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { GET, PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,SAAS,EAAE;AAChC,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;AAClD;AACA,SAAS,WAAW,CAAC,SAAS,EAAE;AAChC,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;AACpC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;AACjC,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AACpC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,EAAE;AACX,CAAC;AACD;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,yBAAyB,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AAC9C,CAAC,IAAI,MAAM,EAAE,OAAO,MAAM;AAC1B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,WAAW,EAAE,6BAA6B;AAC5C,EAAE,cAAc,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS;AAClD,EAAE,EAAE,SAAS,CAAC;AACd;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AAClG,CAAC,IAAI,eAAe,EAAE,OAAO,eAAe;AAC5C,CAAC,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAC5D,EAAE,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AACzI,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3C,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpE,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AAC9G,EAAE,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,WAAW,EAAE,6BAA6B;AAC7C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-CcmcYU0M.js';
|
|
2
|
-
import { c as computeServerRuntimeContext } from './features-
|
|
2
|
+
import { c as computeServerRuntimeContext } from './features-WsEodW5F.js';
|
|
3
3
|
import './utils-OXHIhUb5.js';
|
|
4
|
-
import './src-
|
|
4
|
+
import './src-i2v6xhSC.js';
|
|
5
5
|
import './provider-constants-1s1k8kbj.js';
|
|
6
6
|
import './chunk-CLZ62Ad-.js';
|
|
7
7
|
import 'node:module';
|
|
@@ -38,4 +38,4 @@ var GET = (event) => {
|
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
export { GET };
|
|
41
|
-
//# sourceMappingURL=_server.ts-
|
|
41
|
+
//# sourceMappingURL=_server.ts-BtlVh8sp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BtlVh8sp.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/runtime/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { t as computeServerRuntimeContext } from \"../../../../chunks/features.js\";\n//#region src/routes/api/runtime/+server.ts\n/**\n* GET /api/runtime — public runtime-context endpoint (plan\n* ui-runtime-modes-plan.md §6.4, issue #509).\n*\n* PUBLIC by design: no auth is consulted. The body is the ServerRuntimeContext\n* whose `version` field is the contract-version handshake remote/hosted\n* clients use to detect version skew before enabling features. It carries no\n* secrets — mode, capability names, versions, and route pointers only.\n*/\nvar GET = (event) => {\n\treturn json(computeServerRuntimeContext(event));\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,CAAC,KAAK,KAAK;AACrB,CAAC,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAChD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-CcmcYU0M.js';
|
|
2
|
-
import { r as resolveRequestLanding } from './landing-
|
|
2
|
+
import { r as resolveRequestLanding } from './landing-DvVXSE_x.js';
|
|
3
3
|
import './utils-OXHIhUb5.js';
|
|
4
|
-
import './src-
|
|
4
|
+
import './src-i2v6xhSC.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 './state-
|
|
26
|
-
import './endpoints-
|
|
27
|
-
import './features-
|
|
25
|
+
import './state-fVG29xFj.js';
|
|
26
|
+
import './endpoints-CuL8lAcu.js';
|
|
27
|
+
import './features-WsEodW5F.js';
|
|
28
28
|
import './runtime-context.svelte-C5zNEC6u.js';
|
|
29
29
|
|
|
30
30
|
//#region src/routes/api/runtime/landing/+server.ts
|
|
@@ -55,4 +55,4 @@ var GET = async (event) => {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
export { GET };
|
|
58
|
-
//# sourceMappingURL=_server.ts-
|
|
58
|
+
//# sourceMappingURL=_server.ts-BunhH3W1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BunhH3W1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/runtime/landing/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { r as resolveRequestLanding } from \"../../../../../chunks/landing.js\";\n//#region src/routes/api/runtime/landing/+server.ts\n/**\n* GET /api/runtime/landing — public landing-resolver endpoint (review\n* findings J2/J3, plan ui-runtime-modes-plan.md §6.5).\n*\n* PUBLIC by design (same posture as /api/setup/status and /api/runtime): no\n* auth is consulted. Wraps the SAME `resolveRequestLanding()` the host UI's\n* own hooks.server.ts navigation guard uses, so any external caller —\n* Electron's `resolveInitialUrl`, `openpalm app`/`openpalm admin`, a future\n* client — can ask \"where should a session land right now?\" without issuing\n* a document navigation and parsing a redirect.\n*\n* J2: this is what lets Electron's default surface reach the landing\n* matrix's recovery branches (installed_offline -> /host, installed_broken ->\n* /host?tab=diagnostics) instead of only ever seeing /setup or /chat via the\n* old /api/setup/status probe.\n* J3: nothing produces a 'pending' migration status yet, but\n* resolveRequestLanding already routes that to /attention — this endpoint\n* needs no changes when the first blocking migration lands.\n*\n* Cache-Control: no-store — a stale landing (e.g. cached across a stack\n* restart) would misroute a launcher into a dead surface.\n*/\nvar GET = async (event) => {\n\treturn json({ landing: await resolveRequestLanding(event) }, { headers: { \"cache-control\": \"no-store\" } });\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,CAAC;AAC3G;;;;"}
|