@openpalm/ui 0.12.7 → 0.12.11
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/assets/4.yeuiN53z.css +1 -0
- package/build/client/_app/immutable/assets/4.yeuiN53z.css.br +0 -0
- package/build/client/_app/immutable/assets/4.yeuiN53z.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CIARtob0.css +1 -0
- package/build/client/_app/immutable/assets/7.CIARtob0.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CIARtob0.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css +1 -0
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css +1 -0
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.br +0 -0
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B-sorx18.js +5 -0
- package/build/client/_app/immutable/chunks/B-sorx18.js.br +0 -0
- package/build/client/_app/immutable/chunks/B-sorx18.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLrfghFK.js +1 -0
- package/build/client/_app/immutable/chunks/CLrfghFK.js.br +2 -0
- package/build/client/_app/immutable/chunks/CLrfghFK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2kpcjIW.js +1 -0
- package/build/client/_app/immutable/chunks/D2kpcjIW.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2kpcjIW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dky5K2LB.js +3 -0
- package/build/client/_app/immutable/chunks/Dky5K2LB.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dky5K2LB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BzyHWA5G.js → vShalCpq.js} +2 -2
- package/build/client/_app/immutable/chunks/vShalCpq.js.br +0 -0
- package/build/client/_app/immutable/chunks/vShalCpq.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.B_UESbBc.js → app.ByrueOmB.js} +2 -2
- package/build/client/_app/immutable/entry/app.ByrueOmB.js.br +0 -0
- package/build/client/_app/immutable/entry/app.ByrueOmB.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CX3vfWZX.js +1 -0
- package/build/client/_app/immutable/entry/start.CX3vfWZX.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CX3vfWZX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.BPI9WMCM.js → 1.DjtG_D8w.js} +1 -1
- package/build/client/_app/immutable/nodes/1.DjtG_D8w.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.DjtG_D8w.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Q3NQORNR.js +133 -0
- package/build/client/_app/immutable/nodes/4.Q3NQORNR.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Q3NQORNR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.a01_QK-Y.js → 5.Gwr8UAQM.js} +1 -1
- package/build/client/_app/immutable/nodes/5.Gwr8UAQM.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.Gwr8UAQM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DiCmpX_E.js → 6.D3jTTLhO.js} +1 -1
- package/build/client/_app/immutable/nodes/6.D3jTTLhO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D3jTTLhO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BAsevRLv.js +2 -0
- package/build/client/_app/immutable/nodes/7.BAsevRLv.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BAsevRLv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.Ok0ArxPA.js → 8.Df9ktODJ.js} +1 -1
- package/build/client/_app/immutable/nodes/8.Df9ktODJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Df9ktODJ.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +2 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/1-C6FeFdMq.js +9 -0
- package/build/server/chunks/{1-BKKGpDL-.js.map → 1-C6FeFdMq.js.map} +1 -1
- package/build/server/chunks/{10-D03X_7-l.js → 10-dDPv2EXM.js} +5 -5
- package/build/server/chunks/{10-D03X_7-l.js.map → 10-dDPv2EXM.js.map} +1 -1
- package/build/server/chunks/4-DU6tKPKM.js +9 -0
- package/build/server/chunks/{4-DK624eV1.js.map → 4-DU6tKPKM.js.map} +1 -1
- package/build/server/chunks/5-DsanV5i-.js +9 -0
- package/build/server/chunks/{5-Dguhb8w9.js.map → 5-DsanV5i-.js.map} +1 -1
- package/build/server/chunks/6-BsuTHqJ7.js +9 -0
- package/build/server/chunks/{6-B2r3PAaV.js.map → 6-BsuTHqJ7.js.map} +1 -1
- package/build/server/chunks/7-D7OLEPBt.js +9 -0
- package/build/server/chunks/{7-BFJqpOL0.js.map → 7-D7OLEPBt.js.map} +1 -1
- package/build/server/chunks/{8-C5xuqVfE.js → 8-D4un8Wgv.js} +3 -3
- package/build/server/chunks/{8-C5xuqVfE.js.map → 8-D4un8Wgv.js.map} +1 -1
- package/build/server/chunks/{ChatMessage-BW8LVLk6.js → ChatMessage-D8BaN8A9.js} +3 -3
- package/build/server/chunks/{ChatMessage-BW8LVLk6.js.map → ChatMessage-D8BaN8A9.js.map} +1 -1
- package/build/server/chunks/{Navbar-DfPUzeK0.js → Navbar-Dhb8B-b0.js} +62 -88
- package/build/server/chunks/Navbar-Dhb8B-b0.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BZL7tih7.js → _page.svelte-Cte2R_w-.js} +6 -6
- package/build/server/chunks/{_page.svelte-BZL7tih7.js.map → _page.svelte-Cte2R_w-.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-iT7HjGI6.js → _page.svelte-DDPHWd78.js} +5 -5
- package/build/server/chunks/{_page.svelte-iT7HjGI6.js.map → _page.svelte-DDPHWd78.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-ClbKAMyo.js → _page.svelte-DXgMisrO.js} +5 -5
- package/build/server/chunks/{_page.svelte-ClbKAMyo.js.map → _page.svelte-DXgMisrO.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DNEC3f8D.js → _page.svelte-DlYG76L7.js} +76 -52
- package/build/server/chunks/_page.svelte-DlYG76L7.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DFzgmYgw.js → _page.svelte-RacdBHko.js} +3 -3
- package/build/server/chunks/{_page.svelte-DFzgmYgw.js.map → _page.svelte-RacdBHko.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVnLgY88.js → _server.ts--DpjQMoc.js} +5 -5
- package/build/server/chunks/{_server.ts-DVnLgY88.js.map → _server.ts--DpjQMoc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-_zcta9sI.js → _server.ts-0NV6JC1q.js} +5 -5
- package/build/server/chunks/{_server.ts-_zcta9sI.js.map → _server.ts-0NV6JC1q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CcAgwk38.js → _server.ts-3_HeE_vF.js} +8 -8
- package/build/server/chunks/_server.ts-3_HeE_vF.js.map +1 -0
- package/build/server/chunks/{_server.ts-DKaB5vC3.js → _server.ts-490ZXI8p.js} +2 -2
- package/build/server/chunks/{_server.ts-DKaB5vC3.js.map → _server.ts-490ZXI8p.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DT13Lylg.js → _server.ts-5Ws42wvy.js} +7 -7
- package/build/server/chunks/{_server.ts-DT13Lylg.js.map → _server.ts-5Ws42wvy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BVZsP2Zn.js → _server.ts-B-qcLr8p.js} +5 -5
- package/build/server/chunks/{_server.ts-BVZsP2Zn.js.map → _server.ts-B-qcLr8p.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Z0qgxs3B.js → _server.ts-B0fcbzv5.js} +5 -5
- package/build/server/chunks/{_server.ts-Z0qgxs3B.js.map → _server.ts-B0fcbzv5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C5U2sP0v.js → _server.ts-B1Mv6wb7.js} +5 -5
- package/build/server/chunks/{_server.ts-C5U2sP0v.js.map → _server.ts-B1Mv6wb7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DsAtWxIB.js → _server.ts-B1m6hKUq.js} +5 -5
- package/build/server/chunks/{_server.ts-DsAtWxIB.js.map → _server.ts-B1m6hKUq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DtksQCAE.js → _server.ts-BBSxI0YB.js} +5 -5
- package/build/server/chunks/{_server.ts-DtksQCAE.js.map → _server.ts-BBSxI0YB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bl-5dDM7.js → _server.ts-BF8CUHqs.js} +5 -5
- package/build/server/chunks/{_server.ts-Bl-5dDM7.js.map → _server.ts-BF8CUHqs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTAA1c4A.js → _server.ts-BJoXNNdu.js} +5 -5
- package/build/server/chunks/{_server.ts-DTAA1c4A.js.map → _server.ts-BJoXNNdu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClNRi7Fk.js → _server.ts-BKvWzuAS.js} +5 -5
- package/build/server/chunks/{_server.ts-ClNRi7Fk.js.map → _server.ts-BKvWzuAS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BoqzrIwT.js → _server.ts-BP_OtQ4W.js} +5 -5
- package/build/server/chunks/{_server.ts-BoqzrIwT.js.map → _server.ts-BP_OtQ4W.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DnMCLWoD.js → _server.ts-BXuVu79G.js} +5 -5
- package/build/server/chunks/{_server.ts-DnMCLWoD.js.map → _server.ts-BXuVu79G.js.map} +1 -1
- package/build/server/chunks/{_server.ts-caqg6Qpw.js → _server.ts-Bc7A8rzZ.js} +6 -6
- package/build/server/chunks/{_server.ts-caqg6Qpw.js.map → _server.ts-Bc7A8rzZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DO3iItjK.js → _server.ts-BgOid65q.js} +5 -5
- package/build/server/chunks/{_server.ts-DO3iItjK.js.map → _server.ts-BgOid65q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-PHq2fuFm.js → _server.ts-BgXeptFK.js} +5 -5
- package/build/server/chunks/{_server.ts-PHq2fuFm.js.map → _server.ts-BgXeptFK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ct6UMvxY.js → _server.ts-BhmcyUI0.js} +5 -5
- package/build/server/chunks/{_server.ts-Ct6UMvxY.js.map → _server.ts-BhmcyUI0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-bHy1WRna.js → _server.ts-BiivXvhc.js} +2 -2
- package/build/server/chunks/{_server.ts-bHy1WRna.js.map → _server.ts-BiivXvhc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dy8ob-Yi.js → _server.ts-BmmrJu7p.js} +5 -5
- package/build/server/chunks/{_server.ts-Dy8ob-Yi.js.map → _server.ts-BmmrJu7p.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DLik5y6z.js → _server.ts-BqJARU1X.js} +5 -5
- package/build/server/chunks/{_server.ts-DLik5y6z.js.map → _server.ts-BqJARU1X.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DxhcX_Kn.js → _server.ts-Br9fO2us.js} +6 -6
- package/build/server/chunks/{_server.ts-DxhcX_Kn.js.map → _server.ts-Br9fO2us.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B2a_UVfF.js → _server.ts-Bw7iK0pF.js} +5 -5
- package/build/server/chunks/{_server.ts-B2a_UVfF.js.map → _server.ts-Bw7iK0pF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DEBzl6wJ.js → _server.ts-BwdITGWm.js} +7 -7
- package/build/server/chunks/{_server.ts-DEBzl6wJ.js.map → _server.ts-BwdITGWm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BovpxaxI.js → _server.ts-Bxb-p7E3.js} +5 -5
- package/build/server/chunks/{_server.ts-BovpxaxI.js.map → _server.ts-Bxb-p7E3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CK_sC0WR.js → _server.ts-C-KIZoZe.js} +7 -7
- package/build/server/chunks/{_server.ts-CK_sC0WR.js.map → _server.ts-C-KIZoZe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BsoQb22J.js → _server.ts-C1aLT5Oq.js} +6 -6
- package/build/server/chunks/{_server.ts-BsoQb22J.js.map → _server.ts-C1aLT5Oq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BRbd1WB6.js → _server.ts-C1xh49dQ.js} +5 -5
- package/build/server/chunks/{_server.ts-BRbd1WB6.js.map → _server.ts-C1xh49dQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-LpU_EEPq.js → _server.ts-C4093Qyv.js} +6 -6
- package/build/server/chunks/{_server.ts-LpU_EEPq.js.map → _server.ts-C4093Qyv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BL1a7w8x.js → _server.ts-C5bLLzu2.js} +5 -5
- package/build/server/chunks/{_server.ts-BL1a7w8x.js.map → _server.ts-C5bLLzu2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dqtay2vV.js → _server.ts-C7E_JtbD.js} +5 -5
- package/build/server/chunks/{_server.ts-Dqtay2vV.js.map → _server.ts-C7E_JtbD.js.map} +1 -1
- package/build/server/chunks/{_server.ts--x_Ox5Lx.js → _server.ts-CBMkCJyi.js} +5 -5
- package/build/server/chunks/{_server.ts--x_Ox5Lx.js.map → _server.ts-CBMkCJyi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CBDQh3oB.js → _server.ts-CFHMk0p8.js} +5 -5
- package/build/server/chunks/{_server.ts-CBDQh3oB.js.map → _server.ts-CFHMk0p8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtRb0YG7.js → _server.ts-CGitsTJS.js} +5 -5
- package/build/server/chunks/{_server.ts-CtRb0YG7.js.map → _server.ts-CGitsTJS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BSkichZm.js → _server.ts-CGjfDzXX.js} +8 -8
- package/build/server/chunks/{_server.ts-BSkichZm.js.map → _server.ts-CGjfDzXX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BMl200pm.js → _server.ts-CJ7kiprZ.js} +6 -6
- package/build/server/chunks/{_server.ts-BMl200pm.js.map → _server.ts-CJ7kiprZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DKBQpj1z.js → _server.ts-CKJbhB_h.js} +6 -6
- package/build/server/chunks/{_server.ts-DKBQpj1z.js.map → _server.ts-CKJbhB_h.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVf1Ga8y.js → _server.ts-CTt3Xlpt.js} +5 -5
- package/build/server/chunks/{_server.ts-DVf1Ga8y.js.map → _server.ts-CTt3Xlpt.js.map} +1 -1
- package/build/server/chunks/{_server.ts--3dXbe7F.js → _server.ts-CVjHePJ7.js} +6 -6
- package/build/server/chunks/{_server.ts--3dXbe7F.js.map → _server.ts-CVjHePJ7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BHQdT49p.js → _server.ts-CYsRQTaO.js} +7 -6
- package/build/server/chunks/{_server.ts-BHQdT49p.js.map → _server.ts-CYsRQTaO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYg436Zy.js → _server.ts-Cd9JwMMp.js} +5 -5
- package/build/server/chunks/{_server.ts-BYg436Zy.js.map → _server.ts-Cd9JwMMp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7Lid3rY.js → _server.ts-Cdox4kyp.js} +5 -5
- package/build/server/chunks/{_server.ts-C7Lid3rY.js.map → _server.ts-Cdox4kyp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BIqRqV5K.js → _server.ts-ChKSe-AA.js} +5 -5
- package/build/server/chunks/{_server.ts-BIqRqV5K.js.map → _server.ts-ChKSe-AA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTvJT_A4.js → _server.ts-Ci1Rfx8E.js} +6 -6
- package/build/server/chunks/{_server.ts-DTvJT_A4.js.map → _server.ts-Ci1Rfx8E.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClZQ8p0s.js → _server.ts-CimqxW93.js} +7 -7
- package/build/server/chunks/{_server.ts-ClZQ8p0s.js.map → _server.ts-CimqxW93.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BmUQoU9j.js → _server.ts-CtQpR-mK.js} +5 -5
- package/build/server/chunks/{_server.ts-BmUQoU9j.js.map → _server.ts-CtQpR-mK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CS_QhbpE.js → _server.ts-CuKWH2Y0.js} +7 -7
- package/build/server/chunks/{_server.ts-CS_QhbpE.js.map → _server.ts-CuKWH2Y0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BzCJGVxd.js → _server.ts-CvrHMIWH.js} +2 -2
- package/build/server/chunks/{_server.ts-BzCJGVxd.js.map → _server.ts-CvrHMIWH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-LYCSOMBR.js → _server.ts-Cx4HqW-Z.js} +2 -2
- package/build/server/chunks/{_server.ts-LYCSOMBR.js.map → _server.ts-Cx4HqW-Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CUg7JTi8.js → _server.ts-D5KbK1EO.js} +5 -5
- package/build/server/chunks/{_server.ts-CUg7JTi8.js.map → _server.ts-D5KbK1EO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYKn_W3C.js → _server.ts-D6VySx_-.js} +5 -5
- package/build/server/chunks/{_server.ts-BYKn_W3C.js.map → _server.ts-D6VySx_-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BLUGSTbb.js → _server.ts-D7-rYtEc.js} +5 -5
- package/build/server/chunks/{_server.ts-BLUGSTbb.js.map → _server.ts-D7-rYtEc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cv9SGZ8H.js → _server.ts-DM6lThdl.js} +5 -5
- package/build/server/chunks/{_server.ts-Cv9SGZ8H.js.map → _server.ts-DM6lThdl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DxXISWsG.js → _server.ts-DNA0OVFL.js} +5 -10
- package/build/server/chunks/_server.ts-DNA0OVFL.js.map +1 -0
- package/build/server/chunks/{_server.ts-C1iKmorm.js → _server.ts-DQUyafq3.js} +5 -5
- package/build/server/chunks/{_server.ts-C1iKmorm.js.map → _server.ts-DQUyafq3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-7sbxcOHi.js → _server.ts-DQcYv35V.js} +5 -5
- package/build/server/chunks/{_server.ts-7sbxcOHi.js.map → _server.ts-DQcYv35V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Do3Mzbgh.js → _server.ts-DRoP-Wv6.js} +5 -5
- package/build/server/chunks/{_server.ts-Do3Mzbgh.js.map → _server.ts-DRoP-Wv6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-VqtImWWs.js → _server.ts-DVx3AhsD.js} +5 -5
- package/build/server/chunks/{_server.ts-VqtImWWs.js.map → _server.ts-DVx3AhsD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQHUyJ88.js → _server.ts-DYDU5INq.js} +6 -6
- package/build/server/chunks/{_server.ts-CQHUyJ88.js.map → _server.ts-DYDU5INq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BXLfuAUx.js → _server.ts-DZW-Wp42.js} +5 -5
- package/build/server/chunks/{_server.ts-BXLfuAUx.js.map → _server.ts-DZW-Wp42.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Da_a2QPS.js → _server.ts-D_-EfIES.js} +5 -5
- package/build/server/chunks/{_server.ts-Da_a2QPS.js.map → _server.ts-D_-EfIES.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BZuh7f0g.js → _server.ts-DhQzFUF4.js} +6 -6
- package/build/server/chunks/{_server.ts-BZuh7f0g.js.map → _server.ts-DhQzFUF4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BBPPO8LA.js → _server.ts-DjN6yXTz.js} +5 -5
- package/build/server/chunks/{_server.ts-BBPPO8LA.js.map → _server.ts-DjN6yXTz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CDJb8u6T.js → _server.ts-DoIwXWVY.js} +4 -4
- package/build/server/chunks/{_server.ts-CDJb8u6T.js.map → _server.ts-DoIwXWVY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BmkKZuFw.js → _server.ts-DtWJo82n.js} +5 -5
- package/build/server/chunks/{_server.ts-BmkKZuFw.js.map → _server.ts-DtWJo82n.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bb6tIhp8.js → _server.ts-DuGAEea3.js} +2 -2
- package/build/server/chunks/{_server.ts-Bb6tIhp8.js.map → _server.ts-DuGAEea3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUewbX_m.js → _server.ts-Dw6QQ2RH.js} +6 -6
- package/build/server/chunks/{_server.ts-BUewbX_m.js.map → _server.ts-Dw6QQ2RH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DBNf4ax8.js → _server.ts-DzR4Osb4.js} +6 -6
- package/build/server/chunks/{_server.ts-DBNf4ax8.js.map → _server.ts-DzR4Osb4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYn_V6uH.js → _server.ts-FsMdP1jm.js} +4 -4
- package/build/server/chunks/{_server.ts-DYn_V6uH.js.map → _server.ts-FsMdP1jm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C-gAyI12.js → _server.ts-KsnGg8eu.js} +5 -5
- package/build/server/chunks/{_server.ts-C-gAyI12.js.map → _server.ts-KsnGg8eu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Zgs9trH1.js → _server.ts-LI1xk-ix.js} +5 -5
- package/build/server/chunks/{_server.ts-Zgs9trH1.js.map → _server.ts-LI1xk-ix.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BLeQoL81.js → _server.ts-MRFc0kGZ.js} +5 -5
- package/build/server/chunks/{_server.ts-BLeQoL81.js.map → _server.ts-MRFc0kGZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B4tsze4e.js → _server.ts-PMhO6XFZ.js} +5 -5
- package/build/server/chunks/{_server.ts-B4tsze4e.js.map → _server.ts-PMhO6XFZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-k-TQPRld.js → _server.ts-SjllsJLQ.js} +5 -5
- package/build/server/chunks/{_server.ts-k-TQPRld.js.map → _server.ts-SjllsJLQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DprQaM9h.js → _server.ts-UNA9HWlS.js} +5 -5
- package/build/server/chunks/{_server.ts-DprQaM9h.js.map → _server.ts-UNA9HWlS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZRNe4sB.js → _server.ts-VVG0ZLLE.js} +5 -5
- package/build/server/chunks/{_server.ts-CZRNe4sB.js.map → _server.ts-VVG0ZLLE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DefdeZ-L.js → _server.ts-WcxeSgme.js} +8 -8
- package/build/server/chunks/_server.ts-WcxeSgme.js.map +1 -0
- package/build/server/chunks/{_server.ts-Bxo6Ziog.js → _server.ts-YZjskwCt.js} +5 -5
- package/build/server/chunks/{_server.ts-Bxo6Ziog.js.map → _server.ts-YZjskwCt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-cTKQhGdU.js → _server.ts-cEqTNUtc.js} +5 -5
- package/build/server/chunks/{_server.ts-cTKQhGdU.js.map → _server.ts-cEqTNUtc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Chpwcj2F.js → _server.ts-e5XtUvMC.js} +6 -6
- package/build/server/chunks/{_server.ts-Chpwcj2F.js.map → _server.ts-e5XtUvMC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-kHCwWhe3.js → _server.ts-fQQXFe9M.js} +5 -5
- package/build/server/chunks/{_server.ts-kHCwWhe3.js.map → _server.ts-fQQXFe9M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-jOZIah2P.js → _server.ts-pS7C2ggX.js} +5 -5
- package/build/server/chunks/{_server.ts-jOZIah2P.js.map → _server.ts-pS7C2ggX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DI4a5jXI.js → _server.ts-pxzUffWW.js} +5 -5
- package/build/server/chunks/{_server.ts-DI4a5jXI.js.map → _server.ts-pxzUffWW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cd7MsOvn.js → _server.ts-vHDbBa3o.js} +5 -5
- package/build/server/chunks/{_server.ts-Cd7MsOvn.js.map → _server.ts-vHDbBa3o.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-B7HFQ3RL.js → addon-helpers-C0azaujt.js} +3 -3
- package/build/server/chunks/{addon-helpers-B7HFQ3RL.js.map → addon-helpers-C0azaujt.js.map} +1 -1
- package/build/server/chunks/{akm-CPP2Trqo.js → akm-BzlkftXb.js} +2 -2
- package/build/server/chunks/{akm-CPP2Trqo.js.map → akm-BzlkftXb.js.map} +1 -1
- package/build/server/chunks/{catalog-CD15uSXA.js → catalog-BjcS-9RD.js} +5 -5
- package/build/server/chunks/{catalog-CD15uSXA.js.map → catalog-BjcS-9RD.js.map} +1 -1
- package/build/server/chunks/{client-Dg5O4lJC.js → client-B8iuur7b.js} +3 -28
- package/build/server/chunks/{client-Dg5O4lJC.js.map → client-B8iuur7b.js.map} +1 -1
- package/build/server/chunks/{config-BsGMOYU-.js → config-36DEvVZH.js} +2 -2
- package/build/server/chunks/{config-BsGMOYU-.js.map → config-36DEvVZH.js.map} +1 -1
- package/build/server/chunks/{docker-CnfQsoh1.js → docker-Xky8KsOe.js} +2 -2
- package/build/server/chunks/{docker-CnfQsoh1.js.map → docker-Xky8KsOe.js.map} +1 -1
- package/build/server/chunks/{endpoints-TKIfBd1B.js → endpoints-DIQ-qrrL.js} +2 -2
- package/build/server/chunks/{endpoints-TKIfBd1B.js.map → endpoints-DIQ-qrrL.js.map} +1 -1
- package/build/server/chunks/{environment-CiTFe9kz.js → environment-B7NymDAL.js} +2 -2
- package/build/server/chunks/{environment-CiTFe9kz.js.map → environment-B7NymDAL.js.map} +1 -1
- package/build/server/chunks/{error.svelte-v0KZsl-y.js → error.svelte-BQiDKgW2.js} +4 -4
- package/build/server/chunks/{error.svelte-v0KZsl-y.js.map → error.svelte-BQiDKgW2.js.map} +1 -1
- package/build/server/chunks/{helpers-C5ooRtVL.js → helpers-TBhHA7BL.js} +3 -3
- package/build/server/chunks/{helpers-C5ooRtVL.js.map → helpers-TBhHA7BL.js.map} +1 -1
- package/build/server/chunks/{hooks.server-B3Votrxb.js → hooks.server-UooxK5Hq.js} +7 -7
- package/build/server/chunks/{hooks.server-B3Votrxb.js.map → hooks.server-UooxK5Hq.js.map} +1 -1
- package/build/server/chunks/{http-BKevFr5r.js → http-D1XmiUzn.js} +2 -2
- package/build/server/chunks/{http-BKevFr5r.js.map → http-D1XmiUzn.js.map} +1 -1
- package/build/server/chunks/{internal-_63MR9tl.js → internal-DYjrNs__.js} +3 -3
- package/build/server/chunks/{internal-_63MR9tl.js.map → internal-DYjrNs__.js.map} +1 -1
- package/build/server/chunks/{migration-status-DB5P8Vs9.js → migration-status-cTKFvPYd.js} +2 -2
- package/build/server/chunks/{migration-status-DB5P8Vs9.js.map → migration-status-cTKFvPYd.js.map} +1 -1
- package/build/server/chunks/{session-cookie-Bc9kWbaM.js → session-cookie-BJaAqVXS.js} +2 -2
- package/build/server/chunks/{session-cookie-Bc9kWbaM.js.map → session-cookie-BJaAqVXS.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-CghSd9qZ.js → setup-deploy-BcxKW3xV.js} +2 -2
- package/build/server/chunks/{setup-deploy-CghSd9qZ.js.map → setup-deploy-BcxKW3xV.js.map} +1 -1
- package/build/server/chunks/{src-DKq8HP_s.js → src-BrowG4c5.js} +130 -33
- package/build/server/chunks/src-BrowG4c5.js.map +1 -0
- package/build/server/chunks/{state-B1kC-_xl.js → state-uRAQa1hp.js} +2 -2
- package/build/server/chunks/{state-B1kC-_xl.js.map → state-uRAQa1hp.js.map} +1 -1
- package/build/server/chunks/{state2-DRC_p4SM.js → state2-C0_95QUq.js} +2 -2
- package/build/server/chunks/{state2-DRC_p4SM.js.map → state2-C0_95QUq.js.map} +1 -1
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +93 -93
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/4.DImH8cdy.css +0 -1
- package/build/client/_app/immutable/assets/4.DImH8cdy.css.br +0 -0
- package/build/client/_app/immutable/assets/4.DImH8cdy.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.DkzfFoKA.css +0 -1
- package/build/client/_app/immutable/assets/7.DkzfFoKA.css.br +0 -0
- package/build/client/_app/immutable/assets/7.DkzfFoKA.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css +0 -1
- package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Ctff5YI9.css.gz +0 -0
- package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css +0 -1
- package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.br +0 -0
- package/build/client/_app/immutable/assets/Navbar.CjL-3tw0.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BWVZ2TVD.js +0 -5
- package/build/client/_app/immutable/chunks/BWVZ2TVD.js.br +0 -0
- package/build/client/_app/immutable/chunks/BWVZ2TVD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzyHWA5G.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzyHWA5G.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dx77FoFU.js +0 -3
- package/build/client/_app/immutable/chunks/Dx77FoFU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dx77FoFU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/bH8yojp3.js +0 -1
- package/build/client/_app/immutable/chunks/bH8yojp3.js.br +0 -0
- package/build/client/_app/immutable/chunks/bH8yojp3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/qinjWOf_.js +0 -1
- package/build/client/_app/immutable/chunks/qinjWOf_.js.br +0 -2
- package/build/client/_app/immutable/chunks/qinjWOf_.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.B_UESbBc.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B_UESbBc.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BBf7r6Ed.js +0 -1
- package/build/client/_app/immutable/entry/start.BBf7r6Ed.js.br +0 -1
- package/build/client/_app/immutable/entry/start.BBf7r6Ed.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BPI9WMCM.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BPI9WMCM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.kga7H-qM.js +0 -134
- package/build/client/_app/immutable/nodes/4.kga7H-qM.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.kga7H-qM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.a01_QK-Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.a01_QK-Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DiCmpX_E.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DiCmpX_E.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BLmmfliC.js +0 -2
- package/build/client/_app/immutable/nodes/7.BLmmfliC.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BLmmfliC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Ok0ArxPA.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Ok0ArxPA.js.gz +0 -0
- package/build/server/chunks/1-BKKGpDL-.js +0 -9
- package/build/server/chunks/4-DK624eV1.js +0 -9
- package/build/server/chunks/5-Dguhb8w9.js +0 -9
- package/build/server/chunks/6-B2r3PAaV.js +0 -9
- package/build/server/chunks/7-BFJqpOL0.js +0 -9
- package/build/server/chunks/Navbar-DfPUzeK0.js.map +0 -1
- package/build/server/chunks/_page.svelte-DNEC3f8D.js.map +0 -1
- package/build/server/chunks/_server.ts-CcAgwk38.js.map +0 -1
- package/build/server/chunks/_server.ts-DefdeZ-L.js.map +0 -1
- package/build/server/chunks/_server.ts-DxXISWsG.js.map +0 -1
- package/build/server/chunks/src-DKq8HP_s.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Q as detectHostOpenCode } from './src-
|
|
2
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-
|
|
1
|
+
import { Q as detectHostOpenCode } from './src-BrowG4c5.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-TBhHA7BL.js';
|
|
3
3
|
import './chunk-CLZ62Ad-.js';
|
|
4
4
|
import 'node:module';
|
|
5
5
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -21,8 +21,8 @@ import 'zlib';
|
|
|
21
21
|
import 'node:assert';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:os';
|
|
24
|
-
import './endpoints-
|
|
25
|
-
import './state-
|
|
24
|
+
import './endpoints-DIQ-qrrL.js';
|
|
25
|
+
import './state-uRAQa1hp.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/providers/host-status/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -40,4 +40,4 @@ var GET = async (event) => {
|
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
export { GET };
|
|
43
|
-
//# sourceMappingURL=_server.ts-
|
|
43
|
+
//# sourceMappingURL=_server.ts-ChKSe-AA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-ChKSe-AA.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/host-status/_server.ts.js"],"sourcesContent":["import { i as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/host-status/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst status = detectHostOpenCode();\n\treturn jsonResponse(200, {\n\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\tproviderCount: status.providerCount,\n\t\tcredentialCount: status.credentialCount,\n\t\tconfigPath: status.configPath ?? null,\n\t\tauthPath: status.authPath ?? null\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,kBAAkB,EAAE;AACpC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AAClE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;AACrC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe;AACzC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACvC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;AAC/B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -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-TBhHA7BL.js';
|
|
2
|
+
import { s as sessionCookieHeader } from './session-cookie-BJaAqVXS.js';
|
|
3
|
+
import './src-BrowG4c5.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,8 +22,8 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
26
|
-
import './state-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
|
+
import './state-uRAQa1hp.js';
|
|
27
27
|
|
|
28
28
|
//#region src/routes/admin/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-Ci1Rfx8E.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Ci1Rfx8E.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/login/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/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 { d as getRequestId, 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, r as requireAdmin, g as getOpenCodeClient, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-TBhHA7BL.js';
|
|
2
|
+
import { u as unsetMainModel, s as setMainModel } from './config-36DEvVZH.js';
|
|
3
|
+
import './src-BrowG4c5.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,10 +22,10 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
26
|
-
import './state-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
|
+
import './state-uRAQa1hp.js';
|
|
27
27
|
import './coercion-TNFJisCC.js';
|
|
28
|
-
import './http-
|
|
28
|
+
import './http-D1XmiUzn.js';
|
|
29
29
|
|
|
30
30
|
//#region src/routes/admin/opencode/model/+server.ts
|
|
31
31
|
var GET = async (event) => {
|
|
@@ -82,4 +82,4 @@ var POST = async (event) => {
|
|
|
82
82
|
};
|
|
83
83
|
|
|
84
84
|
export { GET, POST };
|
|
85
|
-
//# sourceMappingURL=_server.ts-
|
|
85
|
+
//# sourceMappingURL=_server.ts-CimqxW93.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-CimqxW93.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/model/_server.ts.js"],"sourcesContent":["import { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { i as setMainModel, s as unsetMainModel } from \"../../../../../chunks/config.js\";\n//#region src/routes/admin/opencode/model/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\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 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,5 +1,5 @@
|
|
|
1
|
-
import { G as createLogger } from './src-
|
|
2
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-
|
|
1
|
+
import { G as createLogger } from './src-BrowG4c5.js';
|
|
2
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse, g as getOpenCodeClient, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-TBhHA7BL.js';
|
|
3
3
|
import './chunk-CLZ62Ad-.js';
|
|
4
4
|
import 'node:module';
|
|
5
5
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -21,8 +21,8 @@ import 'zlib';
|
|
|
21
21
|
import 'node:assert';
|
|
22
22
|
import 'node:fs/promises';
|
|
23
23
|
import 'node:os';
|
|
24
|
-
import './endpoints-
|
|
25
|
-
import './state-
|
|
24
|
+
import './endpoints-DIQ-qrrL.js';
|
|
25
|
+
import './state-uRAQa1hp.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts
|
|
28
28
|
var logger = createLogger("opencode.auth");
|
|
@@ -163,4 +163,4 @@ var DELETE = async (event) => {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
export { DELETE, GET, POST };
|
|
166
|
-
//# sourceMappingURL=_server.ts-
|
|
166
|
+
//# sourceMappingURL=_server.ts-CtQpR-mK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-BmUQoU9j.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { bn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_server.ts-CtQpR-mK.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/opencode/providers/_id_/auth/_server.ts.js"],"sourcesContent":["import { bn as createLogger } from \"../../../../../../../chunks/src.js\";\nimport { a as getOpenCodeClient, c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/opencode/providers/[id]/auth/+server.ts\nvar logger = createLogger(\"opencode.auth\");\nvar MAX_API_KEY_LENGTH = 512;\nvar API_KEY_PATTERN = /^[\\x20-\\x7E]+$/;\nvar OAUTH_SESSION_TTL_MS = 6e5;\nvar MAX_PROVIDER_ID_LENGTH = 128;\nvar PROVIDER_ID_PATTERN = /^[a-zA-Z0-9_.-]+$/;\nfunction validateApiKey(key) {\n\tif (key.length > MAX_API_KEY_LENGTH) return \"API key exceeds maximum length\";\n\tif (!API_KEY_PATTERN.test(key)) return \"API key contains invalid characters\";\n\treturn null;\n}\nvar oauthSessions = /* @__PURE__ */ new Map();\nfunction purgeExpiredSessions() {\n\tconst now = Date.now();\n\tfor (const [token, session] of oauthSessions) if (now - session.createdAt > OAUTH_SESSION_TTL_MS) oauthSessions.delete(token);\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst pollToken = event.url.searchParams.get(\"pollToken\");\n\tif (!pollToken) return errorResponse(400, \"bad_request\", \"pollToken query parameter is required\", {}, requestId);\n\tpurgeExpiredSessions();\n\tconst session = oauthSessions.get(pollToken);\n\tif (!session) return errorResponse(404, \"not_found\", \"Poll session not found or expired\", {}, requestId);\n\tif (event.params.id !== session.providerId) return errorResponse(400, \"bad_request\", \"Provider ID does not match poll session\", {}, requestId);\n\tif ((await getOpenCodeClient().completeProviderOAuth(session.providerId, session.methodIndex)).ok) {\n\t\toauthSessions.delete(pollToken);\n\t\tlogger.info(\"oauth authorization completed\", {\n\t\t\tproviderId: session.providerId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"complete\",\n\t\t\tmessage: \"Authorization successful\"\n\t\t}, requestId);\n\t}\n\tif (Date.now() - session.createdAt > OAUTH_SESSION_TTL_MS) {\n\t\toauthSessions.delete(pollToken);\n\t\treturn jsonResponse(200, {\n\t\t\tstatus: \"error\",\n\t\t\tmessage: \"Authorization session expired\"\n\t\t}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tstatus: \"pending\",\n\t\tmessage: \"Waiting for authorization...\"\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst body = result.data;\n\tconst providerId = event.params.id;\n\tconst mode = typeof body.mode === \"string\" ? body.mode : \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tpurgeExpiredSessions();\n\tif (mode === \"api_key\") {\n\t\tconst apiKey = typeof body.apiKey === \"string\" ? body.apiKey.trim() : \"\";\n\t\tif (!apiKey) return errorResponse(400, \"bad_request\", \"apiKey is required for api_key mode\", {}, requestId);\n\t\tconst keyError = validateApiKey(apiKey);\n\t\tif (keyError) return errorResponse(400, \"bad_request\", keyError, {}, requestId);\n\t\tconst result = await getOpenCodeClient().setProviderApiKey(providerId, apiKey);\n\t\tif (!result.ok) {\n\t\t\tlogger.warn(\"provider api key save failed\", {\n\t\t\t\tproviderId,\n\t\t\t\trequestId,\n\t\t\t\terror: result.code\n\t\t\t});\n\t\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\t}\n\t\tlogger.info(\"provider API key saved to OpenCode auth.json\", {\n\t\t\tproviderId,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"api_key\"\n\t\t}, requestId);\n\t}\n\tif (mode === \"oauth\") {\n\t\tif (typeof body.methodIndex !== \"undefined\" && (typeof body.methodIndex !== \"number\" || !Number.isInteger(body.methodIndex) || body.methodIndex < 0)) return errorResponse(400, \"bad_request\", \"methodIndex must be a non-negative integer\", {}, requestId);\n\t\tconst methodIndex = typeof body.methodIndex === \"number\" ? body.methodIndex : 0;\n\t\tconst result = await getOpenCodeClient().startProviderOAuth(providerId, methodIndex);\n\t\tif (!result.ok) return errorResponse(result.status, result.code, result.message, {}, requestId);\n\t\tconst data = result.data;\n\t\tconst pollToken = crypto.randomUUID();\n\t\toauthSessions.set(pollToken, {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\tcreatedAt: Date.now()\n\t\t});\n\t\tlogger.info(\"oauth authorization started\", {\n\t\t\tproviderId,\n\t\t\tmethodIndex,\n\t\t\trequestId\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tmode: \"oauth\",\n\t\t\tpollToken,\n\t\t\turl: data.url,\n\t\t\tmethod: data.method,\n\t\t\tinstructions: data.instructions\n\t\t}, requestId);\n\t}\n\treturn errorResponse(400, \"bad_request\", \"mode must be api_key or oauth\", {}, requestId);\n};\n/**\n* DELETE /admin/opencode/providers/:id/auth — Disconnect a provider by\n* removing its credential from OpenCode's auth.json.\n*/\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst providerId = event.params.id ?? \"\";\n\tif (!providerId || providerId.length > MAX_PROVIDER_ID_LENGTH || !PROVIDER_ID_PATTERN.test(providerId)) return errorResponse(400, \"bad_request\", \"Invalid provider ID\", {}, requestId);\n\tconst result = await getOpenCodeClient().proxy(`/auth/${encodeURIComponent(providerId)}`, { method: \"DELETE\" });\n\tif (!result.ok) {\n\t\tlogger.warn(\"provider disconnect failed\", {\n\t\t\tproviderId,\n\t\t\trequestId,\n\t\t\terror: result.code\n\t\t});\n\t\treturn errorResponse(result.status, result.code, result.message, {}, requestId);\n\t}\n\tlogger.info(\"provider credential removed via OpenCode /auth DELETE\", {\n\t\tproviderId,\n\t\trequestId\n\t});\n\treturn jsonResponse(200, { ok: true }, requestId);\n};\n//#endregion\nexport { DELETE, GET, POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ad as importHostOpenCode, Q as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ad as importHostOpenCode, Q as detectHostOpenCode, i as authJsonPath, o as checkDocker, m as buildComposeOptions } from './src-BrowG4c5.js';
|
|
2
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, p as parseJsonBody, e as errorResponse, k as jsonResponse } from './helpers-TBhHA7BL.js';
|
|
4
4
|
import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
|
|
5
|
-
import { o as opencodeFetch } from './http-
|
|
6
|
-
import { c as composeRestart } from './docker-
|
|
5
|
+
import { o as opencodeFetch } from './http-D1XmiUzn.js';
|
|
6
|
+
import { c as composeRestart } from './docker-Xky8KsOe.js';
|
|
7
7
|
import { existsSync, readFileSync } from 'node:fs';
|
|
8
8
|
import './chunk-CLZ62Ad-.js';
|
|
9
9
|
import 'node:module';
|
|
@@ -25,7 +25,7 @@ import 'zlib';
|
|
|
25
25
|
import 'node:assert';
|
|
26
26
|
import 'node:fs/promises';
|
|
27
27
|
import 'node:os';
|
|
28
|
-
import './endpoints-
|
|
28
|
+
import './endpoints-DIQ-qrrL.js';
|
|
29
29
|
|
|
30
30
|
//#region src/routes/admin/providers/import-host/+server.ts
|
|
31
31
|
/**
|
|
@@ -157,4 +157,4 @@ var POST = async (event) => {
|
|
|
157
157
|
};
|
|
158
158
|
|
|
159
159
|
export { POST };
|
|
160
|
-
//# sourceMappingURL=_server.ts-
|
|
160
|
+
//# sourceMappingURL=_server.ts-CuKWH2Y0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-CuKWH2Y0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/import-host/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, Zt as authJsonPath, a as importHostOpenCode, i as detectHostOpenCode, tt as checkDocker } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\nimport { t as opencodeFetch } from \"../../../../../chunks/http.js\";\nimport { t as composeRestart } from \"../../../../../chunks/docker.js\";\nimport { existsSync, readFileSync } from \"node:fs\";\n//#region src/routes/admin/providers/import-host/+server.ts\n/**\n* POST /admin/providers/import-host\n*\n* Copies host OpenCode config + auth into OP_HOME, then pushes each\n* imported credential to the running OpenCode server so the providers\n* appear connected immediately (no restart required).\n*\n* - opencode.json: stripped of plugin/mcp/permission keys, merged with\n* existing OP_HOME config. Provider conflicts preserved by default.\n* - auth.json: byte-copied and chmodded 0o600. Never logged.\n* - Live push: best-effort PUT to OpenCode /auth/{id} per credential.\n* If OpenCode is unreachable, the file copy still applies and OpenCode\n* will pick up the credentials on next restart.\n* - Service restart: assistant is restarted after the import so opencode.json\n* provider blocks are re-read (live push only updates the auth store, not\n* config).\n*\n* Body (optional JSON):\n* { overwriteConflicts?: boolean } — default false\n*\n* Auth: admin token required.\n*/\n/**\n* Restart services that hold provider state in startup config.\n* Best-effort: the file-level import is the durable part; this is the polish\n* that makes the change visible without the user having to bounce things by hand.\n* OpenCode caches opencode.json provider blocks at startup, so imported\n* provider config needs a fresh assistant process.\n*/\nasync function restartProviderConsumers() {\n\tconst services = [\"assistant\"];\n\tif (!(await checkDocker()).ok) return {\n\t\trestarted: [],\n\t\tfailed: services.map((s) => ({\n\t\t\tservice: s,\n\t\t\terror: \"docker unavailable\"\n\t\t}))\n\t};\n\tconst opts = buildComposeOptions(getState());\n\tconst restarted = [];\n\tconst failed = [];\n\tfor (const service of services) try {\n\t\tconst r = await composeRestart([service], opts);\n\t\tif (r.ok) restarted.push(service);\n\t\telse failed.push({\n\t\t\tservice,\n\t\t\terror: r.stderr || `exit ${r.code}`\n\t\t});\n\t} catch (err) {\n\t\tfailed.push({\n\t\t\tservice,\n\t\t\terror: err instanceof Error ? err.message : String(err)\n\t\t});\n\t}\n\treturn {\n\t\trestarted,\n\t\tfailed\n\t};\n}\n/** Push each auth.json entry to OpenCode's /auth/{id} so the running process sees them. */\nasync function pushAuthToOpenCode(authPath) {\n\tlet raw;\n\ttry {\n\t\traw = JSON.parse(readFileSync(authPath, \"utf-8\"));\n\t} catch {\n\t\treturn {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t}\n\tif (!raw || typeof raw !== \"object\" || Array.isArray(raw)) return {\n\t\tpushed: 0,\n\t\tfailed: []\n\t};\n\tlet pushed = 0;\n\tconst failed = [];\n\tfor (const [providerId, value] of Object.entries(raw)) try {\n\t\tawait opencodeFetch(`/auth/${encodeURIComponent(providerId)}`, {\n\t\t\tmethod: \"PUT\",\n\t\t\tbody: JSON.stringify(value)\n\t\t});\n\t\tpushed++;\n\t} catch {\n\t\tfailed.push(providerId);\n\t}\n\treturn {\n\t\tpushed,\n\t\tfailed\n\t};\n}\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:providers:import-host\", async () => {\n\t\tconst state = getState();\n\t\tlet overwriteConflicts = false;\n\t\tif ((event.request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) {\n\t\t\tconst parsed = await parseJsonBody(event.request);\n\t\t\tif (!(\"error\" in parsed)) overwriteConflicts = parsed.data.overwriteConflicts === true;\n\t\t}\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = importHostOpenCode(state, { overwriteConflicts });\n\t\t} catch (err) {\n\t\t\treturn errorResponse(500, \"import_failed\", err instanceof Error ? err.message : \"Import failed\", {}, requestId);\n\t\t}\n\t\tconst hostStatus = detectHostOpenCode();\n\t\tlet livePush = {\n\t\t\tpushed: 0,\n\t\t\tfailed: []\n\t\t};\n\t\tconst importedAuthPath = authJsonPath(state);\n\t\tif (existsSync(importedAuthPath)) livePush = await pushAuthToOpenCode(importedAuthPath);\n\t\telse if (hostStatus.authPath) livePush = await pushAuthToOpenCode(hostStatus.authPath);\n\t\tconst restart = await restartProviderConsumers();\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\timported: result.imported,\n\t\t\tconflicts: result.conflicts,\n\t\t\tlivePushed: livePush.pushed,\n\t\t\tlivePushFailed: livePush.failed,\n\t\t\trestarted: restart.restarted,\n\t\t\trestartFailed: restart.failed\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { ak as isSetupComplete, aU as resolveStackDir } from './src-
|
|
2
|
+
import { ak as isSetupComplete, aU as resolveStackDir } from './src-BrowG4c5.js';
|
|
3
3
|
import './utils-BSRjJDrZ.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
@@ -32,4 +32,4 @@ var GET = () => {
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
export { GET };
|
|
35
|
-
//# sourceMappingURL=_server.ts-
|
|
35
|
+
//# sourceMappingURL=_server.ts-CvrHMIWH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-CvrHMIWH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { ht as isSetupComplete, nn as resolveStackDir } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveStackDir())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE;AAClD,EAAE,CAAC;AACH;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { R as detectLocalProviders } from './src-
|
|
2
|
+
import { R as detectLocalProviders } from './src-BrowG4c5.js';
|
|
3
3
|
import './utils-BSRjJDrZ.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
@@ -40,4 +40,4 @@ var GET = async () => {
|
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
export { GET };
|
|
43
|
-
//# sourceMappingURL=_server.ts-
|
|
43
|
+
//# sourceMappingURL=_server.ts-Cx4HqW-Z.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Cx4HqW-Z.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/detect-providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { u as detectLocalProviders } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/detect-providers/+server.ts\nvar GET = async () => {\n\ttry {\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tproviders: await detectLocalProviders()\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\terror: \"detection_failed\",\n\t\t\tmessage: String(err)\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,SAAS,EAAE,MAAM,oBAAoB;AACxC,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,KAAK,EAAE,kBAAkB;AAC5B,GAAG,OAAO,EAAE,MAAM,CAAC,GAAG;AACtB,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a_ as summarizeBackups, an as listBackupDirs, ay as pruneBackupDirs, G as createLogger } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-
|
|
1
|
+
import { a_ as summarizeBackups, an as listBackupDirs, ay as pruneBackupDirs, G as createLogger } from './src-BrowG4c5.js';
|
|
2
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-TBhHA7BL.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/backups/+server.ts
|
|
28
28
|
var logger = createLogger("backups-admin");
|
|
@@ -86,4 +86,4 @@ var POST = async (event) => {
|
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
export { GET, POST };
|
|
89
|
-
//# sourceMappingURL=_server.ts-
|
|
89
|
+
//# sourceMappingURL=_server.ts-D5KbK1EO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-D5KbK1EO.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { _n as pruneBackupDirs, bn as createLogger, gn as listBackupDirs, vn as summarizeBackups } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { al as listAssistantCliTools } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-
|
|
1
|
+
import { al as listAssistantCliTools } from './src-BrowG4c5.js';
|
|
2
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-TBhHA7BL.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/providers/assistant-clis/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -33,4 +33,4 @@ var GET = async (event) => {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export { GET };
|
|
36
|
-
//# sourceMappingURL=_server.ts-
|
|
36
|
+
//# sourceMappingURL=_server.ts-D6VySx_-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-D6VySx_-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/assistant-clis/_server.ts.js"],"sourcesContent":["import { xt as listAssistantCliTools } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/assistant-clis/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { tools: listAssistantCliTools(getState()) }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AAClF;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ag as isAllowedService, o as checkDocker, t as composeLogs, m as buildComposeOptions } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-
|
|
1
|
+
import { ag as isAllowedService, o as checkDocker, t as composeLogs, m as buildComposeOptions } from './src-BrowG4c5.js';
|
|
2
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-TBhHA7BL.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/logs/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -60,4 +60,4 @@ var GET = async (event) => {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export { GET };
|
|
63
|
-
//# sourceMappingURL=_server.ts-
|
|
63
|
+
//# sourceMappingURL=_server.ts-D7-rYtEc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-D7-rYtEc.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/logs/_server.ts.js"],"sourcesContent":["import { L as buildComposeOptions, O as isAllowedService, it as composeLogs, tt as checkDocker } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/logs/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst url = new URL(event.request.url);\n\tconst serviceParam = url.searchParams.get(\"service\");\n\tconst tailParam = url.searchParams.get(\"tail\");\n\tconst sinceParam = url.searchParams.get(\"since\");\n\tconst tail = tailParam ? Number(tailParam) : 100;\n\tif (tailParam && (!Number.isInteger(tail) || tail < 1 || tail > 1e4)) return errorResponse(400, \"invalid_parameter\", \"tail must be an integer between 1 and 10000\", {}, requestId);\n\tlet services;\n\tif (serviceParam) {\n\t\tservices = serviceParam.split(\",\").map((s) => s.trim()).filter(Boolean);\n\t\tconst invalid = services.filter((s) => !isAllowedService(s, state.configDir));\n\t\tif (invalid.length > 0) return errorResponse(400, \"invalid_service\", `Invalid service name(s): ${invalid.join(\", \")}`, { invalid }, requestId);\n\t}\n\tif (sinceParam && !/^[a-zA-Z0-9.:+\\-T]+$/.test(sinceParam)) return errorResponse(400, \"invalid_parameter\", \"since contains invalid characters\", {}, requestId);\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await composeLogs(services, tail, {\n\t\t...buildComposeOptions(state),\n\t\tsince: sinceParam ?? void 0\n\t});\n\tif (!result.ok) return jsonResponse(500, {\n\t\tok: false,\n\t\tlogs: \"\",\n\t\terror: result.stderr\n\t}, requestId);\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tlogs: (result.stdout + result.stderr).trim()\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,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,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACvC,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/C,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;AACjD,CAAC,MAAM,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;AACjD,CAAC,IAAI,SAAS,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,6CAA6C,EAAE,EAAE,EAAE,SAAS,CAAC;AACnL,CAAC,IAAI,QAAQ;AACb,CAAC,IAAI,YAAY,EAAE;AACnB,EAAE,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACzE,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/E,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AAChJ,CAAC;AACD,CAAC,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/J,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClD,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC/B,EAAE,KAAK,EAAE,UAAU,IAAI;AACvB,EAAE,CAAC;AACH,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1C,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,KAAK,EAAE,MAAM,CAAC;AAChB,EAAE,EAAE,SAAS,CAAC;AACd,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI;AAC5C,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } from './src-
|
|
2
|
-
import { g as getState } from './state-
|
|
3
|
-
import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-
|
|
1
|
+
import { T as disableHostAkmSharing, aa as getHostAkmSharingStatus, V as enableHostAkmSharing } from './src-BrowG4c5.js';
|
|
2
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, k as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-TBhHA7BL.js';
|
|
4
4
|
import './chunk-CLZ62Ad-.js';
|
|
5
5
|
import 'node:module';
|
|
6
6
|
import './provider-constants-DPrj3yBX.js';
|
|
@@ -22,7 +22,7 @@ import 'zlib';
|
|
|
22
22
|
import 'node:assert';
|
|
23
23
|
import 'node:fs/promises';
|
|
24
24
|
import 'node:os';
|
|
25
|
-
import './endpoints-
|
|
25
|
+
import './endpoints-DIQ-qrrL.js';
|
|
26
26
|
|
|
27
27
|
//#region src/routes/admin/akm/host-sharing/+server.ts
|
|
28
28
|
var GET = async (event) => {
|
|
@@ -64,4 +64,4 @@ var DELETE = async (event) => {
|
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
export { DELETE, GET, PUT };
|
|
67
|
-
//# sourceMappingURL=_server.ts-
|
|
67
|
+
//# sourceMappingURL=_server.ts-DM6lThdl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-DM6lThdl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/host-sharing/_server.ts.js"],"sourcesContent":["import { C as getHostAkmSharingStatus, S as enableHostAkmSharing, x as disableHostAkmSharing } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/akm/host-sharing/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(getState()) }, requestId);\n};\nvar PUT = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst result = await parseJsonBody(event.request);\n\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\tconst opts = result.data;\n\tconst writable = opts.writable === void 0 ? true : opts.writable === true;\n\tconst importProfiles = opts.importProfiles === true;\n\tconst state = getState();\n\ttry {\n\t\tconst { profilesImported } = enableHostAkmSharing(state, {\n\t\t\twritable,\n\t\t\timportProfiles\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tsharing: getHostAkmSharingStatus(state),\n\t\t\tprofilesImported\n\t\t}, requestId);\n\t} catch (err) {\n\t\treturn errorResponse(409, \"conflict\", err.message, {}, requestId);\n\t}\n};\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tdisableHostAkmSharing(state);\n\treturn jsonResponse(200, { sharing: getHostAkmSharingStatus(state) }, requestId);\n};\n//#endregion\nexport { DELETE, GET, PUT };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC;AACtF;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/D,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACzB,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI;AAC1E,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI;AACpD,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE;AAC3D,GAAG,QAAQ;AACX,GAAG;AACH,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAC1C,GAAG;AACH,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC;AACnE,CAAC;AACD;AACG,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAC7B,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;AACjF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
-
import { au as parseEnvFile, ao as listEnabledAddonIds, aQ as resolveEffectivePlatformImageTag, a3 as formatForDisplay, ah as isComparableSemver, aS as resolveLatestPlatformTagForCurrentMajor, aR as resolveLatestPlatformTag, P as PLATFORM_VERSION } from './src-
|
|
3
|
-
import { g as getState } from './state-
|
|
4
|
-
import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-
|
|
2
|
+
import { au as parseEnvFile, ao as listEnabledAddonIds, aQ as resolveEffectivePlatformImageTag, a3 as formatForDisplay, ah as isComparableSemver, aS as resolveLatestPlatformTagForCurrentMajor, aR as resolveLatestPlatformTag, P as PLATFORM_VERSION } from './src-BrowG4c5.js';
|
|
3
|
+
import { g as getState } from './state-uRAQa1hp.js';
|
|
4
|
+
import { d as getRequestId, r as requireAdmin, e as errorResponse } from './helpers-TBhHA7BL.js';
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
import './utils-BSRjJDrZ.js';
|
|
7
7
|
import './chunk-CLZ62Ad-.js';
|
|
@@ -24,7 +24,7 @@ import 'zlib';
|
|
|
24
24
|
import 'node:assert';
|
|
25
25
|
import 'node:fs/promises';
|
|
26
26
|
import 'node:os';
|
|
27
|
-
import './endpoints-
|
|
27
|
+
import './endpoints-DIQ-qrrL.js';
|
|
28
28
|
|
|
29
29
|
//#region src/routes/admin/versions/+server.ts
|
|
30
30
|
var PORTAL_ADDON_IDS = [
|
|
@@ -67,11 +67,6 @@ var GET = async (event) => {
|
|
|
67
67
|
label: "Voice",
|
|
68
68
|
version: envVars.OP_VOICE_IMAGE_TAG ?? imageTag
|
|
69
69
|
});
|
|
70
|
-
if (enabledAddons.includes("ollama")) services.push({
|
|
71
|
-
id: "ollama",
|
|
72
|
-
label: "Ollama",
|
|
73
|
-
version: envVars.OP_OLLAMA_IMAGE_TAG ?? imageTag
|
|
74
|
-
});
|
|
75
70
|
const inElectron = process.env.OP_INSIDE_ELECTRON === "1";
|
|
76
71
|
const electronVersion = process.env.OP_ELECTRON_VERSION ?? null;
|
|
77
72
|
const electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;
|
|
@@ -102,4 +97,4 @@ var GET = async (event) => {
|
|
|
102
97
|
};
|
|
103
98
|
|
|
104
99
|
export { GET };
|
|
105
|
-
//# sourceMappingURL=_server.ts-
|
|
100
|
+
//# sourceMappingURL=_server.ts-DNA0OVFL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DNA0OVFL.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/versions/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../chunks/exports.js\";\nimport { At as listEnabledAddonIds, J as resolveLatestPlatformTag, Y as resolveLatestPlatformTagForCurrentMajor, cn as parseEnvFile, dn as isComparableSemver, ln as PLATFORM_VERSION, sn as resolveEffectivePlatformImageTag, un as formatForDisplay } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { existsSync } from \"node:fs\";\n//#region src/routes/admin/versions/+server.ts\nvar PORTAL_ADDON_IDS = [\n\t\"api\",\n\t\"chat\",\n\t\"discord\",\n\t\"slack\",\n\t\"gateway\"\n];\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tif (!state.stackDir) return errorResponse(503, \"not_initialized\", \"Stack directory not configured\", {}, requestId);\n\tconst stackEnvPath = `${state.stashDir}/env/stack.env`;\n\tconst envVars = existsSync(stackEnvPath) ? parseEnvFile(stackEnvPath) : {};\n\tconst imageTag = envVars.OP_IMAGE_TAG ?? \"latest\";\n\tconst enabledAddons = listEnabledAddonIds(state.homeDir);\n\tconst portalEnabled = enabledAddons.some((a) => PORTAL_ADDON_IDS.includes(a));\n\tconst services = [{\n\t\tid: \"assistant\",\n\t\tlabel: \"Assistant\",\n\t\tversion: envVars.OP_ASSISTANT_IMAGE_TAG ?? imageTag\n\t}];\n\tif (portalEnabled) {\n\t\tservices.push({\n\t\t\tid: \"guardian\",\n\t\t\tlabel: \"Guardian\",\n\t\t\tversion: resolveEffectivePlatformImageTag(envVars, \"guardian\")\n\t\t});\n\t\tservices.push({\n\t\t\tid: \"portal\",\n\t\t\tlabel: \"Chat (Discord/Slack)\",\n\t\t\tversion: resolveEffectivePlatformImageTag(envVars, \"portal\")\n\t\t});\n\t}\n\tif (enabledAddons.includes(\"voice\")) services.push({\n\t\tid: \"voice\",\n\t\tlabel: \"Voice\",\n\t\tversion: envVars.OP_VOICE_IMAGE_TAG ?? imageTag\n\t});\n\tconst inElectron = process.env.OP_INSIDE_ELECTRON === \"1\";\n\tconst electronVersion = process.env.OP_ELECTRON_VERSION ?? null;\n\tconst electronLatestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;\n\tconst electronLatestUrl = process.env.OP_ELECTRON_LATEST_URL ?? null;\n\tconst harnessContractVersion = process.env.OP_HARNESS_CONTRACT_VERSION ? Number(process.env.OP_HARNESS_CONTRACT_VERSION) : null;\n\tconst platformVersion = formatForDisplay(PLATFORM_VERSION);\n\tlet latestImageTag = null;\n\ttry {\n\t\tconst namespace = (envVars.OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? \"openpalm\").trim().toLowerCase();\n\t\tconst currentDockerTag = envVars.OP_ASSISTANT_IMAGE_TAG ?? imageTag;\n\t\tif (isComparableSemver(currentDockerTag)) latestImageTag = formatForDisplay(await resolveLatestPlatformTagForCurrentMajor(namespace, currentDockerTag));\n\t\telse latestImageTag = formatForDisplay(await resolveLatestPlatformTag(namespace));\n\t} catch {}\n\treturn json({\n\t\timageTag,\n\t\tservices,\n\t\tinElectron,\n\t\telectronVersion,\n\t\telectronLatestVersion,\n\t\telectronLatestUrl,\n\t\telectronUpdateAvailable: !!electronLatestVersion,\n\t\tharnessVersion: electronVersion,\n\t\tharnessContractVersion,\n\t\tharnessUpdateAvailable: !!electronLatestVersion,\n\t\tplatformVersion,\n\t\tlatestImageTag\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
|