@openpalm/ui 0.12.52 → 0.13.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.vqGkbIg9.css +1 -0
- package/build/client/_app/immutable/assets/9.vqGkbIg9.css.br +0 -0
- package/build/client/_app/immutable/assets/9.vqGkbIg9.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/9mRSvTWj.js +1 -0
- package/build/client/_app/immutable/chunks/9mRSvTWj.js.br +0 -0
- package/build/client/_app/immutable/chunks/9mRSvTWj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js +3 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js.br +0 -0
- package/build/client/_app/immutable/chunks/BApqEZP1.js.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/B_Sgy7qx.js +1 -0
- package/build/client/_app/immutable/chunks/B_Sgy7qx.js.br +2 -0
- package/build/client/_app/immutable/chunks/B_Sgy7qx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_jhBV5Z.js +5 -0
- package/build/client/_app/immutable/chunks/B_jhBV5Z.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_jhBV5Z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Be7qat4r.js +3 -0
- package/build/client/_app/immutable/chunks/Be7qat4r.js.br +0 -0
- package/build/client/_app/immutable/chunks/Be7qat4r.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoOBAdGl.js +1 -0
- package/build/client/_app/immutable/chunks/BoOBAdGl.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoOBAdGl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/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/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/DBHgGGCD.js +1 -0
- package/build/client/_app/immutable/chunks/DBHgGGCD.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBHgGGCD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSs95sLz.js +1 -0
- package/build/client/_app/immutable/chunks/DSs95sLz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSs95sLz.js.gz +0 -0
- package/build/client/_app/immutable/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.DZwy1Y3W.js +2 -0
- package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DZwy1Y3W.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js +1 -0
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.br +1 -0
- package/build/client/_app/immutable/entry/start.C0ic7Ewp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js +1 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.mcDF2Cfv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Bxihn5f1.js +1 -0
- package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Bxihn5f1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BZ76_WLP.js +1 -0
- package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BZ76_WLP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js +6 -0
- package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.Bzf3G5G0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/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.D-CwW2PH.js +1 -0
- package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D-CwW2PH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.BbStivMI.js +2 -0
- package/build/client/_app/immutable/nodes/5.BbStivMI.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BbStivMI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BKVgKxKO.js +2 -0
- package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BKVgKxKO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DuXt155R.js +4 -0
- package/build/client/_app/immutable/nodes/7.DuXt155R.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DuXt155R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/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.BdeFVi2a.js +126 -0
- package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BdeFVi2a.js.gz +0 -0
- package/build/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-C7zzjezl.js +43 -0
- package/build/server/chunks/0-C7zzjezl.js.map +1 -0
- package/build/server/chunks/1-Ceq9WsUZ.js +9 -0
- package/build/server/chunks/1-Ceq9WsUZ.js.map +1 -0
- package/build/server/chunks/10-DbLLQ-Uy.js +35 -0
- package/build/server/chunks/10-DbLLQ-Uy.js.map +1 -0
- package/build/server/chunks/11-Dryt5Piv.js +9 -0
- package/build/server/chunks/11-Dryt5Piv.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-CAH3EmhU.js +58 -0
- package/build/server/chunks/3-CAH3EmhU.js.map +1 -0
- package/build/server/chunks/4-DxmFWVQJ.js +9 -0
- package/build/server/chunks/4-DxmFWVQJ.js.map +1 -0
- package/build/server/chunks/5-CQ9cELI7.js +9 -0
- package/build/server/chunks/5-CQ9cELI7.js.map +1 -0
- package/build/server/chunks/6-B-hnmc7F.js +9 -0
- package/build/server/chunks/6-B-hnmc7F.js.map +1 -0
- package/build/server/chunks/7-BE6BzHsh.js +9 -0
- package/build/server/chunks/7-BE6BzHsh.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-BWzd_hmh.js +42 -0
- package/build/server/chunks/9-BWzd_hmh.js.map +1 -0
- package/build/server/chunks/ChatNavbar-BonHVqfi.js +243 -0
- package/build/server/chunks/ChatNavbar-BonHVqfi.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-fOHYHe-O.js +180 -0
- package/build/server/chunks/IconServer-fOHYHe-O.js.map +1 -0
- package/build/server/chunks/IconSoundOn-DHtvjphK.js +1116 -0
- package/build/server/chunks/IconSoundOn-DHtvjphK.js.map +1 -0
- package/build/server/chunks/IconStop-C89_dmt4.js +956 -0
- package/build/server/chunks/IconStop-C89_dmt4.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-BLxvGwKC.js +67 -0
- package/build/server/chunks/_layout.svelte-BLxvGwKC.js.map +1 -0
- package/build/server/chunks/_page.svelte-0Rf024eH.js +530 -0
- package/build/server/chunks/_page.svelte-0Rf024eH.js.map +1 -0
- package/build/server/chunks/_page.svelte-BWNjxN63.js +82 -0
- package/build/server/chunks/_page.svelte-BWNjxN63.js.map +1 -0
- package/build/server/chunks/_page.svelte-BXeh8wzh.js +2425 -0
- package/build/server/chunks/_page.svelte-BXeh8wzh.js.map +1 -0
- package/build/server/chunks/_page.svelte-Bovrn7AQ.js +47 -0
- package/build/server/chunks/_page.svelte-Bovrn7AQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-COf36oAu.js +92 -0
- package/build/server/chunks/_page.svelte-COf36oAu.js.map +1 -0
- package/build/server/chunks/_page.svelte-DkZsmNYc.js +24 -0
- package/build/server/chunks/_page.svelte-DkZsmNYc.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/_page.svelte-LsoJ7E5M.js +3516 -0
- package/build/server/chunks/_page.svelte-LsoJ7E5M.js.map +1 -0
- package/build/server/chunks/_server.ts-2-50j5S8.js +93 -0
- package/build/server/chunks/_server.ts-2-50j5S8.js.map +1 -0
- package/build/server/chunks/_server.ts-2Z0JYuCr.js +61 -0
- package/build/server/chunks/_server.ts-2Z0JYuCr.js.map +1 -0
- package/build/server/chunks/_server.ts-42ZGRWhn.js +58 -0
- package/build/server/chunks/_server.ts-42ZGRWhn.js.map +1 -0
- package/build/server/chunks/_server.ts-6EuPIrt7.js +88 -0
- package/build/server/chunks/_server.ts-6EuPIrt7.js.map +1 -0
- package/build/server/chunks/_server.ts-6muCM4Nz.js +44 -0
- package/build/server/chunks/_server.ts-6muCM4Nz.js.map +1 -0
- package/build/server/chunks/_server.ts-B28SfXaZ.js +172 -0
- package/build/server/chunks/_server.ts-B28SfXaZ.js.map +1 -0
- package/build/server/chunks/_server.ts-BA11l9Z1.js +87 -0
- package/build/server/chunks/_server.ts-BA11l9Z1.js.map +1 -0
- package/build/server/chunks/_server.ts-BA7wxHYg.js +61 -0
- package/build/server/chunks/_server.ts-BA7wxHYg.js.map +1 -0
- package/build/server/chunks/_server.ts-BARmSEZ2.js +49 -0
- package/build/server/chunks/_server.ts-BARmSEZ2.js.map +1 -0
- package/build/server/chunks/_server.ts-BBewn2kP.js +106 -0
- package/build/server/chunks/_server.ts-BBewn2kP.js.map +1 -0
- package/build/server/chunks/_server.ts-BEaiuN8Q.js +66 -0
- package/build/server/chunks/_server.ts-BEaiuN8Q.js.map +1 -0
- package/build/server/chunks/_server.ts-BJrYBXpY.js +87 -0
- package/build/server/chunks/_server.ts-BJrYBXpY.js.map +1 -0
- package/build/server/chunks/_server.ts-BJv74_DI.js +52 -0
- package/build/server/chunks/_server.ts-BJv74_DI.js.map +1 -0
- package/build/server/chunks/_server.ts-BKWx8K8U.js +60 -0
- package/build/server/chunks/_server.ts-BKWx8K8U.js.map +1 -0
- package/build/server/chunks/_server.ts-BLn_cTkK.js +58 -0
- package/build/server/chunks/_server.ts-BLn_cTkK.js.map +1 -0
- package/build/server/chunks/_server.ts-BR24J2uB.js +40 -0
- package/build/server/chunks/_server.ts-BR24J2uB.js.map +1 -0
- package/build/server/chunks/_server.ts-BRdjsMSd.js +44 -0
- package/build/server/chunks/_server.ts-BRdjsMSd.js.map +1 -0
- package/build/server/chunks/_server.ts-BTPbwN92.js +92 -0
- package/build/server/chunks/_server.ts-BTPbwN92.js.map +1 -0
- package/build/server/chunks/_server.ts-BUDMOZOz.js +44 -0
- package/build/server/chunks/_server.ts-BUDMOZOz.js.map +1 -0
- package/build/server/chunks/_server.ts-BVMpHE3G.js +38 -0
- package/build/server/chunks/_server.ts-BVMpHE3G.js.map +1 -0
- package/build/server/chunks/_server.ts-BWO1Eoro.js +45 -0
- package/build/server/chunks/_server.ts-BWO1Eoro.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-Ba8xSIQn.js +107 -0
- package/build/server/chunks/_server.ts-Ba8xSIQn.js.map +1 -0
- package/build/server/chunks/_server.ts-BeP_sHqj.js +58 -0
- package/build/server/chunks/_server.ts-BeP_sHqj.js.map +1 -0
- package/build/server/chunks/_server.ts-BhAp0vvt.js +171 -0
- package/build/server/chunks/_server.ts-BhAp0vvt.js.map +1 -0
- package/build/server/chunks/_server.ts-Bi0rRbcw.js +166 -0
- package/build/server/chunks/_server.ts-Bi0rRbcw.js.map +1 -0
- package/build/server/chunks/_server.ts-BjD0Uf0U.js +248 -0
- package/build/server/chunks/_server.ts-BjD0Uf0U.js.map +1 -0
- package/build/server/chunks/_server.ts-BjjicBDy.js +173 -0
- package/build/server/chunks/_server.ts-BjjicBDy.js.map +1 -0
- package/build/server/chunks/_server.ts-BsPu8Fny.js +521 -0
- package/build/server/chunks/_server.ts-BsPu8Fny.js.map +1 -0
- package/build/server/chunks/_server.ts-C-tvKaFE.js +68 -0
- package/build/server/chunks/_server.ts-C-tvKaFE.js.map +1 -0
- package/build/server/chunks/_server.ts-C83FzZfP.js +36 -0
- package/build/server/chunks/_server.ts-C83FzZfP.js.map +1 -0
- package/build/server/chunks/_server.ts-C8eCqXP6.js +96 -0
- package/build/server/chunks/_server.ts-C8eCqXP6.js.map +1 -0
- package/build/server/chunks/_server.ts-C9F005zM.js +45 -0
- package/build/server/chunks/_server.ts-C9F005zM.js.map +1 -0
- package/build/server/chunks/_server.ts-CCmsGl_u.js +111 -0
- package/build/server/chunks/_server.ts-CCmsGl_u.js.map +1 -0
- package/build/server/chunks/_server.ts-CG60Cdqf.js +205 -0
- package/build/server/chunks/_server.ts-CG60Cdqf.js.map +1 -0
- package/build/server/chunks/_server.ts-CGZizh2V.js +105 -0
- package/build/server/chunks/_server.ts-CGZizh2V.js.map +1 -0
- package/build/server/chunks/_server.ts-CIv0zM75.js +70 -0
- package/build/server/chunks/_server.ts-CIv0zM75.js.map +1 -0
- package/build/server/chunks/_server.ts-CJVwtNhA.js +34 -0
- package/build/server/chunks/_server.ts-CJVwtNhA.js.map +1 -0
- package/build/server/chunks/_server.ts-CMAepV0J.js +38 -0
- package/build/server/chunks/_server.ts-CMAepV0J.js.map +1 -0
- package/build/server/chunks/_server.ts-COcv1puW.js +57 -0
- package/build/server/chunks/_server.ts-COcv1puW.js.map +1 -0
- package/build/server/chunks/_server.ts-CQHkw9ni.js +94 -0
- package/build/server/chunks/_server.ts-CQHkw9ni.js.map +1 -0
- package/build/server/chunks/_server.ts-CS2LQKMb.js +44 -0
- package/build/server/chunks/_server.ts-CS2LQKMb.js.map +1 -0
- package/build/server/chunks/_server.ts-CX_CwTW0.js +41 -0
- package/build/server/chunks/_server.ts-CX_CwTW0.js.map +1 -0
- package/build/server/chunks/_server.ts-CcoaYeM8.js +50 -0
- package/build/server/chunks/_server.ts-CcoaYeM8.js.map +1 -0
- package/build/server/chunks/_server.ts-CfuLncMW.js +134 -0
- package/build/server/chunks/_server.ts-CfuLncMW.js.map +1 -0
- package/build/server/chunks/_server.ts-CjPhaG_g.js +68 -0
- package/build/server/chunks/_server.ts-CjPhaG_g.js.map +1 -0
- package/build/server/chunks/_server.ts-CmUo0zla.js +112 -0
- package/build/server/chunks/_server.ts-CmUo0zla.js.map +1 -0
- package/build/server/chunks/_server.ts-CnQ4hgIT.js +41 -0
- package/build/server/chunks/_server.ts-CnQ4hgIT.js.map +1 -0
- package/build/server/chunks/_server.ts-CncBUb14.js +64 -0
- package/build/server/chunks/_server.ts-CncBUb14.js.map +1 -0
- package/build/server/chunks/_server.ts-CnrWBkQ7.js +149 -0
- package/build/server/chunks/_server.ts-CnrWBkQ7.js.map +1 -0
- package/build/server/chunks/_server.ts-CspCDw2x.js +49 -0
- package/build/server/chunks/_server.ts-CspCDw2x.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-D-6mgHZB.js +72 -0
- package/build/server/chunks/_server.ts-D-6mgHZB.js.map +1 -0
- package/build/server/chunks/_server.ts-D-Rf8If2.js +94 -0
- package/build/server/chunks/_server.ts-D-Rf8If2.js.map +1 -0
- package/build/server/chunks/_server.ts-D5F-pzp2.js +45 -0
- package/build/server/chunks/_server.ts-D5F-pzp2.js.map +1 -0
- package/build/server/chunks/_server.ts-D6wuFDe4.js +77 -0
- package/build/server/chunks/_server.ts-D6wuFDe4.js.map +1 -0
- package/build/server/chunks/_server.ts-D7VWMcNm.js +80 -0
- package/build/server/chunks/_server.ts-D7VWMcNm.js.map +1 -0
- package/build/server/chunks/_server.ts-D7X0LmkL.js +65 -0
- package/build/server/chunks/_server.ts-D7X0LmkL.js.map +1 -0
- package/build/server/chunks/_server.ts-D9yQyMbZ.js +141 -0
- package/build/server/chunks/_server.ts-D9yQyMbZ.js.map +1 -0
- package/build/server/chunks/_server.ts-DE-c3Y5D.js +48 -0
- package/build/server/chunks/_server.ts-DE-c3Y5D.js.map +1 -0
- package/build/server/chunks/_server.ts-DH343hlx.js +57 -0
- package/build/server/chunks/_server.ts-DH343hlx.js.map +1 -0
- package/build/server/chunks/_server.ts-DH3Uc_0m.js +57 -0
- package/build/server/chunks/_server.ts-DH3Uc_0m.js.map +1 -0
- package/build/server/chunks/_server.ts-DHeSwA7p.js +55 -0
- package/build/server/chunks/_server.ts-DHeSwA7p.js.map +1 -0
- package/build/server/chunks/_server.ts-DJCIu42O.js +49 -0
- package/build/server/chunks/_server.ts-DJCIu42O.js.map +1 -0
- package/build/server/chunks/_server.ts-DJqSQny9.js +56 -0
- package/build/server/chunks/_server.ts-DJqSQny9.js.map +1 -0
- package/build/server/chunks/_server.ts-DKYXeaKr.js +88 -0
- package/build/server/chunks/_server.ts-DKYXeaKr.js.map +1 -0
- package/build/server/chunks/_server.ts-DM9EsKQc.js +68 -0
- package/build/server/chunks/_server.ts-DM9EsKQc.js.map +1 -0
- package/build/server/chunks/_server.ts-DQozxLn6.js +58 -0
- package/build/server/chunks/_server.ts-DQozxLn6.js.map +1 -0
- package/build/server/chunks/_server.ts-DTQe-U35.js +80 -0
- package/build/server/chunks/_server.ts-DTQe-U35.js.map +1 -0
- package/build/server/chunks/_server.ts-Dcf84tjG.js +42 -0
- package/build/server/chunks/_server.ts-Dcf84tjG.js.map +1 -0
- package/build/server/chunks/_server.ts-DdHx6Xig.js +88 -0
- package/build/server/chunks/_server.ts-DdHx6Xig.js.map +1 -0
- package/build/server/chunks/_server.ts-DdoJFQaX.js +89 -0
- package/build/server/chunks/_server.ts-DdoJFQaX.js.map +1 -0
- package/build/server/chunks/_server.ts-DdocuErM.js +71 -0
- package/build/server/chunks/_server.ts-DdocuErM.js.map +1 -0
- package/build/server/chunks/_server.ts-Ddqhnr_7.js +58 -0
- package/build/server/chunks/_server.ts-Ddqhnr_7.js.map +1 -0
- package/build/server/chunks/_server.ts-Dj6nwJgl.js +42 -0
- package/build/server/chunks/_server.ts-Dj6nwJgl.js.map +1 -0
- package/build/server/chunks/_server.ts-Dl-Rn5Ku.js +68 -0
- package/build/server/chunks/_server.ts-Dl-Rn5Ku.js.map +1 -0
- package/build/server/chunks/_server.ts-DnczK3Pw.js +49 -0
- package/build/server/chunks/_server.ts-DnczK3Pw.js.map +1 -0
- package/build/server/chunks/_server.ts-Dq4RvC5F.js +69 -0
- package/build/server/chunks/_server.ts-Dq4RvC5F.js.map +1 -0
- package/build/server/chunks/_server.ts-DrGzrygC.js +103 -0
- package/build/server/chunks/_server.ts-DrGzrygC.js.map +1 -0
- package/build/server/chunks/_server.ts-Ds62LEMU.js +162 -0
- package/build/server/chunks/_server.ts-Ds62LEMU.js.map +1 -0
- package/build/server/chunks/_server.ts-DsVbuYhj.js +64 -0
- package/build/server/chunks/_server.ts-DsVbuYhj.js.map +1 -0
- package/build/server/chunks/_server.ts-Dy65kWxL.js +84 -0
- package/build/server/chunks/_server.ts-Dy65kWxL.js.map +1 -0
- package/build/server/chunks/_server.ts-Dy9l5NMO.js +715 -0
- package/build/server/chunks/_server.ts-Dy9l5NMO.js.map +1 -0
- package/build/server/chunks/_server.ts-JO0zy17P.js +60 -0
- package/build/server/chunks/_server.ts-JO0zy17P.js.map +1 -0
- package/build/server/chunks/_server.ts-LokXM9hH.js +51 -0
- package/build/server/chunks/_server.ts-LokXM9hH.js.map +1 -0
- package/build/server/chunks/_server.ts-pRYFJihh.js +72 -0
- package/build/server/chunks/_server.ts-pRYFJihh.js.map +1 -0
- package/build/server/chunks/_server.ts-xPuEhFJO.js +56 -0
- package/build/server/chunks/_server.ts-xPuEhFJO.js.map +1 -0
- package/build/server/chunks/addon-helpers-Cgg8lPxe.js +51 -0
- package/build/server/chunks/addon-helpers-Cgg8lPxe.js.map +1 -0
- package/build/server/chunks/akm-5HN45xWY.js +151 -0
- package/build/server/chunks/akm-5HN45xWY.js.map +1 -0
- package/build/server/chunks/catalog-7z8dgrJF.js +217 -0
- package/build/server/chunks/catalog-7z8dgrJF.js.map +1 -0
- package/build/server/chunks/client-D2lMniPd.js +202 -0
- package/build/server/chunks/client-D2lMniPd.js.map +1 -0
- package/build/server/chunks/compose-args2-BFdWixAZ.js +26 -0
- package/build/server/chunks/compose-args2-BFdWixAZ.js.map +1 -0
- package/build/server/chunks/config-I5hb-W80.js +121 -0
- package/build/server/chunks/config-I5hb-W80.js.map +1 -0
- package/build/server/chunks/connections-api-NkotVLIl.js +34 -0
- package/build/server/chunks/connections-api-NkotVLIl.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-HZnACjh6.js +26 -0
- package/build/server/chunks/docker2-HZnACjh6.js.map +1 -0
- package/build/server/chunks/docker3-Dj9Pc_Pt.js +20 -0
- package/build/server/chunks/docker3-Dj9Pc_Pt.js.map +1 -0
- package/build/server/chunks/endpoints-B9ePqrMw.js +377 -0
- package/build/server/chunks/endpoints-B9ePqrMw.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-DGngrZ2V.js +18 -0
- package/build/server/chunks/error.svelte-DGngrZ2V.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-0lgyQreD.js +116 -0
- package/build/server/chunks/features-0lgyQreD.js.map +1 -0
- package/build/server/chunks/helpers-q4Ng8QTq.js +320 -0
- package/build/server/chunks/helpers-q4Ng8QTq.js.map +1 -0
- package/build/server/chunks/hooks.server-BTXqUhpH.js +121 -0
- package/build/server/chunks/hooks.server-BTXqUhpH.js.map +1 -0
- package/build/server/chunks/http-jBNJXVHg.js +31 -0
- package/build/server/chunks/http-jBNJXVHg.js.map +1 -0
- package/build/server/chunks/internal-G-Uk-kCA.js +915 -0
- package/build/server/chunks/internal-G-Uk-kCA.js.map +1 -0
- package/build/server/chunks/landing-BR5KUuDz.js +132 -0
- package/build/server/chunks/landing-BR5KUuDz.js.map +1 -0
- package/build/server/chunks/paths-tzRSDsKc.js +17 -0
- package/build/server/chunks/paths-tzRSDsKc.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-C5zNEC6u.js +72 -0
- package/build/server/chunks/runtime-context.svelte-C5zNEC6u.js.map +1 -0
- package/build/server/chunks/session-cookie-qHDuQboc.js +74 -0
- package/build/server/chunks/session-cookie-qHDuQboc.js.map +1 -0
- package/build/server/chunks/setup-deploy-DleJTifu.js +75 -0
- package/build/server/chunks/setup-deploy-DleJTifu.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-BwQUi60U.js +17213 -0
- package/build/server/chunks/src-BwQUi60U.js.map +1 -0
- package/build/server/chunks/state-Dm7U51xT.js +24 -0
- package/build/server/chunks/state-Dm7U51xT.js.map +1 -0
- package/build/server/chunks/state2-BhKHITEo.js +62 -0
- package/build/server/chunks/state2-BhKHITEo.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-BAiqUOIX.js +1214 -0
- package/build/server/chunks/voice-state.svelte-BAiqUOIX.js.map +1 -0
- package/build/server/index.js +33 -33
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +279 -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.CcyzbXoG.css +0 -1
- package/build/client/_app/immutable/assets/7.CcyzbXoG.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CcyzbXoG.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/BDvA7M6l.js +0 -1
- package/build/client/_app/immutable/chunks/BDvA7M6l.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDvA7M6l.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/BM4jJmEk.js +0 -1
- package/build/client/_app/immutable/chunks/BM4jJmEk.js.br +0 -0
- package/build/client/_app/immutable/chunks/BM4jJmEk.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/C4c5Y6rY.js +0 -5
- package/build/client/_app/immutable/chunks/C4c5Y6rY.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4c5Y6rY.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/C7x_T9zu.js +0 -3
- package/build/client/_app/immutable/chunks/C7x_T9zu.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7x_T9zu.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/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/DoTCwfyJ.js +0 -1
- package/build/client/_app/immutable/chunks/DoTCwfyJ.js.br +0 -2
- package/build/client/_app/immutable/chunks/DoTCwfyJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwEShcLP.js +0 -1
- package/build/client/_app/immutable/chunks/DwEShcLP.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwEShcLP.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/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/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.D5lUGJr1.js +0 -2
- package/build/client/_app/immutable/entry/app.D5lUGJr1.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D5lUGJr1.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CKoCEnYJ.js +0 -1
- package/build/client/_app/immutable/entry/start.CKoCEnYJ.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CKoCEnYJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.anwXhDvm.js +0 -1
- package/build/client/_app/immutable/nodes/0.anwXhDvm.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.anwXhDvm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DrRwtvKf.js +0 -1
- package/build/client/_app/immutable/nodes/1.DrRwtvKf.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.DrRwtvKf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.BLqUjjTI.js +0 -1
- package/build/client/_app/immutable/nodes/10.BLqUjjTI.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.BLqUjjTI.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.paHt3QH9.js +0 -124
- package/build/client/_app/immutable/nodes/4.paHt3QH9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.paHt3QH9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.bKLnh085.js +0 -4
- package/build/client/_app/immutable/nodes/5.bKLnh085.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.bKLnh085.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DRi42KoD.js +0 -1
- package/build/client/_app/immutable/nodes/6.DRi42KoD.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DRi42KoD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BvgWYGnm.js +0 -2
- package/build/client/_app/immutable/nodes/7.BvgWYGnm.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BvgWYGnm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BKAKOw6V.js +0 -1
- package/build/client/_app/immutable/nodes/8.BKAKOw6V.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BKAKOw6V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DwWxN6-k.js +0 -6
- package/build/client/_app/immutable/nodes/9.DwWxN6-k.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DwWxN6-k.js.gz +0 -0
- package/build/server/chunks/0-BiE1oF-J.js +0 -22
- package/build/server/chunks/0-BiE1oF-J.js.map +0 -1
- package/build/server/chunks/1-B-LNip7q.js +0 -9
- package/build/server/chunks/1-B-LNip7q.js.map +0 -1
- package/build/server/chunks/10-CS2lFzh1.js +0 -69
- package/build/server/chunks/10-CS2lFzh1.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-CliJOxWK.js +0 -9
- package/build/server/chunks/4-CliJOxWK.js.map +0 -1
- package/build/server/chunks/5-DkkL3QsU.js +0 -9
- package/build/server/chunks/5-DkkL3QsU.js.map +0 -1
- package/build/server/chunks/6-B6ZHxJZG.js +0 -9
- package/build/server/chunks/6-B6ZHxJZG.js.map +0 -1
- package/build/server/chunks/7-CIl66k8R.js +0 -9
- package/build/server/chunks/7-CIl66k8R.js.map +0 -1
- package/build/server/chunks/8-Dbz3fLZs.js +0 -35
- package/build/server/chunks/8-Dbz3fLZs.js.map +0 -1
- package/build/server/chunks/9-CnaXNk2w.js +0 -9
- package/build/server/chunks/9-CnaXNk2w.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-DMJf4zcn.js +0 -1295
- package/build/server/chunks/IconMic-DMJf4zcn.js.map +0 -1
- package/build/server/chunks/Navbar-CbBudHU6.js +0 -403
- package/build/server/chunks/Navbar-CbBudHU6.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-B5opDXuf.js +0 -66
- package/build/server/chunks/_layout.svelte-B5opDXuf.js.map +0 -1
- package/build/server/chunks/_page.svelte-1VhBiAl_.js +0 -385
- package/build/server/chunks/_page.svelte-1VhBiAl_.js.map +0 -1
- package/build/server/chunks/_page.svelte-6gpwjZv0.js +0 -122
- package/build/server/chunks/_page.svelte-6gpwjZv0.js.map +0 -1
- package/build/server/chunks/_page.svelte-Bd16jege.js +0 -47
- package/build/server/chunks/_page.svelte-Bd16jege.js.map +0 -1
- package/build/server/chunks/_page.svelte-Boq5WJfs.js +0 -3289
- package/build/server/chunks/_page.svelte-Boq5WJfs.js.map +0 -1
- package/build/server/chunks/_page.svelte-DM-4V1_g.js +0 -79
- package/build/server/chunks/_page.svelte-DM-4V1_g.js.map +0 -1
- package/build/server/chunks/_page.svelte-jdDbUptn.js +0 -89
- package/build/server/chunks/_page.svelte-jdDbUptn.js.map +0 -1
- package/build/server/chunks/_page.svelte-yAnFAnHi.js +0 -74
- package/build/server/chunks/_page.svelte-yAnFAnHi.js.map +0 -1
- package/build/server/chunks/_server.ts-0x3ZsRoq.js +0 -41
- package/build/server/chunks/_server.ts-0x3ZsRoq.js.map +0 -1
- package/build/server/chunks/_server.ts-1fytrAUC.js +0 -105
- package/build/server/chunks/_server.ts-1fytrAUC.js.map +0 -1
- package/build/server/chunks/_server.ts-2trnHYNR.js +0 -103
- package/build/server/chunks/_server.ts-2trnHYNR.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-3IGr8J7j.js +0 -103
- package/build/server/chunks/_server.ts-3IGr8J7j.js.map +0 -1
- package/build/server/chunks/_server.ts-4HApbECL.js +0 -49
- package/build/server/chunks/_server.ts-4HApbECL.js.map +0 -1
- package/build/server/chunks/_server.ts-4cGCnV5A.js +0 -172
- package/build/server/chunks/_server.ts-4cGCnV5A.js.map +0 -1
- package/build/server/chunks/_server.ts-5mKh6tgD.js +0 -56
- package/build/server/chunks/_server.ts-5mKh6tgD.js.map +0 -1
- package/build/server/chunks/_server.ts-B-gZIXCx.js +0 -120
- package/build/server/chunks/_server.ts-B-gZIXCx.js.map +0 -1
- package/build/server/chunks/_server.ts-B1LApKwc.js +0 -48
- package/build/server/chunks/_server.ts-B1LApKwc.js.map +0 -1
- package/build/server/chunks/_server.ts-B5s8k9IW.js +0 -53
- package/build/server/chunks/_server.ts-B5s8k9IW.js.map +0 -1
- package/build/server/chunks/_server.ts-B7oDgVRm.js +0 -208
- package/build/server/chunks/_server.ts-B7oDgVRm.js.map +0 -1
- package/build/server/chunks/_server.ts-BA7OxoAM.js +0 -69
- package/build/server/chunks/_server.ts-BA7OxoAM.js.map +0 -1
- package/build/server/chunks/_server.ts-BCqZP9mX.js +0 -94
- package/build/server/chunks/_server.ts-BCqZP9mX.js.map +0 -1
- package/build/server/chunks/_server.ts-BE9eO04W.js +0 -100
- package/build/server/chunks/_server.ts-BE9eO04W.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-BUf-IIIm.js +0 -85
- package/build/server/chunks/_server.ts-BUf-IIIm.js.map +0 -1
- package/build/server/chunks/_server.ts-BW13CurN.js +0 -43
- package/build/server/chunks/_server.ts-BW13CurN.js.map +0 -1
- package/build/server/chunks/_server.ts-BWh3c-xu.js +0 -44
- package/build/server/chunks/_server.ts-BWh3c-xu.js.map +0 -1
- package/build/server/chunks/_server.ts-BYDgL8Wh.js +0 -68
- package/build/server/chunks/_server.ts-BYDgL8Wh.js.map +0 -1
- package/build/server/chunks/_server.ts-B_9-b1wk.js +0 -82
- package/build/server/chunks/_server.ts-B_9-b1wk.js.map +0 -1
- package/build/server/chunks/_server.ts-Bbc4zzJy.js +0 -39
- package/build/server/chunks/_server.ts-Bbc4zzJy.js.map +0 -1
- package/build/server/chunks/_server.ts-BhmHIGs6.js +0 -45
- package/build/server/chunks/_server.ts-BhmHIGs6.js.map +0 -1
- package/build/server/chunks/_server.ts-BhuoSeRy.js +0 -64
- package/build/server/chunks/_server.ts-BhuoSeRy.js.map +0 -1
- package/build/server/chunks/_server.ts-BnL_ReBS.js +0 -50
- package/build/server/chunks/_server.ts-BnL_ReBS.js.map +0 -1
- package/build/server/chunks/_server.ts-BoOQ7F2z.js +0 -40
- package/build/server/chunks/_server.ts-BoOQ7F2z.js.map +0 -1
- package/build/server/chunks/_server.ts-Bry3Z40C.js +0 -160
- package/build/server/chunks/_server.ts-Bry3Z40C.js.map +0 -1
- package/build/server/chunks/_server.ts-BtVLVJf0.js +0 -80
- package/build/server/chunks/_server.ts-BtVLVJf0.js.map +0 -1
- package/build/server/chunks/_server.ts-BzISiSHa.js +0 -57
- package/build/server/chunks/_server.ts-BzISiSHa.js.map +0 -1
- package/build/server/chunks/_server.ts-C7PeR-ll.js +0 -112
- package/build/server/chunks/_server.ts-C7PeR-ll.js.map +0 -1
- package/build/server/chunks/_server.ts-C8NW6VWR.js +0 -55
- package/build/server/chunks/_server.ts-C8NW6VWR.js.map +0 -1
- package/build/server/chunks/_server.ts-CF0aKxAL.js +0 -59
- package/build/server/chunks/_server.ts-CF0aKxAL.js.map +0 -1
- package/build/server/chunks/_server.ts-CH-OPdXJ.js +0 -56
- package/build/server/chunks/_server.ts-CH-OPdXJ.js.map +0 -1
- package/build/server/chunks/_server.ts-CPsQ5aGi.js +0 -79
- package/build/server/chunks/_server.ts-CPsQ5aGi.js.map +0 -1
- package/build/server/chunks/_server.ts-CQ8JX5O7.js +0 -89
- package/build/server/chunks/_server.ts-CQ8JX5O7.js.map +0 -1
- package/build/server/chunks/_server.ts-CQPRTbTX.js +0 -63
- package/build/server/chunks/_server.ts-CQPRTbTX.js.map +0 -1
- package/build/server/chunks/_server.ts-CTVpEmAc.js +0 -517
- package/build/server/chunks/_server.ts-CTVpEmAc.js.map +0 -1
- package/build/server/chunks/_server.ts-CWVi9VhR.js +0 -76
- package/build/server/chunks/_server.ts-CWVi9VhR.js.map +0 -1
- package/build/server/chunks/_server.ts-CXQd0L0u.js +0 -57
- package/build/server/chunks/_server.ts-CXQd0L0u.js.map +0 -1
- package/build/server/chunks/_server.ts-Cgg_3L-k.js +0 -44
- package/build/server/chunks/_server.ts-Cgg_3L-k.js.map +0 -1
- package/build/server/chunks/_server.ts-ChvbGMR6.js +0 -50
- package/build/server/chunks/_server.ts-ChvbGMR6.js.map +0 -1
- package/build/server/chunks/_server.ts-CnByyw9m.js +0 -35
- package/build/server/chunks/_server.ts-CnByyw9m.js.map +0 -1
- package/build/server/chunks/_server.ts-Ct_0qiMK.js +0 -76
- package/build/server/chunks/_server.ts-Ct_0qiMK.js.map +0 -1
- package/build/server/chunks/_server.ts-Cu1u6Fq3.js +0 -244
- package/build/server/chunks/_server.ts-Cu1u6Fq3.js.map +0 -1
- package/build/server/chunks/_server.ts-Cuq4zRUh.js +0 -66
- package/build/server/chunks/_server.ts-Cuq4zRUh.js.map +0 -1
- package/build/server/chunks/_server.ts-Cx8pH99_.js +0 -43
- package/build/server/chunks/_server.ts-Cx8pH99_.js.map +0 -1
- package/build/server/chunks/_server.ts-D-eORdC8.js +0 -57
- package/build/server/chunks/_server.ts-D-eORdC8.js.map +0 -1
- package/build/server/chunks/_server.ts-D1cvo-nO.js +0 -55
- package/build/server/chunks/_server.ts-D1cvo-nO.js.map +0 -1
- package/build/server/chunks/_server.ts-D4nuqQNX.js +0 -85
- package/build/server/chunks/_server.ts-D4nuqQNX.js.map +0 -1
- package/build/server/chunks/_server.ts-D6aAJoCf.js +0 -70
- package/build/server/chunks/_server.ts-D6aAJoCf.js.map +0 -1
- package/build/server/chunks/_server.ts-D9PUEjiN.js +0 -47
- package/build/server/chunks/_server.ts-D9PUEjiN.js.map +0 -1
- package/build/server/chunks/_server.ts-DAiD8z-P.js +0 -47
- package/build/server/chunks/_server.ts-DAiD8z-P.js.map +0 -1
- package/build/server/chunks/_server.ts-DDKL_uuS.js +0 -203
- package/build/server/chunks/_server.ts-DDKL_uuS.js.map +0 -1
- package/build/server/chunks/_server.ts-DGkgd0uc.js +0 -166
- package/build/server/chunks/_server.ts-DGkgd0uc.js.map +0 -1
- package/build/server/chunks/_server.ts-DHig-2Ii.js +0 -58
- package/build/server/chunks/_server.ts-DHig-2Ii.js.map +0 -1
- package/build/server/chunks/_server.ts-DJdHVo2c.js +0 -36
- package/build/server/chunks/_server.ts-DJdHVo2c.js.map +0 -1
- package/build/server/chunks/_server.ts-DLrsnGKc.js +0 -64
- package/build/server/chunks/_server.ts-DLrsnGKc.js.map +0 -1
- package/build/server/chunks/_server.ts-DRYh6JJM.js +0 -36
- package/build/server/chunks/_server.ts-DRYh6JJM.js.map +0 -1
- package/build/server/chunks/_server.ts-DUbqsB2y.js +0 -43
- package/build/server/chunks/_server.ts-DUbqsB2y.js.map +0 -1
- package/build/server/chunks/_server.ts-DVRwJs1D.js +0 -89
- package/build/server/chunks/_server.ts-DVRwJs1D.js.map +0 -1
- package/build/server/chunks/_server.ts-DYZ1SnMq.js +0 -44
- package/build/server/chunks/_server.ts-DYZ1SnMq.js.map +0 -1
- package/build/server/chunks/_server.ts-DdpgDdUI.js +0 -59
- package/build/server/chunks/_server.ts-DdpgDdUI.js.map +0 -1
- package/build/server/chunks/_server.ts-DhVR_dEn.js +0 -67
- package/build/server/chunks/_server.ts-DhVR_dEn.js.map +0 -1
- package/build/server/chunks/_server.ts-DorWUEnZ.js +0 -762
- package/build/server/chunks/_server.ts-DorWUEnZ.js.map +0 -1
- package/build/server/chunks/_server.ts-DptdgCp1.js +0 -92
- package/build/server/chunks/_server.ts-DptdgCp1.js.map +0 -1
- package/build/server/chunks/_server.ts-DyFhMY-d.js +0 -84
- package/build/server/chunks/_server.ts-DyFhMY-d.js.map +0 -1
- package/build/server/chunks/_server.ts-FBHhAciM.js +0 -149
- package/build/server/chunks/_server.ts-FBHhAciM.js.map +0 -1
- package/build/server/chunks/_server.ts-H0_rl9HF.js +0 -66
- package/build/server/chunks/_server.ts-H0_rl9HF.js.map +0 -1
- package/build/server/chunks/_server.ts-MGCXhBlP.js +0 -52
- package/build/server/chunks/_server.ts-MGCXhBlP.js.map +0 -1
- package/build/server/chunks/_server.ts-OXR06_zO.js +0 -167
- package/build/server/chunks/_server.ts-OXR06_zO.js.map +0 -1
- package/build/server/chunks/_server.ts-QbGAW-It.js +0 -58
- package/build/server/chunks/_server.ts-QbGAW-It.js.map +0 -1
- package/build/server/chunks/_server.ts-TAvt1Rlb.js +0 -57
- package/build/server/chunks/_server.ts-TAvt1Rlb.js.map +0 -1
- package/build/server/chunks/_server.ts-VXMfJF_F.js +0 -62
- package/build/server/chunks/_server.ts-VXMfJF_F.js.map +0 -1
- package/build/server/chunks/_server.ts-XiInWDAF.js +0 -82
- package/build/server/chunks/_server.ts-XiInWDAF.js.map +0 -1
- package/build/server/chunks/_server.ts-d08IyVdj.js +0 -54
- package/build/server/chunks/_server.ts-d08IyVdj.js.map +0 -1
- package/build/server/chunks/_server.ts-dtw_InfP.js +0 -36
- package/build/server/chunks/_server.ts-dtw_InfP.js.map +0 -1
- package/build/server/chunks/_server.ts-eTP3NGlu.js +0 -49
- package/build/server/chunks/_server.ts-eTP3NGlu.js.map +0 -1
- package/build/server/chunks/_server.ts-fm-L_1WH.js +0 -56
- package/build/server/chunks/_server.ts-fm-L_1WH.js.map +0 -1
- package/build/server/chunks/_server.ts-g5H0gdQB.js +0 -70
- package/build/server/chunks/_server.ts-g5H0gdQB.js.map +0 -1
- package/build/server/chunks/_server.ts-gBvSTaRH.js +0 -78
- package/build/server/chunks/_server.ts-gBvSTaRH.js.map +0 -1
- package/build/server/chunks/_server.ts-lMB9A2Vx.js +0 -92
- package/build/server/chunks/_server.ts-lMB9A2Vx.js.map +0 -1
- package/build/server/chunks/_server.ts-tww34LXr.js +0 -42
- package/build/server/chunks/_server.ts-tww34LXr.js.map +0 -1
- package/build/server/chunks/_server.ts-xgg0Rj1C.js +0 -129
- package/build/server/chunks/_server.ts-xgg0Rj1C.js.map +0 -1
- package/build/server/chunks/_server.ts-yO3j4YDH.js +0 -169
- package/build/server/chunks/_server.ts-yO3j4YDH.js.map +0 -1
- package/build/server/chunks/addon-helpers-DnZ1IPC7.js +0 -51
- package/build/server/chunks/addon-helpers-DnZ1IPC7.js.map +0 -1
- package/build/server/chunks/akm-BVM3F-FY.js +0 -151
- package/build/server/chunks/akm-BVM3F-FY.js.map +0 -1
- package/build/server/chunks/catalog-B_9Qf_Tj.js +0 -217
- package/build/server/chunks/catalog-B_9Qf_Tj.js.map +0 -1
- package/build/server/chunks/client-CEfPhREO.js +0 -202
- package/build/server/chunks/client-CEfPhREO.js.map +0 -1
- package/build/server/chunks/config-VJ5wAdKd.js +0 -121
- package/build/server/chunks/config-VJ5wAdKd.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-7rKo0FDm.js +0 -20
- package/build/server/chunks/docker-7rKo0FDm.js.map +0 -1
- package/build/server/chunks/endpoints-DUs5zmwI.js +0 -358
- package/build/server/chunks/endpoints-DUs5zmwI.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-DXUxoirZ.js +0 -18
- package/build/server/chunks/error.svelte-DXUxoirZ.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-GEmeDI6e.js +0 -293
- package/build/server/chunks/helpers-GEmeDI6e.js.map +0 -1
- package/build/server/chunks/hooks.server-CwgeONEs.js +0 -155
- package/build/server/chunks/hooks.server-CwgeONEs.js.map +0 -1
- package/build/server/chunks/http-BzGcbSMh.js +0 -31
- package/build/server/chunks/http-BzGcbSMh.js.map +0 -1
- package/build/server/chunks/internal-CWT3-fy-.js +0 -915
- package/build/server/chunks/internal-CWT3-fy-.js.map +0 -1
- package/build/server/chunks/paths-D8yGDgAD.js +0 -17
- package/build/server/chunks/paths-D8yGDgAD.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-IMj1chTO.js +0 -74
- package/build/server/chunks/session-cookie-IMj1chTO.js.map +0 -1
- package/build/server/chunks/setup-deploy-DhMA_slP.js +0 -75
- package/build/server/chunks/setup-deploy-DhMA_slP.js.map +0 -1
- package/build/server/chunks/src-DBYue8Tb.js +0 -9682
- package/build/server/chunks/src-DBYue8Tb.js.map +0 -1
- package/build/server/chunks/state-Bpt5dC1X.js +0 -24
- package/build/server/chunks/state-Bpt5dC1X.js.map +0 -1
- package/build/server/chunks/state2-D20PkMjF.js +0 -62
- package/build/server/chunks/state2-D20PkMjF.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-DPdcwIRf.js +0 -837
- package/build/server/chunks/theme-state.svelte-DPdcwIRf.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
|
@@ -0,0 +1,956 @@
|
|
|
1
|
+
import { p as derived, d as attr, e as attr_class, a9 as stringify } from './dev-D85DamNs.js';
|
|
2
|
+
import { c as requireOk, a as request, b as buildHeaders, r as readErrorMessage } from './voice-state.svelte-BAiqUOIX.js';
|
|
3
|
+
|
|
4
|
+
//#region src/lib/api/endpoints.ts
|
|
5
|
+
async function fetchConnections() {
|
|
6
|
+
return await (await requireOk(await request("GET", "/api/connections"))).json();
|
|
7
|
+
}
|
|
8
|
+
async function setActiveConnection(id) {
|
|
9
|
+
return await (await requireOk(await request("POST", "/api/connections/active", { id }))).json();
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/lib/chat/tool-strip.ts
|
|
13
|
+
function valueToText$1(value) {
|
|
14
|
+
if (typeof value === "string") return value;
|
|
15
|
+
if (value == null) return "";
|
|
16
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
17
|
+
try {
|
|
18
|
+
return JSON.stringify(value);
|
|
19
|
+
} catch {
|
|
20
|
+
return "";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function firstText$1(...values) {
|
|
24
|
+
for (const value of values) {
|
|
25
|
+
const text = valueToText$1(value);
|
|
26
|
+
if (text) return text;
|
|
27
|
+
}
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
30
|
+
function toolStripEntryFromSessionPart(part, fallbackId) {
|
|
31
|
+
if (part.type !== "tool" && !part.state) return null;
|
|
32
|
+
const status = part.state?.status ?? "running";
|
|
33
|
+
return {
|
|
34
|
+
id: part.callID ?? part.id ?? fallbackId,
|
|
35
|
+
kind: "tool",
|
|
36
|
+
tool: part.tool ?? "tool",
|
|
37
|
+
status,
|
|
38
|
+
title: part.state?.title ?? part.tool ?? "tool",
|
|
39
|
+
detail: firstText$1(part.state?.input, part.state?.metadata, part.state?.progress, part.state?.output),
|
|
40
|
+
output: valueToText$1(part.state?.output),
|
|
41
|
+
error: part.state?.error ?? "",
|
|
42
|
+
updatedAt: Date.now()
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function parseStructured(value) {
|
|
46
|
+
const trimmed = value.trim();
|
|
47
|
+
if (!trimmed) return null;
|
|
48
|
+
if (!(trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]"))) return null;
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(trimmed);
|
|
51
|
+
} catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function formatDetail(value) {
|
|
56
|
+
const structured = parseStructured(value);
|
|
57
|
+
return structured === null ? value : JSON.stringify(structured, null, 2);
|
|
58
|
+
}
|
|
59
|
+
function prettyLabel(label) {
|
|
60
|
+
if (!label) return "";
|
|
61
|
+
return label.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ").replace(/\s+/g, " ").trim().replace(/^./, (char) => char.toUpperCase());
|
|
62
|
+
}
|
|
63
|
+
function toolIconType(tool, status) {
|
|
64
|
+
const name = tool.toLowerCase();
|
|
65
|
+
if (status === "error" || status === "failed") return "alert";
|
|
66
|
+
if (name === "step") return status === "completed" ? "done-circle" : "refresh";
|
|
67
|
+
if (name.includes("remember") || name.includes("memory")) return "edit";
|
|
68
|
+
if (name.includes("help") || name.includes("todo")) return status === "completed" ? "done" : "agent";
|
|
69
|
+
if (name.includes("bash") || name.includes("shell") || name.includes("command")) return "terminal";
|
|
70
|
+
if (name.includes("grep") || name.includes("search")) return "search";
|
|
71
|
+
if (name.includes("read") || name.includes("file")) return "file";
|
|
72
|
+
if (name.includes("edit") || name.includes("write") || name.includes("patch")) return "edit";
|
|
73
|
+
if (name.includes("web") || name.includes("http") || name.includes("fetch")) return "link";
|
|
74
|
+
if (name.includes("task") || name.includes("agent")) return "agent";
|
|
75
|
+
return status === "completed" ? "done" : "clock";
|
|
76
|
+
}
|
|
77
|
+
function timelineTitle(entry) {
|
|
78
|
+
return entry.kind === "step" ? entry.title : entry.title || entry.tool;
|
|
79
|
+
}
|
|
80
|
+
function toolKindLabel(entry) {
|
|
81
|
+
return entry.kind === "step" ? "Step" : "Tool";
|
|
82
|
+
}
|
|
83
|
+
function toolStatusLabel(status) {
|
|
84
|
+
switch (status) {
|
|
85
|
+
case "completed": return "completed";
|
|
86
|
+
case "error":
|
|
87
|
+
case "failed": return "failed";
|
|
88
|
+
case "pending": return "queued";
|
|
89
|
+
default: return "running";
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function toolAriaLabel(entry) {
|
|
93
|
+
return `${toolKindLabel(entry)}: ${timelineTitle(entry)} (${toolStatusLabel(entry.status)})`;
|
|
94
|
+
}
|
|
95
|
+
function toolDetailRows(entry) {
|
|
96
|
+
const rows = [
|
|
97
|
+
{
|
|
98
|
+
label: "Type",
|
|
99
|
+
value: toolKindLabel(entry)
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
label: "Name",
|
|
103
|
+
value: timelineTitle(entry)
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
label: "Status",
|
|
107
|
+
value: prettyLabel(toolStatusLabel(entry.status))
|
|
108
|
+
}
|
|
109
|
+
];
|
|
110
|
+
if (entry.kind !== "step") rows.push({
|
|
111
|
+
label: "Tool ID",
|
|
112
|
+
value: entry.tool
|
|
113
|
+
});
|
|
114
|
+
if (entry.detail) rows.push({
|
|
115
|
+
label: entry.kind === "step" ? "Details" : "Input / Details",
|
|
116
|
+
value: formatDetail(entry.detail)
|
|
117
|
+
});
|
|
118
|
+
if (entry.output) rows.push({
|
|
119
|
+
label: "Output",
|
|
120
|
+
value: formatDetail(entry.output)
|
|
121
|
+
});
|
|
122
|
+
if (entry.error) rows.push({
|
|
123
|
+
label: "Error",
|
|
124
|
+
value: formatDetail(entry.error),
|
|
125
|
+
tone: "error"
|
|
126
|
+
});
|
|
127
|
+
return rows;
|
|
128
|
+
}
|
|
129
|
+
/** Patterns that indicate a command is carrying or referencing a secret. */
|
|
130
|
+
var SECRET_SIGNAL = /(token|secret|password|key\s*=|key=)/i;
|
|
131
|
+
/** Cleaned-first-segment prefix → friendly verb phrase. Order matters: more
|
|
132
|
+
* specific prefixes must be checked before their broader siblings. */
|
|
133
|
+
var COMMAND_PHRASES = [
|
|
134
|
+
{
|
|
135
|
+
prefix: "gh auth login",
|
|
136
|
+
phrase: "Signed in to GitHub"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
prefix: "gh auth status",
|
|
140
|
+
phrase: "Checked GitHub sign-in"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
prefix: "gh auth",
|
|
144
|
+
phrase: "Set up GitHub access"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
prefix: "gh repo",
|
|
148
|
+
phrase: "Looked up a GitHub repo"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
prefix: "gh ",
|
|
152
|
+
phrase: "Ran a GitHub command"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
prefix: "git config",
|
|
156
|
+
phrase: "Configured git"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
prefix: "git ",
|
|
160
|
+
phrase: "Ran a git command"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
prefix: "akm add",
|
|
164
|
+
phrase: "Added a knowledge source"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
prefix: "akm remove",
|
|
168
|
+
phrase: "Removed a knowledge source"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
prefix: "akm ",
|
|
172
|
+
phrase: "Updated knowledge"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
prefix: "cat ",
|
|
176
|
+
phrase: "Read a file"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
prefix: "ls ",
|
|
180
|
+
phrase: "Listed files"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
prefix: "grep",
|
|
184
|
+
phrase: "Searched files"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
prefix: "rg ",
|
|
188
|
+
phrase: "Searched files"
|
|
189
|
+
}
|
|
190
|
+
];
|
|
191
|
+
/** Strip leading `VAR=value ` env-var/token assignments repeatedly. */
|
|
192
|
+
function stripLeadingAssignments(input) {
|
|
193
|
+
let out = input;
|
|
194
|
+
while (/^[A-Z_][A-Z0-9_]*=\S+\s+/.test(out)) out = out.replace(/^[A-Z_][A-Z0-9_]*=\S+\s+/, "");
|
|
195
|
+
return out;
|
|
196
|
+
}
|
|
197
|
+
/** Keep only the first command segment (before chaining/pipe operators). */
|
|
198
|
+
function firstCommandSegment(input) {
|
|
199
|
+
let out = input;
|
|
200
|
+
for (const sep of [
|
|
201
|
+
" && ",
|
|
202
|
+
" || ",
|
|
203
|
+
" | ",
|
|
204
|
+
" ; "
|
|
205
|
+
]) {
|
|
206
|
+
const idx = out.indexOf(sep);
|
|
207
|
+
if (idx >= 0) out = out.slice(0, idx);
|
|
208
|
+
}
|
|
209
|
+
return out.trim();
|
|
210
|
+
}
|
|
211
|
+
/** Match a cleaned command against the friendly phrase table. */
|
|
212
|
+
function phraseForCommand(cleaned) {
|
|
213
|
+
const lower = cleaned.toLowerCase();
|
|
214
|
+
for (const { prefix, phrase } of COMMAND_PHRASES) if (lower.startsWith(prefix)) return phrase;
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Human-readable, de-credentialed summary for a row title. Audience is
|
|
219
|
+
* non-technical home users. Never throws and never returns an empty string.
|
|
220
|
+
* Strips leading env-var/token assignments and refuses to surface raw commands
|
|
221
|
+
* that contain secret material.
|
|
222
|
+
*/
|
|
223
|
+
function displayTitle(entry) {
|
|
224
|
+
try {
|
|
225
|
+
if (entry.kind === "step") return entry.title;
|
|
226
|
+
const raw = (entry.title || entry.tool || "").trim();
|
|
227
|
+
const name = (entry.tool || "").toLowerCase();
|
|
228
|
+
if (raw) {
|
|
229
|
+
const segment = firstCommandSegment(stripLeadingAssignments(raw));
|
|
230
|
+
if (segment) {
|
|
231
|
+
const matched = phraseForCommand(segment);
|
|
232
|
+
if (matched) return matched;
|
|
233
|
+
if (SECRET_SIGNAL.test(segment)) {
|
|
234
|
+
const verb = segment.split(/\s+/)[0] || "";
|
|
235
|
+
return verb ? `Ran a ${verb} command` : "Ran a command";
|
|
236
|
+
}
|
|
237
|
+
if (name.includes("read") || name.includes("file")) return "Read a file";
|
|
238
|
+
if (name.includes("edit") || name.includes("write") || name.includes("patch")) return "Edited a file";
|
|
239
|
+
if (name.includes("grep") || name.includes("search")) return "Searched";
|
|
240
|
+
if (name.includes("task") || name.includes("agent")) return entry.title;
|
|
241
|
+
return segment.replace(/^./, (char) => char.toUpperCase());
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (name.includes("read") || name.includes("file")) return "Read a file";
|
|
245
|
+
if (name.includes("edit") || name.includes("write") || name.includes("patch")) return "Edited a file";
|
|
246
|
+
if (name.includes("grep") || name.includes("search")) return "Searched";
|
|
247
|
+
if (name.includes("task") || name.includes("agent")) return entry.title || entry.tool || "Worked";
|
|
248
|
+
return raw || entry.tool || "Worked";
|
|
249
|
+
} catch {
|
|
250
|
+
return entry.title || entry.tool || "Worked";
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Relative time label: "just now" (<45s), "Nm ago" (<60m), "Nh ago" (<24h),
|
|
255
|
+
* "Nd ago" otherwise. Returns "" for falsy/zero timestamps and "just now" for
|
|
256
|
+
* future timestamps.
|
|
257
|
+
*/
|
|
258
|
+
function relativeTimeLabel(updatedAt, now = Date.now()) {
|
|
259
|
+
if (!updatedAt) return "";
|
|
260
|
+
const diff = now - updatedAt;
|
|
261
|
+
if (diff < 0) return "just now";
|
|
262
|
+
const seconds = Math.floor(diff / 1e3);
|
|
263
|
+
if (seconds < 45) return "just now";
|
|
264
|
+
const minutes = Math.floor(seconds / 60);
|
|
265
|
+
if (minutes < 60) return `${minutes}m ago`;
|
|
266
|
+
const hours = Math.floor(minutes / 60);
|
|
267
|
+
if (hours < 24) return `${hours}h ago`;
|
|
268
|
+
return `${Math.floor(hours / 24)}d ago`;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Whether a tool entry should appear in the user-facing activity log. Filters
|
|
272
|
+
* out internal todo-writer bookkeeping but never hides a failure.
|
|
273
|
+
*/
|
|
274
|
+
function isUserFacingTool(entry) {
|
|
275
|
+
const status = entry.status;
|
|
276
|
+
if (status === "error" || status === "failed") return true;
|
|
277
|
+
const name = (entry.tool || "").toLowerCase();
|
|
278
|
+
if (name === "todowrite" || name === "todoread") return false;
|
|
279
|
+
const label = entry.title || entry.tool || "";
|
|
280
|
+
if (/^\d+\s+todos?$/i.test(label)) return false;
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
//#endregion
|
|
284
|
+
//#region src/lib/chat/session-messages.ts
|
|
285
|
+
/**
|
|
286
|
+
* Flatten raw OpenCode session-message rows into UI `ChatEntry`s.
|
|
287
|
+
*
|
|
288
|
+
* Tool parts are grouped into the assistant turn that follows them (attached
|
|
289
|
+
* as `toolStates` on the `ChatMessage`). If tool parts appear with no
|
|
290
|
+
* following assistant text in the same OpenCode message they are emitted as a
|
|
291
|
+
* single `ChatToolGroup` entry — never as N separate entries.
|
|
292
|
+
*
|
|
293
|
+
* Skips non-text, non-tool parts (files, reasoning, etc.). Empty-text
|
|
294
|
+
* messages with no tool activity are dropped.
|
|
295
|
+
*
|
|
296
|
+
* Pure domain transformation (no transport) — kept next to `tool-strip.ts` so
|
|
297
|
+
* the chat api client can call it and it can be unit-tested in isolation.
|
|
298
|
+
*/
|
|
299
|
+
function flattenSessionMessages(rows) {
|
|
300
|
+
const messages = [];
|
|
301
|
+
for (const row of rows) {
|
|
302
|
+
const timestamp = row.info.time?.created ?? Date.now();
|
|
303
|
+
let textBuffer = "";
|
|
304
|
+
let textIndex = 0;
|
|
305
|
+
const pendingToolStates = [];
|
|
306
|
+
const flushText = () => {
|
|
307
|
+
const text = textBuffer.trim();
|
|
308
|
+
textBuffer = "";
|
|
309
|
+
if (!text && pendingToolStates.length === 0) return;
|
|
310
|
+
if (text) {
|
|
311
|
+
const entry = {
|
|
312
|
+
id: textIndex === 0 ? row.info.id : `${row.info.id}:text:${textIndex}`,
|
|
313
|
+
role: row.info.role,
|
|
314
|
+
text,
|
|
315
|
+
timestamp
|
|
316
|
+
};
|
|
317
|
+
if (pendingToolStates.length > 0) {
|
|
318
|
+
entry.toolStates = [...pendingToolStates];
|
|
319
|
+
pendingToolStates.length = 0;
|
|
320
|
+
}
|
|
321
|
+
messages.push(entry);
|
|
322
|
+
textIndex += 1;
|
|
323
|
+
} else if (pendingToolStates.length > 0) {
|
|
324
|
+
const group = {
|
|
325
|
+
id: `${row.info.id}:tools:${textIndex}`,
|
|
326
|
+
type: "tool-group",
|
|
327
|
+
toolStates: [...pendingToolStates],
|
|
328
|
+
timestamp
|
|
329
|
+
};
|
|
330
|
+
pendingToolStates.length = 0;
|
|
331
|
+
messages.push(group);
|
|
332
|
+
textIndex += 1;
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
row.parts.forEach((part, index) => {
|
|
336
|
+
if (part.type === "text" && part.text) {
|
|
337
|
+
textBuffer += part.text;
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
if (part.type === "tool" || part.state) {
|
|
341
|
+
const toolState = toolStripEntryFromSessionPart(part, `${row.info.id}:${index}`);
|
|
342
|
+
if (!toolState) return;
|
|
343
|
+
pendingToolStates.push(toolState);
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
flushText();
|
|
347
|
+
}
|
|
348
|
+
return messages;
|
|
349
|
+
}
|
|
350
|
+
//#endregion
|
|
351
|
+
//#region src/lib/api/chat.ts
|
|
352
|
+
/**
|
|
353
|
+
* Create a new OpenCode session via the SvelteKit broker.
|
|
354
|
+
*
|
|
355
|
+
* Only `/proxy/assistant/*` is reachable from the browser. The active
|
|
356
|
+
* OpenCode instance is selected server-side via the connection switcher.
|
|
357
|
+
*/
|
|
358
|
+
async function createSession() {
|
|
359
|
+
return await (await requireOk(await request("POST", `/proxy/assistant/session`, {}))).json();
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* List sessions on the active OpenCode endpoint.
|
|
363
|
+
*
|
|
364
|
+
* OpenCode returns `Array<Session>` with no ordering guarantee; we sort
|
|
365
|
+
* desc by `time.updated` here so consumers can rely on it. See
|
|
366
|
+
* docs/technical/multi-endpoint-session-ux.md §2.
|
|
367
|
+
*/
|
|
368
|
+
async function listSessions() {
|
|
369
|
+
const summaries = (await (await requireOk(await request("GET", "/proxy/assistant/session"))).json()).map((s) => ({
|
|
370
|
+
id: s.id,
|
|
371
|
+
title: s.title ?? "",
|
|
372
|
+
createdAt: s.time?.created ?? 0,
|
|
373
|
+
updatedAt: s.time?.updated ?? s.time?.created ?? 0
|
|
374
|
+
}));
|
|
375
|
+
summaries.sort((a, b) => b.updatedAt - a.updatedAt);
|
|
376
|
+
return summaries;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Fetch the messages for a session and map them to UI `ChatEntry`s.
|
|
380
|
+
*
|
|
381
|
+
* The part-flattening/grouping logic lives in `flattenSessionMessages`
|
|
382
|
+
* (`$lib/chat/session-messages.ts`) — this client only handles transport.
|
|
383
|
+
*/
|
|
384
|
+
async function getSessionMessages(sessionId) {
|
|
385
|
+
return flattenSessionMessages(await (await requireOk(await request("GET", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`))).json());
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Send a message to an existing OpenCode session via the SvelteKit broker.
|
|
389
|
+
* Uses direct fetch with a 150s AbortSignal timeout — OpenCode responses
|
|
390
|
+
* can take 30–120s.
|
|
391
|
+
*/
|
|
392
|
+
async function sendChatMessage(sessionId, text) {
|
|
393
|
+
const res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {
|
|
394
|
+
method: "POST",
|
|
395
|
+
headers: {
|
|
396
|
+
"content-type": "application/json",
|
|
397
|
+
...buildHeaders()
|
|
398
|
+
},
|
|
399
|
+
credentials: "include",
|
|
400
|
+
body: JSON.stringify({ parts: [{
|
|
401
|
+
type: "text",
|
|
402
|
+
text
|
|
403
|
+
}] }),
|
|
404
|
+
signal: AbortSignal.timeout(15e4)
|
|
405
|
+
});
|
|
406
|
+
if (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error("Sign-in required."), { status: 401 });
|
|
407
|
+
if (!res.ok) {
|
|
408
|
+
const msg = await readErrorMessage(res);
|
|
409
|
+
throw Object.assign(new Error(msg), { status: res.status });
|
|
410
|
+
}
|
|
411
|
+
return await res.json();
|
|
412
|
+
}
|
|
413
|
+
async function startChatMessageTurn(sessionId, text) {
|
|
414
|
+
const res = await fetch(`/proxy/assistant/session/${encodeURIComponent(sessionId)}/message`, {
|
|
415
|
+
method: "POST",
|
|
416
|
+
headers: {
|
|
417
|
+
"content-type": "application/json",
|
|
418
|
+
...buildHeaders()
|
|
419
|
+
},
|
|
420
|
+
credentials: "include",
|
|
421
|
+
body: JSON.stringify({ parts: [{
|
|
422
|
+
type: "text",
|
|
423
|
+
text
|
|
424
|
+
}] }),
|
|
425
|
+
signal: AbortSignal.timeout(15e4)
|
|
426
|
+
});
|
|
427
|
+
if (res.status === 401) throw Object.assign(/* @__PURE__ */ new Error("Sign-in required."), { status: 401 });
|
|
428
|
+
if (!res.ok) {
|
|
429
|
+
const msg = await readErrorMessage(res);
|
|
430
|
+
throw Object.assign(new Error(msg), { status: res.status });
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Abort the in-flight turn on an existing session via the SvelteKit broker.
|
|
435
|
+
* Best-effort from the caller's perspective — OpenCode exposes this as
|
|
436
|
+
* `POST /session/{id}/abort` (see `@opencode-ai/sdk` `session.abort`).
|
|
437
|
+
*/
|
|
438
|
+
async function abortChatTurn(sessionId) {
|
|
439
|
+
await (await requireOk(await request("POST", `/proxy/assistant/session/${encodeURIComponent(sessionId)}/abort`, {}))).text().catch(() => "");
|
|
440
|
+
}
|
|
441
|
+
async function replyChatPermission(requestId, reply) {
|
|
442
|
+
await (await requireOk(await request("POST", `/proxy/assistant/permission/${encodeURIComponent(requestId)}/reply`, { reply }))).text().catch(() => "");
|
|
443
|
+
}
|
|
444
|
+
async function replyChatQuestion(requestId, answers) {
|
|
445
|
+
await (await requireOk(await request("POST", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reply`, { answers }))).text().catch(() => "");
|
|
446
|
+
}
|
|
447
|
+
async function rejectChatQuestion(requestId) {
|
|
448
|
+
await (await requireOk(await request("POST", `/proxy/assistant/question/${encodeURIComponent(requestId)}/reject`, {}))).text().catch(() => "");
|
|
449
|
+
}
|
|
450
|
+
//#endregion
|
|
451
|
+
//#region ../ui-kit/src/lib/components/icons/IconThemeSystem.svelte
|
|
452
|
+
function IconThemeSystem($$renderer, $$props) {
|
|
453
|
+
let { size = 20, class: className = "" } = $$props;
|
|
454
|
+
$$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>`);
|
|
455
|
+
}
|
|
456
|
+
//#endregion
|
|
457
|
+
//#region ../ui-kit/src/lib/components/icons/IconThemeLight.svelte
|
|
458
|
+
function IconThemeLight($$renderer, $$props) {
|
|
459
|
+
let { size = 20, class: className = "" } = $$props;
|
|
460
|
+
$$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>`);
|
|
461
|
+
}
|
|
462
|
+
//#endregion
|
|
463
|
+
//#region ../ui-kit/src/lib/components/icons/IconThemeDark.svelte
|
|
464
|
+
function IconThemeDark($$renderer, $$props) {
|
|
465
|
+
let { size = 20, class: className = "" } = $$props;
|
|
466
|
+
$$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>`);
|
|
467
|
+
}
|
|
468
|
+
//#endregion
|
|
469
|
+
//#region src/lib/chat/oc-events.ts
|
|
470
|
+
function propStr(props, key) {
|
|
471
|
+
const value = props?.[key];
|
|
472
|
+
return typeof value === "string" ? value : void 0;
|
|
473
|
+
}
|
|
474
|
+
function partSnapshotType(event) {
|
|
475
|
+
if (event.type !== "message.part.updated") return null;
|
|
476
|
+
const part = event.properties?.part;
|
|
477
|
+
if (typeof part?.id === "string" && typeof part.type === "string") return {
|
|
478
|
+
partID: part.id,
|
|
479
|
+
type: part.type
|
|
480
|
+
};
|
|
481
|
+
return null;
|
|
482
|
+
}
|
|
483
|
+
function extractTextDelta(event, sessionId, reasoningPartIds) {
|
|
484
|
+
const props = event.properties ?? {};
|
|
485
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
486
|
+
if (event.type === "session.next.text.delta") return propStr(props, "delta") ?? propStr(props, "text") ?? null;
|
|
487
|
+
if (event.type === "message.part.delta") {
|
|
488
|
+
const field = propStr(props, "field");
|
|
489
|
+
if (field && field !== "text") return null;
|
|
490
|
+
const partID = propStr(props, "partID");
|
|
491
|
+
if (partID && reasoningPartIds?.has(partID)) return null;
|
|
492
|
+
return propStr(props, "delta") ?? null;
|
|
493
|
+
}
|
|
494
|
+
return null;
|
|
495
|
+
}
|
|
496
|
+
function statusName(status) {
|
|
497
|
+
if (typeof status === "string") return status;
|
|
498
|
+
if (status && typeof status === "object" && typeof status.type === "string") return status.type;
|
|
499
|
+
}
|
|
500
|
+
function isTurnEnd(event, sessionId) {
|
|
501
|
+
const props = event.properties ?? {};
|
|
502
|
+
if (propStr(props, "sessionID") !== sessionId) return false;
|
|
503
|
+
if (event.type === "session.idle") return true;
|
|
504
|
+
if (event.type === "session.status") {
|
|
505
|
+
const name = statusName(props.status);
|
|
506
|
+
return name === "idle" || name === "completed" || name === "done";
|
|
507
|
+
}
|
|
508
|
+
return false;
|
|
509
|
+
}
|
|
510
|
+
function valueToText(value) {
|
|
511
|
+
if (typeof value === "string") return value;
|
|
512
|
+
if (value == null) return void 0;
|
|
513
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
514
|
+
try {
|
|
515
|
+
return JSON.stringify(value);
|
|
516
|
+
} catch {
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
function firstText(...values) {
|
|
521
|
+
for (const value of values) {
|
|
522
|
+
const text = valueToText(value);
|
|
523
|
+
if (text) return text;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
function extractToolUpdate(event, sessionId) {
|
|
527
|
+
const props = event.properties ?? {};
|
|
528
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
529
|
+
const part = props.part ?? props.tool;
|
|
530
|
+
if (event.type === "message.part.updated" && part && (part.type === "tool" || part.state)) {
|
|
531
|
+
const state = part.state ?? {};
|
|
532
|
+
return {
|
|
533
|
+
callID: String(part.callID ?? part.id ?? ""),
|
|
534
|
+
tool: String(part.tool ?? "tool"),
|
|
535
|
+
status: String(state.status ?? "running"),
|
|
536
|
+
title: typeof state.title === "string" ? state.title : void 0,
|
|
537
|
+
detail: firstText(state.input, state.metadata, state.progress, state.output),
|
|
538
|
+
output: valueToText(state.output),
|
|
539
|
+
error: typeof state.error === "string" ? state.error : void 0
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
if (event.type.startsWith("session.next.tool.")) {
|
|
543
|
+
const type = event.type.replace("session.next.tool.", "");
|
|
544
|
+
return {
|
|
545
|
+
callID: propStr(props, "callID") ?? "",
|
|
546
|
+
tool: propStr(props, "tool") ?? "tool",
|
|
547
|
+
status: type === "completed" ? "completed" : type === "failed" ? "error" : type === "called" ? "running" : propStr(props, "status") ?? "running",
|
|
548
|
+
title: propStr(props, "title") ?? propStr(props, "tool"),
|
|
549
|
+
detail: firstText(props.message, props.delta, props.progress, props.input, props.metadata),
|
|
550
|
+
output: firstText(props.output, props.result),
|
|
551
|
+
error: firstText(props.error)
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
return null;
|
|
555
|
+
}
|
|
556
|
+
function isSessionError(event, sessionId) {
|
|
557
|
+
return event.type === "session.error" && propStr(event.properties, "sessionID") === sessionId;
|
|
558
|
+
}
|
|
559
|
+
function extractPermissionAsk(event, sessionId) {
|
|
560
|
+
if (event.type !== "permission.asked") return null;
|
|
561
|
+
if (propStr(event.properties, "sessionID") !== sessionId) return null;
|
|
562
|
+
const id = propStr(event.properties, "id");
|
|
563
|
+
if (!id) return null;
|
|
564
|
+
const patterns = Array.isArray(event.properties?.patterns) ? event.properties.patterns.filter((item) => typeof item === "string") : [];
|
|
565
|
+
const always = Array.isArray(event.properties?.always) ? event.properties.always.filter((item) => typeof item === "string") : [];
|
|
566
|
+
const toolRecord = event.properties?.tool;
|
|
567
|
+
return {
|
|
568
|
+
requestID: id,
|
|
569
|
+
permission: propStr(event.properties, "permission") ?? "tool",
|
|
570
|
+
patterns,
|
|
571
|
+
always,
|
|
572
|
+
tool: propStr(toolRecord, "callID") ?? propStr(event.properties, "permission") ?? "tool",
|
|
573
|
+
detail: firstText(event.properties?.metadata, event.properties?.message) ?? ""
|
|
574
|
+
};
|
|
575
|
+
}
|
|
576
|
+
function extractQuestionAsk(event, sessionId) {
|
|
577
|
+
if (event.type !== "question.asked") return null;
|
|
578
|
+
if (propStr(event.properties, "sessionID") !== sessionId) return null;
|
|
579
|
+
const id = propStr(event.properties, "id");
|
|
580
|
+
if (!id) return null;
|
|
581
|
+
const rawQuestions = Array.isArray(event.properties?.questions) ? event.properties.questions : [];
|
|
582
|
+
const questions = [];
|
|
583
|
+
for (const raw of rawQuestions) {
|
|
584
|
+
const item = raw;
|
|
585
|
+
const options = Array.isArray(item.options) ? item.options.map((option) => option).filter((option) => typeof option.label === "string").map((option) => ({
|
|
586
|
+
label: option.label,
|
|
587
|
+
description: typeof option.description === "string" ? option.description : ""
|
|
588
|
+
})) : [];
|
|
589
|
+
questions.push({
|
|
590
|
+
question: typeof item.question === "string" ? item.question : "",
|
|
591
|
+
header: typeof item.header === "string" ? item.header : "",
|
|
592
|
+
options
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
if (questions.length === 0) return null;
|
|
596
|
+
return {
|
|
597
|
+
requestID: id,
|
|
598
|
+
questions
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
function extractStepUpdate(event, sessionId) {
|
|
602
|
+
const props = event.properties ?? {};
|
|
603
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
604
|
+
if (event.type !== "session.next.step.started" && event.type !== "session.next.step.ended") return null;
|
|
605
|
+
return {
|
|
606
|
+
id: propStr(props, "stepID") ?? propStr(props, "id") ?? event.type,
|
|
607
|
+
title: propStr(props, "title") ?? propStr(props, "step") ?? (event.type === "session.next.step.started" ? "Working" : "Step complete"),
|
|
608
|
+
status: event.type === "session.next.step.ended" ? "completed" : "running",
|
|
609
|
+
detail: firstText(props.detail, props.message)
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
var SvelteSet = globalThis.Set;
|
|
613
|
+
var SvelteMap = globalThis.Map;
|
|
614
|
+
//#endregion
|
|
615
|
+
//#region src/lib/chat/session-events.ts
|
|
616
|
+
var INITIAL_BACKOFF_MS = 1e3;
|
|
617
|
+
var MAX_BACKOFF_MS = 3e4;
|
|
618
|
+
var STREAM_URL = "/proxy/assistant/event";
|
|
619
|
+
/**
|
|
620
|
+
* Parse one `\n\n`-delimited SSE frame. Multi-line `data:` fields are
|
|
621
|
+
* concatenated with `\n` per the SSE spec.
|
|
622
|
+
*/
|
|
623
|
+
function parseFrame(chunk) {
|
|
624
|
+
const frame = {};
|
|
625
|
+
const dataLines = [];
|
|
626
|
+
for (const rawLine of chunk.split("\n")) {
|
|
627
|
+
if (!rawLine || rawLine.startsWith(":")) continue;
|
|
628
|
+
if (rawLine.startsWith("data:")) dataLines.push(rawLine.replace(/^data:\s?/, ""));
|
|
629
|
+
else if (rawLine.startsWith("event:")) frame.event = rawLine.replace(/^event:\s?/, "");
|
|
630
|
+
else if (rawLine.startsWith("id:")) frame.id = rawLine.replace(/^id:\s?/, "");
|
|
631
|
+
}
|
|
632
|
+
if (dataLines.length > 0) frame.data = dataLines.join("\n");
|
|
633
|
+
return frame;
|
|
634
|
+
}
|
|
635
|
+
function dispatch(handlers, payload) {
|
|
636
|
+
const info = payload.properties?.info;
|
|
637
|
+
const id = info?.id ?? payload.sessionID;
|
|
638
|
+
if (!id) return;
|
|
639
|
+
switch (payload.type) {
|
|
640
|
+
case "session.created":
|
|
641
|
+
handlers.onCreated(id);
|
|
642
|
+
return;
|
|
643
|
+
case "session.updated":
|
|
644
|
+
handlers.onUpdated(id, {
|
|
645
|
+
title: info?.title,
|
|
646
|
+
updatedAt: info?.time?.updated
|
|
647
|
+
});
|
|
648
|
+
return;
|
|
649
|
+
case "session.deleted":
|
|
650
|
+
handlers.onDeleted(id);
|
|
651
|
+
return;
|
|
652
|
+
default: return;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Open an SSE connection to `/proxy/assistant/event` and dispatch
|
|
657
|
+
* session-scoped events. Returns an unsubscribe function that aborts the
|
|
658
|
+
* stream and prevents reconnection.
|
|
659
|
+
*/
|
|
660
|
+
function subscribeSessionEvents(handlers) {
|
|
661
|
+
let stopped = false;
|
|
662
|
+
let controller = new AbortController();
|
|
663
|
+
let lastEventId;
|
|
664
|
+
const sleep = (ms) => new Promise((resolve) => {
|
|
665
|
+
const timer = setTimeout(resolve, ms);
|
|
666
|
+
controller.signal.addEventListener("abort", () => {
|
|
667
|
+
clearTimeout(timer);
|
|
668
|
+
resolve();
|
|
669
|
+
}, { once: true });
|
|
670
|
+
});
|
|
671
|
+
async function readStream() {
|
|
672
|
+
const headers = { accept: "text/event-stream" };
|
|
673
|
+
if (lastEventId !== void 0) headers["Last-Event-ID"] = lastEventId;
|
|
674
|
+
const response = await fetch(STREAM_URL, {
|
|
675
|
+
method: "GET",
|
|
676
|
+
headers,
|
|
677
|
+
credentials: "include",
|
|
678
|
+
signal: controller.signal
|
|
679
|
+
});
|
|
680
|
+
if (!response.ok || !response.body) throw new Error(`SSE stream failed: ${response.status} ${response.statusText}`);
|
|
681
|
+
handlers.onConnect?.();
|
|
682
|
+
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
|
|
683
|
+
let buffer = "";
|
|
684
|
+
try {
|
|
685
|
+
while (true) {
|
|
686
|
+
const { done, value } = await reader.read();
|
|
687
|
+
if (done) break;
|
|
688
|
+
buffer += value;
|
|
689
|
+
const chunks = buffer.split("\n\n");
|
|
690
|
+
buffer = chunks.pop() ?? "";
|
|
691
|
+
for (const chunk of chunks) {
|
|
692
|
+
if (!chunk) continue;
|
|
693
|
+
const frame = parseFrame(chunk);
|
|
694
|
+
if (frame.id !== void 0) lastEventId = frame.id;
|
|
695
|
+
if (!frame.data) continue;
|
|
696
|
+
let payload;
|
|
697
|
+
try {
|
|
698
|
+
payload = JSON.parse(frame.data);
|
|
699
|
+
} catch (err) {
|
|
700
|
+
console.warn("[session-events] Bad JSON in SSE frame", err);
|
|
701
|
+
continue;
|
|
702
|
+
}
|
|
703
|
+
handlers.onEvent?.(payload);
|
|
704
|
+
dispatch(handlers, payload);
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
} finally {
|
|
708
|
+
try {
|
|
709
|
+
reader.releaseLock();
|
|
710
|
+
} catch {}
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
(async () => {
|
|
714
|
+
let attempt = 0;
|
|
715
|
+
while (!stopped) try {
|
|
716
|
+
attempt++;
|
|
717
|
+
await readStream();
|
|
718
|
+
attempt = 0;
|
|
719
|
+
if (!stopped) await sleep(500);
|
|
720
|
+
} catch (err) {
|
|
721
|
+
if (stopped) return;
|
|
722
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
723
|
+
if (error.name !== "AbortError") {
|
|
724
|
+
console.warn("[session-events] SSE error, reconnecting", error);
|
|
725
|
+
handlers.onDisconnect?.(error);
|
|
726
|
+
}
|
|
727
|
+
await sleep(Math.min(INITIAL_BACKOFF_MS * 2 ** Math.max(0, attempt - 1), MAX_BACKOFF_MS));
|
|
728
|
+
if (controller.signal.aborted && !stopped) controller = new AbortController();
|
|
729
|
+
}
|
|
730
|
+
})();
|
|
731
|
+
return () => {
|
|
732
|
+
stopped = true;
|
|
733
|
+
try {
|
|
734
|
+
controller.abort();
|
|
735
|
+
} catch {}
|
|
736
|
+
};
|
|
737
|
+
}
|
|
738
|
+
//#endregion
|
|
739
|
+
//#region src/lib/desktop-notifications.ts
|
|
740
|
+
var DESKTOP_NOTIFY_ENABLED_KEY = "openpalm.desktop.notify";
|
|
741
|
+
var DESKTOP_NOTIFY_PREVIEW_KEY = "openpalm.desktop.notify.preview";
|
|
742
|
+
function readFlag(key) {
|
|
743
|
+
if (typeof window === "undefined") return false;
|
|
744
|
+
try {
|
|
745
|
+
return window.localStorage.getItem(key) === "1";
|
|
746
|
+
} catch {
|
|
747
|
+
return false;
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
function desktopNotifyEnabled() {
|
|
751
|
+
return readFlag(DESKTOP_NOTIFY_ENABLED_KEY);
|
|
752
|
+
}
|
|
753
|
+
function desktopReplyPreviewEnabled() {
|
|
754
|
+
return readFlag(DESKTOP_NOTIFY_PREVIEW_KEY);
|
|
755
|
+
}
|
|
756
|
+
function shouldNotifyDesktop() {
|
|
757
|
+
if (typeof document === "undefined") return false;
|
|
758
|
+
if (document.hasFocus()) return false;
|
|
759
|
+
if (!desktopNotifyEnabled()) return false;
|
|
760
|
+
return typeof window !== "undefined" && typeof window.openpalm?.notify === "function";
|
|
761
|
+
}
|
|
762
|
+
function notifyAssistantReply(replyText) {
|
|
763
|
+
if (!shouldNotifyDesktop()) return;
|
|
764
|
+
const body = desktopReplyPreviewEnabled() && replyText.trim() ? replyText.trim() : "Assistant replied";
|
|
765
|
+
window.openpalm?.notify?.("OpenPalm", body);
|
|
766
|
+
}
|
|
767
|
+
function notifyAssistantError() {
|
|
768
|
+
if (!shouldNotifyDesktop()) return;
|
|
769
|
+
window.openpalm?.notify?.("OpenPalm", "Assistant error");
|
|
770
|
+
}
|
|
771
|
+
//#endregion
|
|
772
|
+
//#region src/lib/connection-events.ts
|
|
773
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
774
|
+
var guards = /* @__PURE__ */ new Set();
|
|
775
|
+
/** Subscribe to connection activation. Returns an unsubscribe function. */
|
|
776
|
+
function onConnectionActivated(listener) {
|
|
777
|
+
listeners.add(listener);
|
|
778
|
+
return () => {
|
|
779
|
+
listeners.delete(listener);
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* Register a pre-switch veto. Return a user-facing reason string to block
|
|
784
|
+
* the switch, or null to allow it. Returns an unregister function.
|
|
785
|
+
*/
|
|
786
|
+
function registerActivationGuard(guard) {
|
|
787
|
+
guards.add(guard);
|
|
788
|
+
return () => {
|
|
789
|
+
guards.delete(guard);
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
/** First non-null guard reason blocks the switch; null means proceed. */
|
|
793
|
+
function activationBlockReason() {
|
|
794
|
+
for (const guard of guards) {
|
|
795
|
+
const reason = guard();
|
|
796
|
+
if (reason) return reason;
|
|
797
|
+
}
|
|
798
|
+
return null;
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* Notify subscribers that `connectionId` is now active. Awaited by the
|
|
802
|
+
* emitter: activation is not complete until every subscriber's handoff
|
|
803
|
+
* (e.g. the chat store loading the connection's sessions) has settled.
|
|
804
|
+
*/
|
|
805
|
+
async function emitConnectionActivated(connectionId) {
|
|
806
|
+
for (const listener of listeners) await listener(connectionId);
|
|
807
|
+
}
|
|
808
|
+
//#endregion
|
|
809
|
+
//#region src/lib/endpoints-state.svelte.ts
|
|
810
|
+
var ConnectionsService = class {
|
|
811
|
+
endpoints = [];
|
|
812
|
+
activeId = "default";
|
|
813
|
+
loading = false;
|
|
814
|
+
loaded = false;
|
|
815
|
+
error = "";
|
|
816
|
+
#active = derived(() => this.endpoints.find((e) => e.id === this.activeId) ?? this.endpoints[0] ?? null);
|
|
817
|
+
get active() {
|
|
818
|
+
return this.#active();
|
|
819
|
+
}
|
|
820
|
+
set active($$value) {
|
|
821
|
+
return this.#active($$value);
|
|
822
|
+
}
|
|
823
|
+
async load(force = false) {
|
|
824
|
+
if (this.loading) return;
|
|
825
|
+
if (this.loaded && !force) return;
|
|
826
|
+
this.loading = true;
|
|
827
|
+
this.error = "";
|
|
828
|
+
try {
|
|
829
|
+
const { connections, activeId } = await fetchConnections();
|
|
830
|
+
this.endpoints = connections;
|
|
831
|
+
this.activeId = activeId;
|
|
832
|
+
this.loaded = true;
|
|
833
|
+
} catch (e) {
|
|
834
|
+
const err = e;
|
|
835
|
+
if (err.status !== 401) this.error = err.message ?? "Failed to load connections";
|
|
836
|
+
} finally {
|
|
837
|
+
this.loading = false;
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
async activate(id) {
|
|
841
|
+
if (id === this.activeId) return;
|
|
842
|
+
const blocked = activationBlockReason();
|
|
843
|
+
if (blocked) {
|
|
844
|
+
this.error = blocked;
|
|
845
|
+
throw new Error(blocked);
|
|
846
|
+
}
|
|
847
|
+
const previous = this.activeId;
|
|
848
|
+
this.activeId = id;
|
|
849
|
+
try {
|
|
850
|
+
await setActiveConnection(id);
|
|
851
|
+
await emitConnectionActivated(id);
|
|
852
|
+
} catch (e) {
|
|
853
|
+
this.activeId = previous;
|
|
854
|
+
const err = e;
|
|
855
|
+
this.error = err.message ?? "Failed to switch connection";
|
|
856
|
+
throw e;
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
};
|
|
860
|
+
var endpointsService = new ConnectionsService();
|
|
861
|
+
//#endregion
|
|
862
|
+
//#region ../ui-kit/src/lib/components/icons/IconClose.svelte
|
|
863
|
+
function IconClose($$renderer, $$props) {
|
|
864
|
+
let { size = 20, class: className = "" } = $$props;
|
|
865
|
+
$$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>`);
|
|
866
|
+
}
|
|
867
|
+
//#endregion
|
|
868
|
+
//#region src/lib/format-date.ts
|
|
869
|
+
var TIME_FMT = new Intl.DateTimeFormat(void 0, {
|
|
870
|
+
hour: "numeric",
|
|
871
|
+
minute: "2-digit"
|
|
872
|
+
});
|
|
873
|
+
var DATE_TIME_FMT = new Intl.DateTimeFormat(void 0, {
|
|
874
|
+
year: "numeric",
|
|
875
|
+
month: "short",
|
|
876
|
+
day: "numeric",
|
|
877
|
+
hour: "numeric",
|
|
878
|
+
minute: "2-digit"
|
|
879
|
+
});
|
|
880
|
+
/** Time of day, e.g. "3:42 PM" (locale-aware). Empty string for a falsy input. */
|
|
881
|
+
function formatTime(ts) {
|
|
882
|
+
if (!ts) return "";
|
|
883
|
+
return TIME_FMT.format(ts);
|
|
884
|
+
}
|
|
885
|
+
/**
|
|
886
|
+
* Absolute date + time, e.g. "Jun 7, 2026, 3:42 PM". Use for tooltips / full
|
|
887
|
+
* context where a relative label alone is ambiguous. Empty for a falsy input.
|
|
888
|
+
*/
|
|
889
|
+
function formatDateTime(ts) {
|
|
890
|
+
if (!ts) return "";
|
|
891
|
+
return DATE_TIME_FMT.format(ts);
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* Absolute date + time from a date string (ISO-8601 or anything `Date` accepts),
|
|
895
|
+
* rendered with the runtime locale via `toLocaleString()`. Unlike the epoch-ms
|
|
896
|
+
* helpers above, this takes the string shape returned by admin/AKM endpoints.
|
|
897
|
+
* Returns `fallback` (default em dash) for null/empty or unparseable input.
|
|
898
|
+
*/
|
|
899
|
+
function formatDate(value, fallback = "—") {
|
|
900
|
+
if (!value) return fallback;
|
|
901
|
+
const d = new Date(value);
|
|
902
|
+
return Number.isNaN(d.getTime()) ? fallback : d.toLocaleString();
|
|
903
|
+
}
|
|
904
|
+
/**
|
|
905
|
+
* Human-readable byte size, e.g. "512 B", "1.5 KB", "2.0 MB". Scales through
|
|
906
|
+
* B/KB/MB/GB/TB (binary, 1024-based) with adaptive precision: whole numbers for
|
|
907
|
+
* bytes and for values ≥ 10, one decimal otherwise. Em dash for non-finite input.
|
|
908
|
+
*/
|
|
909
|
+
function formatBytes(bytes) {
|
|
910
|
+
if (!Number.isFinite(bytes)) return "—";
|
|
911
|
+
const units = [
|
|
912
|
+
"B",
|
|
913
|
+
"KB",
|
|
914
|
+
"MB",
|
|
915
|
+
"GB",
|
|
916
|
+
"TB"
|
|
917
|
+
];
|
|
918
|
+
let value = bytes;
|
|
919
|
+
let i = 0;
|
|
920
|
+
while (value >= 1024 && i < units.length - 1) {
|
|
921
|
+
value /= 1024;
|
|
922
|
+
i += 1;
|
|
923
|
+
}
|
|
924
|
+
return `${value.toFixed(value >= 10 || i === 0 ? 0 : 1)} ${units[i]}`;
|
|
925
|
+
}
|
|
926
|
+
/**
|
|
927
|
+
* Compact relative time, e.g. "just now", "5m ago", "yesterday", "3w ago".
|
|
928
|
+
* Empty string for a falsy input. No date-fns dependency — that would be ~30 KB
|
|
929
|
+
* for these few cases.
|
|
930
|
+
*/
|
|
931
|
+
function formatRelativeTime(ts) {
|
|
932
|
+
if (!ts) return "";
|
|
933
|
+
const diffSec = Math.max(0, (Date.now() - ts) / 1e3);
|
|
934
|
+
if (diffSec < 60) return "just now";
|
|
935
|
+
const min = Math.floor(diffSec / 60);
|
|
936
|
+
if (min < 60) return `${min}m ago`;
|
|
937
|
+
const hr = Math.floor(min / 60);
|
|
938
|
+
if (hr < 24) return `${hr}h ago`;
|
|
939
|
+
const day = Math.floor(hr / 24);
|
|
940
|
+
if (day === 1) return "yesterday";
|
|
941
|
+
if (day < 7) return `${day}d ago`;
|
|
942
|
+
const wk = Math.floor(day / 7);
|
|
943
|
+
if (wk < 5) return `${wk}w ago`;
|
|
944
|
+
const mo = Math.floor(day / 30);
|
|
945
|
+
if (mo < 12) return `${mo}mo ago`;
|
|
946
|
+
return `${Math.floor(day / 365)}y ago`;
|
|
947
|
+
}
|
|
948
|
+
//#endregion
|
|
949
|
+
//#region ../ui-kit/src/lib/components/icons/IconStop.svelte
|
|
950
|
+
function IconStop($$renderer, $$props) {
|
|
951
|
+
let { size = 20, class: className = "" } = $$props;
|
|
952
|
+
$$renderer.push(`<svg aria-hidden="true"${attr("width", size)}${attr("height", size)} viewBox="0 0 24 24"${attr_class(`s-icon ${stringify(className)}`)}><rect fill="currentColor" stroke="none" x="7" y="7" width="10" height="10" rx="1.4"></rect></svg>`);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
export { onConnectionActivated as A, partSnapshotType as B, registerActivationGuard as C, rejectChatQuestion as D, relativeTimeLabel as E, replyChatPermission as F, replyChatQuestion as G, sendChatMessage as H, IconClose as I, startChatMessageTurn as J, subscribeSessionEvents as K, timelineTitle as L, toolAriaLabel as M, toolDetailRows as N, toolIconType as O, toolStatusLabel as P, SvelteMap as S, IconStop as a, IconThemeDark as b, IconThemeLight as c, IconThemeSystem as d, SvelteSet as e, abortChatTurn as f, createSession as g, displayTitle as h, endpointsService as i, extractPermissionAsk as j, extractQuestionAsk as k, extractStepUpdate as l, extractTextDelta as m, extractToolUpdate as n, formatBytes as o, formatDate as p, formatDateTime as q, formatRelativeTime as r, formatTime as s, getSessionMessages as t, isSessionError as u, isTurnEnd as v, isUserFacingTool as w, listSessions as x, notifyAssistantError as y, notifyAssistantReply as z };
|
|
956
|
+
//# sourceMappingURL=IconStop-C89_dmt4.js.map
|