@openpalm/ui 0.12.51 → 0.13.0-beta.1
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/0.CNWpIzQn.css +1 -0
- package/build/client/_app/immutable/assets/0.CNWpIzQn.css.br +0 -0
- package/build/client/_app/immutable/assets/0.CNWpIzQn.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.vLP66eby.css +1 -0
- package/build/client/_app/immutable/assets/10.vLP66eby.css.br +0 -0
- package/build/client/_app/immutable/assets/10.vLP66eby.css.gz +0 -0
- package/build/client/_app/immutable/assets/11.BF9IcRAW.css +1 -0
- package/build/client/_app/immutable/assets/11.BF9IcRAW.css.br +0 -0
- package/build/client/_app/immutable/assets/11.BF9IcRAW.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.CTNuT1CQ.css +1 -0
- package/build/client/_app/immutable/assets/5.CTNuT1CQ.css.br +0 -0
- package/build/client/_app/immutable/assets/5.CTNuT1CQ.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.D_kTgQ70.css +1 -0
- package/build/client/_app/immutable/assets/6.D_kTgQ70.css.br +0 -0
- package/build/client/_app/immutable/assets/6.D_kTgQ70.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CEu3B1cr.css +1 -0
- package/build/client/_app/immutable/assets/7.CEu3B1cr.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CEu3B1cr.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css +1 -0
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css.br +0 -0
- package/build/client/_app/immutable/assets/9.B0-fGtW-.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatNavbar.C7LJB8r7.css +1 -0
- package/build/client/_app/immutable/assets/ChatNavbar.C7LJB8r7.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatNavbar.C7LJB8r7.css.gz +0 -0
- package/build/client/_app/immutable/assets/Drawer.C9zcL24P.css +1 -0
- package/build/client/_app/immutable/assets/Drawer.C9zcL24P.css.br +0 -0
- package/build/client/_app/immutable/assets/Drawer.C9zcL24P.css.gz +0 -0
- package/build/client/_app/immutable/assets/IconActivity.BdXOPwBm.css +1 -0
- package/build/client/_app/immutable/assets/IconActivity.BdXOPwBm.css.br +0 -0
- package/build/client/_app/immutable/assets/IconActivity.BdXOPwBm.css.gz +0 -0
- package/build/client/_app/immutable/assets/Spinner.DfNgj4dl.css +1 -0
- package/build/client/_app/immutable/assets/Spinner.DfNgj4dl.css.br +2 -0
- package/build/client/_app/immutable/assets/Spinner.DfNgj4dl.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDK50g8a.js +1 -0
- package/build/client/_app/immutable/chunks/BDK50g8a.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDK50g8a.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLc6D58Y.js +3 -0
- package/build/client/_app/immutable/chunks/BLc6D58Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLc6D58Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMyudKzg.js +1 -0
- package/build/client/_app/immutable/chunks/BMyudKzg.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMyudKzg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BNkLu9ey.js +3 -0
- package/build/client/_app/immutable/chunks/BNkLu9ey.js.br +0 -0
- package/build/client/_app/immutable/chunks/BNkLu9ey.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BkqRukKX.js +1 -0
- package/build/client/_app/immutable/chunks/BkqRukKX.js.br +2 -0
- package/build/client/_app/immutable/chunks/BkqRukKX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzIvC31O.js +3 -0
- package/build/client/_app/immutable/chunks/BzIvC31O.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzIvC31O.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CUa5ff3d.js +1 -0
- package/build/client/_app/immutable/chunks/CUa5ff3d.js.br +0 -0
- package/build/client/_app/immutable/chunks/CUa5ff3d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CvItGqWG.js +1 -0
- package/build/client/_app/immutable/chunks/CvItGqWG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CvItGqWG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1nSxXur.js +5 -0
- package/build/client/_app/immutable/chunks/D1nSxXur.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1nSxXur.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5FtEngX.js +1 -0
- package/build/client/_app/immutable/chunks/D5FtEngX.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5FtEngX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIM-KrDw.js +1 -0
- package/build/client/_app/immutable/chunks/DIM-KrDw.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIM-KrDw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db8xkqW6.js +1 -0
- package/build/client/_app/immutable/chunks/Db8xkqW6.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db8xkqW6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DfZbBavE.js +1 -0
- package/build/client/_app/immutable/chunks/DfZbBavE.js.br +1 -0
- package/build/client/_app/immutable/chunks/DfZbBavE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DmFbAjwW.js +1 -0
- package/build/client/_app/immutable/chunks/DmFbAjwW.js.br +3 -0
- package/build/client/_app/immutable/chunks/DmFbAjwW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NR-JVJz-.js +1 -0
- package/build/client/_app/immutable/chunks/NR-JVJz-.js.br +0 -0
- package/build/client/_app/immutable/chunks/NR-JVJz-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/R6GPcDBF.js +14 -0
- package/build/client/_app/immutable/chunks/R6GPcDBF.js.br +0 -0
- package/build/client/_app/immutable/chunks/R6GPcDBF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SXdvPq3_.js +1 -0
- package/build/client/_app/immutable/chunks/SXdvPq3_.js.br +0 -0
- package/build/client/_app/immutable/chunks/SXdvPq3_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/c0lkYAgh.js +5 -0
- package/build/client/_app/immutable/chunks/c0lkYAgh.js.br +0 -0
- package/build/client/_app/immutable/chunks/c0lkYAgh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hSjQday7.js +1 -0
- package/build/client/_app/immutable/chunks/hSjQday7.js.br +0 -0
- package/build/client/_app/immutable/chunks/hSjQday7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/mG6HnNbi.js +1 -0
- package/build/client/_app/immutable/chunks/mG6HnNbi.js.br +0 -0
- package/build/client/_app/immutable/chunks/mG6HnNbi.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.ByeYK7_P.js +2 -0
- package/build/client/_app/immutable/entry/app.ByeYK7_P.js.br +0 -0
- package/build/client/_app/immutable/entry/app.ByeYK7_P.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.kykyp6T0.js +1 -0
- package/build/client/_app/immutable/entry/start.kykyp6T0.js.br +1 -0
- package/build/client/_app/immutable/entry/start.kykyp6T0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js +1 -0
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CLEDwEKf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DOwkg43h.js +1 -0
- package/build/client/_app/immutable/nodes/1.DOwkg43h.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DOwkg43h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.Cs6atPP0.js +1 -0
- package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.Cs6atPP0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.D1ux0xRH.js +6 -0
- package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.D1ux0xRH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C-PzaHZx.js +1 -0
- package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C-PzaHZx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.26Z_fr6N.js +1 -0
- package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.26Z_fr6N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.vRThg0Ke.js +1 -0
- package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.vRThg0Ke.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.y3u2P8a-.js +2 -0
- package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.y3u2P8a-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js +2 -0
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Vtev5Cm4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js +4 -0
- package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DQ9bZrdN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.NHp_bSVx.js +1 -0
- package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.NHp_bSVx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js +126 -0
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.2IPaJ-1P.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -2
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-D6JYWBmc.js +43 -0
- package/build/server/chunks/0-D6JYWBmc.js.map +1 -0
- package/build/server/chunks/1-QFaO6yhK.js +9 -0
- package/build/server/chunks/1-QFaO6yhK.js.map +1 -0
- package/build/server/chunks/10-BHQuL7xa.js +35 -0
- package/build/server/chunks/10-BHQuL7xa.js.map +1 -0
- package/build/server/chunks/11-nYH7HWHs.js +9 -0
- package/build/server/chunks/11-nYH7HWHs.js.map +1 -0
- package/build/server/chunks/2-CQSBaE_w.js +9 -0
- package/build/server/chunks/2-CQSBaE_w.js.map +1 -0
- package/build/server/chunks/3-DflhJGSw.js +58 -0
- package/build/server/chunks/3-DflhJGSw.js.map +1 -0
- package/build/server/chunks/4-dgm3mFwb.js +9 -0
- package/build/server/chunks/4-dgm3mFwb.js.map +1 -0
- package/build/server/chunks/5-_ostMB1h.js +9 -0
- package/build/server/chunks/5-_ostMB1h.js.map +1 -0
- package/build/server/chunks/6-Bz787Ixu.js +9 -0
- package/build/server/chunks/6-Bz787Ixu.js.map +1 -0
- package/build/server/chunks/7-Cs4tQiJY.js +9 -0
- package/build/server/chunks/7-Cs4tQiJY.js.map +1 -0
- package/build/server/chunks/8-DiHmrGkL.js +30 -0
- package/build/server/chunks/8-DiHmrGkL.js.map +1 -0
- package/build/server/chunks/9-DPtmsJHR.js +42 -0
- package/build/server/chunks/9-DPtmsJHR.js.map +1 -0
- package/build/server/chunks/ChatNavbar-ZxJwQIGL.js +243 -0
- package/build/server/chunks/ChatNavbar-ZxJwQIGL.js.map +1 -0
- package/build/server/chunks/IconActivity-BVrMC8FH.js +5486 -0
- package/build/server/chunks/IconActivity-BVrMC8FH.js.map +1 -0
- package/build/server/chunks/IconAgent-DeBWj6Gr.js +16 -0
- package/build/server/chunks/IconAgent-DeBWj6Gr.js.map +1 -0
- package/build/server/chunks/IconDone-CHBJ36xT.js +10 -0
- package/build/server/chunks/IconDone-CHBJ36xT.js.map +1 -0
- package/build/server/chunks/IconInfo-DA5uGQyP.js +10 -0
- package/build/server/chunks/IconInfo-DA5uGQyP.js.map +1 -0
- package/build/server/chunks/IconLock-Bz5zHCBQ.js +10 -0
- package/build/server/chunks/IconLock-Bz5zHCBQ.js.map +1 -0
- package/build/server/chunks/IconLogo-BRmPVDI_.js +10 -0
- package/build/server/chunks/IconLogo-BRmPVDI_.js.map +1 -0
- package/build/server/chunks/IconMic-BbjkE_nG.js +18 -0
- package/build/server/chunks/IconMic-BbjkE_nG.js.map +1 -0
- package/build/server/chunks/IconServer-ByAeszv0.js +180 -0
- package/build/server/chunks/IconServer-ByAeszv0.js.map +1 -0
- package/build/server/chunks/IconStop-DFbhUtaJ.js +1122 -0
- package/build/server/chunks/IconStop-DFbhUtaJ.js.map +1 -0
- package/build/server/chunks/_helpers-CafYq-UD.js +74 -0
- package/build/server/chunks/_helpers-CafYq-UD.js.map +1 -0
- package/build/server/chunks/_layout.svelte-DFMW9sdO.js +65 -0
- package/build/server/chunks/_layout.svelte-DFMW9sdO.js.map +1 -0
- package/build/server/chunks/_page.svelte-BLGF_oAz.js +92 -0
- package/build/server/chunks/_page.svelte-BLGF_oAz.js.map +1 -0
- package/build/server/chunks/_page.svelte-CKJNzmVG.js +530 -0
- package/build/server/chunks/_page.svelte-CKJNzmVG.js.map +1 -0
- package/build/server/chunks/_page.svelte-CborsVrn.js +2425 -0
- package/build/server/chunks/_page.svelte-CborsVrn.js.map +1 -0
- package/build/server/chunks/_page.svelte-CknIT-b6.js +24 -0
- package/build/server/chunks/_page.svelte-CknIT-b6.js.map +1 -0
- package/build/server/chunks/_page.svelte-Cz3JYioD.js +82 -0
- package/build/server/chunks/_page.svelte-Cz3JYioD.js.map +1 -0
- package/build/server/chunks/_page.svelte-DDFJprLE.js +47 -0
- package/build/server/chunks/_page.svelte-DDFJprLE.js.map +1 -0
- package/build/server/chunks/_page.svelte-DojSR6TL.js +3500 -0
- package/build/server/chunks/_page.svelte-DojSR6TL.js.map +1 -0
- package/build/server/chunks/_page.svelte-Du3fWBth.js +5 -0
- package/build/server/chunks/_page.svelte-Du3fWBth.js.map +1 -0
- package/build/server/chunks/_server.ts-1VKTjr08.js +71 -0
- package/build/server/chunks/_server.ts-1VKTjr08.js.map +1 -0
- package/build/server/chunks/_server.ts-1Vco45Qu.js +58 -0
- package/build/server/chunks/_server.ts-1Vco45Qu.js.map +1 -0
- package/build/server/chunks/_server.ts-4SFWMa3H.js +49 -0
- package/build/server/chunks/_server.ts-4SFWMa3H.js.map +1 -0
- package/build/server/chunks/_server.ts-4eT-crTl.js +66 -0
- package/build/server/chunks/_server.ts-4eT-crTl.js.map +1 -0
- package/build/server/chunks/_server.ts-9TnX_Hfn.js +41 -0
- package/build/server/chunks/_server.ts-9TnX_Hfn.js.map +1 -0
- package/build/server/chunks/_server.ts-B0jGXHG1.js +38 -0
- package/build/server/chunks/_server.ts-B0jGXHG1.js.map +1 -0
- package/build/server/chunks/_server.ts-B46NQmKl.js +45 -0
- package/build/server/chunks/_server.ts-B46NQmKl.js.map +1 -0
- package/build/server/chunks/_server.ts-B7jtS1rc.js +42 -0
- package/build/server/chunks/_server.ts-B7jtS1rc.js.map +1 -0
- package/build/server/chunks/_server.ts-B8p1cZWN.js +77 -0
- package/build/server/chunks/_server.ts-B8p1cZWN.js.map +1 -0
- package/build/server/chunks/_server.ts-B9GH6f46.js +45 -0
- package/build/server/chunks/_server.ts-B9GH6f46.js.map +1 -0
- package/build/server/chunks/_server.ts-BFOoXmaJ.js +88 -0
- package/build/server/chunks/_server.ts-BFOoXmaJ.js.map +1 -0
- package/build/server/chunks/_server.ts-BG50sNod.js +94 -0
- package/build/server/chunks/_server.ts-BG50sNod.js.map +1 -0
- package/build/server/chunks/_server.ts-BG89__4Y.js +48 -0
- package/build/server/chunks/_server.ts-BG89__4Y.js.map +1 -0
- package/build/server/chunks/_server.ts-BI2IrCte.js +44 -0
- package/build/server/chunks/_server.ts-BI2IrCte.js.map +1 -0
- package/build/server/chunks/_server.ts-BLxV2y7p.js +70 -0
- package/build/server/chunks/_server.ts-BLxV2y7p.js.map +1 -0
- package/build/server/chunks/_server.ts-BRiu2AFG.js +89 -0
- package/build/server/chunks/_server.ts-BRiu2AFG.js.map +1 -0
- package/build/server/chunks/_server.ts-BUE0dmBz.js +58 -0
- package/build/server/chunks/_server.ts-BUE0dmBz.js.map +1 -0
- package/build/server/chunks/_server.ts-BV6i7XBr.js +92 -0
- package/build/server/chunks/_server.ts-BV6i7XBr.js.map +1 -0
- package/build/server/chunks/_server.ts-BYUzlpfe.js +172 -0
- package/build/server/chunks/_server.ts-BYUzlpfe.js.map +1 -0
- package/build/server/chunks/_server.ts-B_R9VtOW.js +152 -0
- package/build/server/chunks/_server.ts-B_R9VtOW.js.map +1 -0
- package/build/server/chunks/_server.ts-Bbtu4jaC.js +205 -0
- package/build/server/chunks/_server.ts-Bbtu4jaC.js.map +1 -0
- package/build/server/chunks/_server.ts-BeCTOV2T.js +57 -0
- package/build/server/chunks/_server.ts-BeCTOV2T.js.map +1 -0
- package/build/server/chunks/_server.ts-Bfkzx4ao.js +248 -0
- package/build/server/chunks/_server.ts-Bfkzx4ao.js.map +1 -0
- package/build/server/chunks/_server.ts-Bj17GHeW.js +44 -0
- package/build/server/chunks/_server.ts-Bj17GHeW.js.map +1 -0
- package/build/server/chunks/_server.ts-BjEVNsPT.js +50 -0
- package/build/server/chunks/_server.ts-BjEVNsPT.js.map +1 -0
- package/build/server/chunks/_server.ts-Bu-Ie_Mc.js +96 -0
- package/build/server/chunks/_server.ts-Bu-Ie_Mc.js.map +1 -0
- package/build/server/chunks/_server.ts-BvwD-tU2.js +49 -0
- package/build/server/chunks/_server.ts-BvwD-tU2.js.map +1 -0
- package/build/server/chunks/_server.ts-C0Zlu5Xy.js +107 -0
- package/build/server/chunks/_server.ts-C0Zlu5Xy.js.map +1 -0
- package/build/server/chunks/_server.ts-C1k-QptM.js +68 -0
- package/build/server/chunks/_server.ts-C1k-QptM.js.map +1 -0
- package/build/server/chunks/_server.ts-C43E5b3d.js +521 -0
- package/build/server/chunks/_server.ts-C43E5b3d.js.map +1 -0
- package/build/server/chunks/_server.ts-C5NMGLvR.js +68 -0
- package/build/server/chunks/_server.ts-C5NMGLvR.js.map +1 -0
- package/build/server/chunks/_server.ts-C7uAOfo3.js +94 -0
- package/build/server/chunks/_server.ts-C7uAOfo3.js.map +1 -0
- package/build/server/chunks/_server.ts-C7wn5VUY.js +111 -0
- package/build/server/chunks/_server.ts-C7wn5VUY.js.map +1 -0
- package/build/server/chunks/_server.ts-CFz_IeN4.js +56 -0
- package/build/server/chunks/_server.ts-CFz_IeN4.js.map +1 -0
- package/build/server/chunks/_server.ts-CHuyT9rF.js +69 -0
- package/build/server/chunks/_server.ts-CHuyT9rF.js.map +1 -0
- package/build/server/chunks/_server.ts-CKcFu8B-.js +171 -0
- package/build/server/chunks/_server.ts-CKcFu8B-.js.map +1 -0
- package/build/server/chunks/_server.ts-CMwOXeFC.js +80 -0
- package/build/server/chunks/_server.ts-CMwOXeFC.js.map +1 -0
- package/build/server/chunks/_server.ts-CP02aPdv.js +64 -0
- package/build/server/chunks/_server.ts-CP02aPdv.js.map +1 -0
- package/build/server/chunks/_server.ts-CQIXn8xb.js +64 -0
- package/build/server/chunks/_server.ts-CQIXn8xb.js.map +1 -0
- package/build/server/chunks/_server.ts-CTKwaXm1.js +93 -0
- package/build/server/chunks/_server.ts-CTKwaXm1.js.map +1 -0
- package/build/server/chunks/_server.ts-CUPbFKq2.js +106 -0
- package/build/server/chunks/_server.ts-CUPbFKq2.js.map +1 -0
- package/build/server/chunks/_server.ts-CXt9azl0.js +105 -0
- package/build/server/chunks/_server.ts-CXt9azl0.js.map +1 -0
- package/build/server/chunks/_server.ts-CYY3W2qh.js +715 -0
- package/build/server/chunks/_server.ts-CYY3W2qh.js.map +1 -0
- package/build/server/chunks/_server.ts-C_qRsJI2.js +68 -0
- package/build/server/chunks/_server.ts-C_qRsJI2.js.map +1 -0
- package/build/server/chunks/_server.ts-CbkJG3Yk.js +72 -0
- package/build/server/chunks/_server.ts-CbkJG3Yk.js.map +1 -0
- package/build/server/chunks/_server.ts-Cg_4-N8w.js +34 -0
- package/build/server/chunks/_server.ts-Cg_4-N8w.js.map +1 -0
- package/build/server/chunks/_server.ts-Chf0EFLa.js +60 -0
- package/build/server/chunks/_server.ts-Chf0EFLa.js.map +1 -0
- package/build/server/chunks/_server.ts-Ci1n4eQ3.js +52 -0
- package/build/server/chunks/_server.ts-Ci1n4eQ3.js.map +1 -0
- package/build/server/chunks/_server.ts-ClO4pSRG.js +51 -0
- package/build/server/chunks/_server.ts-ClO4pSRG.js.map +1 -0
- package/build/server/chunks/_server.ts-Cp6d9DIG.js +103 -0
- package/build/server/chunks/_server.ts-Cp6d9DIG.js.map +1 -0
- package/build/server/chunks/_server.ts-CtiJiKFW.js +58 -0
- package/build/server/chunks/_server.ts-CtiJiKFW.js.map +1 -0
- package/build/server/chunks/_server.ts-CtsLQpY2.js +19 -0
- package/build/server/chunks/_server.ts-CtsLQpY2.js.map +1 -0
- package/build/server/chunks/_server.ts-CyzJdUdD.js +88 -0
- package/build/server/chunks/_server.ts-CyzJdUdD.js.map +1 -0
- package/build/server/chunks/_server.ts-D1mP7Ux6.js +173 -0
- package/build/server/chunks/_server.ts-D1mP7Ux6.js.map +1 -0
- package/build/server/chunks/_server.ts-D2dBUHv-.js +61 -0
- package/build/server/chunks/_server.ts-D2dBUHv-.js.map +1 -0
- package/build/server/chunks/_server.ts-D81J9NzU.js +44 -0
- package/build/server/chunks/_server.ts-D81J9NzU.js.map +1 -0
- package/build/server/chunks/_server.ts-DJFB76Z4.js +36 -0
- package/build/server/chunks/_server.ts-DJFB76Z4.js.map +1 -0
- package/build/server/chunks/_server.ts-DJxUVpVr.js +55 -0
- package/build/server/chunks/_server.ts-DJxUVpVr.js.map +1 -0
- package/build/server/chunks/_server.ts-DK409rto.js +45 -0
- package/build/server/chunks/_server.ts-DK409rto.js.map +1 -0
- package/build/server/chunks/_server.ts-DPw-9Fvz.js +88 -0
- package/build/server/chunks/_server.ts-DPw-9Fvz.js.map +1 -0
- package/build/server/chunks/_server.ts-DTOMs2Oo.js +57 -0
- package/build/server/chunks/_server.ts-DTOMs2Oo.js.map +1 -0
- package/build/server/chunks/_server.ts-DVXK2VD6.js +60 -0
- package/build/server/chunks/_server.ts-DVXK2VD6.js.map +1 -0
- package/build/server/chunks/_server.ts-DW3mRh_v.js +72 -0
- package/build/server/chunks/_server.ts-DW3mRh_v.js.map +1 -0
- package/build/server/chunks/_server.ts-Db2X5ulY.js +41 -0
- package/build/server/chunks/_server.ts-Db2X5ulY.js.map +1 -0
- package/build/server/chunks/_server.ts-DhfQc2ah.js +134 -0
- package/build/server/chunks/_server.ts-DhfQc2ah.js.map +1 -0
- package/build/server/chunks/_server.ts-DjFDthjg.js +44 -0
- package/build/server/chunks/_server.ts-DjFDthjg.js.map +1 -0
- package/build/server/chunks/_server.ts-Dk7RL-D7.js +61 -0
- package/build/server/chunks/_server.ts-Dk7RL-D7.js.map +1 -0
- package/build/server/chunks/_server.ts-DrHEkbDq.js +84 -0
- package/build/server/chunks/_server.ts-DrHEkbDq.js.map +1 -0
- package/build/server/chunks/_server.ts-DvKpBV-Y.js +42 -0
- package/build/server/chunks/_server.ts-DvKpBV-Y.js.map +1 -0
- package/build/server/chunks/_server.ts-FhE6fUSD.js +40 -0
- package/build/server/chunks/_server.ts-FhE6fUSD.js.map +1 -0
- package/build/server/chunks/_server.ts-GuptvcVQ.js +49 -0
- package/build/server/chunks/_server.ts-GuptvcVQ.js.map +1 -0
- package/build/server/chunks/_server.ts-HN1FxysS.js +68 -0
- package/build/server/chunks/_server.ts-HN1FxysS.js.map +1 -0
- package/build/server/chunks/_server.ts-HlB5nMY9.js +149 -0
- package/build/server/chunks/_server.ts-HlB5nMY9.js.map +1 -0
- package/build/server/chunks/_server.ts-MvwnQkPT.js +49 -0
- package/build/server/chunks/_server.ts-MvwnQkPT.js.map +1 -0
- package/build/server/chunks/_server.ts-Q1zB1kiD.js +87 -0
- package/build/server/chunks/_server.ts-Q1zB1kiD.js.map +1 -0
- package/build/server/chunks/_server.ts-Rv6Qmjnm.js +65 -0
- package/build/server/chunks/_server.ts-Rv6Qmjnm.js.map +1 -0
- package/build/server/chunks/_server.ts-S90K5IJI.js +57 -0
- package/build/server/chunks/_server.ts-S90K5IJI.js.map +1 -0
- package/build/server/chunks/_server.ts-Y4JoeA12.js +141 -0
- package/build/server/chunks/_server.ts-Y4JoeA12.js.map +1 -0
- package/build/server/chunks/_server.ts-at5EQV31.js +162 -0
- package/build/server/chunks/_server.ts-at5EQV31.js.map +1 -0
- package/build/server/chunks/_server.ts-c64R3qMS.js +112 -0
- package/build/server/chunks/_server.ts-c64R3qMS.js.map +1 -0
- package/build/server/chunks/_server.ts-nasuSdo-.js +80 -0
- package/build/server/chunks/_server.ts-nasuSdo-.js.map +1 -0
- package/build/server/chunks/_server.ts-rPbq-4rb.js +87 -0
- package/build/server/chunks/_server.ts-rPbq-4rb.js.map +1 -0
- package/build/server/chunks/_server.ts-tchYVZRL.js +166 -0
- package/build/server/chunks/_server.ts-tchYVZRL.js.map +1 -0
- package/build/server/chunks/_server.ts-uqxkiRQ1.js +38 -0
- package/build/server/chunks/_server.ts-uqxkiRQ1.js.map +1 -0
- package/build/server/chunks/_server.ts-y3HSMNEG.js +56 -0
- package/build/server/chunks/_server.ts-y3HSMNEG.js.map +1 -0
- package/build/server/chunks/_server.ts-y7XlQItn.js +58 -0
- package/build/server/chunks/_server.ts-y7XlQItn.js.map +1 -0
- package/build/server/chunks/addon-helpers-Cpj40OF3.js +51 -0
- package/build/server/chunks/addon-helpers-Cpj40OF3.js.map +1 -0
- package/build/server/chunks/akm-D8uSJNzt.js +151 -0
- package/build/server/chunks/akm-D8uSJNzt.js.map +1 -0
- package/build/server/chunks/catalog-C9ClLZ62.js +217 -0
- package/build/server/chunks/catalog-C9ClLZ62.js.map +1 -0
- package/build/server/chunks/client-utk4T8Jl.js +202 -0
- package/build/server/chunks/client-utk4T8Jl.js.map +1 -0
- package/build/server/chunks/compose-args2-cix5m26E.js +26 -0
- package/build/server/chunks/compose-args2-cix5m26E.js.map +1 -0
- package/build/server/chunks/config-BV78mCrh.js +121 -0
- package/build/server/chunks/config-BV78mCrh.js.map +1 -0
- package/build/server/chunks/connections-api-CpQ5k7QC.js +34 -0
- package/build/server/chunks/connections-api-CpQ5k7QC.js.map +1 -0
- package/build/server/chunks/constants-B7J5DDaI.js +298 -0
- package/build/server/chunks/constants-B7J5DDaI.js.map +1 -0
- package/build/server/chunks/docker2-DqIy9JYf.js +26 -0
- package/build/server/chunks/docker2-DqIy9JYf.js.map +1 -0
- package/build/server/chunks/docker3-DvrSgFLt.js +20 -0
- package/build/server/chunks/docker3-DvrSgFLt.js.map +1 -0
- package/build/server/chunks/endpoints-CU3ehglV.js +377 -0
- package/build/server/chunks/endpoints-CU3ehglV.js.map +1 -0
- package/build/server/chunks/environment-BYp8JQYM.js +38 -0
- package/build/server/chunks/environment-BYp8JQYM.js.map +1 -0
- package/build/server/chunks/error.svelte-B9DQG_Wh.js +18 -0
- package/build/server/chunks/error.svelte-B9DQG_Wh.js.map +1 -0
- package/build/server/chunks/exports-CcmcYU0M.js +124 -0
- package/build/server/chunks/exports-CcmcYU0M.js.map +1 -0
- package/build/server/chunks/exports2-BjzhbhYA.js +691 -0
- package/build/server/chunks/exports2-BjzhbhYA.js.map +1 -0
- package/build/server/chunks/features-DLGlNjZX.js +116 -0
- package/build/server/chunks/features-DLGlNjZX.js.map +1 -0
- package/build/server/chunks/format-date-gcou_Av8.js +950 -0
- package/build/server/chunks/format-date-gcou_Av8.js.map +1 -0
- package/build/server/chunks/helpers-7BvhniSt.js +320 -0
- package/build/server/chunks/helpers-7BvhniSt.js.map +1 -0
- package/build/server/chunks/hooks.server-CwIkB_d8.js +115 -0
- package/build/server/chunks/hooks.server-CwIkB_d8.js.map +1 -0
- package/build/server/chunks/http-D0qKwTqb.js +31 -0
- package/build/server/chunks/http-D0qKwTqb.js.map +1 -0
- package/build/server/chunks/internal-CVxYC2gp.js +915 -0
- package/build/server/chunks/internal-CVxYC2gp.js.map +1 -0
- package/build/server/chunks/landing-BAWznbys.js +95 -0
- package/build/server/chunks/landing-BAWznbys.js.map +1 -0
- package/build/server/chunks/paths-lkOb-n87.js +17 -0
- package/build/server/chunks/paths-lkOb-n87.js.map +1 -0
- package/build/server/chunks/provider-constants-1s1k8kbj.js +68 -0
- package/build/server/chunks/provider-constants-1s1k8kbj.js.map +1 -0
- package/build/server/chunks/runtime-context.svelte-FZapSP7A.js +24 -0
- package/build/server/chunks/runtime-context.svelte-FZapSP7A.js.map +1 -0
- package/build/server/chunks/session-cookie-WuIYBiMY.js +74 -0
- package/build/server/chunks/session-cookie-WuIYBiMY.js.map +1 -0
- package/build/server/chunks/setup-deploy-DaMn6d6g.js +75 -0
- package/build/server/chunks/setup-deploy-DaMn6d6g.js.map +1 -0
- package/build/server/chunks/speakable-text-BflxDDdY.js +65 -0
- package/build/server/chunks/speakable-text-BflxDDdY.js.map +1 -0
- package/build/server/chunks/src-CS2sSYOR.js +17213 -0
- package/build/server/chunks/src-CS2sSYOR.js.map +1 -0
- package/build/server/chunks/state-BRh7vs9j.js +24 -0
- package/build/server/chunks/state-BRh7vs9j.js.map +1 -0
- package/build/server/chunks/state2-COVNCCTq.js +62 -0
- package/build/server/chunks/state2-COVNCCTq.js.map +1 -0
- package/build/server/chunks/utils-OXHIhUb5.js +150 -0
- package/build/server/chunks/utils-OXHIhUb5.js.map +1 -0
- package/build/server/chunks/voice-state.svelte-bOoc1Vo0.js +1214 -0
- package/build/server/chunks/voice-state.svelte-bOoc1Vo0.js.map +1 -0
- package/build/server/index.js +33 -33
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +272 -243
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -2
- package/build/client/_app/immutable/assets/0.C-UsFwN5.css +0 -1
- package/build/client/_app/immutable/assets/0.C-UsFwN5.css.br +0 -0
- package/build/client/_app/immutable/assets/0.C-UsFwN5.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.p7qpuBHR.css +0 -1
- package/build/client/_app/immutable/assets/10.p7qpuBHR.css.br +0 -2
- package/build/client/_app/immutable/assets/10.p7qpuBHR.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.DKS7ivN-.css +0 -1
- package/build/client/_app/immutable/assets/4.DKS7ivN-.css.br +0 -0
- package/build/client/_app/immutable/assets/4.DKS7ivN-.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.B9kVBENv.css +0 -1
- package/build/client/_app/immutable/assets/5.B9kVBENv.css.br +0 -0
- package/build/client/_app/immutable/assets/5.B9kVBENv.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.C0_Oskm7.css +0 -1
- package/build/client/_app/immutable/assets/7.C0_Oskm7.css.br +0 -0
- package/build/client/_app/immutable/assets/7.C0_Oskm7.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DdhLOSFx.css +0 -1
- package/build/client/_app/immutable/assets/8.DdhLOSFx.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DdhLOSFx.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.4QFZFijM.css +0 -1
- package/build/client/_app/immutable/assets/9.4QFZFijM.css.br +0 -0
- package/build/client/_app/immutable/assets/9.4QFZFijM.css.gz +0 -0
- package/build/client/_app/immutable/assets/IconClock.CudG-UM6.css +0 -1
- package/build/client/_app/immutable/assets/IconClock.CudG-UM6.css.br +0 -0
- package/build/client/_app/immutable/assets/IconClock.CudG-UM6.css.gz +0 -0
- package/build/client/_app/immutable/assets/Navbar.D3rckLpW.css +0 -1
- package/build/client/_app/immutable/assets/Navbar.D3rckLpW.css.br +0 -0
- package/build/client/_app/immutable/assets/Navbar.D3rckLpW.css.gz +0 -0
- package/build/client/_app/immutable/assets/Spinner.CCwieGti.css +0 -1
- package/build/client/_app/immutable/assets/Spinner.CCwieGti.css.br +0 -0
- package/build/client/_app/immutable/assets/Spinner.CCwieGti.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B6a5LPQe.js +0 -3
- package/build/client/_app/immutable/chunks/B6a5LPQe.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6a5LPQe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFVV1YJb.js +0 -1
- package/build/client/_app/immutable/chunks/BFVV1YJb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFVV1YJb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BeDFZ0w6.js +0 -1
- package/build/client/_app/immutable/chunks/BeDFZ0w6.js.br +0 -0
- package/build/client/_app/immutable/chunks/BeDFZ0w6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiuKIdz2.js +0 -1
- package/build/client/_app/immutable/chunks/BiuKIdz2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiuKIdz2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3n4za32.js +0 -1
- package/build/client/_app/immutable/chunks/C3n4za32.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3n4za32.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4j7gGnm.js +0 -14
- package/build/client/_app/immutable/chunks/C4j7gGnm.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4j7gGnm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8Qdq8nY.js +0 -1
- package/build/client/_app/immutable/chunks/C8Qdq8nY.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8Qdq8nY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DI0CI0UJ.js +0 -1
- package/build/client/_app/immutable/chunks/DI0CI0UJ.js.br +0 -2
- package/build/client/_app/immutable/chunks/DI0CI0UJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DOah_AX9.js +0 -1
- package/build/client/_app/immutable/chunks/DOah_AX9.js.br +0 -2
- package/build/client/_app/immutable/chunks/DOah_AX9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DS38YEEh.js +0 -3
- package/build/client/_app/immutable/chunks/DS38YEEh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DS38YEEh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWwJdNrB.js +0 -1
- package/build/client/_app/immutable/chunks/DWwJdNrB.js.br +0 -1
- package/build/client/_app/immutable/chunks/DWwJdNrB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DoqDEOzg.js +0 -1
- package/build/client/_app/immutable/chunks/DoqDEOzg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DoqDEOzg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HbvxHNCX.js +0 -1
- package/build/client/_app/immutable/chunks/HbvxHNCX.js.br +0 -0
- package/build/client/_app/immutable/chunks/HbvxHNCX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/d5pHSbNd.js +0 -1
- package/build/client/_app/immutable/chunks/d5pHSbNd.js.br +0 -0
- package/build/client/_app/immutable/chunks/d5pHSbNd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jopA0ZFl.js +0 -1
- package/build/client/_app/immutable/chunks/jopA0ZFl.js.br +0 -0
- package/build/client/_app/immutable/chunks/jopA0ZFl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/mVxTG_mC.js +0 -1
- package/build/client/_app/immutable/chunks/mVxTG_mC.js.br +0 -3
- package/build/client/_app/immutable/chunks/mVxTG_mC.js.gz +0 -0
- package/build/client/_app/immutable/chunks/p-DX0ixp.js +0 -5
- package/build/client/_app/immutable/chunks/p-DX0ixp.js.br +0 -0
- package/build/client/_app/immutable/chunks/p-DX0ixp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zMaWNBEE.js +0 -1
- package/build/client/_app/immutable/chunks/zMaWNBEE.js.br +0 -0
- package/build/client/_app/immutable/chunks/zMaWNBEE.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DehYJGqJ.js +0 -2
- package/build/client/_app/immutable/entry/app.DehYJGqJ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DehYJGqJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.wiUeco_y.js +0 -1
- package/build/client/_app/immutable/entry/start.wiUeco_y.js.br +0 -0
- package/build/client/_app/immutable/entry/start.wiUeco_y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Cnp9ux9m.js +0 -1
- package/build/client/_app/immutable/nodes/0.Cnp9ux9m.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Cnp9ux9m.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BemXOvxs.js +0 -1
- package/build/client/_app/immutable/nodes/1.BemXOvxs.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.BemXOvxs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.ZllEmpUV.js +0 -1
- package/build/client/_app/immutable/nodes/10.ZllEmpUV.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.ZllEmpUV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Di1bEoG2.js +0 -1
- package/build/client/_app/immutable/nodes/2.Di1bEoG2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Di1bEoG2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DNLsgB0V.js +0 -1
- package/build/client/_app/immutable/nodes/3.DNLsgB0V.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DNLsgB0V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DYNAraCN.js +0 -124
- package/build/client/_app/immutable/nodes/4.DYNAraCN.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DYNAraCN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CKpwzpJZ.js +0 -4
- package/build/client/_app/immutable/nodes/5.CKpwzpJZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CKpwzpJZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.D5-ZIRjO.js +0 -1
- package/build/client/_app/immutable/nodes/6.D5-ZIRjO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D5-ZIRjO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BvOE8CuZ.js +0 -2
- package/build/client/_app/immutable/nodes/7.BvOE8CuZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BvOE8CuZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BBUAt98J.js +0 -1
- package/build/client/_app/immutable/nodes/8.BBUAt98J.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BBUAt98J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DOXxvfJX.js +0 -6
- package/build/client/_app/immutable/nodes/9.DOXxvfJX.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DOXxvfJX.js.gz +0 -0
- package/build/server/chunks/0-Cgrn5hhk.js +0 -22
- package/build/server/chunks/0-Cgrn5hhk.js.map +0 -1
- package/build/server/chunks/1-CZn9SJHY.js +0 -9
- package/build/server/chunks/1-CZn9SJHY.js.map +0 -1
- package/build/server/chunks/10-CtFpKzhY.js +0 -69
- package/build/server/chunks/10-CtFpKzhY.js.map +0 -1
- package/build/server/chunks/2-BcxV9Utx.js +0 -9
- package/build/server/chunks/2-BcxV9Utx.js.map +0 -1
- package/build/server/chunks/3-EodZ49YI.js +0 -23
- package/build/server/chunks/3-EodZ49YI.js.map +0 -1
- package/build/server/chunks/4-BFceMUCr.js +0 -9
- package/build/server/chunks/4-BFceMUCr.js.map +0 -1
- package/build/server/chunks/5-DMSVfHW6.js +0 -9
- package/build/server/chunks/5-DMSVfHW6.js.map +0 -1
- package/build/server/chunks/6-DfKN8DgI.js +0 -9
- package/build/server/chunks/6-DfKN8DgI.js.map +0 -1
- package/build/server/chunks/7-DH54977X.js +0 -9
- package/build/server/chunks/7-DH54977X.js.map +0 -1
- package/build/server/chunks/8-DU3RlvqB.js +0 -35
- package/build/server/chunks/8-DU3RlvqB.js.map +0 -1
- package/build/server/chunks/9-CJj3CrWs.js +0 -9
- package/build/server/chunks/9-CJj3CrWs.js.map +0 -1
- package/build/server/chunks/IconAlert-eLDsz7qz.js +0 -5496
- package/build/server/chunks/IconAlert-eLDsz7qz.js.map +0 -1
- package/build/server/chunks/IconDone-YB1DYJFs.js +0 -10
- package/build/server/chunks/IconDone-YB1DYJFs.js.map +0 -1
- package/build/server/chunks/IconInfo-yYiI9uGe.js +0 -10
- package/build/server/chunks/IconInfo-yYiI9uGe.js.map +0 -1
- package/build/server/chunks/IconLock-DHiqGiiZ.js +0 -10
- package/build/server/chunks/IconLock-DHiqGiiZ.js.map +0 -1
- package/build/server/chunks/IconLogo-Iv-7q8aY.js +0 -10
- package/build/server/chunks/IconLogo-Iv-7q8aY.js.map +0 -1
- package/build/server/chunks/IconMic-DLx3WSIu.js +0 -1291
- package/build/server/chunks/IconMic-DLx3WSIu.js.map +0 -1
- package/build/server/chunks/Navbar-CY_SCLFB.js +0 -403
- package/build/server/chunks/Navbar-CY_SCLFB.js.map +0 -1
- package/build/server/chunks/Spinner-jfNKSy3m.js +0 -12
- package/build/server/chunks/Spinner-jfNKSy3m.js.map +0 -1
- package/build/server/chunks/_helpers-B_lb4-jB.js +0 -74
- package/build/server/chunks/_helpers-B_lb4-jB.js.map +0 -1
- package/build/server/chunks/_layout.svelte-D8yNnetP.js +0 -66
- package/build/server/chunks/_layout.svelte-D8yNnetP.js.map +0 -1
- package/build/server/chunks/_page.svelte-1DSc9sIW.js +0 -74
- package/build/server/chunks/_page.svelte-1DSc9sIW.js.map +0 -1
- package/build/server/chunks/_page.svelte-BCIeT4bO.js +0 -3289
- package/build/server/chunks/_page.svelte-BCIeT4bO.js.map +0 -1
- package/build/server/chunks/_page.svelte-BfI94K0U.js +0 -122
- package/build/server/chunks/_page.svelte-BfI94K0U.js.map +0 -1
- package/build/server/chunks/_page.svelte-C3Ojg16l.js +0 -47
- package/build/server/chunks/_page.svelte-C3Ojg16l.js.map +0 -1
- package/build/server/chunks/_page.svelte-DAu9fGOD.js +0 -356
- package/build/server/chunks/_page.svelte-DAu9fGOD.js.map +0 -1
- package/build/server/chunks/_page.svelte-DCHynIvB.js +0 -79
- package/build/server/chunks/_page.svelte-DCHynIvB.js.map +0 -1
- package/build/server/chunks/_page.svelte-Dqk_OD73.js +0 -89
- package/build/server/chunks/_page.svelte-Dqk_OD73.js.map +0 -1
- package/build/server/chunks/_server.ts-0Vg6AJPt.js +0 -92
- package/build/server/chunks/_server.ts-0Vg6AJPt.js.map +0 -1
- package/build/server/chunks/_server.ts-1gIYETOG.js +0 -53
- package/build/server/chunks/_server.ts-1gIYETOG.js.map +0 -1
- package/build/server/chunks/_server.ts-2cFkndKX.js +0 -70
- package/build/server/chunks/_server.ts-2cFkndKX.js.map +0 -1
- package/build/server/chunks/_server.ts-33LuQvHu.js +0 -19
- package/build/server/chunks/_server.ts-33LuQvHu.js.map +0 -1
- package/build/server/chunks/_server.ts-B1moS46A.js +0 -45
- package/build/server/chunks/_server.ts-B1moS46A.js.map +0 -1
- package/build/server/chunks/_server.ts-B3MxMbHf.js +0 -64
- package/build/server/chunks/_server.ts-B3MxMbHf.js.map +0 -1
- package/build/server/chunks/_server.ts-B8ETN5kp.js +0 -517
- package/build/server/chunks/_server.ts-B8ETN5kp.js.map +0 -1
- package/build/server/chunks/_server.ts-BCRrWDdm.js +0 -59
- package/build/server/chunks/_server.ts-BCRrWDdm.js.map +0 -1
- package/build/server/chunks/_server.ts-BF8BIeRx.js +0 -129
- package/build/server/chunks/_server.ts-BF8BIeRx.js.map +0 -1
- package/build/server/chunks/_server.ts-BICdc86-.js +0 -78
- package/build/server/chunks/_server.ts-BICdc86-.js.map +0 -1
- package/build/server/chunks/_server.ts-BL9qmwrJ.js +0 -152
- package/build/server/chunks/_server.ts-BL9qmwrJ.js.map +0 -1
- package/build/server/chunks/_server.ts-BLozviCa.js +0 -105
- package/build/server/chunks/_server.ts-BLozviCa.js.map +0 -1
- package/build/server/chunks/_server.ts-BNpMpfbh.js +0 -149
- package/build/server/chunks/_server.ts-BNpMpfbh.js.map +0 -1
- package/build/server/chunks/_server.ts-BNxDIQAc.js +0 -160
- package/build/server/chunks/_server.ts-BNxDIQAc.js.map +0 -1
- package/build/server/chunks/_server.ts-BVJhOHAZ.js +0 -57
- package/build/server/chunks/_server.ts-BVJhOHAZ.js.map +0 -1
- package/build/server/chunks/_server.ts-BX5MvUV2.js +0 -82
- package/build/server/chunks/_server.ts-BX5MvUV2.js.map +0 -1
- package/build/server/chunks/_server.ts-Bc8yiTeq.js +0 -69
- package/build/server/chunks/_server.ts-Bc8yiTeq.js.map +0 -1
- package/build/server/chunks/_server.ts-BhgsoGpy.js +0 -62
- package/build/server/chunks/_server.ts-BhgsoGpy.js.map +0 -1
- package/build/server/chunks/_server.ts-BjSC3Crp.js +0 -103
- package/build/server/chunks/_server.ts-BjSC3Crp.js.map +0 -1
- package/build/server/chunks/_server.ts-Bl4VSlUo.js +0 -203
- package/build/server/chunks/_server.ts-Bl4VSlUo.js.map +0 -1
- package/build/server/chunks/_server.ts-Bs5cXrgG.js +0 -36
- package/build/server/chunks/_server.ts-Bs5cXrgG.js.map +0 -1
- package/build/server/chunks/_server.ts-Bt03j03I.js +0 -36
- package/build/server/chunks/_server.ts-Bt03j03I.js.map +0 -1
- package/build/server/chunks/_server.ts-Bt5bqJxH.js +0 -76
- package/build/server/chunks/_server.ts-Bt5bqJxH.js.map +0 -1
- package/build/server/chunks/_server.ts-Byf8QxAm.js +0 -57
- package/build/server/chunks/_server.ts-Byf8QxAm.js.map +0 -1
- package/build/server/chunks/_server.ts-ByhIQ3aO.js +0 -47
- package/build/server/chunks/_server.ts-ByhIQ3aO.js.map +0 -1
- package/build/server/chunks/_server.ts-C09yQI2v.js +0 -50
- package/build/server/chunks/_server.ts-C09yQI2v.js.map +0 -1
- package/build/server/chunks/_server.ts-C2LdQElH.js +0 -66
- package/build/server/chunks/_server.ts-C2LdQElH.js.map +0 -1
- package/build/server/chunks/_server.ts-C34ptFRI.js +0 -54
- package/build/server/chunks/_server.ts-C34ptFRI.js.map +0 -1
- package/build/server/chunks/_server.ts-C6TD8kSk.js +0 -44
- package/build/server/chunks/_server.ts-C6TD8kSk.js.map +0 -1
- package/build/server/chunks/_server.ts-C6ZTHZuH.js +0 -56
- package/build/server/chunks/_server.ts-C6ZTHZuH.js.map +0 -1
- package/build/server/chunks/_server.ts-C6qZPflw.js +0 -41
- package/build/server/chunks/_server.ts-C6qZPflw.js.map +0 -1
- package/build/server/chunks/_server.ts-C7jQrkiM.js +0 -120
- package/build/server/chunks/_server.ts-C7jQrkiM.js.map +0 -1
- package/build/server/chunks/_server.ts-CFjNoMgW.js +0 -49
- package/build/server/chunks/_server.ts-CFjNoMgW.js.map +0 -1
- package/build/server/chunks/_server.ts-COlWg-KN.js +0 -58
- package/build/server/chunks/_server.ts-COlWg-KN.js.map +0 -1
- package/build/server/chunks/_server.ts-CQUOqnix.js +0 -66
- package/build/server/chunks/_server.ts-CQUOqnix.js.map +0 -1
- package/build/server/chunks/_server.ts-CbTXB4zQ.js +0 -85
- package/build/server/chunks/_server.ts-CbTXB4zQ.js.map +0 -1
- package/build/server/chunks/_server.ts-Ch_BIGij.js +0 -92
- package/build/server/chunks/_server.ts-Ch_BIGij.js.map +0 -1
- package/build/server/chunks/_server.ts-ClfK8dTq.js +0 -40
- package/build/server/chunks/_server.ts-ClfK8dTq.js.map +0 -1
- package/build/server/chunks/_server.ts-ClthZEFZ.js +0 -36
- package/build/server/chunks/_server.ts-ClthZEFZ.js.map +0 -1
- package/build/server/chunks/_server.ts-CoeqCjOS.js +0 -84
- package/build/server/chunks/_server.ts-CoeqCjOS.js.map +0 -1
- package/build/server/chunks/_server.ts-CudpSCuq.js +0 -103
- package/build/server/chunks/_server.ts-CudpSCuq.js.map +0 -1
- package/build/server/chunks/_server.ts-CweZ_2Ka.js +0 -70
- package/build/server/chunks/_server.ts-CweZ_2Ka.js.map +0 -1
- package/build/server/chunks/_server.ts-CxydSIrH.js +0 -42
- package/build/server/chunks/_server.ts-CxydSIrH.js.map +0 -1
- package/build/server/chunks/_server.ts-Cyub8n-5.js +0 -44
- package/build/server/chunks/_server.ts-Cyub8n-5.js.map +0 -1
- package/build/server/chunks/_server.ts-CzmF1JGr.js +0 -63
- package/build/server/chunks/_server.ts-CzmF1JGr.js.map +0 -1
- package/build/server/chunks/_server.ts-D-7FqErp.js +0 -208
- package/build/server/chunks/_server.ts-D-7FqErp.js.map +0 -1
- package/build/server/chunks/_server.ts-D2ayVrtV.js +0 -35
- package/build/server/chunks/_server.ts-D2ayVrtV.js.map +0 -1
- package/build/server/chunks/_server.ts-D5d5Ai45.js +0 -56
- package/build/server/chunks/_server.ts-D5d5Ai45.js.map +0 -1
- package/build/server/chunks/_server.ts-D8IzPOEK.js +0 -85
- package/build/server/chunks/_server.ts-D8IzPOEK.js.map +0 -1
- package/build/server/chunks/_server.ts-DBSn4Gb6.js +0 -49
- package/build/server/chunks/_server.ts-DBSn4Gb6.js.map +0 -1
- package/build/server/chunks/_server.ts-DEieV6Jw.js +0 -43
- package/build/server/chunks/_server.ts-DEieV6Jw.js.map +0 -1
- package/build/server/chunks/_server.ts-DFbWfrL9.js +0 -67
- package/build/server/chunks/_server.ts-DFbWfrL9.js.map +0 -1
- package/build/server/chunks/_server.ts-DFqHg2Ht.js +0 -94
- package/build/server/chunks/_server.ts-DFqHg2Ht.js.map +0 -1
- package/build/server/chunks/_server.ts-DL04u4ie.js +0 -59
- package/build/server/chunks/_server.ts-DL04u4ie.js.map +0 -1
- package/build/server/chunks/_server.ts-DPbQT8Pw.js +0 -79
- package/build/server/chunks/_server.ts-DPbQT8Pw.js.map +0 -1
- package/build/server/chunks/_server.ts-DQOcjyqr.js +0 -52
- package/build/server/chunks/_server.ts-DQOcjyqr.js.map +0 -1
- package/build/server/chunks/_server.ts-DTh4mJ7C.js +0 -89
- package/build/server/chunks/_server.ts-DTh4mJ7C.js.map +0 -1
- package/build/server/chunks/_server.ts-DTwdzGLv.js +0 -48
- package/build/server/chunks/_server.ts-DTwdzGLv.js.map +0 -1
- package/build/server/chunks/_server.ts-D_zhSEAX.js +0 -56
- package/build/server/chunks/_server.ts-D_zhSEAX.js.map +0 -1
- package/build/server/chunks/_server.ts-Db_-LqfJ.js +0 -244
- package/build/server/chunks/_server.ts-Db_-LqfJ.js.map +0 -1
- package/build/server/chunks/_server.ts-DgnY_kk9.js +0 -43
- package/build/server/chunks/_server.ts-DgnY_kk9.js.map +0 -1
- package/build/server/chunks/_server.ts-Dp-M-qYf.js +0 -39
- package/build/server/chunks/_server.ts-Dp-M-qYf.js.map +0 -1
- package/build/server/chunks/_server.ts-Dp8R00NF.js +0 -167
- package/build/server/chunks/_server.ts-Dp8R00NF.js.map +0 -1
- package/build/server/chunks/_server.ts-Dwi62jBH.js +0 -55
- package/build/server/chunks/_server.ts-Dwi62jBH.js.map +0 -1
- package/build/server/chunks/_server.ts-DxPPZbk0.js +0 -762
- package/build/server/chunks/_server.ts-DxPPZbk0.js.map +0 -1
- package/build/server/chunks/_server.ts-E_FGVBJQ.js +0 -76
- package/build/server/chunks/_server.ts-E_FGVBJQ.js.map +0 -1
- package/build/server/chunks/_server.ts-GRGhe_9u.js +0 -80
- package/build/server/chunks/_server.ts-GRGhe_9u.js.map +0 -1
- package/build/server/chunks/_server.ts-I7AOxkUv.js +0 -172
- package/build/server/chunks/_server.ts-I7AOxkUv.js.map +0 -1
- package/build/server/chunks/_server.ts-Lm2k__lp.js +0 -57
- package/build/server/chunks/_server.ts-Lm2k__lp.js.map +0 -1
- package/build/server/chunks/_server.ts-LpqGWBGf.js +0 -68
- package/build/server/chunks/_server.ts-LpqGWBGf.js.map +0 -1
- package/build/server/chunks/_server.ts-OuMfyqbK.js +0 -44
- package/build/server/chunks/_server.ts-OuMfyqbK.js.map +0 -1
- package/build/server/chunks/_server.ts-PAwOtE1N.js +0 -112
- package/build/server/chunks/_server.ts-PAwOtE1N.js.map +0 -1
- package/build/server/chunks/_server.ts-PQR7rD7X.js +0 -64
- package/build/server/chunks/_server.ts-PQR7rD7X.js.map +0 -1
- package/build/server/chunks/_server.ts-RMOM33-7.js +0 -55
- package/build/server/chunks/_server.ts-RMOM33-7.js.map +0 -1
- package/build/server/chunks/_server.ts-WeGNeoTr.js +0 -43
- package/build/server/chunks/_server.ts-WeGNeoTr.js.map +0 -1
- package/build/server/chunks/_server.ts-Y4ykTmGx.js +0 -166
- package/build/server/chunks/_server.ts-Y4ykTmGx.js.map +0 -1
- package/build/server/chunks/_server.ts-Zvy5IRGD.js +0 -82
- package/build/server/chunks/_server.ts-Zvy5IRGD.js.map +0 -1
- package/build/server/chunks/_server.ts-iLNBPfy0.js +0 -47
- package/build/server/chunks/_server.ts-iLNBPfy0.js.map +0 -1
- package/build/server/chunks/_server.ts-j7LP7ugw.js +0 -89
- package/build/server/chunks/_server.ts-j7LP7ugw.js.map +0 -1
- package/build/server/chunks/_server.ts-tHdveSZl.js +0 -100
- package/build/server/chunks/_server.ts-tHdveSZl.js.map +0 -1
- package/build/server/chunks/_server.ts-tPvbvgV_.js +0 -50
- package/build/server/chunks/_server.ts-tPvbvgV_.js.map +0 -1
- package/build/server/chunks/_server.ts-u5l5oF5s.js +0 -169
- package/build/server/chunks/_server.ts-u5l5oF5s.js.map +0 -1
- package/build/server/chunks/_server.ts-whWggGP6.js +0 -58
- package/build/server/chunks/_server.ts-whWggGP6.js.map +0 -1
- package/build/server/chunks/_server.ts-y5zwjb1Y.js +0 -57
- package/build/server/chunks/_server.ts-y5zwjb1Y.js.map +0 -1
- package/build/server/chunks/addon-helpers-D5FxFtnl.js +0 -51
- package/build/server/chunks/addon-helpers-D5FxFtnl.js.map +0 -1
- package/build/server/chunks/akm-Bpp1kjYZ.js +0 -151
- package/build/server/chunks/akm-Bpp1kjYZ.js.map +0 -1
- package/build/server/chunks/catalog-DabIknB2.js +0 -217
- package/build/server/chunks/catalog-DabIknB2.js.map +0 -1
- package/build/server/chunks/client-CcgALx2z.js +0 -202
- package/build/server/chunks/client-CcgALx2z.js.map +0 -1
- package/build/server/chunks/config-C4Mb_Dmt.js +0 -121
- package/build/server/chunks/config-C4Mb_Dmt.js.map +0 -1
- package/build/server/chunks/dist-DOFcG0Zp.js +0 -6617
- package/build/server/chunks/dist-DOFcG0Zp.js.map +0 -1
- package/build/server/chunks/docker-CJyb9Y6R.js +0 -20
- package/build/server/chunks/docker-CJyb9Y6R.js.map +0 -1
- package/build/server/chunks/endpoints-CxHHWeBz.js +0 -358
- package/build/server/chunks/endpoints-CxHHWeBz.js.map +0 -1
- package/build/server/chunks/environment-DqfL567G.js +0 -38
- package/build/server/chunks/environment-DqfL567G.js.map +0 -1
- package/build/server/chunks/error.svelte-CdezevWX.js +0 -18
- package/build/server/chunks/error.svelte-CdezevWX.js.map +0 -1
- package/build/server/chunks/exports-D1quPX8S.js +0 -124
- package/build/server/chunks/exports-D1quPX8S.js.map +0 -1
- package/build/server/chunks/exports2-DECEtwH0.js +0 -691
- package/build/server/chunks/exports2-DECEtwH0.js.map +0 -1
- package/build/server/chunks/features-h0rPqe2e.js +0 -15
- package/build/server/chunks/features-h0rPqe2e.js.map +0 -1
- package/build/server/chunks/features.svelte-DsfDrPnq.js +0 -11
- package/build/server/chunks/features.svelte-DsfDrPnq.js.map +0 -1
- package/build/server/chunks/helpers-CkhM6czg.js +0 -293
- package/build/server/chunks/helpers-CkhM6czg.js.map +0 -1
- package/build/server/chunks/hooks.server-CFTYjaVy.js +0 -155
- package/build/server/chunks/hooks.server-CFTYjaVy.js.map +0 -1
- package/build/server/chunks/http-zX6if5Eq.js +0 -31
- package/build/server/chunks/http-zX6if5Eq.js.map +0 -1
- package/build/server/chunks/internal-DfljBIKo.js +0 -915
- package/build/server/chunks/internal-DfljBIKo.js.map +0 -1
- package/build/server/chunks/paths-C_pbfQFE.js +0 -17
- package/build/server/chunks/paths-C_pbfQFE.js.map +0 -1
- package/build/server/chunks/provider-constants-DPrj3yBX.js +0 -63
- package/build/server/chunks/provider-constants-DPrj3yBX.js.map +0 -1
- package/build/server/chunks/session-cookie-P9GNpA5Y.js +0 -74
- package/build/server/chunks/session-cookie-P9GNpA5Y.js.map +0 -1
- package/build/server/chunks/setup-deploy-QhBTcEuB.js +0 -75
- package/build/server/chunks/setup-deploy-QhBTcEuB.js.map +0 -1
- package/build/server/chunks/src-KraOt0_c.js +0 -9682
- package/build/server/chunks/src-KraOt0_c.js.map +0 -1
- package/build/server/chunks/state-ByHu_9PU.js +0 -24
- package/build/server/chunks/state-ByHu_9PU.js.map +0 -1
- package/build/server/chunks/state2-CmPLrPN5.js +0 -62
- package/build/server/chunks/state2-CmPLrPN5.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-BCebCO8r.js +0 -681
- package/build/server/chunks/theme-state.svelte-BCebCO8r.js.map +0 -1
- package/build/server/chunks/utils-BSRjJDrZ.js +0 -150
- package/build/server/chunks/utils-BSRjJDrZ.js.map +0 -1
- /package/build/client/_app/immutable/assets/{6.BXlLAfIE.css → 4.BXlLAfIE.css} +0 -0
- /package/build/client/_app/immutable/assets/{6.BXlLAfIE.css.br → 4.BXlLAfIE.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{6.BXlLAfIE.css.gz → 4.BXlLAfIE.css.gz} +0 -0
- /package/build/client/_app/immutable/assets/{IconSoundOn.BsTA83Hx.css → IconStop.BsTA83Hx.css} +0 -0
- /package/build/client/_app/immutable/assets/{IconSoundOn.BsTA83Hx.css.br → IconStop.BsTA83Hx.css.br} +0 -0
- /package/build/client/_app/immutable/assets/{IconSoundOn.BsTA83Hx.css.gz → IconStop.BsTA83Hx.css.gz} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date-gcou_Av8.js","sources":["../../../.svelte-kit/adapter-node/chunks/format-date.js"],"sourcesContent":["import { V as attr, a as derived, n as attr_class, u as stringify } from \"./dev.js\";\nimport { d as buildHeaders, f as readErrorMessage, m as requireOk, p as request } from \"./voice-state.svelte.js\";\n//#region src/lib/api/endpoints.ts\nasync function fetchConnections() {\n\treturn await (await requireOk(await request(\"GET\", \"/api/connections\"))).json();\n}\nasync function setActiveConnection(id) {\n\treturn await (await requireOk(await request(\"POST\", \"/api/connections/active\", { id }))).json();\n}\n//#endregion\n//#region src/lib/chat/tool-strip.ts\nfunction valueToText$1(value) {\n\tif (typeof value === \"string\") return value;\n\tif (value == null) return \"\";\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\nfunction firstText$1(...values) {\n\tfor (const value of values) {\n\t\tconst text = valueToText$1(value);\n\t\tif (text) return text;\n\t}\n\treturn \"\";\n}\nfunction toolStripEntryFromSessionPart(part, fallbackId) {\n\tif (part.type !== \"tool\" && !part.state) return null;\n\tconst status = part.state?.status ?? \"running\";\n\treturn {\n\t\tid: part.callID ?? part.id ?? fallbackId,\n\t\tkind: \"tool\",\n\t\ttool: part.tool ?? \"tool\",\n\t\tstatus,\n\t\ttitle: part.state?.title ?? part.tool ?? \"tool\",\n\t\tdetail: firstText$1(part.state?.input, part.state?.metadata, part.state?.progress, part.state?.output),\n\t\toutput: valueToText$1(part.state?.output),\n\t\terror: part.state?.error ?? \"\",\n\t\tupdatedAt: Date.now()\n\t};\n}\nfunction parseStructured(value) {\n\tconst trimmed = value.trim();\n\tif (!trimmed) return null;\n\tif (!(trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\") || trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\"))) return null;\n\ttry {\n\t\treturn JSON.parse(trimmed);\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction formatDetail(value) {\n\tconst structured = parseStructured(value);\n\treturn structured === null ? value : JSON.stringify(structured, null, 2);\n}\nfunction prettyLabel(label) {\n\tif (!label) return \"\";\n\treturn label.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\").replace(/[_-]+/g, \" \").replace(/\\s+/g, \" \").trim().replace(/^./, (char) => char.toUpperCase());\n}\nfunction toolIconType(tool, status) {\n\tconst name = tool.toLowerCase();\n\tif (status === \"error\" || status === \"failed\") return \"alert\";\n\tif (name === \"step\") return status === \"completed\" ? \"done-circle\" : \"refresh\";\n\tif (name.includes(\"remember\") || name.includes(\"memory\")) return \"edit\";\n\tif (name.includes(\"help\") || name.includes(\"todo\")) return status === \"completed\" ? \"done\" : \"agent\";\n\tif (name.includes(\"bash\") || name.includes(\"shell\") || name.includes(\"command\")) return \"terminal\";\n\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"search\";\n\tif (name.includes(\"read\") || name.includes(\"file\")) return \"file\";\n\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"edit\";\n\tif (name.includes(\"web\") || name.includes(\"http\") || name.includes(\"fetch\")) return \"link\";\n\tif (name.includes(\"task\") || name.includes(\"agent\")) return \"agent\";\n\treturn status === \"completed\" ? \"done\" : \"clock\";\n}\nfunction timelineTitle(entry) {\n\treturn entry.kind === \"step\" ? entry.title : entry.title || entry.tool;\n}\nfunction toolKindLabel(entry) {\n\treturn entry.kind === \"step\" ? \"Step\" : \"Tool\";\n}\nfunction toolStatusLabel(status) {\n\tswitch (status) {\n\t\tcase \"completed\": return \"completed\";\n\t\tcase \"error\":\n\t\tcase \"failed\": return \"failed\";\n\t\tcase \"pending\": return \"queued\";\n\t\tdefault: return \"running\";\n\t}\n}\nfunction toolAriaLabel(entry) {\n\treturn `${toolKindLabel(entry)}: ${timelineTitle(entry)} (${toolStatusLabel(entry.status)})`;\n}\nfunction toolDetailRows(entry) {\n\tconst rows = [\n\t\t{\n\t\t\tlabel: \"Type\",\n\t\t\tvalue: toolKindLabel(entry)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Name\",\n\t\t\tvalue: timelineTitle(entry)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Status\",\n\t\t\tvalue: prettyLabel(toolStatusLabel(entry.status))\n\t\t}\n\t];\n\tif (entry.kind !== \"step\") rows.push({\n\t\tlabel: \"Tool ID\",\n\t\tvalue: entry.tool\n\t});\n\tif (entry.detail) rows.push({\n\t\tlabel: entry.kind === \"step\" ? \"Details\" : \"Input / Details\",\n\t\tvalue: formatDetail(entry.detail)\n\t});\n\tif (entry.output) rows.push({\n\t\tlabel: \"Output\",\n\t\tvalue: formatDetail(entry.output)\n\t});\n\tif (entry.error) rows.push({\n\t\tlabel: \"Error\",\n\t\tvalue: formatDetail(entry.error),\n\t\ttone: \"error\"\n\t});\n\treturn rows;\n}\n/** Patterns that indicate a command is carrying or referencing a secret. */\nvar SECRET_SIGNAL = /(token|secret|password|key\\s*=|key=)/i;\n/** Cleaned-first-segment prefix → friendly verb phrase. Order matters: more\n* specific prefixes must be checked before their broader siblings. */\nvar COMMAND_PHRASES = [\n\t{\n\t\tprefix: \"gh auth login\",\n\t\tphrase: \"Signed in to GitHub\"\n\t},\n\t{\n\t\tprefix: \"gh auth status\",\n\t\tphrase: \"Checked GitHub sign-in\"\n\t},\n\t{\n\t\tprefix: \"gh auth\",\n\t\tphrase: \"Set up GitHub access\"\n\t},\n\t{\n\t\tprefix: \"gh repo\",\n\t\tphrase: \"Looked up a GitHub repo\"\n\t},\n\t{\n\t\tprefix: \"gh \",\n\t\tphrase: \"Ran a GitHub command\"\n\t},\n\t{\n\t\tprefix: \"git config\",\n\t\tphrase: \"Configured git\"\n\t},\n\t{\n\t\tprefix: \"git \",\n\t\tphrase: \"Ran a git command\"\n\t},\n\t{\n\t\tprefix: \"akm add\",\n\t\tphrase: \"Added a knowledge source\"\n\t},\n\t{\n\t\tprefix: \"akm remove\",\n\t\tphrase: \"Removed a knowledge source\"\n\t},\n\t{\n\t\tprefix: \"akm \",\n\t\tphrase: \"Updated knowledge\"\n\t},\n\t{\n\t\tprefix: \"cat \",\n\t\tphrase: \"Read a file\"\n\t},\n\t{\n\t\tprefix: \"ls \",\n\t\tphrase: \"Listed files\"\n\t},\n\t{\n\t\tprefix: \"grep\",\n\t\tphrase: \"Searched files\"\n\t},\n\t{\n\t\tprefix: \"rg \",\n\t\tphrase: \"Searched files\"\n\t}\n];\n/** Strip leading `VAR=value ` env-var/token assignments repeatedly. */\nfunction stripLeadingAssignments(input) {\n\tlet out = input;\n\twhile (/^[A-Z_][A-Z0-9_]*=\\S+\\s+/.test(out)) out = out.replace(/^[A-Z_][A-Z0-9_]*=\\S+\\s+/, \"\");\n\treturn out;\n}\n/** Keep only the first command segment (before chaining/pipe operators). */\nfunction firstCommandSegment(input) {\n\tlet out = input;\n\tfor (const sep of [\n\t\t\" && \",\n\t\t\" || \",\n\t\t\" | \",\n\t\t\" ; \"\n\t]) {\n\t\tconst idx = out.indexOf(sep);\n\t\tif (idx >= 0) out = out.slice(0, idx);\n\t}\n\treturn out.trim();\n}\n/** Match a cleaned command against the friendly phrase table. */\nfunction phraseForCommand(cleaned) {\n\tconst lower = cleaned.toLowerCase();\n\tfor (const { prefix, phrase } of COMMAND_PHRASES) if (lower.startsWith(prefix)) return phrase;\n\treturn null;\n}\n/**\n* Human-readable, de-credentialed summary for a row title. Audience is\n* non-technical home users. Never throws and never returns an empty string.\n* Strips leading env-var/token assignments and refuses to surface raw commands\n* that contain secret material.\n*/\nfunction displayTitle(entry) {\n\ttry {\n\t\tif (entry.kind === \"step\") return entry.title;\n\t\tconst raw = (entry.title || entry.tool || \"\").trim();\n\t\tconst name = (entry.tool || \"\").toLowerCase();\n\t\tif (raw) {\n\t\t\tconst segment = firstCommandSegment(stripLeadingAssignments(raw));\n\t\t\tif (segment) {\n\t\t\t\tconst matched = phraseForCommand(segment);\n\t\t\t\tif (matched) return matched;\n\t\t\t\tif (SECRET_SIGNAL.test(segment)) {\n\t\t\t\t\tconst verb = segment.split(/\\s+/)[0] || \"\";\n\t\t\t\t\treturn verb ? `Ran a ${verb} command` : \"Ran a command\";\n\t\t\t\t}\n\t\t\t\tif (name.includes(\"read\") || name.includes(\"file\")) return \"Read a file\";\n\t\t\t\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"Edited a file\";\n\t\t\t\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"Searched\";\n\t\t\t\tif (name.includes(\"task\") || name.includes(\"agent\")) return entry.title;\n\t\t\t\treturn segment.replace(/^./, (char) => char.toUpperCase());\n\t\t\t}\n\t\t}\n\t\tif (name.includes(\"read\") || name.includes(\"file\")) return \"Read a file\";\n\t\tif (name.includes(\"edit\") || name.includes(\"write\") || name.includes(\"patch\")) return \"Edited a file\";\n\t\tif (name.includes(\"grep\") || name.includes(\"search\")) return \"Searched\";\n\t\tif (name.includes(\"task\") || name.includes(\"agent\")) return entry.title || entry.tool || \"Worked\";\n\t\treturn raw || entry.tool || \"Worked\";\n\t} catch {\n\t\treturn entry.title || entry.tool || \"Worked\";\n\t}\n}\n/**\n* Relative time label: \"just now\" (<45s), \"Nm ago\" (<60m), \"Nh ago\" (<24h),\n* \"Nd ago\" otherwise. Returns \"\" for falsy/zero timestamps and \"just now\" for\n* future timestamps.\n*/\nfunction relativeTimeLabel(updatedAt, now = Date.now()) {\n\tif (!updatedAt) return \"\";\n\tconst diff = now - updatedAt;\n\tif (diff < 0) return \"just now\";\n\tconst seconds = Math.floor(diff / 1e3);\n\tif (seconds < 45) return \"just now\";\n\tconst minutes = Math.floor(seconds / 60);\n\tif (minutes < 60) return `${minutes}m ago`;\n\tconst hours = Math.floor(minutes / 60);\n\tif (hours < 24) return `${hours}h ago`;\n\treturn `${Math.floor(hours / 24)}d ago`;\n}\n/**\n* Whether a tool entry should appear in the user-facing activity log. Filters\n* out internal todo-writer bookkeeping but never hides a failure.\n*/\nfunction isUserFacingTool(entry) {\n\tconst status = entry.status;\n\tif (status === \"error\" || status === \"failed\") return true;\n\tconst name = (entry.tool || \"\").toLowerCase();\n\tif (name === \"todowrite\" || name === \"todoread\") return false;\n\tconst label = entry.title || entry.tool || \"\";\n\tif (/^\\d+\\s+todos?$/i.test(label)) return false;\n\treturn true;\n}\n//#endregion\n//#region src/lib/chat/session-messages.ts\n/**\n* Flatten raw OpenCode session-message rows into UI `ChatEntry`s.\n*\n* Tool parts are grouped into the assistant turn that follows them (attached\n* as `toolStates` on the `ChatMessage`). If tool parts appear with no\n* following assistant text in the same OpenCode message they are emitted as a\n* single `ChatToolGroup` entry — never as N separate entries.\n*\n* Skips non-text, non-tool parts (files, reasoning, etc.). Empty-text\n* messages with no tool activity are dropped.\n*\n* Pure domain transformation (no transport) — kept next to `tool-strip.ts` so\n* the chat api client can call it and it can be unit-tested in isolation.\n*/\nfunction flattenSessionMessages(rows) {\n\tconst messages = [];\n\tfor (const row of rows) {\n\t\tconst timestamp = row.info.time?.created ?? Date.now();\n\t\tlet textBuffer = \"\";\n\t\tlet textIndex = 0;\n\t\tconst pendingToolStates = [];\n\t\tconst flushText = () => {\n\t\t\tconst text = textBuffer.trim();\n\t\t\ttextBuffer = \"\";\n\t\t\tif (!text && pendingToolStates.length === 0) return;\n\t\t\tif (text) {\n\t\t\t\tconst entry = {\n\t\t\t\t\tid: textIndex === 0 ? row.info.id : `${row.info.id}:text:${textIndex}`,\n\t\t\t\t\trole: row.info.role,\n\t\t\t\t\ttext,\n\t\t\t\t\ttimestamp\n\t\t\t\t};\n\t\t\t\tif (pendingToolStates.length > 0) {\n\t\t\t\t\tentry.toolStates = [...pendingToolStates];\n\t\t\t\t\tpendingToolStates.length = 0;\n\t\t\t\t}\n\t\t\t\tmessages.push(entry);\n\t\t\t\ttextIndex += 1;\n\t\t\t} else if (pendingToolStates.length > 0) {\n\t\t\t\tconst group = {\n\t\t\t\t\tid: `${row.info.id}:tools:${textIndex}`,\n\t\t\t\t\ttype: \"tool-group\",\n\t\t\t\t\ttoolStates: [...pendingToolStates],\n\t\t\t\t\ttimestamp\n\t\t\t\t};\n\t\t\t\tpendingToolStates.length = 0;\n\t\t\t\tmessages.push(group);\n\t\t\t\ttextIndex += 1;\n\t\t\t}\n\t\t};\n\t\trow.parts.forEach((part, index) => {\n\t\t\tif (part.type === \"text\" && part.text) {\n\t\t\t\ttextBuffer += part.text;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (part.type === \"tool\" || part.state) {\n\t\t\t\tconst toolState = toolStripEntryFromSessionPart(part, `${row.info.id}:${index}`);\n\t\t\t\tif (!toolState) return;\n\t\t\t\tpendingToolStates.push(toolState);\n\t\t\t}\n\t\t});\n\t\tflushText();\n\t}\n\treturn messages;\n}\n//#endregion\n//#region src/lib/api/chat.ts\n/**\n* Create a new OpenCode session via the SvelteKit broker.\n*\n* Only `/proxy/assistant/*` is reachable from the browser. The active\n* OpenCode instance is selected server-side via the connection switcher.\n*/\nasync function createSession() {\n\treturn await (await requireOk(await request(\"POST\", `/proxy/assistant/session`, {}))).json();\n}\n/**\n* List sessions on the active OpenCode endpoint.\n*\n* OpenCode returns `Array<Session>` with no ordering guarantee; we sort\n* desc by `time.updated` here so consumers can rely on it. See\n* docs/technical/multi-endpoint-session-ux.md §2.\n*/\nasync function listSessions() {\n\tconst summaries = (await (await requireOk(await request(\"GET\", \"/proxy/assistant/session\"))).json()).map((s) => ({\n\t\tid: s.id,\n\t\ttitle: s.title ?? \"\",\n\t\tcreatedAt: s.time?.created ?? 0,\n\t\tupdatedAt: s.time?.updated ?? s.time?.created ?? 0\n\t}));\n\tsummaries.sort((a, b) => b.updatedAt - a.updatedAt);\n\treturn summaries;\n}\n/**\n* Fetch the messages for a session and map them to UI `ChatEntry`s.\n*\n* The part-flattening/grouping logic lives in `flattenSessionMessages`\n* (`$lib/chat/session-messages.ts`) — this client only handles transport.\n*/\nasync function getSessionMessages(sessionId) {\n\treturn flattenSessionMessages(await (await requireOk(await request(\"GET\", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`))).json());\n}\n/**\n* Send a message to an existing OpenCode session via the SvelteKit broker.\n* Uses direct fetch with a 150s AbortSignal timeout — OpenCode responses\n* can take 30–120s.\n*/\nasync function sendChatMessage(sessionId, text) {\n\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t...buildHeaders()\n\t\t},\n\t\tcredentials: \"include\",\n\t\tbody: JSON.stringify({ parts: [{\n\t\t\ttype: \"text\",\n\t\t\ttext\n\t\t}] }),\n\t\tsignal: AbortSignal.timeout(15e4)\n\t});\n\tif (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error(\"Sign-in required.\"), { status: 401 });\n\tif (!res.ok) {\n\t\tconst msg = await readErrorMessage(res);\n\t\tthrow Object.assign(new Error(msg), { status: res.status });\n\t}\n\treturn await res.json();\n}\nasync function startChatMessageTurn(sessionId, text) {\n\tconst res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t...buildHeaders()\n\t\t},\n\t\tcredentials: \"include\",\n\t\tbody: JSON.stringify({ parts: [{\n\t\t\ttype: \"text\",\n\t\t\ttext\n\t\t}] }),\n\t\tsignal: AbortSignal.timeout(15e4)\n\t});\n\tif (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error(\"Sign-in required.\"), { status: 401 });\n\tif (!res.ok) {\n\t\tconst msg = await readErrorMessage(res);\n\t\tthrow Object.assign(new Error(msg), { status: res.status });\n\t}\n}\n/**\n* Abort the in-flight turn on an existing session via the SvelteKit broker.\n* Best-effort from the caller's perspective — OpenCode exposes this as\n* `POST /session/{id}/abort` (see `@opencode-ai/sdk` `session.abort`).\n*/\nasync function abortChatTurn(sessionId) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/abort`, {}))).text().catch(() => \"\");\n}\nasync function replyChatPermission(requestId, reply) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/permission/${encodeURIComponent(requestId)}/reply`, { reply }))).text().catch(() => \"\");\n}\nasync function replyChatQuestion(requestId, answers) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reply`, { answers }))).text().catch(() => \"\");\n}\nasync function rejectChatQuestion(requestId) {\n\tawait (await requireOk(await request(\"POST\", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reject`, {}))).text().catch(() => \"\");\n}\n/**\n* Probe whether the assistant broker is reachable.\n* Returns true if the probe succeeds within 3s.\n*/\nasync function probeChatBackend() {\n\ttry {\n\t\treturn (await fetch(`/proxy/assistant/provider`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: buildHeaders(),\n\t\t\tcredentials: \"include\",\n\t\t\tsignal: AbortSignal.timeout(3e3)\n\t\t})).ok;\n\t} catch {\n\t\treturn false;\n\t}\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeSystem.svelte\nfunction IconThemeSystem($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg xmlns=\"http://www.w3.org/2000/svg\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`lucide lucide-sun-moon-icon lucide-sun-moon s-icon ${stringify(className)}`)}><path d=\"M12 2v2\"></path><path d=\"M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715\"></path><path d=\"M16 12a4 4 0 0 0-4-4\"></path><path d=\"m19 5-1.256 1.256\"></path><path d=\"M20 12h2\"></path></svg>`);\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeLight.svelte\nfunction IconThemeLight($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><path d=\"M12 2.5v2.2M12 19.3v2.2M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M2.5 12h2.2M19.3 12h2.2M19.4 4.6l-1.6 1.6M6.2 17.8l-1.6 1.6\"></path></svg>`);\n}\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconThemeDark.svelte\nfunction IconThemeDark($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8z\"></path></svg>`);\n}\n//#endregion\n//#region src/lib/chat/oc-events.ts\nfunction propStr(props, key) {\n\tconst value = props?.[key];\n\treturn typeof value === \"string\" ? value : void 0;\n}\nfunction partSnapshotType(event) {\n\tif (event.type !== \"message.part.updated\") return null;\n\tconst part = event.properties?.part;\n\tif (typeof part?.id === \"string\" && typeof part.type === \"string\") return {\n\t\tpartID: part.id,\n\t\ttype: part.type\n\t};\n\treturn null;\n}\nfunction extractTextDelta(event, sessionId, reasoningPartIds) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type === \"session.next.text.delta\") return propStr(props, \"delta\") ?? propStr(props, \"text\") ?? null;\n\tif (event.type === \"message.part.delta\") {\n\t\tconst field = propStr(props, \"field\");\n\t\tif (field && field !== \"text\") return null;\n\t\tconst partID = propStr(props, \"partID\");\n\t\tif (partID && reasoningPartIds?.has(partID)) return null;\n\t\treturn propStr(props, \"delta\") ?? null;\n\t}\n\treturn null;\n}\nfunction statusName(status) {\n\tif (typeof status === \"string\") return status;\n\tif (status && typeof status === \"object\" && typeof status.type === \"string\") return status.type;\n}\nfunction isTurnEnd(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return false;\n\tif (event.type === \"session.idle\") return true;\n\tif (event.type === \"session.status\") {\n\t\tconst name = statusName(props.status);\n\t\treturn name === \"idle\" || name === \"completed\" || name === \"done\";\n\t}\n\treturn false;\n}\nfunction valueToText(value) {\n\tif (typeof value === \"string\") return value;\n\tif (value == null) return void 0;\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction firstText(...values) {\n\tfor (const value of values) {\n\t\tconst text = valueToText(value);\n\t\tif (text) return text;\n\t}\n}\nfunction extractToolUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tconst part = props.part ?? props.tool;\n\tif (event.type === \"message.part.updated\" && part && (part.type === \"tool\" || part.state)) {\n\t\tconst state = part.state ?? {};\n\t\treturn {\n\t\t\tcallID: String(part.callID ?? part.id ?? \"\"),\n\t\t\ttool: String(part.tool ?? \"tool\"),\n\t\t\tstatus: String(state.status ?? \"running\"),\n\t\t\ttitle: typeof state.title === \"string\" ? state.title : void 0,\n\t\t\tdetail: firstText(state.input, state.metadata, state.progress, state.output),\n\t\t\toutput: valueToText(state.output),\n\t\t\terror: typeof state.error === \"string\" ? state.error : void 0\n\t\t};\n\t}\n\tif (event.type.startsWith(\"session.next.tool.\")) {\n\t\tconst type = event.type.replace(\"session.next.tool.\", \"\");\n\t\treturn {\n\t\t\tcallID: propStr(props, \"callID\") ?? \"\",\n\t\t\ttool: propStr(props, \"tool\") ?? \"tool\",\n\t\t\tstatus: type === \"completed\" ? \"completed\" : type === \"failed\" ? \"error\" : type === \"called\" ? \"running\" : propStr(props, \"status\") ?? \"running\",\n\t\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"tool\"),\n\t\t\tdetail: firstText(props.message, props.delta, props.progress, props.input, props.metadata),\n\t\t\toutput: firstText(props.output, props.result),\n\t\t\terror: firstText(props.error)\n\t\t};\n\t}\n\treturn null;\n}\nfunction isSessionError(event, sessionId) {\n\treturn event.type === \"session.error\" && propStr(event.properties, \"sessionID\") === sessionId;\n}\nfunction extractPermissionAsk(event, sessionId) {\n\tif (event.type !== \"permission.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst patterns = Array.isArray(event.properties?.patterns) ? event.properties.patterns.filter((item) => typeof item === \"string\") : [];\n\tconst always = Array.isArray(event.properties?.always) ? event.properties.always.filter((item) => typeof item === \"string\") : [];\n\tconst toolRecord = event.properties?.tool;\n\treturn {\n\t\trequestID: id,\n\t\tpermission: propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tpatterns,\n\t\talways,\n\t\ttool: propStr(toolRecord, \"callID\") ?? propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tdetail: firstText(event.properties?.metadata, event.properties?.message) ?? \"\"\n\t};\n}\nfunction extractQuestionAsk(event, sessionId) {\n\tif (event.type !== \"question.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst rawQuestions = Array.isArray(event.properties?.questions) ? event.properties.questions : [];\n\tconst questions = [];\n\tfor (const raw of rawQuestions) {\n\t\tconst item = raw;\n\t\tconst options = Array.isArray(item.options) ? item.options.map((option) => option).filter((option) => typeof option.label === \"string\").map((option) => ({\n\t\t\tlabel: option.label,\n\t\t\tdescription: typeof option.description === \"string\" ? option.description : \"\"\n\t\t})) : [];\n\t\tquestions.push({\n\t\t\tquestion: typeof item.question === \"string\" ? item.question : \"\",\n\t\t\theader: typeof item.header === \"string\" ? item.header : \"\",\n\t\t\toptions\n\t\t});\n\t}\n\tif (questions.length === 0) return null;\n\treturn {\n\t\trequestID: id,\n\t\tquestions\n\t};\n}\nfunction extractStepUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type !== \"session.next.step.started\" && event.type !== \"session.next.step.ended\") return null;\n\treturn {\n\t\tid: propStr(props, \"stepID\") ?? propStr(props, \"id\") ?? event.type,\n\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"step\") ?? (event.type === \"session.next.step.started\" ? \"Working\" : \"Step complete\"),\n\t\tstatus: event.type === \"session.next.step.ended\" ? \"completed\" : \"running\",\n\t\tdetail: firstText(props.detail, props.message)\n\t};\n}\nglobalThis.Date;\nvar SvelteSet = globalThis.Set;\nvar SvelteMap = globalThis.Map;\nglobalThis.URL;\nglobalThis.URLSearchParams;\n//#endregion\n//#region src/lib/chat/session-events.ts\nvar INITIAL_BACKOFF_MS = 1e3;\nvar MAX_BACKOFF_MS = 3e4;\nvar STREAM_URL = \"/proxy/assistant/event\";\n/**\n* Parse one `\\n\\n`-delimited SSE frame. Multi-line `data:` fields are\n* concatenated with `\\n` per the SSE spec.\n*/\nfunction parseFrame(chunk) {\n\tconst frame = {};\n\tconst dataLines = [];\n\tfor (const rawLine of chunk.split(\"\\n\")) {\n\t\tif (!rawLine || rawLine.startsWith(\":\")) continue;\n\t\tif (rawLine.startsWith(\"data:\")) dataLines.push(rawLine.replace(/^data:\\s?/, \"\"));\n\t\telse if (rawLine.startsWith(\"event:\")) frame.event = rawLine.replace(/^event:\\s?/, \"\");\n\t\telse if (rawLine.startsWith(\"id:\")) frame.id = rawLine.replace(/^id:\\s?/, \"\");\n\t}\n\tif (dataLines.length > 0) frame.data = dataLines.join(\"\\n\");\n\treturn frame;\n}\nfunction dispatch(handlers, payload) {\n\tconst info = payload.properties?.info;\n\tconst id = info?.id ?? payload.sessionID;\n\tif (!id) return;\n\tswitch (payload.type) {\n\t\tcase \"session.created\":\n\t\t\thandlers.onCreated(id);\n\t\t\treturn;\n\t\tcase \"session.updated\":\n\t\t\thandlers.onUpdated(id, {\n\t\t\t\ttitle: info?.title,\n\t\t\t\tupdatedAt: info?.time?.updated\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"session.deleted\":\n\t\t\thandlers.onDeleted(id);\n\t\t\treturn;\n\t\tdefault: return;\n\t}\n}\n/**\n* Open an SSE connection to `/proxy/assistant/event` and dispatch\n* session-scoped events. Returns an unsubscribe function that aborts the\n* stream and prevents reconnection.\n*/\nfunction subscribeSessionEvents(handlers) {\n\tlet stopped = false;\n\tlet controller = new AbortController();\n\tlet lastEventId;\n\tconst sleep = (ms) => new Promise((resolve) => {\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve();\n\t\t}, { once: true });\n\t});\n\tasync function readStream() {\n\t\tconst headers = { accept: \"text/event-stream\" };\n\t\tif (lastEventId !== void 0) headers[\"Last-Event-ID\"] = lastEventId;\n\t\tconst response = await fetch(STREAM_URL, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders,\n\t\t\tcredentials: \"include\",\n\t\t\tsignal: controller.signal\n\t\t});\n\t\tif (!response.ok || !response.body) throw new Error(`SSE stream failed: ${response.status} ${response.statusText}`);\n\t\thandlers.onConnect?.();\n\t\tconst reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\t\tlet buffer = \"\";\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tbuffer += value;\n\t\t\t\tconst chunks = buffer.split(\"\\n\\n\");\n\t\t\t\tbuffer = chunks.pop() ?? \"\";\n\t\t\t\tfor (const chunk of chunks) {\n\t\t\t\t\tif (!chunk) continue;\n\t\t\t\t\tconst frame = parseFrame(chunk);\n\t\t\t\t\tif (frame.id !== void 0) lastEventId = frame.id;\n\t\t\t\t\tif (!frame.data) continue;\n\t\t\t\t\tlet payload;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpayload = JSON.parse(frame.data);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.warn(\"[session-events] Bad JSON in SSE frame\", err);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\thandlers.onEvent?.(payload);\n\t\t\t\t\tdispatch(handlers, payload);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\treader.releaseLock();\n\t\t\t} catch {}\n\t\t}\n\t}\n\t(async () => {\n\t\tlet attempt = 0;\n\t\twhile (!stopped) try {\n\t\t\tattempt++;\n\t\t\tawait readStream();\n\t\t\tattempt = 0;\n\t\t\tif (!stopped) await sleep(500);\n\t\t} catch (err) {\n\t\t\tif (stopped) return;\n\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\tif (error.name !== \"AbortError\") {\n\t\t\t\tconsole.warn(\"[session-events] SSE error, reconnecting\", error);\n\t\t\t\thandlers.onDisconnect?.(error);\n\t\t\t}\n\t\t\tawait sleep(Math.min(INITIAL_BACKOFF_MS * 2 ** Math.max(0, attempt - 1), MAX_BACKOFF_MS));\n\t\t\tif (controller.signal.aborted && !stopped) controller = new AbortController();\n\t\t}\n\t})();\n\treturn () => {\n\t\tstopped = true;\n\t\ttry {\n\t\t\tcontroller.abort();\n\t\t} catch {}\n\t};\n}\n//#endregion\n//#region src/lib/desktop-notifications.ts\nvar DESKTOP_NOTIFY_ENABLED_KEY = \"openpalm.desktop.notify\";\nvar DESKTOP_NOTIFY_PREVIEW_KEY = \"openpalm.desktop.notify.preview\";\nfunction readFlag(key) {\n\tif (typeof window === \"undefined\") return false;\n\ttry {\n\t\treturn window.localStorage.getItem(key) === \"1\";\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction desktopNotifyEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_ENABLED_KEY);\n}\nfunction desktopReplyPreviewEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_PREVIEW_KEY);\n}\nfunction shouldNotifyDesktop() {\n\tif (typeof document === \"undefined\") return false;\n\tif (document.hasFocus()) return false;\n\tif (!desktopNotifyEnabled()) return false;\n\treturn typeof window !== \"undefined\" && typeof window.openpalm?.notify === \"function\";\n}\nfunction notifyAssistantReply(replyText) {\n\tif (!shouldNotifyDesktop()) return;\n\tconst body = desktopReplyPreviewEnabled() && replyText.trim() ? replyText.trim() : \"Assistant replied\";\n\twindow.openpalm?.notify?.(\"OpenPalm\", body);\n}\nfunction notifyAssistantError() {\n\tif (!shouldNotifyDesktop()) return;\n\twindow.openpalm?.notify?.(\"OpenPalm\", \"Assistant error\");\n}\n//#endregion\n//#region src/lib/connection-events.ts\nvar listeners = /* @__PURE__ */ new Set();\nvar guards = /* @__PURE__ */ new Set();\n/** Subscribe to connection activation. Returns an unsubscribe function. */\nfunction onConnectionActivated(listener) {\n\tlisteners.add(listener);\n\treturn () => {\n\t\tlisteners.delete(listener);\n\t};\n}\n/**\n* Register a pre-switch veto. Return a user-facing reason string to block\n* the switch, or null to allow it. Returns an unregister function.\n*/\nfunction registerActivationGuard(guard) {\n\tguards.add(guard);\n\treturn () => {\n\t\tguards.delete(guard);\n\t};\n}\n/** First non-null guard reason blocks the switch; null means proceed. */\nfunction activationBlockReason() {\n\tfor (const guard of guards) {\n\t\tconst reason = guard();\n\t\tif (reason) return reason;\n\t}\n\treturn null;\n}\n/**\n* Notify subscribers that `connectionId` is now active. Awaited by the\n* emitter: activation is not complete until every subscriber's handoff\n* (e.g. the chat store loading the connection's sessions) has settled.\n*/\nasync function emitConnectionActivated(connectionId) {\n\tfor (const listener of listeners) await listener(connectionId);\n}\n//#endregion\n//#region src/lib/endpoints-state.svelte.ts\nvar ConnectionsService = class {\n\tendpoints = [];\n\tactiveId = \"default\";\n\tloading = false;\n\tloaded = false;\n\terror = \"\";\n\t#active = derived(() => this.endpoints.find((e) => e.id === this.activeId) ?? this.endpoints[0] ?? null);\n\tget active() {\n\t\treturn this.#active();\n\t}\n\tset active($$value) {\n\t\treturn this.#active($$value);\n\t}\n\tasync load(force = false) {\n\t\tif (this.loading) return;\n\t\tif (this.loaded && !force) return;\n\t\tthis.loading = true;\n\t\tthis.error = \"\";\n\t\ttry {\n\t\t\tconst { connections, activeId } = await fetchConnections();\n\t\t\tthis.endpoints = connections;\n\t\t\tthis.activeId = activeId;\n\t\t\tthis.loaded = true;\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tif (err.status !== 401) this.error = err.message ?? \"Failed to load connections\";\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t}\n\tasync activate(id) {\n\t\tif (id === this.activeId) return;\n\t\tconst blocked = activationBlockReason();\n\t\tif (blocked) {\n\t\t\tthis.error = blocked;\n\t\t\tthrow new Error(blocked);\n\t\t}\n\t\tconst previous = this.activeId;\n\t\tthis.activeId = id;\n\t\ttry {\n\t\t\tawait setActiveConnection(id);\n\t\t\tawait emitConnectionActivated(id);\n\t\t} catch (e) {\n\t\t\tthis.activeId = previous;\n\t\t\tconst err = e;\n\t\t\tthis.error = err.message ?? \"Failed to switch connection\";\n\t\t\tthrow e;\n\t\t}\n\t}\n};\nvar endpointsService = new ConnectionsService();\n//#endregion\n//#region ../ui-kit/src/lib/components/icons/IconClose.svelte\nfunction IconClose($$renderer, $$props) {\n\tlet { size = 20, class: className = \"\" } = $$props;\n\t$$renderer.push(`<svg aria-hidden=\"true\"${attr(\"width\", size)}${attr(\"height\", size)} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"${attr_class(`s-icon ${stringify(className)}`)}><path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\"></path></svg>`);\n}\n//#endregion\n//#region src/lib/actions/focus-trap.ts\n/**\n* Shared modal focus-trap primitives (WCAG 2.4.3 / APG dialog pattern).\n*\n* Consolidates three byte-for-byte copies that previously lived in the chat\n* page (`+page.svelte`), the common `Drawer.svelte`, and the `ToolStrip.svelte`\n* tool-detail modal. Use `createFocusTrap` as a Svelte attachment on the dialog\n* panel and `handleTrapKeydown` as its `onkeydown` handler.\n*/\n/** Selector matching every natively focusable / tabbable element. */\nvar FOCUSABLE = \"a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\\\"-1\\\"])\";\n/** Collect the visible, tabbable descendants of `root`, in document order. */\nfunction focusables(root) {\n\treturn Array.from(root.querySelectorAll(FOCUSABLE)).filter((el) => !el.hasAttribute(\"hidden\") && el.getAttribute(\"aria-hidden\") !== \"true\");\n}\n/**\n* Build a Svelte attachment that, when it runs, remembers the currently focused\n* element and moves focus inside `node`; when it is cleaned up, it restores\n* focus to the remembered element so keyboard / SR users are never dropped to\n* `<body>`.\n*/\nfunction createFocusTrap(options = {}) {\n\treturn (node) => {\n\t\tif (options.active === false) return;\n\t\tconst previouslyFocused = document.activeElement;\n\t\tconst container = options.initialFocus ? node.querySelector(options.initialFocus) : null;\n\t\t((container && focusables(container)[0]) ?? focusables(node)[0] ?? node).focus();\n\t\treturn () => {\n\t\t\tif (options.deferRestore) requestAnimationFrame(() => previouslyFocused?.focus?.());\n\t\t\telse previouslyFocused?.focus?.();\n\t\t};\n\t};\n}\n//#endregion\n//#region src/lib/format-date.ts\nvar TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\nvar DATE_TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\tyear: \"numeric\",\n\tmonth: \"short\",\n\tday: \"numeric\",\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\n/** Time of day, e.g. \"3:42 PM\" (locale-aware). Empty string for a falsy input. */\nfunction formatTime(ts) {\n\tif (!ts) return \"\";\n\treturn TIME_FMT.format(ts);\n}\n/**\n* Absolute date + time, e.g. \"Jun 7, 2026, 3:42 PM\". Use for tooltips / full\n* context where a relative label alone is ambiguous. Empty for a falsy input.\n*/\nfunction formatDateTime(ts) {\n\tif (!ts) return \"\";\n\treturn DATE_TIME_FMT.format(ts);\n}\n/**\n* Absolute date + time from a date string (ISO-8601 or anything `Date` accepts),\n* rendered with the runtime locale via `toLocaleString()`. Unlike the epoch-ms\n* helpers above, this takes the string shape returned by admin/AKM endpoints.\n* Returns `fallback` (default em dash) for null/empty or unparseable input.\n*/\nfunction formatDate(value, fallback = \"—\") {\n\tif (!value) return fallback;\n\tconst d = new Date(value);\n\treturn Number.isNaN(d.getTime()) ? fallback : d.toLocaleString();\n}\n/**\n* Human-readable byte size, e.g. \"512 B\", \"1.5 KB\", \"2.0 MB\". Scales through\n* B/KB/MB/GB/TB (binary, 1024-based) with adaptive precision: whole numbers for\n* bytes and for values ≥ 10, one decimal otherwise. Em dash for non-finite input.\n*/\nfunction formatBytes(bytes) {\n\tif (!Number.isFinite(bytes)) return \"—\";\n\tconst units = [\n\t\t\"B\",\n\t\t\"KB\",\n\t\t\"MB\",\n\t\t\"GB\",\n\t\t\"TB\"\n\t];\n\tlet value = bytes;\n\tlet i = 0;\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024;\n\t\ti += 1;\n\t}\n\treturn `${value.toFixed(value >= 10 || i === 0 ? 0 : 1)} ${units[i]}`;\n}\n/**\n* Compact relative time, e.g. \"just now\", \"5m ago\", \"yesterday\", \"3w ago\".\n* Empty string for a falsy input. No date-fns dependency — that would be ~30 KB\n* for these few cases.\n*/\nfunction formatRelativeTime(ts) {\n\tif (!ts) return \"\";\n\tconst diffSec = Math.max(0, (Date.now() - ts) / 1e3);\n\tif (diffSec < 60) return \"just now\";\n\tconst min = Math.floor(diffSec / 60);\n\tif (min < 60) return `${min}m ago`;\n\tconst hr = Math.floor(min / 60);\n\tif (hr < 24) return `${hr}h ago`;\n\tconst day = Math.floor(hr / 24);\n\tif (day === 1) return \"yesterday\";\n\tif (day < 7) return `${day}d ago`;\n\tconst wk = Math.floor(day / 7);\n\tif (wk < 5) return `${wk}w ago`;\n\tconst mo = Math.floor(day / 30);\n\tif (mo < 12) return `${mo}mo ago`;\n\treturn `${Math.floor(day / 365)}y ago`;\n}\n//#endregion\nexport { createSession as A, isUserFacingTool as B, isSessionError as C, IconThemeLight as D, IconThemeDark as E, replyChatPermission as F, toolIconType as G, timelineTitle as H, replyChatQuestion as I, toolKindLabel as K, sendChatMessage as L, listSessions as M, probeChatBackend as N, IconThemeSystem as O, rejectChatQuestion as P, startChatMessageTurn as R, extractToolUpdate as S, partSnapshotType as T, toolAriaLabel as U, relativeTimeLabel as V, toolDetailRows as W, SvelteSet as _, formatTime as a, extractStepUpdate as b, endpointsService as c, desktopNotifyEnabled as d, desktopReplyPreviewEnabled as f, SvelteMap as g, subscribeSessionEvents as h, formatRelativeTime as i, getSessionMessages as j, abortChatTurn as k, onConnectionActivated as l, notifyAssistantReply as m, formatDate as n, createFocusTrap as o, notifyAssistantError as p, toolStatusLabel as q, formatDateTime as r, IconClose as s, formatBytes as t, registerActivationGuard as u, extractPermissionAsk as v, isTurnEnd as w, extractTextDelta as x, extractQuestionAsk as y, displayTitle as z };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import { ag as isRemoteSetupAllowed, aB as readSecret, aV as resolveOpenPalmHome, J as createOpenCodeClient } from './src-CS2sSYOR.js';
|
|
2
|
+
import { g as getActiveConnection } from './endpoints-CU3ehglV.js';
|
|
3
|
+
import { c as computeServerRuntimeContext } from './features-DLGlNjZX.js';
|
|
4
|
+
import { timingSafeEqual, createHmac, createHash } from 'node:crypto';
|
|
5
|
+
|
|
6
|
+
//#region src/lib/server/session-store.ts
|
|
7
|
+
/**
|
|
8
|
+
* Stateless signed session tokens.
|
|
9
|
+
*
|
|
10
|
+
* Token format: `<expiresAt>.<hmac-sha256-hex>`
|
|
11
|
+
* expiresAt — unix ms timestamp when the session expires
|
|
12
|
+
* signature — HMAC-SHA256(expiresAt, login password)
|
|
13
|
+
*
|
|
14
|
+
* Tokens are self-validating: the server holds no per-session state and
|
|
15
|
+
* sessions survive UI server restarts. Signing with the login password means
|
|
16
|
+
* a password change invalidates all existing sessions — correct behaviour.
|
|
17
|
+
*
|
|
18
|
+
* The signing secret is resolved exactly like login verification
|
|
19
|
+
* (`getUiLoginPassword`): `process.env.OP_UI_LOGIN_PASSWORD` first, then the
|
|
20
|
+
* on-disk stack secret. When NEITHER exists, minting throws and validation
|
|
21
|
+
* fails closed — there is deliberately no fallback secret, because a constant
|
|
22
|
+
* key would let anyone forge an admin token. Reading the file per call also
|
|
23
|
+
* means tokens minted right after the setup wizard writes the password are
|
|
24
|
+
* signed with the real secret, without waiting for a process restart.
|
|
25
|
+
*
|
|
26
|
+
* Logout semantics (known trade-off of stateless tokens): logout revokes the
|
|
27
|
+
* single token the browser presented (in-memory list, cleared on restart) and
|
|
28
|
+
* clears the cookie. Earlier tokens issued to the same browser by sliding
|
|
29
|
+
* renewal remain cryptographically valid until they expire — logout is
|
|
30
|
+
* "forget my cookie", not "kill every credential ever issued". A real
|
|
31
|
+
* kill-switch is changing the login password, which invalidates everything.
|
|
32
|
+
*/
|
|
33
|
+
/** Session lifetime for both the token expiry and the cookie Max-Age. 14 days. */
|
|
34
|
+
var SESSION_TTL_MS = 12096e5;
|
|
35
|
+
/** Cookie Max-Age in seconds (Set-Cookie uses seconds, not ms). */
|
|
36
|
+
var SESSION_TTL_SECONDS = SESSION_TTL_MS / 1e3;
|
|
37
|
+
var _revoked = /* @__PURE__ */ new Set();
|
|
38
|
+
var _testOverrides = /* @__PURE__ */ new Set();
|
|
39
|
+
/**
|
|
40
|
+
* Read the operator UI login password from the host environment or the
|
|
41
|
+
* file-based stack secret (`knowledge/secrets/op_ui_login_password`).
|
|
42
|
+
*
|
|
43
|
+
* This is the single source of truth for the password — login verification
|
|
44
|
+
* (helpers.ts) and token signing below both use it, so they can never
|
|
45
|
+
* disagree about whether a password exists. Returns "" when neither source
|
|
46
|
+
* has a value (first boot, before the wizard runs).
|
|
47
|
+
*/
|
|
48
|
+
function getUiLoginPassword() {
|
|
49
|
+
const envValue = process.env.OP_UI_LOGIN_PASSWORD;
|
|
50
|
+
if (envValue) return envValue;
|
|
51
|
+
return readSecret(resolveOpenPalmHome(), "op_ui_login_password")?.trimEnd() ?? "";
|
|
52
|
+
}
|
|
53
|
+
/** Sign `expiresAt` with the login password. Returns null when no password is configured. */
|
|
54
|
+
function signToken(expiresAt) {
|
|
55
|
+
const secret = getUiLoginPassword();
|
|
56
|
+
if (!secret) return null;
|
|
57
|
+
return createHmac("sha256", secret).update(String(expiresAt)).digest("hex");
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Mint a new signed session token with a 14-day TTL.
|
|
61
|
+
* Place the result in the `op_session` cookie.
|
|
62
|
+
* Throws when no login password is configured — callers must verify a
|
|
63
|
+
* password exists (they all do: login/session/setup-complete check first).
|
|
64
|
+
*/
|
|
65
|
+
function createSession() {
|
|
66
|
+
const expiresAt = Date.now() + SESSION_TTL_MS;
|
|
67
|
+
const sig = signToken(expiresAt);
|
|
68
|
+
if (sig === null) throw new Error("Cannot mint a session: no UI login password is configured.");
|
|
69
|
+
return `${expiresAt}.${sig}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Return true iff `token` is a valid, non-expired, non-revoked session.
|
|
73
|
+
*/
|
|
74
|
+
function validateSession(token) {
|
|
75
|
+
if (!token) return false;
|
|
76
|
+
if (_testOverrides.has(token)) return true;
|
|
77
|
+
if (_revoked.has(token)) return false;
|
|
78
|
+
const dot = token.lastIndexOf(".");
|
|
79
|
+
if (dot < 0) return false;
|
|
80
|
+
const expiresAt = Number(token.slice(0, dot));
|
|
81
|
+
if (!Number.isFinite(expiresAt) || Date.now() >= expiresAt) return false;
|
|
82
|
+
const sig = token.slice(dot + 1);
|
|
83
|
+
const expected = signToken(expiresAt);
|
|
84
|
+
if (expected === null) return false;
|
|
85
|
+
if (sig.length !== expected.length) return false;
|
|
86
|
+
return timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Sliding renewal: validate the old token, return a new one with a fresh
|
|
90
|
+
* 14-day TTL, or return false if the old token is invalid/expired.
|
|
91
|
+
* The caller must place the returned token in the `op_session` cookie.
|
|
92
|
+
*/
|
|
93
|
+
function touchSession(token) {
|
|
94
|
+
if (!validateSession(token)) return false;
|
|
95
|
+
return createSession();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Revoke a token (logout). The browser cookie must also be cleared by the caller.
|
|
99
|
+
* The revocation list survives until the next server restart. Entries whose
|
|
100
|
+
* embedded expiry has passed are pruned on each call — an expired token fails
|
|
101
|
+
* validation anyway, so keeping it listed is pure memory growth.
|
|
102
|
+
*/
|
|
103
|
+
function invalidateSession(token) {
|
|
104
|
+
const now = Date.now();
|
|
105
|
+
for (const revoked of _revoked) {
|
|
106
|
+
const expiresAt = Number(revoked.slice(0, revoked.lastIndexOf(".")));
|
|
107
|
+
if (!Number.isFinite(expiresAt) || expiresAt <= now) _revoked.delete(revoked);
|
|
108
|
+
}
|
|
109
|
+
_revoked.add(token);
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/lib/server/helpers.ts
|
|
113
|
+
/**
|
|
114
|
+
* Lazy OpenCode client bound to the currently active endpoint. The client is
|
|
115
|
+
* recreated whenever the active endpoint URL changes so user switches in the
|
|
116
|
+
* UI take effect on the next call.
|
|
117
|
+
*/
|
|
118
|
+
var _openCodeClient;
|
|
119
|
+
var _openCodeClientUrl;
|
|
120
|
+
function getOpenCodeClient() {
|
|
121
|
+
const { url } = getActiveConnection();
|
|
122
|
+
if (!_openCodeClient || url !== _openCodeClientUrl) {
|
|
123
|
+
_openCodeClient = createOpenCodeClient({ baseUrl: url });
|
|
124
|
+
_openCodeClientUrl = url;
|
|
125
|
+
}
|
|
126
|
+
return _openCodeClient;
|
|
127
|
+
}
|
|
128
|
+
function safeTokenCompare(a, b) {
|
|
129
|
+
if (typeof a !== "string" || typeof b !== "string") return false;
|
|
130
|
+
if (!a || !b) return false;
|
|
131
|
+
return timingSafeEqual(createHash("sha256").update(a).digest(), createHash("sha256").update(b).digest());
|
|
132
|
+
}
|
|
133
|
+
/** Standard JSON response with request ID header */
|
|
134
|
+
function jsonResponse(status, body, requestId = "") {
|
|
135
|
+
return new Response(JSON.stringify(body), {
|
|
136
|
+
status,
|
|
137
|
+
headers: {
|
|
138
|
+
"content-type": "application/json",
|
|
139
|
+
...requestId ? { "x-request-id": requestId } : {}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/** Standard error envelope */
|
|
144
|
+
function errorResponse(status, error, message, details = {}, requestId = "") {
|
|
145
|
+
return jsonResponse(status, {
|
|
146
|
+
error,
|
|
147
|
+
message,
|
|
148
|
+
details,
|
|
149
|
+
requestId
|
|
150
|
+
}, requestId);
|
|
151
|
+
}
|
|
152
|
+
/** Extract or generate request ID */
|
|
153
|
+
function getRequestId(event) {
|
|
154
|
+
return event.request.headers.get("x-request-id") || crypto.randomUUID();
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Extract raw session token from the `op_session` cookie.
|
|
158
|
+
*
|
|
159
|
+
* Phase 2 of the auth/proxy refactor (docs/technical/auth-and-proxy-refactor-plan.md)
|
|
160
|
+
* removed the legacy `x-admin-token` / `Authorization: Bearer` header fallbacks.
|
|
161
|
+
* The cookie is HttpOnly + SameSite=Strict and is the ONLY credential the browser
|
|
162
|
+
* holds; XSS cannot read it and out-of-process callers must obtain a session via
|
|
163
|
+
* `POST /api/auth/login` (or `/session`) and present the cookie on subsequent
|
|
164
|
+
* requests.
|
|
165
|
+
*/
|
|
166
|
+
function extractToken(event) {
|
|
167
|
+
const match = (event.request.headers.get("cookie") ?? "").match(/(?:^|;\s*)op_session=([^;]+)/);
|
|
168
|
+
if (match) return match[1];
|
|
169
|
+
return "";
|
|
170
|
+
}
|
|
171
|
+
/** Check admin auth — returns error Response or null if OK */
|
|
172
|
+
function requireAdmin(event, requestId) {
|
|
173
|
+
if (!getUiLoginPassword()) return errorResponse(503, "admin_not_configured", "OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.", {}, requestId);
|
|
174
|
+
if (!validateSession(extractToken(event))) return errorResponse(401, "unauthorized", "Missing or invalid credentials", {}, requestId);
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Server-side capability guard (plan ui-runtime-modes-plan.md §6.4, §8.5).
|
|
179
|
+
*
|
|
180
|
+
* Returns a 403 JSON error Response when the resolved host mode does not
|
|
181
|
+
* expose `capability`, or null when it does. This is the SECURITY boundary —
|
|
182
|
+
* the browser-side `hasCapability()` is UX only. The check is deliberately
|
|
183
|
+
* capability-based, not session-based: a valid admin session in a mode
|
|
184
|
+
* without the capability (e.g. `connections:manage` in assistant-container)
|
|
185
|
+
* is still refused. Capability→mode logic itself lives ONLY in
|
|
186
|
+
* computeServerRuntimeContext / resolveCapabilities (plan §8.6); this helper
|
|
187
|
+
* just reads the advertised server capability set.
|
|
188
|
+
*/
|
|
189
|
+
function requireCapability(event, capability, requestId) {
|
|
190
|
+
const ctx = computeServerRuntimeContext(event);
|
|
191
|
+
if (!ctx.serverCapabilities.includes(capability)) return errorResponse(403, "capability_not_available", `This deployment (${ctx.hostMode}) does not provide the '${capability}' capability.`, {
|
|
192
|
+
capability,
|
|
193
|
+
hostMode: ctx.hostMode
|
|
194
|
+
}, requestId);
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Identify caller by the presented `op_session` cookie.
|
|
199
|
+
*
|
|
200
|
+
* Returns "admin" when the cookie holds a valid session token.
|
|
201
|
+
*/
|
|
202
|
+
function identifyCallerByToken(event) {
|
|
203
|
+
if (!getUiLoginPassword()) return null;
|
|
204
|
+
if (validateSession(extractToken(event))) return "admin";
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
/** Parse JSON body safely — returns discriminated result with error type */
|
|
208
|
+
async function parseJsonBody(request, maxBytes = 1048576) {
|
|
209
|
+
try {
|
|
210
|
+
const contentLength = request.headers.get("content-length");
|
|
211
|
+
if (contentLength && parseInt(contentLength, 10) > maxBytes) return { error: "too_large" };
|
|
212
|
+
return { data: await request.json() };
|
|
213
|
+
} catch (e) {
|
|
214
|
+
console.warn("[helpers] Failed to parse JSON request body", e);
|
|
215
|
+
return { error: "invalid_json" };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/** Convert a ParseJsonBodyError to an appropriate HTTP error response */
|
|
219
|
+
function jsonBodyError(err, requestId) {
|
|
220
|
+
if (err.error === "too_large") return errorResponse(413, "too_large", "Request body too large", {}, requestId);
|
|
221
|
+
return errorResponse(400, "invalid_json", "Request body must be valid JSON", {}, requestId);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Auth + JSON body wrapper for admin POST/DELETE handlers.
|
|
225
|
+
*
|
|
226
|
+
* Replaces the 4-line boilerplate copy-pasted across 30+ routes:
|
|
227
|
+
* const requestId = getRequestId(event);
|
|
228
|
+
* const authError = requireAdmin(event, requestId);
|
|
229
|
+
* if (authError) return authError;
|
|
230
|
+
* const result = await parseJsonBody(event.request);
|
|
231
|
+
* if ('error' in result) return jsonBodyError(result, requestId);
|
|
232
|
+
*
|
|
233
|
+
* Use for routes that need both auth and a JSON body. For auth-only or
|
|
234
|
+
* GET routes, call `requireAdmin` directly.
|
|
235
|
+
*/
|
|
236
|
+
async function withAdminBody(event, handler) {
|
|
237
|
+
const requestId = getRequestId(event);
|
|
238
|
+
const { security } = computeServerRuntimeContext(event);
|
|
239
|
+
const originError = checkOriginHeader(event.request, security.csrfMode);
|
|
240
|
+
if (originError) return originError;
|
|
241
|
+
const authError = requireAdmin(event, requestId);
|
|
242
|
+
if (authError) return authError;
|
|
243
|
+
const result = await parseJsonBody(event.request);
|
|
244
|
+
if ("error" in result) return jsonBodyError(result, requestId);
|
|
245
|
+
return handler({
|
|
246
|
+
requestId,
|
|
247
|
+
body: result.data
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
function hostNameFromHeader(hostHeader) {
|
|
251
|
+
const normalized = hostHeader.trim().replace(/\.$/, "");
|
|
252
|
+
try {
|
|
253
|
+
return new URL(`http://${normalized}`).hostname.toLowerCase().replace(/^\[|\]$/g, "");
|
|
254
|
+
} catch {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
function isLoopbackHost(hostHeader) {
|
|
259
|
+
const hostname = hostNameFromHeader(hostHeader);
|
|
260
|
+
if (!hostname) return false;
|
|
261
|
+
return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "::1";
|
|
262
|
+
}
|
|
263
|
+
function isSameSite(request, origin) {
|
|
264
|
+
const requestHost = hostNameFromHeader(request.headers.get("host") ?? "");
|
|
265
|
+
if (!requestHost) return false;
|
|
266
|
+
return requestHost === origin.hostname.toLowerCase();
|
|
267
|
+
}
|
|
268
|
+
function checkHostHeader(request) {
|
|
269
|
+
const host = request.headers.get("host") ?? "";
|
|
270
|
+
if (isLoopbackHost(host) || isRemoteSetupAllowed()) return null;
|
|
271
|
+
return new Response(JSON.stringify({
|
|
272
|
+
error: "invalid_host",
|
|
273
|
+
host: host.trim().replace(/\.$/, ""),
|
|
274
|
+
message: "Request rejected: Host header does not match allowed hosts. The UI binds to loopback (127.0.0.1) only; reach it via localhost or an SSH tunnel/reverse proxy, or set OP_ALLOW_REMOTE_SETUP=1 to allow remote access."
|
|
275
|
+
}), {
|
|
276
|
+
status: 400,
|
|
277
|
+
headers: { "content-type": "application/json" }
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Reject POST/PUT/DELETE requests whose Origin header does not match
|
|
282
|
+
* localhost or 127.0.0.1. Requests with no Origin (non-browser clients)
|
|
283
|
+
* are always allowed.
|
|
284
|
+
*
|
|
285
|
+
* @param request Incoming Request
|
|
286
|
+
* @returns A 403 Response if the origin is rejected; null if allowed
|
|
287
|
+
*/
|
|
288
|
+
function checkOriginHeader(request, csrfMode = "loopback-origin") {
|
|
289
|
+
const method = request.method.toUpperCase();
|
|
290
|
+
if (method === "GET" || method === "HEAD" || method === "OPTIONS") return null;
|
|
291
|
+
const origin = request.headers.get("origin");
|
|
292
|
+
if (!origin) return null;
|
|
293
|
+
try {
|
|
294
|
+
const u = new URL(origin);
|
|
295
|
+
switch (csrfMode) {
|
|
296
|
+
case "loopback-origin":
|
|
297
|
+
if (isLoopbackHost(u.host)) return null;
|
|
298
|
+
if (isRemoteSetupAllowed() && u.host === (request.headers.get("host") ?? "").trim()) return null;
|
|
299
|
+
break;
|
|
300
|
+
case "same-site":
|
|
301
|
+
if (isSameSite(request, u)) return null;
|
|
302
|
+
break;
|
|
303
|
+
case "bearer-token":
|
|
304
|
+
if (request.headers.get("authorization")) return null;
|
|
305
|
+
if (isSameSite(request, u)) return null;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
} catch {}
|
|
309
|
+
return new Response(JSON.stringify({
|
|
310
|
+
error: "forbidden_origin",
|
|
311
|
+
origin
|
|
312
|
+
}), {
|
|
313
|
+
status: 403,
|
|
314
|
+
headers: { "content-type": "application/json" }
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
Number(process.env.PORT ?? 3880);
|
|
318
|
+
|
|
319
|
+
export { SESSION_TTL_SECONDS as S, checkOriginHeader as a, createSession as b, checkHostHeader as c, getRequestId as d, errorResponse as e, getUiLoginPassword as f, getOpenCodeClient as g, invalidateSession as h, identifyCallerByToken as i, jsonBodyError as j, jsonResponse as k, requireCapability as l, parseJsonBody as p, requireAdmin as r, safeTokenCompare as s, touchSession as t, withAdminBody as w };
|
|
320
|
+
//# sourceMappingURL=helpers-7BvhniSt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers-7BvhniSt.js","sources":["../../../.svelte-kit/adapter-node/chunks/helpers.js"],"sourcesContent":["import { Tt as resolveOpenPalmHome, at as readSecret } from \"./compose-args.js\";\nimport { W as createOpenCodeClient, r as isRemoteSetupAllowed } from \"./src.js\";\nimport { r as getActiveConnection } from \"./endpoints.js\";\nimport { t as computeServerRuntimeContext } from \"./features.js\";\nimport { createHash, createHmac, timingSafeEqual } from \"node:crypto\";\n//#region src/lib/server/session-store.ts\n/**\n* Stateless signed session tokens.\n*\n* Token format: `<expiresAt>.<hmac-sha256-hex>`\n* expiresAt — unix ms timestamp when the session expires\n* signature — HMAC-SHA256(expiresAt, login password)\n*\n* Tokens are self-validating: the server holds no per-session state and\n* sessions survive UI server restarts. Signing with the login password means\n* a password change invalidates all existing sessions — correct behaviour.\n*\n* The signing secret is resolved exactly like login verification\n* (`getUiLoginPassword`): `process.env.OP_UI_LOGIN_PASSWORD` first, then the\n* on-disk stack secret. When NEITHER exists, minting throws and validation\n* fails closed — there is deliberately no fallback secret, because a constant\n* key would let anyone forge an admin token. Reading the file per call also\n* means tokens minted right after the setup wizard writes the password are\n* signed with the real secret, without waiting for a process restart.\n*\n* Logout semantics (known trade-off of stateless tokens): logout revokes the\n* single token the browser presented (in-memory list, cleared on restart) and\n* clears the cookie. Earlier tokens issued to the same browser by sliding\n* renewal remain cryptographically valid until they expire — logout is\n* \"forget my cookie\", not \"kill every credential ever issued\". A real\n* kill-switch is changing the login password, which invalidates everything.\n*/\n/** Session lifetime for both the token expiry and the cookie Max-Age. 14 days. */\nvar SESSION_TTL_MS = 12096e5;\n/** Cookie Max-Age in seconds (Set-Cookie uses seconds, not ms). */\nvar SESSION_TTL_SECONDS = SESSION_TTL_MS / 1e3;\nvar _revoked = /* @__PURE__ */ new Set();\nvar _testOverrides = /* @__PURE__ */ new Set();\n/**\n* Read the operator UI login password from the host environment or the\n* file-based stack secret (`knowledge/secrets/op_ui_login_password`).\n*\n* This is the single source of truth for the password — login verification\n* (helpers.ts) and token signing below both use it, so they can never\n* disagree about whether a password exists. Returns \"\" when neither source\n* has a value (first boot, before the wizard runs).\n*/\nfunction getUiLoginPassword() {\n\tconst envValue = process.env.OP_UI_LOGIN_PASSWORD;\n\tif (envValue) return envValue;\n\treturn readSecret(resolveOpenPalmHome(), \"op_ui_login_password\")?.trimEnd() ?? \"\";\n}\n/** Sign `expiresAt` with the login password. Returns null when no password is configured. */\nfunction signToken(expiresAt) {\n\tconst secret = getUiLoginPassword();\n\tif (!secret) return null;\n\treturn createHmac(\"sha256\", secret).update(String(expiresAt)).digest(\"hex\");\n}\n/**\n* Mint a new signed session token with a 14-day TTL.\n* Place the result in the `op_session` cookie.\n* Throws when no login password is configured — callers must verify a\n* password exists (they all do: login/session/setup-complete check first).\n*/\nfunction createSession() {\n\tconst expiresAt = Date.now() + SESSION_TTL_MS;\n\tconst sig = signToken(expiresAt);\n\tif (sig === null) throw new Error(\"Cannot mint a session: no UI login password is configured.\");\n\treturn `${expiresAt}.${sig}`;\n}\n/**\n* Return true iff `token` is a valid, non-expired, non-revoked session.\n*/\nfunction validateSession(token) {\n\tif (!token) return false;\n\tif (_testOverrides.has(token)) return true;\n\tif (_revoked.has(token)) return false;\n\tconst dot = token.lastIndexOf(\".\");\n\tif (dot < 0) return false;\n\tconst expiresAt = Number(token.slice(0, dot));\n\tif (!Number.isFinite(expiresAt) || Date.now() >= expiresAt) return false;\n\tconst sig = token.slice(dot + 1);\n\tconst expected = signToken(expiresAt);\n\tif (expected === null) return false;\n\tif (sig.length !== expected.length) return false;\n\treturn timingSafeEqual(Buffer.from(sig), Buffer.from(expected));\n}\n/**\n* Sliding renewal: validate the old token, return a new one with a fresh\n* 14-day TTL, or return false if the old token is invalid/expired.\n* The caller must place the returned token in the `op_session` cookie.\n*/\nfunction touchSession(token) {\n\tif (!validateSession(token)) return false;\n\treturn createSession();\n}\n/**\n* Revoke a token (logout). The browser cookie must also be cleared by the caller.\n* The revocation list survives until the next server restart. Entries whose\n* embedded expiry has passed are pruned on each call — an expired token fails\n* validation anyway, so keeping it listed is pure memory growth.\n*/\nfunction invalidateSession(token) {\n\tconst now = Date.now();\n\tfor (const revoked of _revoked) {\n\t\tconst expiresAt = Number(revoked.slice(0, revoked.lastIndexOf(\".\")));\n\t\tif (!Number.isFinite(expiresAt) || expiresAt <= now) _revoked.delete(revoked);\n\t}\n\t_revoked.add(token);\n}\n//#endregion\n//#region src/lib/server/helpers.ts\n/**\n* Lazy OpenCode client bound to the currently active endpoint. The client is\n* recreated whenever the active endpoint URL changes so user switches in the\n* UI take effect on the next call.\n*/\nvar _openCodeClient;\nvar _openCodeClientUrl;\nfunction getOpenCodeClient() {\n\tconst { url } = getActiveConnection();\n\tif (!_openCodeClient || url !== _openCodeClientUrl) {\n\t\t_openCodeClient = createOpenCodeClient({ baseUrl: url });\n\t\t_openCodeClientUrl = url;\n\t}\n\treturn _openCodeClient;\n}\nfunction safeTokenCompare(a, b) {\n\tif (typeof a !== \"string\" || typeof b !== \"string\") return false;\n\tif (!a || !b) return false;\n\treturn timingSafeEqual(createHash(\"sha256\").update(a).digest(), createHash(\"sha256\").update(b).digest());\n}\n/** Standard JSON response with request ID header */\nfunction jsonResponse(status, body, requestId = \"\") {\n\treturn new Response(JSON.stringify(body), {\n\t\tstatus,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t...requestId ? { \"x-request-id\": requestId } : {}\n\t\t}\n\t});\n}\n/** Standard error envelope */\nfunction errorResponse(status, error, message, details = {}, requestId = \"\") {\n\treturn jsonResponse(status, {\n\t\terror,\n\t\tmessage,\n\t\tdetails,\n\t\trequestId\n\t}, requestId);\n}\n/** Extract or generate request ID */\nfunction getRequestId(event) {\n\treturn event.request.headers.get(\"x-request-id\") || crypto.randomUUID();\n}\n/**\n* Extract raw session token from the `op_session` cookie.\n*\n* Phase 2 of the auth/proxy refactor (docs/technical/auth-and-proxy-refactor-plan.md)\n* removed the legacy `x-admin-token` / `Authorization: Bearer` header fallbacks.\n* The cookie is HttpOnly + SameSite=Strict and is the ONLY credential the browser\n* holds; XSS cannot read it and out-of-process callers must obtain a session via\n* `POST /api/auth/login` (or `/session`) and present the cookie on subsequent\n* requests.\n*/\nfunction extractToken(event) {\n\tconst match = (event.request.headers.get(\"cookie\") ?? \"\").match(/(?:^|;\\s*)op_session=([^;]+)/);\n\tif (match) return match[1];\n\treturn \"\";\n}\n/** Check admin auth — returns error Response or null if OK */\nfunction requireAdmin(event, requestId) {\n\tif (!getUiLoginPassword()) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!validateSession(extractToken(event))) return errorResponse(401, \"unauthorized\", \"Missing or invalid credentials\", {}, requestId);\n\treturn null;\n}\n/**\n* Server-side capability guard (plan ui-runtime-modes-plan.md §6.4, §8.5).\n*\n* Returns a 403 JSON error Response when the resolved host mode does not\n* expose `capability`, or null when it does. This is the SECURITY boundary —\n* the browser-side `hasCapability()` is UX only. The check is deliberately\n* capability-based, not session-based: a valid admin session in a mode\n* without the capability (e.g. `connections:manage` in assistant-container)\n* is still refused. Capability→mode logic itself lives ONLY in\n* computeServerRuntimeContext / resolveCapabilities (plan §8.6); this helper\n* just reads the advertised server capability set.\n*/\nfunction requireCapability(event, capability, requestId) {\n\tconst ctx = computeServerRuntimeContext(event);\n\tif (!ctx.serverCapabilities.includes(capability)) return errorResponse(403, \"capability_not_available\", `This deployment (${ctx.hostMode}) does not provide the '${capability}' capability.`, {\n\t\tcapability,\n\t\thostMode: ctx.hostMode\n\t}, requestId);\n\treturn null;\n}\n/**\n* Identify caller by the presented `op_session` cookie.\n*\n* Returns \"admin\" when the cookie holds a valid session token.\n*/\nfunction identifyCallerByToken(event) {\n\tif (!getUiLoginPassword()) return null;\n\tif (validateSession(extractToken(event))) return \"admin\";\n\treturn null;\n}\n/** Parse JSON body safely — returns discriminated result with error type */\nasync function parseJsonBody(request, maxBytes = 1048576) {\n\ttry {\n\t\tconst contentLength = request.headers.get(\"content-length\");\n\t\tif (contentLength && parseInt(contentLength, 10) > maxBytes) return { error: \"too_large\" };\n\t\treturn { data: await request.json() };\n\t} catch (e) {\n\t\tconsole.warn(\"[helpers] Failed to parse JSON request body\", e);\n\t\treturn { error: \"invalid_json\" };\n\t}\n}\n/** Convert a ParseJsonBodyError to an appropriate HTTP error response */\nfunction jsonBodyError(err, requestId) {\n\tif (err.error === \"too_large\") return errorResponse(413, \"too_large\", \"Request body too large\", {}, requestId);\n\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n}\n/**\n* Auth + JSON body wrapper for admin POST/DELETE handlers.\n*\n* Replaces the 4-line boilerplate copy-pasted across 30+ routes:\n* const requestId = getRequestId(event);\n* const authError = requireAdmin(event, requestId);\n* if (authError) return authError;\n* const result = await parseJsonBody(event.request);\n* if ('error' in result) return jsonBodyError(result, requestId);\n*\n* Use for routes that need both auth and a JSON body. For auth-only or\n* GET routes, call `requireAdmin` directly.\n*/\nasync function withAdminBody(event, handler) {\n\tconst requestId = getRequestId(event);\n\tconst { security } = computeServerRuntimeContext(event);\n\tconst originError = checkOriginHeader(event.request, security.csrfMode);\n\tif (originError) return originError;\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\treturn handler({\n\t\trequestId,\n\t\tbody: result.data\n\t});\n}\nfunction hostNameFromHeader(hostHeader) {\n\tconst normalized = hostHeader.trim().replace(/\\.$/, \"\");\n\ttry {\n\t\treturn new URL(`http://${normalized}`).hostname.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction isLoopbackHost(hostHeader) {\n\tconst hostname = hostNameFromHeader(hostHeader);\n\tif (!hostname) return false;\n\treturn hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\";\n}\nfunction isSameSite(request, origin) {\n\tconst requestHost = hostNameFromHeader(request.headers.get(\"host\") ?? \"\");\n\tif (!requestHost) return false;\n\treturn requestHost === origin.hostname.toLowerCase();\n}\nfunction checkHostHeader(request) {\n\tconst host = request.headers.get(\"host\") ?? \"\";\n\tif (isLoopbackHost(host) || isRemoteSetupAllowed()) return null;\n\treturn new Response(JSON.stringify({\n\t\terror: \"invalid_host\",\n\t\thost: host.trim().replace(/\\.$/, \"\"),\n\t\tmessage: \"Request rejected: Host header does not match allowed hosts. The UI binds to loopback (127.0.0.1) only; reach it via localhost or an SSH tunnel/reverse proxy, or set OP_ALLOW_REMOTE_SETUP=1 to allow remote access.\"\n\t}), {\n\t\tstatus: 400,\n\t\theaders: { \"content-type\": \"application/json\" }\n\t});\n}\n/**\n* Reject POST/PUT/DELETE requests whose Origin header does not match\n* localhost or 127.0.0.1. Requests with no Origin (non-browser clients)\n* are always allowed.\n*\n* @param request Incoming Request\n* @returns A 403 Response if the origin is rejected; null if allowed\n*/\nfunction checkOriginHeader(request, csrfMode = \"loopback-origin\") {\n\tconst method = request.method.toUpperCase();\n\tif (method === \"GET\" || method === \"HEAD\" || method === \"OPTIONS\") return null;\n\tconst origin = request.headers.get(\"origin\");\n\tif (!origin) return null;\n\ttry {\n\t\tconst u = new URL(origin);\n\t\tswitch (csrfMode) {\n\t\t\tcase \"loopback-origin\":\n\t\t\t\tif (isLoopbackHost(u.host)) return null;\n\t\t\t\tif (isRemoteSetupAllowed() && u.host === (request.headers.get(\"host\") ?? \"\").trim()) return null;\n\t\t\t\tbreak;\n\t\t\tcase \"same-site\":\n\t\t\t\tif (isSameSite(request, u)) return null;\n\t\t\t\tbreak;\n\t\t\tcase \"bearer-token\":\n\t\t\t\tif (request.headers.get(\"authorization\")) return null;\n\t\t\t\tif (isSameSite(request, u)) return null;\n\t\t\t\tbreak;\n\t\t}\n\t} catch {}\n\treturn new Response(JSON.stringify({\n\t\terror: \"forbidden_origin\",\n\t\torigin\n\t}), {\n\t\tstatus: 403,\n\t\theaders: { \"content-type\": \"application/json\" }\n\t});\n}\nNumber(process.env.PORT ?? 3880);\n//#endregion\nexport { invalidateSession as _, getRequestId as a, jsonResponse as c, requireCapability as d, safeTokenCompare as f, getUiLoginPassword as g, createSession as h, getOpenCodeClient as i, parseJsonBody as l, SESSION_TTL_SECONDS as m, checkOriginHeader as n, identifyCallerByToken as o, withAdminBody as p, errorResponse as r, jsonBodyError as s, checkHostHeader as t, requireAdmin as u, touchSession as v };\n"],"names":[],"mappings":"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"}
|