@openpalm/ui 0.12.13 → 0.12.14-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/assets/0.DtDICMHP.css +1 -0
- package/build/client/_app/immutable/assets/0.DtDICMHP.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DtDICMHP.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.CGVnLoQr.css +1 -0
- package/build/client/_app/immutable/assets/10.CGVnLoQr.css.br +0 -0
- package/build/client/_app/immutable/assets/10.CGVnLoQr.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BsRZqXxs.css +1 -0
- package/build/client/_app/immutable/assets/4.BsRZqXxs.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BsRZqXxs.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.B9kVBENv.css +1 -0
- 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/6.BXlLAfIE.css +1 -0
- package/build/client/_app/immutable/assets/6.BXlLAfIE.css.br +0 -0
- package/build/client/_app/immutable/assets/6.BXlLAfIE.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CoIJT74K.css +1 -0
- package/build/client/_app/immutable/assets/7.CoIJT74K.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CoIJT74K.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.CRX_TWKQ.css +1 -0
- package/build/client/_app/immutable/assets/8.CRX_TWKQ.css.br +0 -0
- package/build/client/_app/immutable/assets/8.CRX_TWKQ.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.B1PKAJhx.css +1 -0
- package/build/client/_app/immutable/assets/9.B1PKAJhx.css.br +0 -0
- package/build/client/_app/immutable/assets/9.B1PKAJhx.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.CWTi1Kjo.css +1 -0
- package/build/client/_app/immutable/assets/ChatMessage.CWTi1Kjo.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.CWTi1Kjo.css.gz +0 -0
- package/build/client/_app/immutable/assets/Navbar.DprsYQ5V.css +1 -0
- package/build/client/_app/immutable/assets/Navbar.DprsYQ5V.css.br +0 -0
- package/build/client/_app/immutable/assets/Navbar.DprsYQ5V.css.gz +0 -0
- package/build/client/_app/immutable/assets/SessionList.Bu2Ms4Fb.css +1 -0
- package/build/client/_app/immutable/assets/SessionList.Bu2Ms4Fb.css.br +4 -0
- package/build/client/_app/immutable/assets/SessionList.Bu2Ms4Fb.css.gz +0 -0
- package/build/client/_app/immutable/assets/Spinner.CCwieGti.css +1 -0
- 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/B0nndsj2.js +1 -0
- package/build/client/_app/immutable/chunks/B0nndsj2.js.br +2 -0
- package/build/client/_app/immutable/chunks/B0nndsj2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8DbTCsH.js +5 -0
- package/build/client/_app/immutable/chunks/C8DbTCsH.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8DbTCsH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{i-u-oQAW.js → CKjCR-mV.js} +1 -1
- package/build/client/_app/immutable/chunks/CKjCR-mV.js.br +0 -0
- package/build/client/_app/immutable/chunks/{i-u-oQAW.js.gz → CKjCR-mV.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/Cf2zVFU2.js +14 -0
- package/build/client/_app/immutable/chunks/Cf2zVFU2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cf2zVFU2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cqhjb6e3.js +3 -0
- package/build/client/_app/immutable/chunks/Cqhjb6e3.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cqhjb6e3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/H3uliuvu.js +1 -0
- package/build/client/_app/immutable/chunks/H3uliuvu.js.br +0 -0
- package/build/client/_app/immutable/chunks/H3uliuvu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cub6afmL.js → wZGKwx2i.js} +1 -1
- package/build/client/_app/immutable/chunks/wZGKwx2i.js.br +0 -0
- package/build/client/_app/immutable/chunks/wZGKwx2i.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CGwa9uv7.js → app.DB4ePX1v.js} +2 -2
- package/build/client/_app/immutable/entry/app.DB4ePX1v.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DB4ePX1v.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.49FkL53I.js +1 -0
- package/build/client/_app/immutable/entry/start.49FkL53I.js.br +0 -0
- package/build/client/_app/immutable/entry/start.49FkL53I.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.DOxwxXh1.js → 0.Bj2o7JLe.js} +1 -1
- package/build/client/_app/immutable/nodes/0.Bj2o7JLe.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Bj2o7JLe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.ALcLv429.js → 1.krAx2-bw.js} +1 -1
- package/build/client/_app/immutable/nodes/1.krAx2-bw.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.krAx2-bw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D6ae8dax.js +131 -0
- package/build/client/_app/immutable/nodes/4.D6ae8dax.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D6ae8dax.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CUEzVL3V.js → 5.sNp704_T.js} +1 -1
- package/build/client/_app/immutable/nodes/5.sNp704_T.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.sNp704_T.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BlMKRFTZ.js +1 -0
- package/build/client/_app/immutable/nodes/6.BlMKRFTZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BlMKRFTZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.LYSFmauM.js +1 -0
- package/build/client/_app/immutable/nodes/7.LYSFmauM.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.LYSFmauM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DYb_WDEB.js +1 -0
- package/build/client/_app/immutable/nodes/8.DYb_WDEB.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DYb_WDEB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.By6OD0XG.js +6 -0
- package/build/client/_app/immutable/nodes/9.By6OD0XG.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.By6OD0XG.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-BKHhl45d.js → 0-CpYMRQ5i.js} +3 -3
- package/build/server/chunks/{0-BKHhl45d.js.map → 0-CpYMRQ5i.js.map} +1 -1
- package/build/server/chunks/1-DB4i2jhd.js +9 -0
- package/build/server/chunks/{1-2o6Ed2yp.js.map → 1-DB4i2jhd.js.map} +1 -1
- package/build/server/chunks/{10-sMfnW6s_.js → 10-j08j2VIZ.js} +7 -7
- package/build/server/chunks/{10-sMfnW6s_.js.map → 10-j08j2VIZ.js.map} +1 -1
- package/build/server/chunks/4-C4gVV-QY.js +9 -0
- package/build/server/chunks/4-C4gVV-QY.js.map +1 -0
- package/build/server/chunks/5-DsawgZBH.js +9 -0
- package/build/server/chunks/5-DsawgZBH.js.map +1 -0
- package/build/server/chunks/6-DUwwcldC.js +9 -0
- package/build/server/chunks/6-DUwwcldC.js.map +1 -0
- package/build/server/chunks/7-DHPMYUVs.js +9 -0
- package/build/server/chunks/7-DHPMYUVs.js.map +1 -0
- package/build/server/chunks/{8-CGnXBMny.js → 8-B2WmTTah.js} +4 -4
- package/build/server/chunks/{8-CGnXBMny.js.map → 8-B2WmTTah.js.map} +1 -1
- package/build/server/chunks/{9-R739z6lx.js → 9-BhL47FUJ.js} +3 -3
- package/build/server/chunks/9-BhL47FUJ.js.map +1 -0
- package/build/server/chunks/{ChatMessage-BEFlmHur.js → ChatMessage-ClLIqnwB.js} +25 -81
- package/build/server/chunks/ChatMessage-ClLIqnwB.js.map +1 -0
- package/build/server/chunks/Navbar-K3AsG60E.js +341 -0
- package/build/server/chunks/Navbar-K3AsG60E.js.map +1 -0
- package/build/server/chunks/{Navbar-y0AyDpcy.js → SessionList-CWKGPQSI.js} +5 -341
- package/build/server/chunks/SessionList-CWKGPQSI.js.map +1 -0
- package/build/server/chunks/_layout.svelte-oFWL-MU8.js.map +1 -1
- package/build/server/chunks/_page.svelte-1xNXhM9d.js +40 -0
- package/build/server/chunks/_page.svelte-1xNXhM9d.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DbVLfUMo.js → _page.svelte-BcYrJ6UQ.js} +8 -7
- package/build/server/chunks/_page.svelte-BcYrJ6UQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-CigItPjU.js.map +1 -1
- package/build/server/chunks/{_page.svelte-DM3jnL7B.js → _page.svelte-DR9NaaO2.js} +185 -407
- package/build/server/chunks/_page.svelte-DR9NaaO2.js.map +1 -0
- package/build/server/chunks/_page.svelte-DhtWda2j.js +210 -0
- package/build/server/chunks/_page.svelte-DhtWda2j.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Cqzbf_9r.js → _page.svelte-tb5kthho.js} +6 -5
- package/build/server/chunks/_page.svelte-tb5kthho.js.map +1 -0
- package/build/server/chunks/{_server.ts-DEgOzmt-.js → _server.ts-8m9-a6Du.js} +5 -5
- package/build/server/chunks/{_server.ts-DEgOzmt-.js.map → _server.ts-8m9-a6Du.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B01UNM7i.js → _server.ts-B4bNwc-X.js} +6 -6
- package/build/server/chunks/{_server.ts-B01UNM7i.js.map → _server.ts-B4bNwc-X.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CEarW7QY.js → _server.ts-B5sjbudp.js} +5 -5
- package/build/server/chunks/{_server.ts-CEarW7QY.js.map → _server.ts-B5sjbudp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BoxRUogb.js → _server.ts-B9DDGhVm.js} +5 -5
- package/build/server/chunks/{_server.ts-BoxRUogb.js.map → _server.ts-B9DDGhVm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DohkVO-9.js → _server.ts-BHHw6XEU.js} +5 -5
- package/build/server/chunks/{_server.ts-DohkVO-9.js.map → _server.ts-BHHw6XEU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-JejNP4uV.js → _server.ts-BHTNSYN2.js} +5 -5
- package/build/server/chunks/{_server.ts-JejNP4uV.js.map → _server.ts-BHTNSYN2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D6vZvzLt.js → _server.ts-BNzWN9rK.js} +5 -5
- package/build/server/chunks/{_server.ts-D6vZvzLt.js.map → _server.ts-BNzWN9rK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4OpgCAn.js → _server.ts-BQb1b6_J.js} +6 -6
- package/build/server/chunks/{_server.ts-C4OpgCAn.js.map → _server.ts-BQb1b6_J.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C0v2G2ly.js → _server.ts-BReADRGG.js} +2 -2
- package/build/server/chunks/{_server.ts-C0v2G2ly.js.map → _server.ts-BReADRGG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-mz0P4bQg.js → _server.ts-BV3MjhcW.js} +5 -5
- package/build/server/chunks/{_server.ts-mz0P4bQg.js.map → _server.ts-BV3MjhcW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D264FNyX.js → _server.ts-Bh3U19_G.js} +5 -5
- package/build/server/chunks/{_server.ts-D264FNyX.js.map → _server.ts-Bh3U19_G.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CswJoelP.js → _server.ts-BikPHSq7.js} +5 -5
- package/build/server/chunks/{_server.ts-CswJoelP.js.map → _server.ts-BikPHSq7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C5SDazDN.js → _server.ts-Bm2jdhoU.js} +5 -5
- package/build/server/chunks/{_server.ts-C5SDazDN.js.map → _server.ts-Bm2jdhoU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjzyHPaP.js → _server.ts-BmSWIDHI.js} +5 -5
- package/build/server/chunks/{_server.ts-BjzyHPaP.js.map → _server.ts-BmSWIDHI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWRYvzwI.js → _server.ts-Brn_xbH_.js} +5 -5
- package/build/server/chunks/{_server.ts-BWRYvzwI.js.map → _server.ts-Brn_xbH_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvVFuoZA.js → _server.ts-BupTjwGl.js} +6 -6
- package/build/server/chunks/{_server.ts-DvVFuoZA.js.map → _server.ts-BupTjwGl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-c_lwcz9M.js → _server.ts-BwB-gqZS.js} +5 -5
- package/build/server/chunks/{_server.ts-c_lwcz9M.js.map → _server.ts-BwB-gqZS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-0OeQ0WW1.js → _server.ts-C6OPqMJ6.js} +5 -5
- package/build/server/chunks/{_server.ts-0OeQ0WW1.js.map → _server.ts-C6OPqMJ6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C60smtiA.js → _server.ts-CA6JWfHi.js} +6 -6
- package/build/server/chunks/{_server.ts-C60smtiA.js.map → _server.ts-CA6JWfHi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BE9SHXNP.js → _server.ts-CAik4Rk8.js} +5 -5
- package/build/server/chunks/{_server.ts-BE9SHXNP.js.map → _server.ts-CAik4Rk8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7C_JnLA.js → _server.ts-CEwIUyXG.js} +5 -5
- package/build/server/chunks/{_server.ts-C7C_JnLA.js.map → _server.ts-CEwIUyXG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CPQlueaR.js → _server.ts-CGfrnHzF.js} +5 -5
- package/build/server/chunks/{_server.ts-CPQlueaR.js.map → _server.ts-CGfrnHzF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dl9rmY33.js → _server.ts-CRQ2HFvy.js} +2 -2
- package/build/server/chunks/{_server.ts-Dl9rmY33.js.map → _server.ts-CRQ2HFvy.js.map} +1 -1
- package/build/server/chunks/{_server.ts--pU-mhOv.js → _server.ts-CV77figq.js} +5 -5
- package/build/server/chunks/{_server.ts--pU-mhOv.js.map → _server.ts-CV77figq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClFngQ5g.js → _server.ts-CYJWdCjY.js} +5 -5
- package/build/server/chunks/{_server.ts-ClFngQ5g.js.map → _server.ts-CYJWdCjY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3Uljj7c.js → _server.ts-CZzCPiOv.js} +5 -5
- package/build/server/chunks/{_server.ts-B3Uljj7c.js.map → _server.ts-CZzCPiOv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CMuzkwXb.js → _server.ts-Cdk7JuyR.js} +5 -5
- package/build/server/chunks/{_server.ts-CMuzkwXb.js.map → _server.ts-Cdk7JuyR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CigEk1M2.js → _server.ts-Cf9fgj1t.js} +5 -5
- package/build/server/chunks/{_server.ts-CigEk1M2.js.map → _server.ts-Cf9fgj1t.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CLGLoOX4.js → _server.ts-CfCZx3nr.js} +5 -5
- package/build/server/chunks/{_server.ts-CLGLoOX4.js.map → _server.ts-CfCZx3nr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bs20Z2x5.js → _server.ts-ChNpsWsn.js} +4 -4
- package/build/server/chunks/{_server.ts-Bs20Z2x5.js.map → _server.ts-ChNpsWsn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BlD-xqHX.js → _server.ts-Chp1D1NJ.js} +6 -6
- package/build/server/chunks/{_server.ts-BlD-xqHX.js.map → _server.ts-Chp1D1NJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cvr-yLEl.js → _server.ts-Ci1hQ0Lw.js} +7 -7
- package/build/server/chunks/{_server.ts-Cvr-yLEl.js.map → _server.ts-Ci1hQ0Lw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CIhtd-Uh.js → _server.ts-Coh90s05.js} +5 -5
- package/build/server/chunks/{_server.ts-CIhtd-Uh.js.map → _server.ts-Coh90s05.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BObiJ5Qo.js → _server.ts-Csik9Itg.js} +8 -8
- package/build/server/chunks/{_server.ts-BObiJ5Qo.js.map → _server.ts-Csik9Itg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CnMD6tM7.js → _server.ts-CwPniqM1.js} +5 -5
- package/build/server/chunks/{_server.ts-CnMD6tM7.js.map → _server.ts-CwPniqM1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWMMcZva.js → _server.ts-Cx9mT4VH.js} +5 -5
- package/build/server/chunks/{_server.ts-CWMMcZva.js.map → _server.ts-Cx9mT4VH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D7IC_Y32.js → _server.ts-CyS5S3cz.js} +7 -7
- package/build/server/chunks/{_server.ts-D7IC_Y32.js.map → _server.ts-CyS5S3cz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bn2hwPxs.js → _server.ts-CydNfw4_.js} +6 -6
- package/build/server/chunks/{_server.ts-Bn2hwPxs.js.map → _server.ts-CydNfw4_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-dD2FwqWw.js → _server.ts-D-Uq5EMc.js} +5 -5
- package/build/server/chunks/{_server.ts-dD2FwqWw.js.map → _server.ts-D-Uq5EMc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bz06ow3I.js → _server.ts-D5-6rgyM.js} +5 -5
- package/build/server/chunks/{_server.ts-Bz06ow3I.js.map → _server.ts-D5-6rgyM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-SFtKmPEN.js → _server.ts-D55bp3Nl.js} +5 -5
- package/build/server/chunks/{_server.ts-SFtKmPEN.js.map → _server.ts-D55bp3Nl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-beFmwPmw.js → _server.ts-D5YBOr-I.js} +5 -5
- package/build/server/chunks/{_server.ts-beFmwPmw.js.map → _server.ts-D5YBOr-I.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNF5idzW.js → _server.ts-D8S0Gcdh.js} +5 -5
- package/build/server/chunks/{_server.ts-BNF5idzW.js.map → _server.ts-D8S0Gcdh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CecMDzNO.js → _server.ts-DBbAbCGV.js} +7 -7
- package/build/server/chunks/{_server.ts-CecMDzNO.js.map → _server.ts-DBbAbCGV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DM9CM7r4.js → _server.ts-DCnRFcD0.js} +6 -6
- package/build/server/chunks/{_server.ts-DM9CM7r4.js.map → _server.ts-DCnRFcD0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BcyD4FAK.js → _server.ts-DENNVt9M.js} +5 -5
- package/build/server/chunks/{_server.ts-BcyD4FAK.js.map → _server.ts-DENNVt9M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-YBAOIJxB.js → _server.ts-DFREWo8G.js} +5 -5
- package/build/server/chunks/{_server.ts-YBAOIJxB.js.map → _server.ts-DFREWo8G.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DBIVm5KK.js → _server.ts-DH3OWMVH.js} +5 -5
- package/build/server/chunks/{_server.ts-DBIVm5KK.js.map → _server.ts-DH3OWMVH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dn4hPbO5.js → _server.ts-DIHrw0cC.js} +5 -5
- package/build/server/chunks/{_server.ts-Dn4hPbO5.js.map → _server.ts-DIHrw0cC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Di-AKVeN.js → _server.ts-DNqPBo2x.js} +5 -5
- package/build/server/chunks/{_server.ts-Di-AKVeN.js.map → _server.ts-DNqPBo2x.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CV4ZTrHb.js → _server.ts-DNtz1QNP.js} +6 -6
- package/build/server/chunks/{_server.ts-CV4ZTrHb.js.map → _server.ts-DNtz1QNP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CDcL1v18.js → _server.ts-DOY-rvQD.js} +5 -5
- package/build/server/chunks/{_server.ts-CDcL1v18.js.map → _server.ts-DOY-rvQD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D4KazeVl.js → _server.ts-DUtFnW4R.js} +5 -5
- package/build/server/chunks/{_server.ts-D4KazeVl.js.map → _server.ts-DUtFnW4R.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DOHQRR39.js → _server.ts-DYWQOfJg.js} +5 -5
- package/build/server/chunks/{_server.ts-DOHQRR39.js.map → _server.ts-DYWQOfJg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CC7pljaX.js → _server.ts-DbNkU76w.js} +5 -5
- package/build/server/chunks/{_server.ts-CC7pljaX.js.map → _server.ts-DbNkU76w.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BFejqrWf.js → _server.ts-Dcjeu0RD.js} +5 -5
- package/build/server/chunks/{_server.ts-BFejqrWf.js.map → _server.ts-Dcjeu0RD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-5CMhF-We.js → _server.ts-Dco1E-Da.js} +5 -5
- package/build/server/chunks/{_server.ts-5CMhF-We.js.map → _server.ts-Dco1E-Da.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D8kr1zcQ.js → _server.ts-Dgbf4dFy.js} +5 -5
- package/build/server/chunks/{_server.ts-D8kr1zcQ.js.map → _server.ts-Dgbf4dFy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Oh_Zqa_M.js → _server.ts-DjzmTCJe.js} +5 -5
- package/build/server/chunks/{_server.ts-Oh_Zqa_M.js.map → _server.ts-DjzmTCJe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8itNTqQ.js → _server.ts-Do00EgQ0.js} +5 -5
- package/build/server/chunks/{_server.ts-C8itNTqQ.js.map → _server.ts-Do00EgQ0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D4Z6LeT3.js → _server.ts-DoFf_top.js} +2 -2
- package/build/server/chunks/{_server.ts-D4Z6LeT3.js.map → _server.ts-DoFf_top.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CsUb-Aja.js → _server.ts-DtIh7JmA.js} +5 -5
- package/build/server/chunks/{_server.ts-CsUb-Aja.js.map → _server.ts-DtIh7JmA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-gdEb-KvS.js → _server.ts-DuvgTAhi.js} +5 -5
- package/build/server/chunks/{_server.ts-gdEb-KvS.js.map → _server.ts-DuvgTAhi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DyXpT2n9.js → _server.ts-DwSmGFWo.js} +5 -5
- package/build/server/chunks/{_server.ts-DyXpT2n9.js.map → _server.ts-DwSmGFWo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B_HnVdK_.js → _server.ts-Dy4awv21.js} +2 -2
- package/build/server/chunks/{_server.ts-B_HnVdK_.js.map → _server.ts-Dy4awv21.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BMfR4Lye.js → _server.ts-DzBYcUNP.js} +5 -5
- package/build/server/chunks/{_server.ts-BMfR4Lye.js.map → _server.ts-DzBYcUNP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CG2B5rlx.js → _server.ts-DzLrbljj.js} +5 -5
- package/build/server/chunks/{_server.ts-CG2B5rlx.js.map → _server.ts-DzLrbljj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D2qIIqBN.js → _server.ts-E0LKVKqn.js} +5 -5
- package/build/server/chunks/{_server.ts-D2qIIqBN.js.map → _server.ts-E0LKVKqn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BDu6FWnC.js → _server.ts-KFIVweQ1.js} +6 -6
- package/build/server/chunks/{_server.ts-BDu6FWnC.js.map → _server.ts-KFIVweQ1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D-By2JBW.js → _server.ts-KsWTwPeQ.js} +5 -5
- package/build/server/chunks/{_server.ts-D-By2JBW.js.map → _server.ts-KsWTwPeQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-qsfPaqQe.js → _server.ts-QPhNhWsE.js} +5 -5
- package/build/server/chunks/{_server.ts-qsfPaqQe.js.map → _server.ts-QPhNhWsE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ba5LpOKk.js → _server.ts-RnSrIgoc.js} +7 -7
- package/build/server/chunks/{_server.ts-Ba5LpOKk.js.map → _server.ts-RnSrIgoc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJdI0sh1.js → _server.ts-S-AzjmxN.js} +6 -6
- package/build/server/chunks/{_server.ts-DJdI0sh1.js.map → _server.ts-S-AzjmxN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BDRFGcRb.js → _server.ts-X10vIa8R.js} +5 -5
- package/build/server/chunks/{_server.ts-BDRFGcRb.js.map → _server.ts-X10vIa8R.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xb_1w1kf.js → _server.ts-XY5ZysCx.js} +2 -2
- package/build/server/chunks/{_server.ts-xb_1w1kf.js.map → _server.ts-XY5ZysCx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B20Y2eS7.js → _server.ts-Xl36hhJh.js} +6 -6
- package/build/server/chunks/{_server.ts-B20Y2eS7.js.map → _server.ts-Xl36hhJh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DFpIzR83.js → _server.ts-Z395KDPV.js} +6 -6
- package/build/server/chunks/{_server.ts-DFpIzR83.js.map → _server.ts-Z395KDPV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CGqpENOm.js → _server.ts-huFJtCZs.js} +6 -6
- package/build/server/chunks/{_server.ts-CGqpENOm.js.map → _server.ts-huFJtCZs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BxudLrGe.js → _server.ts-i0tcUGUm.js} +5 -5
- package/build/server/chunks/{_server.ts-BxudLrGe.js.map → _server.ts-i0tcUGUm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-QdNUZ6_w.js → _server.ts-jFQ6Wf5I.js} +7 -7
- package/build/server/chunks/{_server.ts-QdNUZ6_w.js.map → _server.ts-jFQ6Wf5I.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DMCXKECk.js → _server.ts-lie-h2LF.js} +4 -4
- package/build/server/chunks/{_server.ts-DMCXKECk.js.map → _server.ts-lie-h2LF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CPoU3qb9.js → _server.ts-nYNqmJ4M.js} +5 -5
- package/build/server/chunks/{_server.ts-CPoU3qb9.js.map → _server.ts-nYNqmJ4M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D89NvzFz.js → _server.ts-q0n79-Wn.js} +7 -7
- package/build/server/chunks/{_server.ts-D89NvzFz.js.map → _server.ts-q0n79-Wn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DMPk4tQR.js → _server.ts-rnssX7fi.js} +5 -5
- package/build/server/chunks/{_server.ts-DMPk4tQR.js.map → _server.ts-rnssX7fi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTlf1C5O.js → _server.ts-tdQgM_h4.js} +5 -5
- package/build/server/chunks/{_server.ts-DTlf1C5O.js.map → _server.ts-tdQgM_h4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BSe6G25o.js → _server.ts-xGkSNfpX.js} +5 -5
- package/build/server/chunks/{_server.ts-BSe6G25o.js.map → _server.ts-xGkSNfpX.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-CtXSmg5a.js → addon-helpers-DQ4Sw0eL.js} +3 -3
- package/build/server/chunks/{addon-helpers-CtXSmg5a.js.map → addon-helpers-DQ4Sw0eL.js.map} +1 -1
- package/build/server/chunks/{akm-BRiRim0P.js → akm-CzkR6h7k.js} +2 -2
- package/build/server/chunks/{akm-BRiRim0P.js.map → akm-CzkR6h7k.js.map} +1 -1
- package/build/server/chunks/{catalog-DEv1nsOT.js → catalog-CqhyP3nH.js} +5 -5
- package/build/server/chunks/{catalog-DEv1nsOT.js.map → catalog-CqhyP3nH.js.map} +1 -1
- package/build/server/chunks/{client-BVhtM1mG.js → client-DnRnUa51.js} +2 -2
- package/build/server/chunks/{client-BVhtM1mG.js.map → client-DnRnUa51.js.map} +1 -1
- package/build/server/chunks/{config-CO8OSXtU.js → config-sOJVdbXV.js} +2 -2
- package/build/server/chunks/{config-CO8OSXtU.js.map → config-sOJVdbXV.js.map} +1 -1
- package/build/server/chunks/{docker-CTjWsP_Q.js → docker-Kvd81Syx.js} +2 -2
- package/build/server/chunks/{docker-CTjWsP_Q.js.map → docker-Kvd81Syx.js.map} +1 -1
- package/build/server/chunks/{endpoints-UdQGgKsR.js → endpoints-jOpkf70B.js} +2 -2
- package/build/server/chunks/{endpoints-UdQGgKsR.js.map → endpoints-jOpkf70B.js.map} +1 -1
- package/build/server/chunks/{environment-DedKcJdc.js → environment-C4mqyQco.js} +2 -2
- package/build/server/chunks/{environment-DedKcJdc.js.map → environment-C4mqyQco.js.map} +1 -1
- package/build/server/chunks/{error.svelte-C6ZvgK-0.js → error.svelte-BsAseuKj.js} +4 -4
- package/build/server/chunks/{error.svelte-C6ZvgK-0.js.map → error.svelte-BsAseuKj.js.map} +1 -1
- package/build/server/chunks/{helpers-kzwksNq1.js → helpers-CdFbX3Gv.js} +3 -3
- package/build/server/chunks/{helpers-kzwksNq1.js.map → helpers-CdFbX3Gv.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BjQOtOyj.js → hooks.server-BxMMvOvG.js} +7 -7
- package/build/server/chunks/{hooks.server-BjQOtOyj.js.map → hooks.server-BxMMvOvG.js.map} +1 -1
- package/build/server/chunks/{http-D8YVIqJa.js → http-CHHnc6an.js} +2 -2
- package/build/server/chunks/{http-D8YVIqJa.js.map → http-CHHnc6an.js.map} +1 -1
- package/build/server/chunks/{internal-DQFuMtuQ.js → internal-DtzAdxjF.js} +3 -3
- package/build/server/chunks/{internal-DQFuMtuQ.js.map → internal-DtzAdxjF.js.map} +1 -1
- package/build/server/chunks/{migration-status-a9KsTKSo.js → migration-status-CElXKl1J.js} +2 -2
- package/build/server/chunks/{migration-status-a9KsTKSo.js.map → migration-status-CElXKl1J.js.map} +1 -1
- package/build/server/chunks/{session-cookie-CHgIES2p.js → session-cookie-CpL6ZNVl.js} +2 -2
- package/build/server/chunks/{session-cookie-CHgIES2p.js.map → session-cookie-CpL6ZNVl.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-B--th9ts.js → setup-deploy-n5x1ZBl3.js} +2 -2
- package/build/server/chunks/{setup-deploy-B--th9ts.js.map → setup-deploy-n5x1ZBl3.js.map} +1 -1
- package/build/server/chunks/{src-CidJbygh.js → src-DUEmEQ8J.js} +2 -2
- package/build/server/chunks/src-DUEmEQ8J.js.map +1 -0
- package/build/server/chunks/{state-fxN45gBp.js → state-DTvf_DJR.js} +2 -2
- package/build/server/chunks/{state-fxN45gBp.js.map → state-DTvf_DJR.js.map} +1 -1
- package/build/server/chunks/{state2-boKye0ZJ.js → state2-DZ2pu1L6.js} +2 -2
- package/build/server/chunks/{state2-boKye0ZJ.js.map → state2-DZ2pu1L6.js.map} +1 -1
- package/build/server/chunks/theme-state.svelte-BsNoJAjT.js.map +1 -1
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +96 -96
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/0.03HRqLzj.css +0 -1
- package/build/client/_app/immutable/assets/0.03HRqLzj.css.br +0 -0
- package/build/client/_app/immutable/assets/0.03HRqLzj.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.C4zN9dGC.css +0 -1
- package/build/client/_app/immutable/assets/10.C4zN9dGC.css.br +0 -0
- package/build/client/_app/immutable/assets/10.C4zN9dGC.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.C2tVeZVh.css +0 -1
- package/build/client/_app/immutable/assets/4.C2tVeZVh.css.br +0 -0
- package/build/client/_app/immutable/assets/4.C2tVeZVh.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +0 -1
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.C9M6ETTz.css +0 -1
- package/build/client/_app/immutable/assets/6.C9M6ETTz.css.br +0 -2
- package/build/client/_app/immutable/assets/6.C9M6ETTz.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CIARtob0.css +0 -1
- package/build/client/_app/immutable/assets/7.CIARtob0.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CIARtob0.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.CY2RMSue.css +0 -1
- package/build/client/_app/immutable/assets/8.CY2RMSue.css.br +0 -4
- package/build/client/_app/immutable/assets/8.CY2RMSue.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.CkiNtsHc.css +0 -1
- package/build/client/_app/immutable/assets/9.CkiNtsHc.css.br +0 -0
- package/build/client/_app/immutable/assets/9.CkiNtsHc.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css +0 -1
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.Dvo0uBBZ.css.gz +0 -0
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css +0 -1
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.br +0 -0
- package/build/client/_app/immutable/assets/Navbar.8KmI3SWX.css.gz +0 -0
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css +0 -1
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css.br +0 -2
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B7vwJqoj.js +0 -16
- package/build/client/_app/immutable/chunks/B7vwJqoj.js.br +0 -0
- package/build/client/_app/immutable/chunks/B7vwJqoj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Buy0D9D-.js +0 -1
- package/build/client/_app/immutable/chunks/Buy0D9D-.js.br +0 -0
- package/build/client/_app/immutable/chunks/Buy0D9D-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpzMlkvh.js +0 -1
- package/build/client/_app/immutable/chunks/CpzMlkvh.js.br +0 -2
- package/build/client/_app/immutable/chunks/CpzMlkvh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cub6afmL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cub6afmL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2dFPcAY.js +0 -3
- package/build/client/_app/immutable/chunks/D2dFPcAY.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2dFPcAY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DMSxHu0j.js +0 -5
- package/build/client/_app/immutable/chunks/DMSxHu0j.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMSxHu0j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i-u-oQAW.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CGwa9uv7.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CGwa9uv7.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js +0 -1
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.DOxwxXh1.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DOxwxXh1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.ALcLv429.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.ALcLv429.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js +0 -133
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js.br +0 -0
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CUEzVL3V.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CUEzVL3V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BL78XiLU.js +0 -1
- package/build/client/_app/immutable/nodes/6.BL78XiLU.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BL78XiLU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.F5ztMZTo.js +0 -2
- package/build/client/_app/immutable/nodes/7.F5ztMZTo.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.F5ztMZTo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.xcsOM3k5.js +0 -1
- package/build/client/_app/immutable/nodes/8.xcsOM3k5.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.xcsOM3k5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.OQRL7WC0.js +0 -6
- package/build/client/_app/immutable/nodes/9.OQRL7WC0.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.OQRL7WC0.js.gz +0 -0
- package/build/server/chunks/1-2o6Ed2yp.js +0 -9
- package/build/server/chunks/4-D6BCA1En.js +0 -9
- package/build/server/chunks/4-D6BCA1En.js.map +0 -1
- package/build/server/chunks/5-FSdT4QNL.js +0 -9
- package/build/server/chunks/5-FSdT4QNL.js.map +0 -1
- package/build/server/chunks/6-C0ETgtOo.js +0 -9
- package/build/server/chunks/6-C0ETgtOo.js.map +0 -1
- package/build/server/chunks/7-BcFrRC7r.js +0 -9
- package/build/server/chunks/7-BcFrRC7r.js.map +0 -1
- package/build/server/chunks/9-R739z6lx.js.map +0 -1
- package/build/server/chunks/ChatMessage-BEFlmHur.js.map +0 -1
- package/build/server/chunks/Navbar-y0AyDpcy.js.map +0 -1
- package/build/server/chunks/_page.svelte-Cqzbf_9r.js.map +0 -1
- package/build/server/chunks/_page.svelte-DCeKtm_e.js +0 -37
- package/build/server/chunks/_page.svelte-DCeKtm_e.js.map +0 -1
- package/build/server/chunks/_page.svelte-DM3jnL7B.js.map +0 -1
- package/build/server/chunks/_page.svelte-DbVLfUMo.js.map +0 -1
- package/build/server/chunks/_page.svelte-LjsOqqWX.js +0 -257
- package/build/server/chunks/_page.svelte-LjsOqqWX.js.map +0 -1
- package/build/server/chunks/src-CidJbygh.js.map +0 -1
- /package/build/client/_app/immutable/chunks/{Oz5B_hgH.js → 9fMyFnaz.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Oz5B_hgH.js.br → 9fMyFnaz.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Oz5B_hgH.js.gz → 9fMyFnaz.js.gz} +0 -0
- /package/build/client/_app/immutable/nodes/{10.BzTAm6YU.js → 10.D8Hw0nH7.js} +0 -0
- /package/build/client/_app/immutable/nodes/{10.BzTAm6YU.js.br → 10.D8Hw0nH7.js.br} +0 -0
- /package/build/client/_app/immutable/nodes/{10.BzTAm6YU.js.gz → 10.D8Hw0nH7.js.gz} +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { h as fetchEndpoints, u as setActiveEndpoint, C as voiceState, w as speakText, o as listSessions, m as getSessionMessages, c as createSession, x as startChatMessageTurn, t as sendChatMessage, q as replyChatPermission, s as replyChatQuestion, r as rejectChatQuestion, y as stopSpeaking
|
|
4
|
-
import { p as page } from './state2-boKye0ZJ.js';
|
|
1
|
+
import { o as derived, r as escape_html, p as ensure_array_like, e as attr_class, d as attr } from './dev-B6xUe35c.js';
|
|
2
|
+
import 'node:module';
|
|
3
|
+
import { h as fetchEndpoints, u as setActiveEndpoint, C as voiceState, w as speakText, o as listSessions, m as getSessionMessages, c as createSession, x as startChatMessageTurn, t as sendChatMessage, q as replyChatPermission, s as replyChatQuestion, r as rejectChatQuestion, y as stopSpeaking } from './theme-state.svelte-BsNoJAjT.js';
|
|
5
4
|
import { S as Spinner } from './Spinner-Bk6e83RX.js';
|
|
6
5
|
|
|
7
6
|
//#region src/lib/format-date.ts
|
|
@@ -52,66 +51,6 @@ function formatRelativeTime(ts) {
|
|
|
52
51
|
return `${Math.floor(day / 365)}y ago`;
|
|
53
52
|
}
|
|
54
53
|
//#endregion
|
|
55
|
-
//#region src/lib/components/common/IconButton.svelte
|
|
56
|
-
function IconButton($$renderer, $$props) {
|
|
57
|
-
/** Icon contents (an inline <svg> or spinner). */
|
|
58
|
-
/** Optional visible label; when present the button grows from a square to a pill. */
|
|
59
|
-
/** Render as an anchor instead of a button when a destination is given. */
|
|
60
|
-
/** "On"/active look (used by ToggleButton and active states). */
|
|
61
|
-
/** Colour of the selected state. */
|
|
62
|
-
/** Mirrors the toggle state for assistive tech (set by ToggleButton). */
|
|
63
|
-
let { icon, label, title, ariaLabel, disabled = false, href, onclick, type = "button", selected = false, tone = "primary", ariaPressed } = $$props;
|
|
64
|
-
if (href) {
|
|
65
|
-
$$renderer.push("<!--[0-->");
|
|
66
|
-
$$renderer.push(`<a${attr_class("icon-btn svelte-vx1yib", void 0, {
|
|
67
|
-
"has-label": label,
|
|
68
|
-
"selected": selected,
|
|
69
|
-
"tone-danger": tone === "danger"
|
|
70
|
-
})}${attr("href", href)}${attr("title", title ?? ariaLabel ?? label)}${attr("aria-label", ariaLabel ?? label)}${attr("aria-disabled", disabled || void 0)}>`);
|
|
71
|
-
icon($$renderer);
|
|
72
|
-
$$renderer.push(`<!----> `);
|
|
73
|
-
if (label) {
|
|
74
|
-
$$renderer.push("<!--[0-->");
|
|
75
|
-
$$renderer.push(`<span class="icon-btn-label svelte-vx1yib">${escape_html(label)}</span>`);
|
|
76
|
-
} else $$renderer.push("<!--[-1-->");
|
|
77
|
-
$$renderer.push(`<!--]--></a>`);
|
|
78
|
-
} else {
|
|
79
|
-
$$renderer.push("<!--[-1-->");
|
|
80
|
-
$$renderer.push(`<button${attr_class("icon-btn svelte-vx1yib", void 0, {
|
|
81
|
-
"has-label": label,
|
|
82
|
-
"selected": selected,
|
|
83
|
-
"tone-danger": tone === "danger"
|
|
84
|
-
})}${attr("type", type)}${attr("disabled", disabled, true)}${attr("title", title ?? ariaLabel ?? label)}${attr("aria-label", ariaLabel ?? label)}${attr("aria-pressed", ariaPressed)}>`);
|
|
85
|
-
icon($$renderer);
|
|
86
|
-
$$renderer.push(`<!----> `);
|
|
87
|
-
if (label) {
|
|
88
|
-
$$renderer.push("<!--[0-->");
|
|
89
|
-
$$renderer.push(`<span class="icon-btn-label svelte-vx1yib">${escape_html(label)}</span>`);
|
|
90
|
-
} else $$renderer.push("<!--[-1-->");
|
|
91
|
-
$$renderer.push(`<!--]--></button>`);
|
|
92
|
-
}
|
|
93
|
-
$$renderer.push(`<!--]-->`);
|
|
94
|
-
}
|
|
95
|
-
//#endregion
|
|
96
|
-
//#region src/lib/components/common/ToggleButton.svelte
|
|
97
|
-
function ToggleButton($$renderer, $$props) {
|
|
98
|
-
/** Icon shown when off (and when on, if no selectedIcon is given). */
|
|
99
|
-
/** Optional distinct icon shown when on. */
|
|
100
|
-
/** Colour of the on state. */
|
|
101
|
-
let { pressed, onToggle, icon, selectedIcon, label, title, ariaLabel, disabled = false, tone = "primary" } = $$props;
|
|
102
|
-
IconButton($$renderer, {
|
|
103
|
-
icon: pressed && selectedIcon ? selectedIcon : icon,
|
|
104
|
-
label,
|
|
105
|
-
title,
|
|
106
|
-
ariaLabel,
|
|
107
|
-
disabled,
|
|
108
|
-
tone,
|
|
109
|
-
selected: pressed,
|
|
110
|
-
ariaPressed: pressed,
|
|
111
|
-
onclick: onToggle
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
//#endregion
|
|
115
54
|
//#region src/lib/advanced-mode-state.svelte.ts
|
|
116
55
|
var ADVANCED_MODE_STORAGE_KEY = "openpalm.chat.advanced";
|
|
117
56
|
var AdvancedModeService = class {
|
|
@@ -1088,66 +1027,6 @@ function buildChatPath(sessionId, options) {
|
|
|
1088
1027
|
return query ? `/chat?${query}` : "/chat";
|
|
1089
1028
|
}
|
|
1090
1029
|
//#endregion
|
|
1091
|
-
//#region src/lib/components/chrome/ModeSwitch.svelte
|
|
1092
|
-
function advancedIcon($$renderer) {
|
|
1093
|
-
$$renderer.push(`<svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg>`);
|
|
1094
|
-
}
|
|
1095
|
-
function ModeSwitch($$renderer, $$props) {
|
|
1096
|
-
$$renderer.component(($$renderer) => {
|
|
1097
|
-
const pathname = derived(() => page.url?.pathname ?? "");
|
|
1098
|
-
const onAdmin = derived(() => pathname() === "/admin" || pathname().startsWith("/admin/"));
|
|
1099
|
-
function toggle() {
|
|
1100
|
-
const enabled = advancedModeService.toggle();
|
|
1101
|
-
if (onAdmin()) return;
|
|
1102
|
-
const sessionId = page.url.searchParams.get("session") ?? currentChatSessionId();
|
|
1103
|
-
goto(enabled ? buildAdvancedPath(sessionId) : buildChatPath(sessionId));
|
|
1104
|
-
}
|
|
1105
|
-
ToggleButton($$renderer, {
|
|
1106
|
-
pressed: advancedModeService.enabled,
|
|
1107
|
-
onToggle: toggle,
|
|
1108
|
-
ariaLabel: "Advanced mode",
|
|
1109
|
-
title: "Advanced mode (embedded OpenCode)",
|
|
1110
|
-
icon: advancedIcon
|
|
1111
|
-
});
|
|
1112
|
-
});
|
|
1113
|
-
}
|
|
1114
|
-
//#endregion
|
|
1115
|
-
//#region src/lib/components/common/ThemeToggle.svelte
|
|
1116
|
-
function currentIcon($$renderer) {
|
|
1117
|
-
if (themeService.preference === "system") {
|
|
1118
|
-
$$renderer.push("<!--[0-->");
|
|
1119
|
-
$$renderer.push(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"></rect><path d="M8 21h8"></path><path d="M12 17v4"></path></svg>`);
|
|
1120
|
-
} else if (themeService.preference === "light") {
|
|
1121
|
-
$$renderer.push("<!--[1-->");
|
|
1122
|
-
$$renderer.push(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`);
|
|
1123
|
-
} else {
|
|
1124
|
-
$$renderer.push("<!--[-1-->");
|
|
1125
|
-
$$renderer.push(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`);
|
|
1126
|
-
}
|
|
1127
|
-
$$renderer.push(`<!--]-->`);
|
|
1128
|
-
}
|
|
1129
|
-
function ThemeToggle($$renderer, $$props) {
|
|
1130
|
-
$$renderer.component(($$renderer) => {
|
|
1131
|
-
const CYCLE = [
|
|
1132
|
-
"system",
|
|
1133
|
-
"light",
|
|
1134
|
-
"dark"
|
|
1135
|
-
];
|
|
1136
|
-
function cycle() {
|
|
1137
|
-
const current = themeService.preference;
|
|
1138
|
-
const next = CYCLE[(CYCLE.indexOf(current) + 1) % CYCLE.length];
|
|
1139
|
-
themeService.setPreference(next);
|
|
1140
|
-
}
|
|
1141
|
-
const label = derived(() => themeService.preference === "system" ? "Theme: system (click for light)" : themeService.preference === "light" ? "Theme: light (click for dark)" : "Theme: dark (click for system)");
|
|
1142
|
-
IconButton($$renderer, {
|
|
1143
|
-
icon: currentIcon,
|
|
1144
|
-
ariaLabel: label(),
|
|
1145
|
-
title: label(),
|
|
1146
|
-
onclick: cycle
|
|
1147
|
-
});
|
|
1148
|
-
});
|
|
1149
|
-
}
|
|
1150
|
-
//#endregion
|
|
1151
1030
|
//#region src/lib/endpoints-state.svelte.ts
|
|
1152
1031
|
var EndpointsService = class {
|
|
1153
1032
|
endpoints = [];
|
|
@@ -1200,35 +1079,6 @@ var EndpointsService = class {
|
|
|
1200
1079
|
};
|
|
1201
1080
|
var endpointsService = new EndpointsService();
|
|
1202
1081
|
//#endregion
|
|
1203
|
-
//#region src/lib/components/common/Drawer.svelte
|
|
1204
|
-
function Drawer($$renderer, $$props) {
|
|
1205
|
-
$$renderer.component(($$renderer) => {
|
|
1206
|
-
/** Optional content rendered at the start of the header (e.g. a back button). */
|
|
1207
|
-
/** Drawer width (CSS length). */
|
|
1208
|
-
let { open, title, onClose, children, footer, headerStart, width = "32rem" } = $$props;
|
|
1209
|
-
if (open) {
|
|
1210
|
-
$$renderer.push("<!--[0-->");
|
|
1211
|
-
$$renderer.push(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj"${attr_style(`--drawer-width: ${stringify(width)}`)} role="dialog" aria-modal="true"${attr("aria-label", title)} tabindex="-1"><header class="drawer-header svelte-1u2o1qj">`);
|
|
1212
|
-
if (headerStart) {
|
|
1213
|
-
$$renderer.push("<!--[0-->");
|
|
1214
|
-
headerStart($$renderer);
|
|
1215
|
-
$$renderer.push(`<!---->`);
|
|
1216
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1217
|
-
$$renderer.push(`<!--]--> <h3 class="drawer-title svelte-1u2o1qj">${escape_html(title)}</h3> <button class="drawer-close svelte-1u2o1qj" aria-label="Close"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header> <div class="drawer-body svelte-1u2o1qj">`);
|
|
1218
|
-
children($$renderer);
|
|
1219
|
-
$$renderer.push(`<!----></div> `);
|
|
1220
|
-
if (footer) {
|
|
1221
|
-
$$renderer.push("<!--[0-->");
|
|
1222
|
-
$$renderer.push(`<footer class="drawer-footer svelte-1u2o1qj">`);
|
|
1223
|
-
footer($$renderer);
|
|
1224
|
-
$$renderer.push(`<!----></footer>`);
|
|
1225
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1226
|
-
$$renderer.push(`<!--]--></div>`);
|
|
1227
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1228
|
-
$$renderer.push(`<!--]-->`);
|
|
1229
|
-
});
|
|
1230
|
-
}
|
|
1231
|
-
//#endregion
|
|
1232
1082
|
//#region src/lib/assistant-endpoint.ts
|
|
1233
1083
|
function isLocalAssistantUrl(url) {
|
|
1234
1084
|
if (!url) return true;
|
|
@@ -1240,58 +1090,6 @@ function isLocalAssistantUrl(url) {
|
|
|
1240
1090
|
}
|
|
1241
1091
|
}
|
|
1242
1092
|
//#endregion
|
|
1243
|
-
//#region src/lib/components/chat/EndpointList.svelte
|
|
1244
|
-
function EndpointList($$renderer, $$props) {
|
|
1245
|
-
$$renderer.component(($$renderer) => {
|
|
1246
|
-
/** Called after the active endpoint changes (e.g. to close the drawer). */
|
|
1247
|
-
let { onChosen } = $$props;
|
|
1248
|
-
const active = derived(() => endpointsService.active);
|
|
1249
|
-
const endpoints = derived(() => endpointsService.endpoints);
|
|
1250
|
-
const showManageAssistant = derived(() => isLocalAssistantUrl(active()?.url));
|
|
1251
|
-
let switching = false;
|
|
1252
|
-
$$renderer.push(`<div class="endpoint-list svelte-dlw00e">`);
|
|
1253
|
-
if (endpointsService.error) {
|
|
1254
|
-
$$renderer.push("<!--[0-->");
|
|
1255
|
-
$$renderer.push(`<p class="list-error svelte-dlw00e" role="alert">${escape_html(endpointsService.error)}</p>`);
|
|
1256
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1257
|
-
$$renderer.push(`<!--]--> <div class="group" role="group" aria-label="Assistant endpoints"><!--[-->`);
|
|
1258
|
-
const each_array = ensure_array_like(endpoints());
|
|
1259
|
-
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
1260
|
-
let ep = each_array[$$index];
|
|
1261
|
-
$$renderer.push(`<button type="button"${attr_class("list-item svelte-dlw00e", void 0, { "active": ep.id === active()?.id })}${attr("aria-current", ep.id === active()?.id ? "true" : void 0)}${attr("disabled", switching, true)}><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e">${escape_html(ep.label)}`);
|
|
1262
|
-
if (ep.id === active()?.id) {
|
|
1263
|
-
$$renderer.push("<!--[0-->");
|
|
1264
|
-
$$renderer.push(`<span class="sr-only svelte-dlw00e">(current)</span>`);
|
|
1265
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1266
|
-
$$renderer.push(`<!--]--></span> <span class="item-url svelte-dlw00e">${escape_html(ep.url)}</span></span></button>`);
|
|
1267
|
-
}
|
|
1268
|
-
$$renderer.push(`<!--]--></div> <div class="divider svelte-dlw00e"></div> `);
|
|
1269
|
-
if (showManageAssistant()) {
|
|
1270
|
-
$$renderer.push("<!--[0-->");
|
|
1271
|
-
$$renderer.push(`<a class="list-item link svelte-dlw00e" href="/admin">Manage this assistant…</a>`);
|
|
1272
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1273
|
-
$$renderer.push(`<!--]--> <a class="list-item link svelte-dlw00e" href="/admin/endpoints">Manage assistant connections…</a></div>`);
|
|
1274
|
-
});
|
|
1275
|
-
}
|
|
1276
|
-
//#endregion
|
|
1277
|
-
//#region src/lib/components/chat/EndpointSwitcher.svelte
|
|
1278
|
-
function EndpointSwitcher($$renderer, $$props) {
|
|
1279
|
-
$$renderer.component(($$renderer) => {
|
|
1280
|
-
let open = false;
|
|
1281
|
-
const active = derived(() => endpointsService.active);
|
|
1282
|
-
$$renderer.push(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"${attr("aria-expanded", open)}${attr("aria-label", active() ? `Assistant endpoint: ${active().label}` : "Assistant endpoints")}${attr("title", active() ? `Connected to: ${active().label} (${active().url})` : "Assistant endpoints")}${attr("disabled", endpointsService.loading, true)}><svg class="trigger-icon svelte-48xr05" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05">${escape_html(active()?.label ?? "Endpoint…")}</span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> `);
|
|
1283
|
-
Drawer($$renderer, {
|
|
1284
|
-
open,
|
|
1285
|
-
title: "Assistant endpoint",
|
|
1286
|
-
onClose: () => open = false,
|
|
1287
|
-
width: "26rem",
|
|
1288
|
-
children: ($$renderer) => {
|
|
1289
|
-
EndpointList($$renderer, { onChosen: () => open = false });
|
|
1290
|
-
}});
|
|
1291
|
-
$$renderer.push(`<!---->`);
|
|
1292
|
-
});
|
|
1293
|
-
}
|
|
1294
|
-
//#endregion
|
|
1295
1093
|
//#region src/lib/session-title.ts
|
|
1296
1094
|
var DEFAULT_TITLE_RE = /^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;
|
|
1297
1095
|
/** Resolve a session's display title. */
|
|
@@ -1371,140 +1169,6 @@ function SessionList($$renderer, $$props) {
|
|
|
1371
1169
|
$$renderer.push(`<!--]--> <div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"${attr("disabled", chat.sending, true)}><span class="check svelte-1o6rxhb" aria-hidden="true">+</span> <span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb">New session</span></span></button></div>`);
|
|
1372
1170
|
});
|
|
1373
1171
|
}
|
|
1374
|
-
//#endregion
|
|
1375
|
-
//#region src/lib/components/chat/SessionPicker.svelte
|
|
1376
|
-
function SessionPicker($$renderer, $$props) {
|
|
1377
|
-
$$renderer.component(($$renderer) => {
|
|
1378
|
-
let open = false;
|
|
1379
|
-
const active = derived(() => endpointsService.active);
|
|
1380
|
-
const endpointState = derived(() => active() ? chat.byEndpoint.get(active().id) ?? null : null);
|
|
1381
|
-
const sessions = derived(() => endpointState()?.sessions ?? []);
|
|
1382
|
-
const activeSessionId = derived(() => chat.activeSessionId);
|
|
1383
|
-
const liveConnected = derived(() => chat.liveConnected);
|
|
1384
|
-
const activeSummary = derived(() => sessions().find((s) => s.id === activeSessionId()) ?? null);
|
|
1385
|
-
const triggerLabel = derived(() => activeSummary() ? resolveSessionTitle(activeSummary().title) : "New session");
|
|
1386
|
-
$$renderer.push(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog"${attr("aria-expanded", open)} aria-label="Sessions"${attr("title", triggerLabel())}><svg class="trigger-icon svelte-cihcnl" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span${attr_class("dot svelte-cihcnl", void 0, { "connected": liveConnected() })} aria-hidden="true"${attr("title", liveConnected() ? "Live updates connected" : "Live updates disconnected")}></span> <span class="label svelte-cihcnl">${escape_html(triggerLabel())}</span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> `);
|
|
1387
|
-
Drawer($$renderer, {
|
|
1388
|
-
open,
|
|
1389
|
-
title: `Sessions on ${stringify(active()?.label ?? "this endpoint")}`,
|
|
1390
|
-
onClose: () => open = false,
|
|
1391
|
-
width: "26rem",
|
|
1392
|
-
children: ($$renderer) => {
|
|
1393
|
-
SessionList($$renderer, { onChosen: () => open = false });
|
|
1394
|
-
}});
|
|
1395
|
-
$$renderer.push(`<!---->`);
|
|
1396
|
-
});
|
|
1397
|
-
}
|
|
1398
|
-
//#endregion
|
|
1399
|
-
//#region src/lib/components/chat/VoiceControl.svelte
|
|
1400
|
-
function VoiceControl($$renderer, $$props) {
|
|
1401
|
-
$$renderer.component(($$renderer) => {
|
|
1402
|
-
const MAX_INTERIM_CHARS = 48;
|
|
1403
|
-
let mounted = false;
|
|
1404
|
-
let removeGlobalMicToggle = null;
|
|
1405
|
-
onDestroy(() => {
|
|
1406
|
-
if (typeof window !== "undefined") window.openpalm?.setTrayMicRecording?.(false);
|
|
1407
|
-
removeGlobalMicToggle?.();
|
|
1408
|
-
removeGlobalMicToggle = null;
|
|
1409
|
-
destroyVoice();
|
|
1410
|
-
});
|
|
1411
|
-
let supported = derived(() => mounted);
|
|
1412
|
-
let ttsAvailable = derived(() => mounted);
|
|
1413
|
-
let isRecording = derived(() => voiceState.status === "recording");
|
|
1414
|
-
let isTranscribing = derived(() => voiceState.status === "transcribing");
|
|
1415
|
-
let isProcessing = derived(() => !isRecording() && !isTranscribing() && chat.sending);
|
|
1416
|
-
let isSpeaking = derived(() => voiceState.status === "speaking");
|
|
1417
|
-
$$renderer.push(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls">`);
|
|
1418
|
-
if (isRecording() && voiceState.interimTranscript) {
|
|
1419
|
-
$$renderer.push("<!--[0-->");
|
|
1420
|
-
$$renderer.push(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"${attr("title", voiceState.interimTranscript)}>${escape_html(voiceState.interimTranscript.length > MAX_INTERIM_CHARS ? voiceState.interimTranscript.slice(0, MAX_INTERIM_CHARS) + "…" : voiceState.interimTranscript)}</span>`);
|
|
1421
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1422
|
-
$$renderer.push(`<!--]--> `);
|
|
1423
|
-
if (voiceState.autoplayBlocked) {
|
|
1424
|
-
$$renderer.push("<!--[0-->");
|
|
1425
|
-
$$renderer.push(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`);
|
|
1426
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1427
|
-
$$renderer.push(`<!--]--> `);
|
|
1428
|
-
if (ttsAvailable()) {
|
|
1429
|
-
$$renderer.push("<!--[0-->");
|
|
1430
|
-
$$renderer.push(`<button${attr_class("voice-btn svelte-7elv0w", void 0, {
|
|
1431
|
-
"voice-btn-on": voiceState.ttsAutoEnabled,
|
|
1432
|
-
"voice-btn-speaking": isSpeaking()
|
|
1433
|
-
})}${attr("aria-label", voiceState.ttsAutoEnabled ? "Turn off spoken responses" : "Turn on spoken responses")}${attr("aria-pressed", voiceState.ttsAutoEnabled)}${attr("title", isSpeaking() ? "Speaking — click to turn off spoken responses" : voiceState.ttsAutoEnabled ? "Spoken responses are on — click to turn off" : "Spoken responses are off — click to turn on")}><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon>`);
|
|
1434
|
-
if (voiceState.ttsAutoEnabled) {
|
|
1435
|
-
$$renderer.push("<!--[0-->");
|
|
1436
|
-
$$renderer.push(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"${attr_class("svelte-7elv0w", void 0, { "wave-anim": isSpeaking() })}></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"${attr_class("svelte-7elv0w", void 0, { "wave-anim-2": isSpeaking() })}></path>`);
|
|
1437
|
-
} else {
|
|
1438
|
-
$$renderer.push("<!--[-1-->");
|
|
1439
|
-
$$renderer.push(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`);
|
|
1440
|
-
}
|
|
1441
|
-
$$renderer.push(`<!--]--></svg></button>`);
|
|
1442
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1443
|
-
$$renderer.push(`<!--]--> <button${attr_class("voice-btn svelte-7elv0w", void 0, {
|
|
1444
|
-
"voice-btn-active": isRecording(),
|
|
1445
|
-
"voice-btn-processing": isProcessing() || isTranscribing(),
|
|
1446
|
-
"voice-btn-disabled": !supported()
|
|
1447
|
-
})}${attr("disabled", !supported() || isProcessing(), true)}${attr("aria-label", !supported() ? "Voice input unavailable" : isRecording() ? "Stop recording" : isTranscribing() ? "Transcribing…" : isProcessing() ? "Sending message…" : "Start recording")}${attr("aria-pressed", isRecording())}${attr("title", !supported() ? "Voice input is unavailable — no speech-to-text engine is configured for this browser" : isRecording() ? "Stop recording" : isTranscribing() ? "Transcribing…" : isProcessing() ? "Sending message…" : "Speak — message will be sent to the selected assistant")}>`);
|
|
1448
|
-
if (!supported()) {
|
|
1449
|
-
$$renderer.push("<!--[0-->");
|
|
1450
|
-
$$renderer.push(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`);
|
|
1451
|
-
} else if (isTranscribing() || isProcessing()) {
|
|
1452
|
-
$$renderer.push("<!--[1-->");
|
|
1453
|
-
$$renderer.push(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`);
|
|
1454
|
-
} else if (isRecording()) {
|
|
1455
|
-
$$renderer.push("<!--[2-->");
|
|
1456
|
-
$$renderer.push(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`);
|
|
1457
|
-
} else {
|
|
1458
|
-
$$renderer.push("<!--[-1-->");
|
|
1459
|
-
$$renderer.push(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`);
|
|
1460
|
-
}
|
|
1461
|
-
$$renderer.push(`<!--]--></button> <span class="sr-only svelte-7elv0w" aria-live="polite">${escape_html(isRecording() && voiceState.interimTranscript ? voiceState.interimTranscript : isRecording() ? "Recording" : isTranscribing() ? "Transcribing" : isProcessing() ? "Sending message to assistant" : isSpeaking() ? "Assistant is speaking" : voiceState.ttsAutoEnabled ? "Spoken responses on" : "")}</span></div>`);
|
|
1462
|
-
});
|
|
1463
|
-
}
|
|
1464
|
-
//#endregion
|
|
1465
|
-
//#region src/lib/components/chrome/Navbar.svelte
|
|
1466
|
-
function chatIcon($$renderer) {
|
|
1467
|
-
$$renderer.push(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`);
|
|
1468
|
-
}
|
|
1469
|
-
function Navbar($$renderer, $$props) {
|
|
1470
|
-
$$renderer.component(($$renderer) => {
|
|
1471
|
-
const pathname = derived(() => page.url?.pathname ?? "");
|
|
1472
|
-
const onAdmin = derived(() => pathname() === "/admin" || pathname().startsWith("/admin/"));
|
|
1473
|
-
const onChatSurface = derived(() => pathname() === "/chat" || pathname().startsWith("/chat/"));
|
|
1474
|
-
const onAdvancedSurface = derived(() => pathname() === "/advanced" || pathname().startsWith("/advanced/"));
|
|
1475
|
-
const onConversationSurface = derived(() => onChatSurface() || onAdvancedSurface());
|
|
1476
|
-
const preferredChatHref = derived(() => {
|
|
1477
|
-
const sessionId = page.url.searchParams.get("session") ?? currentChatSessionId();
|
|
1478
|
-
return advancedModeService.enabled ? buildAdvancedPath(sessionId) : buildChatPath(sessionId);
|
|
1479
|
-
});
|
|
1480
|
-
$$renderer.push(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1"${attr("href", preferredChatHref())} aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1">`);
|
|
1481
|
-
if (onAdmin()) {
|
|
1482
|
-
$$renderer.push("<!--[0-->");
|
|
1483
|
-
IconButton($$renderer, {
|
|
1484
|
-
href: preferredChatHref(),
|
|
1485
|
-
ariaLabel: "Back to chat",
|
|
1486
|
-
title: "Chat",
|
|
1487
|
-
icon: chatIcon
|
|
1488
|
-
});
|
|
1489
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1490
|
-
$$renderer.push(`<!--]--> `);
|
|
1491
|
-
ThemeToggle($$renderer);
|
|
1492
|
-
$$renderer.push(`<!----> `);
|
|
1493
|
-
if (onConversationSurface()) {
|
|
1494
|
-
$$renderer.push("<!--[0-->");
|
|
1495
|
-
$$renderer.push(`<span class="chat-selectors svelte-66bgq1">`);
|
|
1496
|
-
EndpointSwitcher($$renderer);
|
|
1497
|
-
$$renderer.push(`<!----> `);
|
|
1498
|
-
SessionPicker($$renderer);
|
|
1499
|
-
$$renderer.push(`<!----></span>`);
|
|
1500
|
-
} else $$renderer.push("<!--[-1-->");
|
|
1501
|
-
$$renderer.push(`<!--]--> `);
|
|
1502
|
-
ModeSwitch($$renderer);
|
|
1503
|
-
$$renderer.push(`<!----> `);
|
|
1504
|
-
VoiceControl($$renderer);
|
|
1505
|
-
$$renderer.push(`<!----></div></div></header>`);
|
|
1506
|
-
});
|
|
1507
|
-
}
|
|
1508
1172
|
|
|
1509
|
-
export {
|
|
1510
|
-
//# sourceMappingURL=
|
|
1173
|
+
export { SessionList as S, advancedModeService as a, buildAdvancedPath as b, buildChatPath as c, chat as d, currentChatSessionId as e, endpointsService as f, formatTime as g, isLocalAssistantUrl as i, resolveSessionTitle as r };
|
|
1174
|
+
//# sourceMappingURL=SessionList-CWKGPQSI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionList-CWKGPQSI.js","sources":["../../../.svelte-kit/adapter-node/chunks/SessionList.js"],"sourcesContent":["import { H as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like } from \"./dev.js\";\nimport \"./index-server.js\";\nimport { G as sendChatMessage, H as replyChatPermission, J as startChatMessageTurn, K as setActiveEndpoint, L as getSessionMessages, T as fetchEndpoints, U as replyChatQuestion, V as rejectChatQuestion, c as voiceState, i as speakText, m as createSession, s as stopSpeaking, z as listSessions } from \"./theme-state.svelte.js\";\nimport { t as Spinner } from \"./Spinner.js\";\n//#region src/lib/format-date.ts\nvar TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\nvar DATE_TIME_FMT = new Intl.DateTimeFormat(void 0, {\n\tyear: \"numeric\",\n\tmonth: \"short\",\n\tday: \"numeric\",\n\thour: \"numeric\",\n\tminute: \"2-digit\"\n});\n/** Time of day, e.g. \"3:42 PM\" (locale-aware). Empty string for a falsy input. */\nfunction formatTime(ts) {\n\tif (!ts) return \"\";\n\treturn TIME_FMT.format(ts);\n}\n/**\n* Absolute date + time, e.g. \"Jun 7, 2026, 3:42 PM\". Use for tooltips / full\n* context where a relative label alone is ambiguous. Empty for a falsy input.\n*/\nfunction formatDateTime(ts) {\n\tif (!ts) return \"\";\n\treturn DATE_TIME_FMT.format(ts);\n}\n/**\n* Compact relative time, e.g. \"just now\", \"5m ago\", \"yesterday\", \"3w ago\".\n* Empty string for a falsy input. No date-fns dependency — that would be ~30 KB\n* for these few cases.\n*/\nfunction formatRelativeTime(ts) {\n\tif (!ts) return \"\";\n\tconst diffSec = Math.max(0, (Date.now() - ts) / 1e3);\n\tif (diffSec < 60) return \"just now\";\n\tconst min = Math.floor(diffSec / 60);\n\tif (min < 60) return `${min}m ago`;\n\tconst hr = Math.floor(min / 60);\n\tif (hr < 24) return `${hr}h ago`;\n\tconst day = Math.floor(hr / 24);\n\tif (day === 1) return \"yesterday\";\n\tif (day < 7) return `${day}d ago`;\n\tconst wk = Math.floor(day / 7);\n\tif (wk < 5) return `${wk}w ago`;\n\tconst mo = Math.floor(day / 30);\n\tif (mo < 12) return `${mo}mo ago`;\n\treturn `${Math.floor(day / 365)}y ago`;\n}\n//#endregion\n//#region src/lib/advanced-mode-state.svelte.ts\nvar ADVANCED_MODE_STORAGE_KEY = \"openpalm.chat.advanced\";\nvar AdvancedModeService = class {\n\tenabled = false;\n\tinitialized = false;\n\tinit() {\n\t\tif (typeof window === \"undefined\" || this.initialized) return;\n\t\tthis.enabled = this.#readStoredPreference();\n\t\tthis.initialized = true;\n\t}\n\tsetEnabled(value) {\n\t\tthis.enabled = value;\n\t\tthis.#writeStoredPreference(value);\n\t}\n\ttoggle() {\n\t\tconst next = !this.enabled;\n\t\tthis.setEnabled(next);\n\t\treturn next;\n\t}\n\tpreferredChatPath() {\n\t\treturn this.enabled ? \"/advanced\" : \"/chat\";\n\t}\n\t#readStoredPreference() {\n\t\tif (typeof window === \"undefined\") return false;\n\t\ttry {\n\t\t\treturn window.localStorage.getItem(ADVANCED_MODE_STORAGE_KEY) === \"1\";\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\t#writeStoredPreference(value) {\n\t\tif (typeof window === \"undefined\") return;\n\t\ttry {\n\t\t\twindow.localStorage.setItem(ADVANCED_MODE_STORAGE_KEY, value ? \"1\" : \"0\");\n\t\t} catch {}\n\t}\n};\nvar advancedModeService = new AdvancedModeService();\n//#endregion\n//#region src/lib/chat/oc-events.ts\nfunction propStr(props, key) {\n\tconst value = props?.[key];\n\treturn typeof value === \"string\" ? value : void 0;\n}\nfunction partSnapshotType(event) {\n\tif (event.type !== \"message.part.updated\") return null;\n\tconst part = event.properties?.part;\n\tif (typeof part?.id === \"string\" && typeof part.type === \"string\") return {\n\t\tpartID: part.id,\n\t\ttype: part.type\n\t};\n\treturn null;\n}\nfunction extractTextDelta(event, sessionId, reasoningPartIds) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type === \"session.next.text.delta\") return propStr(props, \"delta\") ?? propStr(props, \"text\") ?? null;\n\tif (event.type === \"message.part.delta\") {\n\t\tconst field = propStr(props, \"field\");\n\t\tif (field && field !== \"text\") return null;\n\t\tconst partID = propStr(props, \"partID\");\n\t\tif (partID && reasoningPartIds?.has(partID)) return null;\n\t\treturn propStr(props, \"delta\") ?? null;\n\t}\n\treturn null;\n}\nfunction statusName(status) {\n\tif (typeof status === \"string\") return status;\n\tif (status && typeof status === \"object\" && typeof status.type === \"string\") return status.type;\n}\nfunction isTurnEnd(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return false;\n\tif (event.type === \"session.idle\") return true;\n\tif (event.type === \"session.status\") {\n\t\tconst name = statusName(props.status);\n\t\treturn name === \"idle\" || name === \"completed\" || name === \"done\";\n\t}\n\treturn false;\n}\nfunction valueToText(value) {\n\tif (typeof value === \"string\") return value;\n\tif (value == null) return void 0;\n\tif (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn;\n\t}\n}\nfunction firstText(...values) {\n\tfor (const value of values) {\n\t\tconst text = valueToText(value);\n\t\tif (text) return text;\n\t}\n}\nfunction extractToolUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tconst part = props.part ?? props.tool;\n\tif (event.type === \"message.part.updated\" && part && (part.type === \"tool\" || part.state)) {\n\t\tconst state = part.state ?? {};\n\t\treturn {\n\t\t\tcallID: String(part.callID ?? part.id ?? \"\"),\n\t\t\ttool: String(part.tool ?? \"tool\"),\n\t\t\tstatus: String(state.status ?? \"running\"),\n\t\t\ttitle: typeof state.title === \"string\" ? state.title : void 0,\n\t\t\tdetail: firstText(state.input, state.metadata, state.progress, state.output),\n\t\t\toutput: valueToText(state.output),\n\t\t\terror: typeof state.error === \"string\" ? state.error : void 0\n\t\t};\n\t}\n\tif (event.type.startsWith(\"session.next.tool.\")) {\n\t\tconst type = event.type.replace(\"session.next.tool.\", \"\");\n\t\treturn {\n\t\t\tcallID: propStr(props, \"callID\") ?? \"\",\n\t\t\ttool: propStr(props, \"tool\") ?? \"tool\",\n\t\t\tstatus: type === \"completed\" ? \"completed\" : type === \"failed\" ? \"error\" : type === \"called\" ? \"running\" : propStr(props, \"status\") ?? \"running\",\n\t\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"tool\"),\n\t\t\tdetail: firstText(props.message, props.delta, props.progress, props.input, props.metadata),\n\t\t\toutput: firstText(props.output, props.result),\n\t\t\terror: firstText(props.error)\n\t\t};\n\t}\n\treturn null;\n}\nfunction isSessionError(event, sessionId) {\n\treturn event.type === \"session.error\" && propStr(event.properties, \"sessionID\") === sessionId;\n}\nfunction extractPermissionAsk(event, sessionId) {\n\tif (event.type !== \"permission.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst patterns = Array.isArray(event.properties?.patterns) ? event.properties.patterns.filter((item) => typeof item === \"string\") : [];\n\tconst always = Array.isArray(event.properties?.always) ? event.properties.always.filter((item) => typeof item === \"string\") : [];\n\tconst toolRecord = event.properties?.tool;\n\treturn {\n\t\trequestID: id,\n\t\tpermission: propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tpatterns,\n\t\talways,\n\t\ttool: propStr(toolRecord, \"callID\") ?? propStr(event.properties, \"permission\") ?? \"tool\",\n\t\tdetail: firstText(event.properties?.metadata, event.properties?.message) ?? \"\"\n\t};\n}\nfunction extractQuestionAsk(event, sessionId) {\n\tif (event.type !== \"question.asked\") return null;\n\tif (propStr(event.properties, \"sessionID\") !== sessionId) return null;\n\tconst id = propStr(event.properties, \"id\");\n\tif (!id) return null;\n\tconst rawQuestions = Array.isArray(event.properties?.questions) ? event.properties.questions : [];\n\tconst questions = [];\n\tfor (const raw of rawQuestions) {\n\t\tconst item = raw;\n\t\tconst options = Array.isArray(item.options) ? item.options.map((option) => option).filter((option) => typeof option.label === \"string\").map((option) => ({\n\t\t\tlabel: option.label,\n\t\t\tdescription: typeof option.description === \"string\" ? option.description : \"\"\n\t\t})) : [];\n\t\tquestions.push({\n\t\t\tquestion: typeof item.question === \"string\" ? item.question : \"\",\n\t\t\theader: typeof item.header === \"string\" ? item.header : \"\",\n\t\t\toptions\n\t\t});\n\t}\n\tif (questions.length === 0) return null;\n\treturn {\n\t\trequestID: id,\n\t\tquestions\n\t};\n}\nfunction extractStepUpdate(event, sessionId) {\n\tconst props = event.properties ?? {};\n\tif (propStr(props, \"sessionID\") !== sessionId) return null;\n\tif (event.type !== \"session.next.step.started\" && event.type !== \"session.next.step.ended\") return null;\n\treturn {\n\t\tid: propStr(props, \"stepID\") ?? propStr(props, \"id\") ?? event.type,\n\t\ttitle: propStr(props, \"title\") ?? propStr(props, \"step\") ?? (event.type === \"session.next.step.started\" ? \"Working\" : \"Step complete\"),\n\t\tstatus: event.type === \"session.next.step.ended\" ? \"completed\" : \"running\",\n\t\tdetail: firstText(props.detail, props.message)\n\t};\n}\n//#endregion\n//#region src/lib/chat/session-events.ts\nvar INITIAL_BACKOFF_MS = 1e3;\nvar MAX_BACKOFF_MS = 3e4;\nvar STREAM_URL = \"/proxy/assistant/event\";\n/**\n* Parse one `\\n\\n`-delimited SSE frame. Multi-line `data:` fields are\n* concatenated with `\\n` per the SSE spec.\n*/\nfunction parseFrame(chunk) {\n\tconst frame = {};\n\tconst dataLines = [];\n\tfor (const rawLine of chunk.split(\"\\n\")) {\n\t\tif (!rawLine || rawLine.startsWith(\":\")) continue;\n\t\tif (rawLine.startsWith(\"data:\")) dataLines.push(rawLine.replace(/^data:\\s?/, \"\"));\n\t\telse if (rawLine.startsWith(\"event:\")) frame.event = rawLine.replace(/^event:\\s?/, \"\");\n\t\telse if (rawLine.startsWith(\"id:\")) frame.id = rawLine.replace(/^id:\\s?/, \"\");\n\t}\n\tif (dataLines.length > 0) frame.data = dataLines.join(\"\\n\");\n\treturn frame;\n}\nfunction dispatch(handlers, payload) {\n\tconst info = payload.properties?.info;\n\tconst id = info?.id;\n\tif (!id) return;\n\tswitch (payload.type) {\n\t\tcase \"session.created\":\n\t\t\thandlers.onCreated(id);\n\t\t\treturn;\n\t\tcase \"session.updated\":\n\t\t\thandlers.onUpdated(id, {\n\t\t\t\ttitle: info?.title,\n\t\t\t\tupdatedAt: info?.time?.updated\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"session.deleted\":\n\t\t\thandlers.onDeleted(id);\n\t\t\treturn;\n\t\tdefault: return;\n\t}\n}\n/**\n* Open an SSE connection to `/proxy/assistant/event` and dispatch\n* session-scoped events. Returns an unsubscribe function that aborts the\n* stream and prevents reconnection.\n*/\nfunction subscribeSessionEvents(handlers) {\n\tlet stopped = false;\n\tlet controller = new AbortController();\n\tlet lastEventId;\n\tconst sleep = (ms) => new Promise((resolve) => {\n\t\tconst timer = setTimeout(resolve, ms);\n\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\tclearTimeout(timer);\n\t\t\tresolve();\n\t\t}, { once: true });\n\t});\n\tasync function readStream() {\n\t\tconst headers = { accept: \"text/event-stream\" };\n\t\tif (lastEventId !== void 0) headers[\"Last-Event-ID\"] = lastEventId;\n\t\tconst response = await fetch(STREAM_URL, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders,\n\t\t\tcredentials: \"include\",\n\t\t\tsignal: controller.signal\n\t\t});\n\t\tif (!response.ok || !response.body) throw new Error(`SSE stream failed: ${response.status} ${response.statusText}`);\n\t\thandlers.onConnect?.();\n\t\tconst reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\t\tlet buffer = \"\";\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tbuffer += value;\n\t\t\t\tconst chunks = buffer.split(\"\\n\\n\");\n\t\t\t\tbuffer = chunks.pop() ?? \"\";\n\t\t\t\tfor (const chunk of chunks) {\n\t\t\t\t\tif (!chunk) continue;\n\t\t\t\t\tconst frame = parseFrame(chunk);\n\t\t\t\t\tif (frame.id !== void 0) lastEventId = frame.id;\n\t\t\t\t\tif (!frame.data) continue;\n\t\t\t\t\tlet payload;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpayload = JSON.parse(frame.data);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.warn(\"[session-events] Bad JSON in SSE frame\", err);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\thandlers.onEvent?.(payload);\n\t\t\t\t\tdispatch(handlers, payload);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\treader.releaseLock();\n\t\t\t} catch {}\n\t\t}\n\t}\n\t(async () => {\n\t\tlet attempt = 0;\n\t\twhile (!stopped) try {\n\t\t\tattempt++;\n\t\t\tawait readStream();\n\t\t\tattempt = 0;\n\t\t\tif (!stopped) await sleep(500);\n\t\t} catch (err) {\n\t\t\tif (stopped) return;\n\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\tif (error.name !== \"AbortError\") {\n\t\t\t\tconsole.warn(\"[session-events] SSE error, reconnecting\", error);\n\t\t\t\thandlers.onDisconnect?.(error);\n\t\t\t}\n\t\t\tawait sleep(Math.min(INITIAL_BACKOFF_MS * 2 ** Math.max(0, attempt - 1), MAX_BACKOFF_MS));\n\t\t\tif (controller.signal.aborted && !stopped) controller = new AbortController();\n\t\t}\n\t})();\n\treturn () => {\n\t\tstopped = true;\n\t\ttry {\n\t\t\tcontroller.abort();\n\t\t} catch {}\n\t};\n}\n//#endregion\n//#region src/lib/desktop-notifications.ts\nvar DESKTOP_NOTIFY_ENABLED_KEY = \"openpalm.desktop.notify\";\nvar DESKTOP_NOTIFY_PREVIEW_KEY = \"openpalm.desktop.notify.preview\";\nfunction readFlag(key) {\n\tif (typeof window === \"undefined\") return false;\n\ttry {\n\t\treturn window.localStorage.getItem(key) === \"1\";\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction desktopNotifyEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_ENABLED_KEY);\n}\nfunction desktopReplyPreviewEnabled() {\n\treturn readFlag(DESKTOP_NOTIFY_PREVIEW_KEY);\n}\nfunction shouldNotifyDesktop() {\n\tif (typeof document === \"undefined\") return false;\n\tif (document.hasFocus()) return false;\n\tif (!desktopNotifyEnabled()) return false;\n\treturn typeof window !== \"undefined\" && typeof window.openpalm?.notify === \"function\";\n}\nfunction notifyAssistantReply(replyText) {\n\tif (!shouldNotifyDesktop()) return;\n\tconst body = desktopReplyPreviewEnabled() && replyText.trim() ? replyText.trim() : \"Assistant replied\";\n\twindow.openpalm?.notify?.(\"OpenPalm\", body);\n}\nfunction notifyAssistantError() {\n\tif (!shouldNotifyDesktop()) return;\n\twindow.openpalm?.notify?.(\"OpenPalm\", \"Assistant error\");\n}\n//#endregion\n//#region src/lib/chat/chat-state.svelte.ts\nvar STREAM_TURN_TIMEOUT_MS = 15e4;\nfunction emptyEndpointState() {\n\treturn {\n\t\tsessions: [],\n\t\tsessionsLoaded: false,\n\t\tsessionsLoading: false,\n\t\tsessionsError: \"\",\n\t\tactiveSessionId: null\n\t};\n}\nvar ChatService = class {\n\t/**\n\t* Per-endpoint session cache. Reassigned on every mutation so Svelte 5\n\t* picks up the change. Never mutate the existing Map in place.\n\t*/\n\tbyEndpoint = /* @__PURE__ */ new Map();\n\t/**\n\t* Mirrored from `endpointsService.activeId` via `onEndpointChanged()`\n\t* so the chat layer doesn't have to import the endpoint store.\n\t*/\n\tactiveEndpointId = \"default\";\n\t/** Messages for the currently rendered session only. */\n\tentries = [];\n\tentriesLoading = false;\n\tsending = false;\n\terror = \"\";\n\tpendingAssistantText = \"\";\n\tpendingToolStates = [];\n\tpendingPermission = null;\n\tpendingQuestion = null;\n\t/**\n\t* Set true while the SSE event stream is connected. Surfaced by the\n\t* SessionPicker as a tiny green/gray dot so the operator can see at a\n\t* glance whether live updates are flowing.\n\t*/\n\tliveConnected = false;\n\t/**\n\t* Active SSE subscription handle. Reassigned on every endpoint switch.\n\t* Plain field (not `$state`) — only the chat service touches it.\n\t*/\n\t_unsubscribeEvents = null;\n\t_pendingTurn = null;\n\t#activeSessionId = derived(() => this.byEndpoint.get(this.activeEndpointId)?.activeSessionId ?? null);\n\tget activeSessionId() {\n\t\treturn this.#activeSessionId();\n\t}\n\tset activeSessionId($$value) {\n\t\treturn this.#activeSessionId($$value);\n\t}\n\tsetEndpointState(id, patch) {\n\t\tconst next = {\n\t\t\t...this.byEndpoint.get(id) ?? emptyEndpointState(),\n\t\t\t...patch\n\t\t};\n\t\tthis.byEndpoint = new Map(this.byEndpoint).set(id, next);\n\t\treturn next;\n\t}\n\t/**\n\t* Handle an endpoint switch: load sessions, restore prior or pick\n\t* newest, fetch messages. Mid-generation switches are blocked.\n\t*/\n\tasync onEndpointChanged(id) {\n\t\tif (this.sending) {\n\t\t\tthis.error = \"Wait for the current reply to finish before switching.\";\n\t\t\treturn;\n\t\t}\n\t\tthis.activeEndpointId = id;\n\t\tthis.entries = [];\n\t\tthis.error = \"\";\n\t\tif (!this.byEndpoint.get(id)?.sessionsLoaded) await this.loadSessions();\n\t\tconst state = this.byEndpoint.get(id) ?? emptyEndpointState();\n\t\tconst sessions = state.sessions;\n\t\tconst previous = state.activeSessionId;\n\t\tlet nextSessionId = null;\n\t\tif (previous && sessions.some((s) => s.id === previous)) nextSessionId = previous;\n\t\telse if (sessions.length > 0) nextSessionId = sessions[0].id;\n\t\tif (nextSessionId !== state.activeSessionId) this.setEndpointState(id, { activeSessionId: nextSessionId });\n\t\tif (nextSessionId) await this.openSession(nextSessionId);\n\t\tthis._resubscribeEvents();\n\t}\n\t/**\n\t* Tear down any prior SSE subscription and open a new one. Handlers\n\t* dispatch session.created / updated / deleted into the per-endpoint\n\t* cache, mirroring out-of-band changes (CLI, other clients).\n\t*/\n\t_resubscribeEvents() {\n\t\tif (this._unsubscribeEvents) {\n\t\t\ttry {\n\t\t\t\tthis._unsubscribeEvents();\n\t\t\t} catch (err) {\n\t\t\t\tconsole.warn(\"[chat] failed to unsubscribe from previous event stream\", err);\n\t\t\t}\n\t\t\tthis._unsubscribeEvents = null;\n\t\t}\n\t\tthis.liveConnected = false;\n\t\tthis._unsubscribeEvents = subscribeSessionEvents({\n\t\t\tonCreated: (id) => {\n\t\t\t\tthis._onSessionCreated(id);\n\t\t\t},\n\t\t\tonUpdated: (id, info) => {\n\t\t\t\tthis._onSessionUpdated(id, info);\n\t\t\t},\n\t\t\tonDeleted: (id) => {\n\t\t\t\tthis._onSessionDeleted(id);\n\t\t\t},\n\t\t\tonEvent: (event) => {\n\t\t\t\tthis._onLiveEvent(event);\n\t\t\t},\n\t\t\tonConnect: () => {\n\t\t\t\tthis.liveConnected = true;\n\t\t\t},\n\t\t\tonDisconnect: () => {\n\t\t\t\tthis.liveConnected = false;\n\t\t\t\tif (this._pendingTurn) this._failPendingTurn(/* @__PURE__ */ new Error(\"Assistant event stream disconnected.\"));\n\t\t\t}\n\t\t});\n\t}\n\t_toRawEvent(event) {\n\t\treturn {\n\t\t\ttype: event.type,\n\t\t\tproperties: event.properties ?? {}\n\t\t};\n\t}\n\t_upsertPendingToolState(update) {\n\t\tconst id = update.callID || `${update.tool}:${this.pendingToolStates.length}`;\n\t\tconst next = {\n\t\t\tid,\n\t\t\tkind: \"tool\",\n\t\t\ttool: update.tool,\n\t\t\tstatus: update.status,\n\t\t\ttitle: update.title ?? update.tool,\n\t\t\tdetail: update.detail ?? \"\",\n\t\t\toutput: update.output ?? \"\",\n\t\t\terror: update.error ?? \"\",\n\t\t\tupdatedAt: Date.now()\n\t\t};\n\t\tif (!this.pendingToolStates.find((item) => item.id === id)) {\n\t\t\tthis.pendingToolStates = [...this.pendingToolStates, next];\n\t\t\treturn;\n\t\t}\n\t\tthis.pendingToolStates = this.pendingToolStates.map((item) => item.id === id ? {\n\t\t\t...item,\n\t\t\t...next\n\t\t} : item);\n\t}\n\t_upsertPendingStepState(update) {\n\t\tconst next = {\n\t\t\tid: update.id,\n\t\t\tkind: \"step\",\n\t\t\ttool: \"step\",\n\t\t\tstatus: update.status,\n\t\t\ttitle: update.title,\n\t\t\tdetail: update.detail ?? \"\",\n\t\t\toutput: \"\",\n\t\t\terror: \"\",\n\t\t\tupdatedAt: Date.now()\n\t\t};\n\t\tif (!this.pendingToolStates.find((item) => item.id === update.id)) {\n\t\t\tthis.pendingToolStates = [...this.pendingToolStates, next];\n\t\t\treturn;\n\t\t}\n\t\tthis.pendingToolStates = this.pendingToolStates.map((item) => item.id === update.id ? {\n\t\t\t...item,\n\t\t\t...next\n\t\t} : item);\n\t}\n\t_resetPendingRenderState() {\n\t\tthis.pendingAssistantText = \"\";\n\t\tthis.pendingToolStates = [];\n\t\tthis.pendingPermission = null;\n\t\tthis.pendingQuestion = null;\n\t}\n\t_appendAssistantReply(text, toolStates) {\n\t\tconst assistantEntry = {\n\t\t\tid: crypto.randomUUID(),\n\t\t\trole: \"assistant\",\n\t\t\ttext,\n\t\t\ttimestamp: Date.now(),\n\t\t\t...toolStates && toolStates.length > 0 ? { toolStates: [...toolStates] } : {}\n\t\t};\n\t\tthis.entries = [...this.entries, assistantEntry];\n\t}\n\t_clearPendingTurn() {\n\t\tconst pending = this._pendingTurn;\n\t\tif (!pending) return null;\n\t\tclearTimeout(pending.timeout);\n\t\tthis._pendingTurn = null;\n\t\treturn pending;\n\t}\n\t_finishPendingTurn(replyText) {\n\t\tconst pending = this._clearPendingTurn();\n\t\tif (!pending) return;\n\t\tconst text = (replyText ?? this.pendingAssistantText).trim() || \"(no response)\";\n\t\tif (this.pendingQuestion?.status === \"answered\" && this.pendingQuestion.message) {\n\t\t\tconst questionNote = {\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\ttype: \"note\",\n\t\t\t\tlabel: \"Question answered\",\n\t\t\t\ttext: this.pendingQuestion.message,\n\t\t\t\ttimestamp: Date.now()\n\t\t\t};\n\t\t\tthis.entries = [...this.entries, questionNote];\n\t\t}\n\t\tconst capturedToolStates = this.pendingToolStates.length > 0 ? [...this.pendingToolStates] : void 0;\n\t\tthis._appendAssistantReply(text, capturedToolStates);\n\t\tthis._resetPendingRenderState();\n\t\tthis._bumpSession(pending.sessionId);\n\t\tif (voiceState.ttsSupported && voiceState.ttsAutoEnabled && text && text !== \"(no response)\") speakText(text, {\n\t\t\tmode: \"chat_reply\",\n\t\t\tuserText: pending.userText,\n\t\t\tassistantText: text\n\t\t});\n\t\tnotifyAssistantReply(text === \"(no response)\" ? \"\" : text);\n\t\tpending.resolve();\n\t}\n\t_failPendingTurn(error) {\n\t\tconst pending = this._clearPendingTurn();\n\t\tif (!pending) return;\n\t\tthis._resetPendingRenderState();\n\t\tpending.reject(error);\n\t}\n\t_bumpSession(sessionId) {\n\t\tconst endpointId = this.activeEndpointId;\n\t\tconst prev = this.byEndpoint.get(endpointId);\n\t\tif (!prev) return;\n\t\tconst now = Date.now();\n\t\tconst existing = prev.sessions.find((s) => s.id === sessionId);\n\t\tconst updated = existing ? {\n\t\t\t...existing,\n\t\t\tupdatedAt: now\n\t\t} : {\n\t\t\tid: sessionId,\n\t\t\ttitle: \"\",\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t};\n\t\tconst rest = prev.sessions.filter((s) => s.id !== sessionId);\n\t\tthis.setEndpointState(endpointId, { sessions: [updated, ...rest] });\n\t}\n\t_onLiveEvent(event) {\n\t\tconst pending = this._pendingTurn;\n\t\tif (!pending) return;\n\t\tconst raw = this._toRawEvent(event);\n\t\tif (pending.endpointId !== this.activeEndpointId) return;\n\t\tconst snapshot = partSnapshotType(raw);\n\t\tif (snapshot?.type === \"reasoning\") pending.reasoningPartIds.add(snapshot.partID);\n\t\tconst textDelta = extractTextDelta(raw, pending.sessionId, pending.reasoningPartIds);\n\t\tif (textDelta) this.pendingAssistantText += textDelta;\n\t\tconst toolUpdate = extractToolUpdate(raw, pending.sessionId);\n\t\tif (toolUpdate) this._upsertPendingToolState(toolUpdate);\n\t\tconst stepUpdate = extractStepUpdate(raw, pending.sessionId);\n\t\tif (stepUpdate) this._upsertPendingStepState(stepUpdate);\n\t\tconst permissionAsk = extractPermissionAsk(raw, pending.sessionId);\n\t\tif (permissionAsk) this.pendingPermission = {\n\t\t\t...permissionAsk,\n\t\t\tstatus: \"pending\",\n\t\t\tdecision: \"\",\n\t\t\tmessage: \"\"\n\t\t};\n\t\tconst questionAsk = extractQuestionAsk(raw, pending.sessionId);\n\t\tif (questionAsk) this.pendingQuestion = {\n\t\t\t...questionAsk,\n\t\t\tstatus: \"pending\",\n\t\t\tanswers: questionAsk.questions.map(() => \"\"),\n\t\t\tmessage: \"\"\n\t\t};\n\t\tif (isSessionError(raw, pending.sessionId)) {\n\t\t\tthis._failPendingTurn(/* @__PURE__ */ new Error(\"Assistant session ended unexpectedly.\"));\n\t\t\treturn;\n\t\t}\n\t\tif (isTurnEnd(raw, pending.sessionId)) this._finishPendingTurn();\n\t}\n\t/**\n\t* A session was created out-of-band — prepend to the active endpoint's\n\t* list if not already known. Do not auto-switch to it: the user owns\n\t* navigation.\n\t*/\n\t_onSessionCreated(sessionId) {\n\t\tconst endpointId = this.activeEndpointId;\n\t\tconst prev = this.byEndpoint.get(endpointId) ?? emptyEndpointState();\n\t\tif (prev.sessions.some((s) => s.id === sessionId)) return;\n\t\tconst now = Date.now();\n\t\tconst summary = {\n\t\t\tid: sessionId,\n\t\t\ttitle: \"\",\n\t\t\tcreatedAt: now,\n\t\t\tupdatedAt: now\n\t\t};\n\t\tthis.setEndpointState(endpointId, {\n\t\t\tsessions: [summary, ...prev.sessions],\n\t\t\tsessionsLoaded: true\n\t\t});\n\t}\n\t/**\n\t* A session was touched out-of-band — patch its updatedAt (and title if\n\t* the event carries one) and re-sort. Do NOT refetch messages: if the\n\t* user is viewing this session, leave the in-memory entries alone for\n\t* v1. A follow-up phase can reconcile message deltas via the assistant\n\t* event stream.\n\t*/\n\t_onSessionUpdated(sessionId, info) {\n\t\tconst endpointId = this.activeEndpointId;\n\t\tconst prev = this.byEndpoint.get(endpointId);\n\t\tif (!prev) return;\n\t\tconst idx = prev.sessions.findIndex((s) => s.id === sessionId);\n\t\tif (idx === -1) return;\n\t\tconst existing = prev.sessions[idx];\n\t\tconst sessions = [{\n\t\t\t...existing,\n\t\t\ttitle: info?.title ?? existing.title,\n\t\t\tupdatedAt: info?.updatedAt ?? Date.now()\n\t\t}, ...prev.sessions.filter((s) => s.id !== sessionId)];\n\t\tsessions.sort((a, b) => b.updatedAt - a.updatedAt);\n\t\tthis.setEndpointState(endpointId, { sessions });\n\t}\n\t/**\n\t* A session was deleted out-of-band. Remove it from the list; if it was\n\t* the active session, fall back to the newest remaining session (or\n\t* null) and reload its messages.\n\t*/\n\tasync _onSessionDeleted(sessionId) {\n\t\tconst endpointId = this.activeEndpointId;\n\t\tconst prev = this.byEndpoint.get(endpointId);\n\t\tif (!prev) return;\n\t\tif (!prev.sessions.some((s) => s.id === sessionId)) return;\n\t\tconst sessions = prev.sessions.filter((s) => s.id !== sessionId);\n\t\tconst wasActive = prev.activeSessionId === sessionId;\n\t\tconst nextActive = wasActive ? sessions[0]?.id ?? null : prev.activeSessionId;\n\t\tthis.setEndpointState(endpointId, {\n\t\t\tsessions,\n\t\t\tactiveSessionId: nextActive\n\t\t});\n\t\tif (wasActive) {\n\t\t\tthis.entries = [];\n\t\t\tif (nextActive) await this.openSession(nextActive);\n\t\t}\n\t}\n\t/** Fetch the session list for the active endpoint. */\n\tasync loadSessions() {\n\t\tconst id = this.activeEndpointId;\n\t\tthis.setEndpointState(id, {\n\t\t\tsessionsLoading: true,\n\t\t\tsessionsError: \"\"\n\t\t});\n\t\ttry {\n\t\t\tconst sessions = await listSessions();\n\t\t\tthis.setEndpointState(id, {\n\t\t\t\tsessions,\n\t\t\t\tsessionsLoaded: true,\n\t\t\t\tsessionsLoading: false,\n\t\t\t\tsessionsError: \"\"\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tconst message = err.status === 503 || err.status === 502 ? \"Assistant is not reachable.\" : err.message ?? \"Failed to load sessions.\";\n\t\t\tthis.setEndpointState(id, {\n\t\t\t\tsessionsLoading: false,\n\t\t\t\tsessionsError: message\n\t\t\t});\n\t\t}\n\t}\n\t/** Select a session and render its messages. */\n\tasync openSession(sessionId) {\n\t\tif (this.sending) {\n\t\t\tthis.error = \"Wait for the current reply to finish before switching.\";\n\t\t\treturn;\n\t\t}\n\t\tconst endpointId = this.activeEndpointId;\n\t\tthis.setEndpointState(endpointId, { activeSessionId: sessionId });\n\t\tthis.entries = [];\n\t\tthis._resetPendingRenderState();\n\t\tthis.entriesLoading = true;\n\t\tthis.error = \"\";\n\t\ttry {\n\t\t\tconst messages = await getSessionMessages(sessionId);\n\t\t\tif (this.activeEndpointId === endpointId && this.byEndpoint.get(endpointId)?.activeSessionId === sessionId) this.entries = messages;\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tif (err.status === 503 || err.status === 502) this.error = \"Assistant is not reachable. Try reconnecting.\";\n\t\t\telse if (err.status === 401) this.error = \"Sign-in required.\";\n\t\t\telse this.error = err.message ?? \"Failed to load messages.\";\n\t\t} finally {\n\t\t\tthis.entriesLoading = false;\n\t\t}\n\t}\n\t/** Create a new session on the active endpoint and select it. */\n\tasync startNewSession() {\n\t\tif (this.sending) {\n\t\t\tthis.error = \"Wait for the current reply to finish before switching.\";\n\t\t\treturn null;\n\t\t}\n\t\tconst endpointId = this.activeEndpointId;\n\t\tthis.error = \"\";\n\t\ttry {\n\t\t\tconst { id } = await createSession();\n\t\t\tconst now = Date.now();\n\t\t\tconst summary = {\n\t\t\t\tid,\n\t\t\t\ttitle: \"\",\n\t\t\t\tcreatedAt: now,\n\t\t\t\tupdatedAt: now\n\t\t\t};\n\t\t\tconst prev = this.byEndpoint.get(endpointId) ?? emptyEndpointState();\n\t\t\tthis.setEndpointState(endpointId, {\n\t\t\t\tsessions: [summary, ...prev.sessions.filter((s) => s.id !== id)],\n\t\t\t\tsessionsLoaded: true,\n\t\t\t\tactiveSessionId: id\n\t\t\t});\n\t\t\tthis.entries = [];\n\t\t\tthis._resetPendingRenderState();\n\t\t\treturn id;\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tthis.error = `Failed to start session: ${err.message ?? \"unknown error\"}`;\n\t\t\treturn null;\n\t\t}\n\t}\n\t/**\n\t* Send a message in the active session. If none is active, create one\n\t* first (matches the \"zero sessions\" empty-state flow).\n\t*/\n\tasync send(text) {\n\t\tconst trimmed = text.trim();\n\t\tif (!trimmed) return;\n\t\tif (this.pendingQuestion && this.pendingQuestion.questions.length === 1 && this.sending) {\n\t\t\tawait this.answerQuestion(trimmed);\n\t\t\treturn;\n\t\t}\n\t\tif (this.pendingQuestion && this.sending) {\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...this.pendingQuestion,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tmessage: \"This question has multiple parts and must be answered with the provided controls.\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tif (this.sending) return;\n\t\tlet sessionId = this.activeSessionId;\n\t\tif (!sessionId) {\n\t\t\tsessionId = await this.startNewSession();\n\t\t\tif (!sessionId) return;\n\t\t}\n\t\tconst userEntry = {\n\t\t\tid: crypto.randomUUID(),\n\t\t\trole: \"user\",\n\t\t\ttext: trimmed,\n\t\t\ttimestamp: Date.now()\n\t\t};\n\t\tthis.entries = [...this.entries, userEntry];\n\t\tthis._resetPendingRenderState();\n\t\tthis.error = \"\";\n\t\tthis.sending = true;\n\t\tif (voiceState.ttsSupported && voiceState.ttsAutoEnabled) speakText(\"Working on it.\", {\n\t\t\tmode: \"chat_ack\",\n\t\t\tuserText: trimmed\n\t\t});\n\t\ttry {\n\t\t\tif (this._unsubscribeEvents && this.liveConnected) await new Promise((resolve, reject) => {\n\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\tthis._failPendingTurn(/* @__PURE__ */ new Error(\"Timed out waiting for the assistant response.\"));\n\t\t\t\t}, STREAM_TURN_TIMEOUT_MS);\n\t\t\t\tthis._pendingTurn = {\n\t\t\t\t\tendpointId: this.activeEndpointId,\n\t\t\t\t\tsessionId,\n\t\t\t\t\tuserText: trimmed,\n\t\t\t\t\treasoningPartIds: /* @__PURE__ */ new Set(),\n\t\t\t\t\tresolve,\n\t\t\t\t\treject,\n\t\t\t\t\ttimeout\n\t\t\t\t};\n\t\t\t\tstartChatMessageTurn(sessionId, trimmed).catch((error) => {\n\t\t\t\t\tthis._failPendingTurn(error instanceof Error ? error : new Error(String(error)));\n\t\t\t\t});\n\t\t\t});\n\t\t\telse {\n\t\t\t\tconst text = (await sendChatMessage(sessionId, trimmed)).parts.filter((p) => p.type === \"text\" && p.text).map((p) => p.text ?? \"\").join(\"\").trim() || \"(no response)\";\n\t\t\t\tconst capturedTools = this.pendingToolStates.length > 0 ? [...this.pendingToolStates] : void 0;\n\t\t\t\tthis._appendAssistantReply(text, capturedTools);\n\t\t\t\tthis._resetPendingRenderState();\n\t\t\t\tthis._bumpSession(sessionId);\n\t\t\t\tif (voiceState.ttsSupported && voiceState.ttsAutoEnabled && text !== \"(no response)\") speakText(text, {\n\t\t\t\t\tmode: \"chat_reply\",\n\t\t\t\t\tuserText: trimmed,\n\t\t\t\t\tassistantText: text\n\t\t\t\t});\n\t\t\t\tnotifyAssistantReply(text === \"(no response)\" ? \"\" : text);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tthis._resetPendingRenderState();\n\t\t\tif (err.status === 503 || err.status === 502) {\n\t\t\t\tthis.error = \"Assistant is not reachable. Try reconnecting.\";\n\t\t\t\tthis.setEndpointState(this.activeEndpointId, { activeSessionId: null });\n\t\t\t} else if (err.status === 401) this.error = \"Sign-in required.\";\n\t\t\telse this.error = err.message ?? \"Message failed.\";\n\t\t\tnotifyAssistantError();\n\t\t} finally {\n\t\t\tthis.sending = false;\n\t\t}\n\t}\n\tasync answerPermission(reply) {\n\t\tif (!this.pendingPermission || this.pendingPermission.status === \"submitting\") return;\n\t\tconst current = this.pendingPermission;\n\t\tthis.pendingPermission = {\n\t\t\t...current,\n\t\t\tstatus: \"submitting\",\n\t\t\tdecision: reply,\n\t\t\tmessage: \"\"\n\t\t};\n\t\ttry {\n\t\t\tawait replyChatPermission(current.requestID, reply);\n\t\t\tthis.pendingPermission = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"resolved\",\n\t\t\t\tdecision: reply,\n\t\t\t\tmessage: reply === \"once\" ? `Allowed ${current.permission} once. Waiting for the assistant to continue...` : reply === \"always\" ? `Always allowed future matching ${current.permission} requests.` : `Denied ${current.permission}. Waiting for the assistant to continue...`\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : \"Failed to record permission reply.\";\n\t\t\tthis.pendingPermission = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tdecision: reply,\n\t\t\t\tmessage\n\t\t\t};\n\t\t}\n\t}\n\tsetQuestionAnswer(index, answer) {\n\t\tif (!this.pendingQuestion) return;\n\t\tif (index < 0 || index >= this.pendingQuestion.questions.length) return;\n\t\tconst answers = [...this.pendingQuestion.answers];\n\t\tanswers[index] = answer;\n\t\tthis.pendingQuestion = {\n\t\t\t...this.pendingQuestion,\n\t\t\tanswers,\n\t\t\tmessage: \"\"\n\t\t};\n\t}\n\tasync answerQuestion(answer) {\n\t\tif (!this.pendingQuestion || this.pendingQuestion.status === \"submitting\") return;\n\t\tconst current = this.pendingQuestion;\n\t\tconst answers = current.questions.length === 1 && typeof answer === \"string\" ? [answer.trim()] : current.answers.map((item) => item.trim());\n\t\tif (answers.some((item) => !item)) {\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tmessage: \"Answer every question before submitting.\"\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\t\tthis.pendingQuestion = {\n\t\t\t...current,\n\t\t\tstatus: \"submitting\",\n\t\t\tanswers,\n\t\t\tmessage: \"\"\n\t\t};\n\t\ttry {\n\t\t\tawait replyChatQuestion(current.requestID, answers.map((item) => [item]));\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"answered\",\n\t\t\t\tanswers,\n\t\t\t\tmessage: \"Answer sent.\"\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : \"Failed to send answer.\";\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tanswers,\n\t\t\t\tmessage\n\t\t\t};\n\t\t}\n\t}\n\tasync rejectQuestion() {\n\t\tif (!this.pendingQuestion || this.pendingQuestion.status === \"submitting\") return;\n\t\tconst current = this.pendingQuestion;\n\t\tthis.pendingQuestion = {\n\t\t\t...current,\n\t\t\tstatus: \"submitting\",\n\t\t\tmessage: \"\"\n\t\t};\n\t\ttry {\n\t\t\tawait rejectChatQuestion(current.requestID);\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"rejected\",\n\t\t\t\tmessage: \"Question declined.\"\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : \"Failed to reject question.\";\n\t\t\tthis.pendingQuestion = {\n\t\t\t\t...current,\n\t\t\t\tstatus: \"error\",\n\t\t\t\tmessage\n\t\t\t};\n\t\t}\n\t}\n\treset() {\n\t\tstopSpeaking();\n\t\tthis._clearPendingTurn();\n\t\tthis.entries = [];\n\t\tthis.error = \"\";\n\t\tthis._resetPendingRenderState();\n\t\tthis.byEndpoint = /* @__PURE__ */ new Map();\n\t\tif (this._unsubscribeEvents) {\n\t\t\ttry {\n\t\t\t\tthis._unsubscribeEvents();\n\t\t\t} catch (err) {\n\t\t\t\tconsole.warn(\"[chat] failed to unsubscribe from event stream during reset\", err);\n\t\t\t}\n\t\t\tthis._unsubscribeEvents = null;\n\t\t}\n\t\tthis.liveConnected = false;\n\t}\n};\nvar chat = new ChatService();\n//#endregion\n//#region src/lib/chat/navigation.ts\nfunction currentChatSessionId() {\n\treturn chat.activeSessionId;\n}\nfunction buildAdvancedPath(sessionId) {\n\tconst params = new URLSearchParams();\n\tif (sessionId) params.set(\"session\", sessionId);\n\tconst query = params.toString();\n\treturn query ? `/advanced?${query}` : \"/advanced\";\n}\nfunction buildChatPath(sessionId, options) {\n\tconst params = new URLSearchParams();\n\tif (sessionId) params.set(\"session\", sessionId);\n\tif (options?.newChat) params.set(\"new\", \"1\");\n\tconst query = params.toString();\n\treturn query ? `/chat?${query}` : \"/chat\";\n}\n//#endregion\n//#region src/lib/endpoints-state.svelte.ts\nvar EndpointsService = class {\n\tendpoints = [];\n\tactiveId = \"default\";\n\tloading = false;\n\tloaded = false;\n\terror = \"\";\n\t#active = derived(() => this.endpoints.find((e) => e.id === this.activeId) ?? this.endpoints[0] ?? null);\n\tget active() {\n\t\treturn this.#active();\n\t}\n\tset active($$value) {\n\t\treturn this.#active($$value);\n\t}\n\tasync load(force = false) {\n\t\tif (this.loading) return;\n\t\tif (this.loaded && !force) return;\n\t\tthis.loading = true;\n\t\tthis.error = \"\";\n\t\ttry {\n\t\t\tconst { endpoints, activeId } = await fetchEndpoints();\n\t\t\tthis.endpoints = endpoints;\n\t\t\tthis.activeId = activeId;\n\t\t\tthis.loaded = true;\n\t\t} catch (e) {\n\t\t\tconst err = e;\n\t\t\tif (err.status !== 401) this.error = err.message ?? \"Failed to load endpoints\";\n\t\t} finally {\n\t\t\tthis.loading = false;\n\t\t}\n\t}\n\tasync activate(id) {\n\t\tif (id === this.activeId) return;\n\t\tif (chat.sending) {\n\t\t\tthis.error = \"Wait for the current reply to finish before switching.\";\n\t\t\tthrow new Error(this.error);\n\t\t}\n\t\tconst previous = this.activeId;\n\t\tthis.activeId = id;\n\t\ttry {\n\t\t\tawait setActiveEndpoint(id);\n\t\t\tawait chat.onEndpointChanged(id);\n\t\t} catch (e) {\n\t\t\tthis.activeId = previous;\n\t\t\tconst err = e;\n\t\t\tthis.error = err.message ?? \"Failed to switch endpoint\";\n\t\t\tthrow e;\n\t\t}\n\t}\n};\nvar endpointsService = new EndpointsService();\n//#endregion\n//#region src/lib/assistant-endpoint.ts\nfunction isLocalAssistantUrl(url) {\n\tif (!url) return true;\n\ttry {\n\t\tconst host = new URL(url).hostname;\n\t\treturn host === \"localhost\" || host === \"127.0.0.1\" || host === \"::1\" || host === \"host.docker.internal\";\n\t} catch {\n\t\treturn true;\n\t}\n}\n//#endregion\n//#region src/lib/session-title.ts\nvar DEFAULT_TITLE_RE = /^New session - (\\d{4}-\\d{2}-\\d{2}T[0-9:.]+Z?)$/;\n/** Resolve a session's display title. */\nfunction resolveSessionTitle(title) {\n\tconst trimmed = (title ?? \"\").trim();\n\tif (!trimmed) return \"Untitled session\";\n\tconst match = DEFAULT_TITLE_RE.exec(trimmed);\n\tif (match) {\n\t\tconst ts = Date.parse(match[1]);\n\t\tif (!Number.isNaN(ts)) return formatDateTime(ts);\n\t}\n\treturn trimmed;\n}\n//#endregion\n//#region src/lib/components/chat/SessionTitle.svelte\nfunction SessionTitle($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { title } = $$props;\n\t\tconst display = derived(() => resolveSessionTitle(title));\n\t\t$$renderer.push(`<!---->${escape_html(display())}`);\n\t});\n}\n//#endregion\n//#region src/lib/components/chat/SessionList.svelte\nfunction SessionList($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/** Called after a session is opened or started (e.g. to close the drawer). */\n\t\tlet { onChosen } = $$props;\n\t\tconst SESSION_LIST_CAP = 50;\n\t\tconst active = derived(() => endpointsService.active);\n\t\tconst endpointState = derived(() => active() ? chat.byEndpoint.get(active().id) ?? null : null);\n\t\tconst sessions = derived(() => endpointState()?.sessions ?? []);\n\t\tconst loading = derived(() => endpointState()?.sessionsLoading ?? false);\n\t\tconst error = derived(() => endpointState()?.sessionsError ?? \"\");\n\t\tconst activeSessionId = derived(() => chat.activeSessionId);\n\t\tconst visibleSessions = derived(() => sessions().slice(0, SESSION_LIST_CAP));\n\t\tconst overflowCount = derived(() => Math.max(0, sessions().length - SESSION_LIST_CAP));\n\t\t$$renderer.push(`<div class=\"session-body svelte-1o6rxhb\">`);\n\t\tif (chat.sending) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"notice svelte-1o6rxhb\">Wait for the current reply to finish before switching.</div>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (loading()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"empty svelte-1o6rxhb\">`);\n\t\t\tSpinner($$renderer, { size: 12 });\n\t\t\t$$renderer.push(`<!----><span>Loading sessions…</span></div>`);\n\t\t} else if (error()) {\n\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t$$renderer.push(`<div class=\"list-error svelte-1o6rxhb\"><span class=\"svelte-1o6rxhb\">${escape_html(error())}</span> <button type=\"button\" class=\"retry-btn svelte-1o6rxhb\">Retry</button></div>`);\n\t\t} else if (sessions().length === 0) {\n\t\t\t$$renderer.push(\"<!--[2-->\");\n\t\t\t$$renderer.push(`<div class=\"empty svelte-1o6rxhb\">No sessions yet. Start the first one.</div>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<div class=\"session-list svelte-1o6rxhb\" role=\"group\" aria-label=\"Sessions\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(visibleSessions());\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet s = each_array[$$index];\n\t\t\t\t$$renderer.push(`<button type=\"button\"${attr_class(\"list-item session-item svelte-1o6rxhb\", void 0, { \"active\": s.id === activeSessionId() })}${attr(\"aria-current\", s.id === activeSessionId() ? \"true\" : void 0)}${attr(\"disabled\", chat.sending, true)}${attr(\"title\", formatDateTime(s.updatedAt))}><span class=\"item-text svelte-1o6rxhb\"><span class=\"item-label svelte-1o6rxhb\">`);\n\t\t\t\tSessionTitle($$renderer, { title: s.title });\n\t\t\t\t$$renderer.push(`<!---->`);\n\t\t\t\tif (s.id === activeSessionId()) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<span class=\"sr-only svelte-1o6rxhb\">(current)</span>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></span> <span class=\"item-meta svelte-1o6rxhb\">${escape_html(formatRelativeTime(s.updatedAt))}</span></span></button>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div> `);\n\t\t\tif (overflowCount() > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"show-all svelte-1o6rxhb\">Show all (${escape_html(overflowCount())} more)</button>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--> <div class=\"divider svelte-1o6rxhb\"></div> <button type=\"button\" class=\"list-item new-btn svelte-1o6rxhb\"${attr(\"disabled\", chat.sending, true)}><span class=\"check svelte-1o6rxhb\" aria-hidden=\"true\">+</span> <span class=\"item-text svelte-1o6rxhb\"><span class=\"item-label svelte-1o6rxhb\">New session</span></span></button></div>`);\n\t});\n}\n//#endregion\nexport { buildAdvancedPath as a, chat as c, subscribeSessionEvents as d, extractStepUpdate as f, formatTime as h, endpointsService as i, desktopNotifyEnabled as l, advancedModeService as m, resolveSessionTitle as n, buildChatPath as o, extractToolUpdate as p, isLocalAssistantUrl as r, currentChatSessionId as s, SessionList as t, desktopReplyPreviewEnabled as u };\n"],"names":[],"mappings":"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"}
|