@openpalm/ui 0.13.0-beta.7 → 0.13.0-beta.8
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/README.md +3 -2
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/assets/7.DHMKw-HL.css +1 -0
- package/build/client/_app/immutable/assets/7.DHMKw-HL.css.br +0 -0
- package/build/client/_app/immutable/assets/7.DHMKw-HL.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.CmCaAuiy.css +1 -0
- package/build/client/_app/immutable/assets/9.CmCaAuiy.css.br +0 -0
- package/build/client/_app/immutable/assets/9.CmCaAuiy.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{BE_4J5sS.js → B9uMOgDZ.js} +2 -2
- package/build/client/_app/immutable/chunks/B9uMOgDZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B9uMOgDZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwKrb5qD.js +1 -0
- package/build/client/_app/immutable/chunks/BwKrb5qD.js.br +2 -0
- package/build/client/_app/immutable/chunks/BwKrb5qD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{mNzUu332.js → C092q_Hl.js} +1 -1
- package/build/client/_app/immutable/chunks/C092q_Hl.js.br +0 -0
- package/build/client/_app/immutable/chunks/C092q_Hl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7g46Pjm.js +1 -0
- package/build/client/_app/immutable/chunks/C7g46Pjm.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7g46Pjm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CuKFR3Qo.js → CR3nChHO.js} +2 -2
- package/build/client/_app/immutable/chunks/CR3nChHO.js.br +0 -0
- package/build/client/_app/immutable/chunks/CR3nChHO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Clt9pCG1.js → CXv_deBx.js} +1 -1
- package/build/client/_app/immutable/chunks/CXv_deBx.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXv_deBx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-DB6zTo.js +9 -0
- package/build/client/_app/immutable/chunks/D-DB6zTo.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-DB6zTo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DDSqq1hR.js +1 -0
- package/build/client/_app/immutable/chunks/DDSqq1hR.js.br +0 -0
- package/build/client/_app/immutable/chunks/DDSqq1hR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/d1cxvUgj.js +1 -0
- package/build/client/_app/immutable/chunks/d1cxvUgj.js.br +0 -0
- package/build/client/_app/immutable/chunks/d1cxvUgj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BdIq5WIo.js → qrqTdjh7.js} +1 -1
- package/build/client/_app/immutable/chunks/qrqTdjh7.js.br +0 -0
- package/build/client/_app/immutable/chunks/qrqTdjh7.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DKG33-gU.js → app.CXHi3StM.js} +2 -2
- package/build/client/_app/immutable/entry/app.CXHi3StM.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CXHi3StM.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.eS_-xLIC.js +1 -0
- package/build/client/_app/immutable/entry/start.eS_-xLIC.js.br +1 -0
- package/build/client/_app/immutable/entry/start.eS_-xLIC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.eA5H3idZ.js → 0.Bfv0aXoG.js} +1 -1
- package/build/client/_app/immutable/nodes/0.Bfv0aXoG.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Bfv0aXoG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.CvKFymDh.js → 1.B8Ebge5I.js} +1 -1
- package/build/client/_app/immutable/nodes/1.B8Ebge5I.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.B8Ebge5I.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{10.DFMf8WUQ.js → 10.Di4b61Rb.js} +1 -1
- package/build/client/_app/immutable/nodes/10.Di4b61Rb.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.Di4b61Rb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.CUlazdDv.js +8 -0
- package/build/client/_app/immutable/nodes/11.CUlazdDv.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.CUlazdDv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.DQOL0qY_.js +1 -0
- package/build/client/_app/immutable/nodes/4.DQOL0qY_.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DQOL0qY_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.bgdUYUlr.js → 5.BGqmDWpO.js} +1 -1
- package/build/client/_app/immutable/nodes/5.BGqmDWpO.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BGqmDWpO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js +2 -0
- package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Cf2kRGl-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CvaILUo5.js +16 -0
- package/build/client/_app/immutable/nodes/7.CvaILUo5.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CvaILUo5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DvOR66Q0.js +128 -0
- package/build/client/_app/immutable/nodes/9.DvOR66Q0.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DvOR66Q0.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-D9FIO-Bk.js → 0-D8UAPThv.js} +12 -6
- package/build/server/chunks/0-D8UAPThv.js.map +1 -0
- package/build/server/chunks/1-bS23Eg-d.js +9 -0
- package/build/server/chunks/{1-ItPJxTHP.js.map → 1-bS23Eg-d.js.map} +1 -1
- package/build/server/chunks/{10-B4fDiATl.js → 10-C5TUqG1t.js} +3 -3
- package/build/server/chunks/{10-B4fDiATl.js.map → 10-C5TUqG1t.js.map} +1 -1
- package/build/server/chunks/11-DSjZgp33.js +9 -0
- package/build/server/chunks/11-DSjZgp33.js.map +1 -0
- package/build/server/chunks/{3-DpC38K23.js → 3-D0iTJ9v2.js} +6 -6
- package/build/server/chunks/{3-DpC38K23.js.map → 3-D0iTJ9v2.js.map} +1 -1
- package/build/server/chunks/{4-DrJ64j1x.js → 4-CHJRF8qs.js} +3 -3
- package/build/server/chunks/{4-DrJ64j1x.js.map → 4-CHJRF8qs.js.map} +1 -1
- package/build/server/chunks/{5-BxzwX0rY.js → 5-CwCiwnFt.js} +3 -3
- package/build/server/chunks/{5-BxzwX0rY.js.map → 5-CwCiwnFt.js.map} +1 -1
- package/build/server/chunks/6-raswytzE.js +9 -0
- package/build/server/chunks/{6-DxXeT1e3.js.map → 6-raswytzE.js.map} +1 -1
- package/build/server/chunks/7-NC4-KlW9.js +9 -0
- package/build/server/chunks/7-NC4-KlW9.js.map +1 -0
- package/build/server/chunks/9-rIsHxfiY.js +9 -0
- package/build/server/chunks/9-rIsHxfiY.js.map +1 -0
- package/build/server/chunks/{ChatNavbar-CJYo_Hbc.js → ChatNavbar-DqdxDR5U.js} +9 -9
- package/build/server/chunks/{ChatNavbar-CJYo_Hbc.js.map → ChatNavbar-DqdxDR5U.js.map} +1 -1
- package/build/server/chunks/IconMic-CZN60P6B.js +10 -0
- package/build/server/chunks/IconMic-CZN60P6B.js.map +1 -0
- package/build/server/chunks/{IconServer-DkywyVFu.js → IconServer-BwcRjcsS.js} +4 -4
- package/build/server/chunks/{IconServer-DkywyVFu.js.map → IconServer-BwcRjcsS.js.map} +1 -1
- package/build/server/chunks/{IconSoundOn-DoAiK-qp.js → IconSoundOn-DTZuBn2-.js} +4 -4
- package/build/server/chunks/{IconSoundOn-DoAiK-qp.js.map → IconSoundOn-DTZuBn2-.js.map} +1 -1
- package/build/server/chunks/{IconStop-DKVpXPKq.js → IconStop-BxUfqTaV.js} +114 -847
- package/build/server/chunks/IconStop-BxUfqTaV.js.map +1 -0
- package/build/server/chunks/{QuestionCard-BCfoxMiS.js → QuestionCard-DOLuSSbI.js} +2 -2
- package/build/server/chunks/{QuestionCard-BCfoxMiS.js.map → QuestionCard-DOLuSSbI.js.map} +1 -1
- package/build/server/chunks/Spinner-2WZW6r_I.js +12 -0
- package/build/server/chunks/Spinner-2WZW6r_I.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DArOWGd3.js → _layout.svelte-CBBWJ3m3.js} +2 -3
- package/build/server/chunks/{_layout.svelte-DArOWGd3.js.map → _layout.svelte-CBBWJ3m3.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-S90xJHRa.js → _page.svelte-CYzntFY4.js} +10 -10
- package/build/server/chunks/{_page.svelte-S90xJHRa.js.map → _page.svelte-CYzntFY4.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CGEtuNmS.js → _page.svelte-CysG6Te2.js} +13 -13
- package/build/server/chunks/_page.svelte-CysG6Te2.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Dpf94Jor.js → _page.svelte-D-_cPU8e.js} +3 -3
- package/build/server/chunks/{_page.svelte-Dpf94Jor.js.map → _page.svelte-D-_cPU8e.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-qxgG6hsh.js → _page.svelte-D4hOWjfm.js} +61 -351
- package/build/server/chunks/_page.svelte-D4hOWjfm.js.map +1 -0
- package/build/server/chunks/_page.svelte-D9au75wl.js +183 -0
- package/build/server/chunks/_page.svelte-D9au75wl.js.map +1 -0
- package/build/server/chunks/{_page.svelte-FOm-OMQe.js → _page.svelte-DjldYxQn.js} +25 -133
- package/build/server/chunks/_page.svelte-DjldYxQn.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B2cX_j9w.js → _page.svelte-DsJgu4mW.js} +3 -3
- package/build/server/chunks/{_page.svelte-B2cX_j9w.js.map → _page.svelte-DsJgu4mW.js.map} +1 -1
- package/build/server/chunks/_server.ts-1qbl_1NY.js +87 -0
- package/build/server/chunks/_server.ts-1qbl_1NY.js.map +1 -0
- package/build/server/chunks/{_server.ts-DQI9hYcE.js → _server.ts-2VPdIZFH.js} +6 -6
- package/build/server/chunks/{_server.ts-DQI9hYcE.js.map → _server.ts-2VPdIZFH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C5T_Zuoy.js → _server.ts-68MuZYx_.js} +7 -7
- package/build/server/chunks/{_server.ts-C5T_Zuoy.js.map → _server.ts-68MuZYx_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cph8nHvr.js → _server.ts-8AfutA1j.js} +6 -6
- package/build/server/chunks/{_server.ts-Cph8nHvr.js.map → _server.ts-8AfutA1j.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ZKEBn-qW.js → _server.ts-B-5y1hA4.js} +8 -8
- package/build/server/chunks/{_server.ts-ZKEBn-qW.js.map → _server.ts-B-5y1hA4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cjo35hc1.js → _server.ts-B1CunPF7.js} +6 -6
- package/build/server/chunks/{_server.ts-Cjo35hc1.js.map → _server.ts-B1CunPF7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYLc6Os9.js → _server.ts-B1KGSkdl.js} +6 -6
- package/build/server/chunks/{_server.ts-DYLc6Os9.js.map → _server.ts-B1KGSkdl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B_7lGoo_.js → _server.ts-B2NALEcR.js} +6 -6
- package/build/server/chunks/{_server.ts-B_7lGoo_.js.map → _server.ts-B2NALEcR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-i9TaUbWr.js → _server.ts-B2iUBxXh.js} +8 -8
- package/build/server/chunks/{_server.ts-i9TaUbWr.js.map → _server.ts-B2iUBxXh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-IEM_8o6U.js → _server.ts-BN8EkPAZ.js} +7 -7
- package/build/server/chunks/{_server.ts-IEM_8o6U.js.map → _server.ts-BN8EkPAZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-N_mH0t0f.js → _server.ts-BQJfEfl9.js} +6 -6
- package/build/server/chunks/{_server.ts-N_mH0t0f.js.map → _server.ts-BQJfEfl9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4tBc7fm.js → _server.ts-BQSMacks.js} +9 -9
- package/build/server/chunks/{_server.ts-C4tBc7fm.js.map → _server.ts-BQSMacks.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vJBq3idp.js → _server.ts-BYt64wi5.js} +2 -2
- package/build/server/chunks/{_server.ts-vJBq3idp.js.map → _server.ts-BYt64wi5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWMJRzwx.js → _server.ts-Ba0MJSs9.js} +6 -6
- package/build/server/chunks/{_server.ts-BWMJRzwx.js.map → _server.ts-Ba0MJSs9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B1vQkdVA.js → _server.ts-BdIM_pWg.js} +8 -8
- package/build/server/chunks/{_server.ts-B1vQkdVA.js.map → _server.ts-BdIM_pWg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYg52Wyj.js → _server.ts-BfxTJHa-.js} +6 -6
- package/build/server/chunks/{_server.ts-DYg52Wyj.js.map → _server.ts-BfxTJHa-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CMfz71Do.js → _server.ts-BiVyFRNv.js} +6 -6
- package/build/server/chunks/{_server.ts-CMfz71Do.js.map → _server.ts-BiVyFRNv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vlaPk3to.js → _server.ts-BrgEQhDo.js} +6 -6
- package/build/server/chunks/{_server.ts-vlaPk3to.js.map → _server.ts-BrgEQhDo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BKnCIXe5.js → _server.ts-BtZN_8lV.js} +6 -6
- package/build/server/chunks/{_server.ts-BKnCIXe5.js.map → _server.ts-BtZN_8lV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BhA9ywuA.js → _server.ts-Bx0PXf1w.js} +6 -6
- package/build/server/chunks/{_server.ts-BhA9ywuA.js.map → _server.ts-Bx0PXf1w.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CkVeEW46.js → _server.ts-Byaj9iKd.js} +6 -6
- package/build/server/chunks/{_server.ts-CkVeEW46.js.map → _server.ts-Byaj9iKd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-oSGbQw4A.js → _server.ts-C1kDLq6m.js} +6 -6
- package/build/server/chunks/{_server.ts-oSGbQw4A.js.map → _server.ts-C1kDLq6m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CLMsuxkK.js → _server.ts-C28zIW49.js} +6 -6
- package/build/server/chunks/{_server.ts-CLMsuxkK.js.map → _server.ts-C28zIW49.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BHaFrgm9.js → _server.ts-C2F80x6V.js} +7 -7
- package/build/server/chunks/{_server.ts-BHaFrgm9.js.map → _server.ts-C2F80x6V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BOn4TCRw.js → _server.ts-C70sKEjH.js} +7 -7
- package/build/server/chunks/{_server.ts-BOn4TCRw.js.map → _server.ts-C70sKEjH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CYu5XSM8.js → _server.ts-C754EzJA.js} +6 -6
- package/build/server/chunks/{_server.ts-CYu5XSM8.js.map → _server.ts-C754EzJA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B7319d6O.js → _server.ts-C8n83Xl1.js} +6 -6
- package/build/server/chunks/{_server.ts-B7319d6O.js.map → _server.ts-C8n83Xl1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DQTJ_bFp.js → _server.ts-CC6Bt-9t.js} +7 -7
- package/build/server/chunks/{_server.ts-DQTJ_bFp.js.map → _server.ts-CC6Bt-9t.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Y5pBzFz4.js → _server.ts-CJ76gcOX.js} +6 -6
- package/build/server/chunks/{_server.ts-Y5pBzFz4.js.map → _server.ts-CJ76gcOX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3iKXyUo.js → _server.ts-CMW6wbwP.js} +6 -6
- package/build/server/chunks/{_server.ts-B3iKXyUo.js.map → _server.ts-CMW6wbwP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pf6WrGLo.js → _server.ts-CNjG4x1a.js} +6 -6
- package/build/server/chunks/{_server.ts-pf6WrGLo.js.map → _server.ts-CNjG4x1a.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhcBS9KQ.js → _server.ts-CRl7GqvU.js} +6 -6
- package/build/server/chunks/{_server.ts-DhcBS9KQ.js.map → _server.ts-CRl7GqvU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D6-C5ctd.js → _server.ts-CUBWjRlp.js} +7 -7
- package/build/server/chunks/{_server.ts-D6-C5ctd.js.map → _server.ts-CUBWjRlp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-uAgtQC.js → _server.ts-CYoKjlbj.js} +6 -6
- package/build/server/chunks/{_server.ts-B-uAgtQC.js.map → _server.ts-CYoKjlbj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cu48eVwM.js → _server.ts-CafJDVBQ.js} +2 -2
- package/build/server/chunks/{_server.ts-Cu48eVwM.js.map → _server.ts-CafJDVBQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CvjVUcFR.js → _server.ts-Cd9hDiKk.js} +6 -6
- package/build/server/chunks/{_server.ts-CvjVUcFR.js.map → _server.ts-Cd9hDiKk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BgL3_hTS.js → _server.ts-CgQfVR3g.js} +7 -7
- package/build/server/chunks/{_server.ts-BgL3_hTS.js.map → _server.ts-CgQfVR3g.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BtZ9-ZYu.js → _server.ts-CilbVIRO.js} +2 -2
- package/build/server/chunks/{_server.ts-BtZ9-ZYu.js.map → _server.ts-CilbVIRO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CSBd_6yC.js → _server.ts-Ck25Xm32.js} +7 -7
- package/build/server/chunks/{_server.ts-CSBd_6yC.js.map → _server.ts-Ck25Xm32.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvUVX3X0.js → _server.ts-Cp-_qWC_.js} +7 -7
- package/build/server/chunks/{_server.ts-DvUVX3X0.js.map → _server.ts-Cp-_qWC_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-7pcCO8Pf.js → _server.ts-CuEFmJ07.js} +7 -7
- package/build/server/chunks/{_server.ts-7pcCO8Pf.js.map → _server.ts-CuEFmJ07.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DR0kmbl9.js → _server.ts-D5vc4lGC.js} +6 -6
- package/build/server/chunks/{_server.ts-DR0kmbl9.js.map → _server.ts-D5vc4lGC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtkA_Ld0.js → _server.ts-DDLE66QT.js} +7 -7
- package/build/server/chunks/{_server.ts-CtkA_Ld0.js.map → _server.ts-DDLE66QT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xQhNjF_X.js → _server.ts-DEF1ChPD.js} +6 -6
- package/build/server/chunks/{_server.ts-xQhNjF_X.js.map → _server.ts-DEF1ChPD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BH8Y1mmb.js → _server.ts-DHUtPRWK.js} +4 -4
- package/build/server/chunks/{_server.ts-BH8Y1mmb.js.map → _server.ts-DHUtPRWK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B0MK-ynu.js → _server.ts-DHoTyKXL.js} +14 -10
- package/build/server/chunks/_server.ts-DHoTyKXL.js.map +1 -0
- package/build/server/chunks/{_server.ts-BaEUZaLH.js → _server.ts-DSB9Fzwa.js} +4 -4
- package/build/server/chunks/{_server.ts-BaEUZaLH.js.map → _server.ts-DSB9Fzwa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dc1s3sLN.js → _server.ts-DW36Vbiq.js} +6 -6
- package/build/server/chunks/{_server.ts-Dc1s3sLN.js.map → _server.ts-DW36Vbiq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-v3cF2xWi.js → _server.ts-DWG4CKWG.js} +6 -6
- package/build/server/chunks/{_server.ts-v3cF2xWi.js.map → _server.ts-DWG4CKWG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CCTZbI7L.js → _server.ts-DXxQIT2o.js} +7 -7
- package/build/server/chunks/{_server.ts-CCTZbI7L.js.map → _server.ts-DXxQIT2o.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CSYdjKAH.js → _server.ts-Da8_J1a4.js} +7 -7
- package/build/server/chunks/{_server.ts-CSYdjKAH.js.map → _server.ts-Da8_J1a4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DeuURP8u.js → _server.ts-DcH5edss.js} +6 -6
- package/build/server/chunks/{_server.ts-DeuURP8u.js.map → _server.ts-DcH5edss.js.map} +1 -1
- package/build/server/chunks/{_server.ts-iXjPBf7J.js → _server.ts-DiHLYNbQ.js} +7 -7
- package/build/server/chunks/{_server.ts-iXjPBf7J.js.map → _server.ts-DiHLYNbQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-fenM6Iln.js → _server.ts-Dio2CslE.js} +7 -7
- package/build/server/chunks/_server.ts-Dio2CslE.js.map +1 -0
- package/build/server/chunks/{_server.ts-DcpOpD6s.js → _server.ts-Dlt1obi9.js} +6 -6
- package/build/server/chunks/{_server.ts-DcpOpD6s.js.map → _server.ts-Dlt1obi9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CEUFtmpE.js → _server.ts-Ds0U_zKR.js} +7 -7
- package/build/server/chunks/{_server.ts-CEUFtmpE.js.map → _server.ts-Ds0U_zKR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DlKT-RbM.js → _server.ts-DsVsFcf8.js} +15 -10
- package/build/server/chunks/_server.ts-DsVsFcf8.js.map +1 -0
- package/build/server/chunks/{_server.ts-BCpQ8Qdr.js → _server.ts-Du3PIYf8.js} +6 -6
- package/build/server/chunks/{_server.ts-BCpQ8Qdr.js.map → _server.ts-Du3PIYf8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-3bBG0DBN.js → _server.ts-Duzj6Wm_.js} +6 -18
- package/build/server/chunks/_server.ts-Duzj6Wm_.js.map +1 -0
- package/build/server/chunks/{_server.ts-BGTw6w-C.js → _server.ts-DyaoaWIS.js} +7 -7
- package/build/server/chunks/{_server.ts-BGTw6w-C.js.map → _server.ts-DyaoaWIS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CxH-7UEc.js → _server.ts-EYtSo6HZ.js} +6 -6
- package/build/server/chunks/{_server.ts-CxH-7UEc.js.map → _server.ts-EYtSo6HZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BgOS_sDK.js → _server.ts-JvnkkOhX.js} +7 -7
- package/build/server/chunks/{_server.ts-BgOS_sDK.js.map → _server.ts-JvnkkOhX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzV6EO26.js → _server.ts-N0u5ruZe.js} +6 -6
- package/build/server/chunks/{_server.ts-DzV6EO26.js.map → _server.ts-N0u5ruZe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D0XsGdhx.js → _server.ts-NdCztCBP.js} +6 -6
- package/build/server/chunks/{_server.ts-D0XsGdhx.js.map → _server.ts-NdCztCBP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CFKGqT4L.js → _server.ts-OGUKP5Tu.js} +6 -6
- package/build/server/chunks/{_server.ts-CFKGqT4L.js.map → _server.ts-OGUKP5Tu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DuO_GU5A.js → _server.ts-Q1KEyBck.js} +6 -6
- package/build/server/chunks/{_server.ts-DuO_GU5A.js.map → _server.ts-Q1KEyBck.js.map} +1 -1
- package/build/server/chunks/{_server.ts-z5C3PAAB.js → _server.ts-TIRuudir.js} +2 -2
- package/build/server/chunks/{_server.ts-z5C3PAAB.js.map → _server.ts-TIRuudir.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DXwG4w1_.js → _server.ts-WTZtC5sX.js} +10 -4
- package/build/server/chunks/_server.ts-WTZtC5sX.js.map +1 -0
- package/build/server/chunks/{_server.ts-DR_9WXW4.js → _server.ts-WsWoJE5V.js} +8 -8
- package/build/server/chunks/{_server.ts-DR_9WXW4.js.map → _server.ts-WsWoJE5V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CjeMP5Vf.js → _server.ts-X8GX4ChJ.js} +6 -6
- package/build/server/chunks/{_server.ts-CjeMP5Vf.js.map → _server.ts-X8GX4ChJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts--F22byeV.js → _server.ts-XIc2PDRd.js} +7 -7
- package/build/server/chunks/{_server.ts--F22byeV.js.map → _server.ts-XIc2PDRd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQeqwCqj.js → _server.ts-YsFgaaVd.js} +6 -6
- package/build/server/chunks/{_server.ts-CQeqwCqj.js.map → _server.ts-YsFgaaVd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CpyfojV9.js → _server.ts-bOcb37D9.js} +7 -7
- package/build/server/chunks/{_server.ts-CpyfojV9.js.map → _server.ts-bOcb37D9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-yZ8CGJNE.js → _server.ts-e_8LykNe.js} +7 -7
- package/build/server/chunks/{_server.ts-yZ8CGJNE.js.map → _server.ts-e_8LykNe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CY-GNKZT.js → _server.ts-hLimfy8i.js} +6 -6
- package/build/server/chunks/{_server.ts-CY-GNKZT.js.map → _server.ts-hLimfy8i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-AC1zqetQ.js → _server.ts-khI1sqja.js} +2 -2
- package/build/server/chunks/{_server.ts-AC1zqetQ.js.map → _server.ts-khI1sqja.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BF5JzSrs.js → _server.ts-p1Z3DBlr.js} +6 -6
- package/build/server/chunks/{_server.ts-BF5JzSrs.js.map → _server.ts-p1Z3DBlr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvfnkNfI.js → _server.ts-uzB454LO.js} +7 -7
- package/build/server/chunks/{_server.ts-DvfnkNfI.js.map → _server.ts-uzB454LO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-jqktLs6L.js → _server.ts-wKSTgSwf.js} +6 -6
- package/build/server/chunks/{_server.ts-jqktLs6L.js.map → _server.ts-wKSTgSwf.js.map} +1 -1
- package/build/server/chunks/addon-helpers-DaC3GR9u.js +153 -0
- package/build/server/chunks/addon-helpers-DaC3GR9u.js.map +1 -0
- package/build/server/chunks/{admin-update-lock-B-z4UE8R.js → admin-update-lock-Bu3VvAoN.js} +3 -3
- package/build/server/chunks/{admin-update-lock-B-z4UE8R.js.map → admin-update-lock-Bu3VvAoN.js.map} +1 -1
- package/build/server/chunks/{akm-C4NCZfJB.js → akm-DsJ8_uuW.js} +2 -2
- package/build/server/chunks/{akm-C4NCZfJB.js.map → akm-DsJ8_uuW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-08JCSzPu.js → bring-up-BBKMJltU.js} +30 -228
- package/build/server/chunks/bring-up-BBKMJltU.js.map +1 -0
- package/build/server/chunks/{catalog-Czlhb_2V.js → catalog-8d-U0FbY.js} +5 -5
- package/build/server/chunks/{catalog-Czlhb_2V.js.map → catalog-8d-U0FbY.js.map} +1 -1
- package/build/server/chunks/{client-HEAniq5u.js → client-CHoZA_w9.js} +2 -2
- package/build/server/chunks/{client-HEAniq5u.js.map → client-CHoZA_w9.js.map} +1 -1
- package/build/server/chunks/{compose-args2-B1cYvF5r.js → compose-args2-C9sLS6QR.js} +2 -2
- package/build/server/chunks/compose-args2-C9sLS6QR.js.map +1 -0
- package/build/server/chunks/{config-C15S-ENd.js → config-ChxZZk6h.js} +2 -2
- package/build/server/chunks/{config-C15S-ENd.js.map → config-ChxZZk6h.js.map} +1 -1
- package/build/server/chunks/{docker2-CF7qyd1U.js → docker2-DGq6J3Kp.js} +2 -2
- package/build/server/chunks/docker2-DGq6J3Kp.js.map +1 -0
- package/build/server/chunks/{docker3-BsPagEza.js → docker3-DFlJ-o_d.js} +2 -2
- package/build/server/chunks/{docker3-BsPagEza.js.map → docker3-DFlJ-o_d.js.map} +1 -1
- package/build/server/chunks/environment-BYp8JQYM.js.map +1 -1
- package/build/server/chunks/{error.svelte-C-lukbaB.js → error.svelte-BXxIEYd4.js} +4 -4
- package/build/server/chunks/{error.svelte-C-lukbaB.js.map → error.svelte-BXxIEYd4.js.map} +1 -1
- package/build/server/chunks/{features-DltizIi4.js → features-D8Ez2vwC.js} +26 -4
- package/build/server/chunks/features-D8Ez2vwC.js.map +1 -0
- package/build/server/chunks/{helpers-DWpoPvHz.js → helpers-BrD1e__f.js} +4 -4
- package/build/server/chunks/{helpers-DWpoPvHz.js.map → helpers-BrD1e__f.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BcdEyWVU.js → hooks.server-Blba-Qw7.js} +9 -9
- package/build/server/chunks/{hooks.server-BcdEyWVU.js.map → hooks.server-Blba-Qw7.js.map} +1 -1
- package/build/server/chunks/{http-7E5W3vGt.js → http-B4Us23Mo.js} +2 -2
- package/build/server/chunks/{http-7E5W3vGt.js.map → http-B4Us23Mo.js.map} +1 -1
- package/build/server/chunks/{internal-BNSUwl-r.js → internal-CSnzBDeT.js} +3 -3
- package/build/server/chunks/{internal-BNSUwl-r.js.map → internal-CSnzBDeT.js.map} +1 -1
- package/build/server/chunks/{landing-DY53l_CN.js → landing-DxFOhZxH.js} +5 -5
- package/build/server/chunks/{landing-DY53l_CN.js.map → landing-DxFOhZxH.js.map} +1 -1
- package/build/server/chunks/{opencode-target-DYD2zQ4l.js → opencode-target-D4BxXYHJ.js} +3 -3
- package/build/server/chunks/{opencode-target-DYD2zQ4l.js.map → opencode-target-D4BxXYHJ.js.map} +1 -1
- package/build/server/chunks/{paths-BVdkvR9U.js → paths-6f-5gYkd.js} +2 -2
- package/build/server/chunks/{paths-BVdkvR9U.js.map → paths-6f-5gYkd.js.map} +1 -1
- package/build/server/chunks/{session-cookie-D2_H1UEW.js → session-cookie-5J3xCH94.js} +2 -2
- package/build/server/chunks/{session-cookie-D2_H1UEW.js.map → session-cookie-5J3xCH94.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-C1h733rH.js → setup-deploy-DUbX3fHm.js} +2 -2
- package/build/server/chunks/{setup-deploy-C1h733rH.js.map → setup-deploy-DUbX3fHm.js.map} +1 -1
- package/build/server/chunks/{src-B2-r_9oB.js → src-B2wHibme.js} +55 -70
- package/build/server/chunks/src-B2wHibme.js.map +1 -0
- package/build/server/chunks/{state-Dkjz2T4C.js → state-JIy0tegD.js} +2 -2
- package/build/server/chunks/{state-Dkjz2T4C.js.map → state-JIy0tegD.js.map} +1 -1
- package/build/server/chunks/{state2-CS9rhust.js → state2-Br2snAqo.js} +2 -2
- package/build/server/chunks/{state2-CS9rhust.js.map → state2-Br2snAqo.js.map} +1 -1
- package/build/server/chunks/voice-state.svelte-DU9g_xEh.js +1610 -0
- package/build/server/chunks/voice-state.svelte-DU9g_xEh.js.map +1 -0
- package/build/server/index.js +1 -1
- package/build/server/manifest.js +96 -110
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -3
- package/build/client/_app/immutable/assets/7.BsquVIMw.css +0 -1
- package/build/client/_app/immutable/assets/7.BsquVIMw.css.br +0 -0
- package/build/client/_app/immutable/assets/7.BsquVIMw.css.gz +0 -0
- package/build/client/_app/immutable/assets/9.D8zTZB7v.css +0 -1
- package/build/client/_app/immutable/assets/9.D8zTZB7v.css.br +0 -0
- package/build/client/_app/immutable/assets/9.D8zTZB7v.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BE_4J5sS.js.br +0 -0
- package/build/client/_app/immutable/chunks/BE_4J5sS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BdIq5WIo.js.br +0 -5
- package/build/client/_app/immutable/chunks/BdIq5WIo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Clt9pCG1.js.br +0 -0
- package/build/client/_app/immutable/chunks/Clt9pCG1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CuKFR3Qo.js.br +0 -0
- package/build/client/_app/immutable/chunks/CuKFR3Qo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1VTYdXF.js +0 -1
- package/build/client/_app/immutable/chunks/D1VTYdXF.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1VTYdXF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DF5Aoa59.js +0 -1
- package/build/client/_app/immutable/chunks/DF5Aoa59.js.br +0 -2
- package/build/client/_app/immutable/chunks/DF5Aoa59.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaRQZQEK.js +0 -5
- package/build/client/_app/immutable/chunks/DaRQZQEK.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaRQZQEK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dz-hw4Sz.js +0 -5
- package/build/client/_app/immutable/chunks/Dz-hw4Sz.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dz-hw4Sz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/mNzUu332.js.br +0 -0
- package/build/client/_app/immutable/chunks/mNzUu332.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DKG33-gU.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DKG33-gU.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.vDtUfDrT.js +0 -1
- package/build/client/_app/immutable/entry/start.vDtUfDrT.js.br +0 -1
- package/build/client/_app/immutable/entry/start.vDtUfDrT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.eA5H3idZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.eA5H3idZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CvKFymDh.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CvKFymDh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.DFMf8WUQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.DFMf8WUQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.BZQW5Y67.js +0 -8
- package/build/client/_app/immutable/nodes/11.BZQW5Y67.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.BZQW5Y67.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B-36aGPk.js +0 -1
- package/build/client/_app/immutable/nodes/4.B-36aGPk.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B-36aGPk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.bgdUYUlr.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.bgdUYUlr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.D0P837Li.js +0 -2
- package/build/client/_app/immutable/nodes/6.D0P837Li.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D0P837Li.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.C4seSCJq.js +0 -14
- package/build/client/_app/immutable/nodes/7.C4seSCJq.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.C4seSCJq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.DCgNAMuD.js +0 -128
- package/build/client/_app/immutable/nodes/9.DCgNAMuD.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DCgNAMuD.js.gz +0 -0
- package/build/server/chunks/0-D9FIO-Bk.js.map +0 -1
- package/build/server/chunks/1-ItPJxTHP.js +0 -9
- package/build/server/chunks/11-CZj9K6K7.js +0 -9
- package/build/server/chunks/11-CZj9K6K7.js.map +0 -1
- package/build/server/chunks/6-DxXeT1e3.js +0 -9
- package/build/server/chunks/7-CuHe_mFY.js +0 -9
- package/build/server/chunks/7-CuHe_mFY.js.map +0 -1
- package/build/server/chunks/9-CVIPxN5B.js +0 -9
- package/build/server/chunks/9-CVIPxN5B.js.map +0 -1
- package/build/server/chunks/IconMic-BbjkE_nG.js +0 -18
- package/build/server/chunks/IconMic-BbjkE_nG.js.map +0 -1
- package/build/server/chunks/IconStop-DKVpXPKq.js.map +0 -1
- package/build/server/chunks/_page.svelte-BcpGl-vl.js +0 -91
- package/build/server/chunks/_page.svelte-BcpGl-vl.js.map +0 -1
- package/build/server/chunks/_page.svelte-CGEtuNmS.js.map +0 -1
- package/build/server/chunks/_page.svelte-FOm-OMQe.js.map +0 -1
- package/build/server/chunks/_page.svelte-qxgG6hsh.js.map +0 -1
- package/build/server/chunks/_server.ts-08JCSzPu.js.map +0 -1
- package/build/server/chunks/_server.ts-3bBG0DBN.js.map +0 -1
- package/build/server/chunks/_server.ts-B0MK-ynu.js.map +0 -1
- package/build/server/chunks/_server.ts-BS4UTF4H.js +0 -93
- package/build/server/chunks/_server.ts-BS4UTF4H.js.map +0 -1
- package/build/server/chunks/_server.ts-DXwG4w1_.js.map +0 -1
- package/build/server/chunks/_server.ts-DlKT-RbM.js.map +0 -1
- package/build/server/chunks/_server.ts-fenM6Iln.js.map +0 -1
- package/build/server/chunks/_server.ts-zt3yI2wU.js +0 -97
- package/build/server/chunks/_server.ts-zt3yI2wU.js.map +0 -1
- package/build/server/chunks/addon-helpers-B7bkHg-K.js +0 -64
- package/build/server/chunks/addon-helpers-B7bkHg-K.js.map +0 -1
- package/build/server/chunks/compose-args2-B1cYvF5r.js.map +0 -1
- package/build/server/chunks/docker2-CF7qyd1U.js.map +0 -1
- package/build/server/chunks/features-DltizIi4.js.map +0 -1
- package/build/server/chunks/speakable-text-BflxDDdY.js +0 -65
- package/build/server/chunks/speakable-text-BflxDDdY.js.map +0 -1
- package/build/server/chunks/src-B2-r_9oB.js.map +0 -1
- package/build/server/chunks/voice-state.svelte-CSmyLPRH.js +0 -561
- package/build/server/chunks/voice-state.svelte-CSmyLPRH.js.map +0 -1
- /package/build/client/_app/immutable/chunks/{DD22UF1L.js → DD22UF1L2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DD22UF1L.js.br → DD22UF1L2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DD22UF1L.js.gz → DD22UF1L2.js.gz} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{B as e,I as t,L as n,M as r,N as i,P as a,R as o,St as s,U as c,X as l,a as u,at as d,b as f,ct as p,ft as m,gt as h,ht as g,it as _,k as v,ot as y,p as b,r as ee,rt as x,ut as S,xt as C,z as w}from"./DTLQuSQp.js";import"./xihTtKlq.js";import{
|
|
1
|
+
import{B as e,I as t,L as n,M as r,N as i,P as a,R as o,St as s,U as c,X as l,a as u,at as d,b as f,ct as p,ft as m,gt as h,ht as g,it as _,k as v,ot as y,p as b,r as ee,rt as x,ut as S,xt as C,z as w}from"./DTLQuSQp.js";import"./xihTtKlq.js";import{T,d as E,f as D,o as O,x as k}from"./D-DB6zTo.js";import{A,B as j,C as M,D as N,E as P,H as F,I,L,M as R,N as z,O as B,P as V,R as H,T as U,_ as W,a as te,i as G,j as ne,k as re,m as ie,p as ae,u as oe,v as se,w as ce,x as K,z as le}from"./DDSqq1hR.js";import{t as ue}from"./BBXQKGHA.js";var q=`openpalm.chat.advanced`,de=new class{#e=S(!1);get enabled(){return c(this.#e)}set enabled(e){p(this.#e,e,!0)}#t=S(!1);get initialized(){return c(this.#t)}set initialized(e){p(this.#t,e,!0)}init(){typeof window>`u`||this.initialized||(this.enabled=this.#n(),this.initialized=!0)}setEnabled(e){this.enabled=e,this.#r(e)}toggle(){let e=!this.enabled;return this.setEnabled(e),e}#n(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(q)===`1`}catch{return!1}}#r(e){if(!(typeof window>`u`))try{window.localStorage.setItem(q,e?`1`:`0`)}catch{}}},J=null;function Y(e,t,n,r){let i=e.createOscillator(),a=e.createGain();i.type=`sine`,i.frequency.value=t,a.gain.setValueAtTime(0,n),a.gain.linearRampToValueAtTime(.08,n+.005),a.gain.linearRampToValueAtTime(0,n+r),i.connect(a),a.connect(e.destination),i.start(n),i.stop(n+r+.01)}function fe(){if(!(typeof window>`u`))try{if(!J){let e=window.AudioContext??window.webkitAudioContext;if(!e)return;J=new e}J.state===`suspended`&&J.resume().catch(()=>{});let e=J.currentTime;Y(J,880,e,.06),Y(J,1320,e+.07,.08)}catch{}}var pe=25,me=new Set([`dr`,`mr`,`mrs`,`ms`,`prof`,`st`,`vs`,`etc`,`e.g`,`i.e`,`approx`]),he=new Set([`No`]);function ge(e,t){let n=t;for(;n>0&&/[a-zA-Z.]/.test(e[n-1]);)--n;let r=e.slice(n,t);return r?me.has(r.toLowerCase())||he.has(r):!1}function _e(e,t){let n=[],r=t,i=t,a=!1,o=0;for(;o<e.length;){if(e.startsWith("```",o)){a=!a,o+=3;continue}if(o<t||a){o+=1;continue}let s=-1,c=e[o];if((c===`.`||c===`!`||c===`?`)&&o+1<e.length&&/\s/.test(e[o+1])?(c!==`.`||!ge(e,o))&&(s=o+1):c===`
|
|
2
2
|
`&&e[o+1]===`
|
|
3
|
-
`&&(s=o+2),s!==-1){let t=e.slice(i,s).trim();t.length>=pe&&(n.push(t),i=s,r=s)}o+=1}return{chunks:n,nextOffset:r}}function X(e,t={}){let{fallback:n=`Something went wrong.`,reconnectHint:r=!1}=t,i=e??{};return i.status===503||i.status===502?r?`Assistant is not reachable. Try reconnecting.`:`Assistant is not reachable.`:i.status===401?`Sign-in required.`:i.message??n}var ve=15e4;function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=S(y(new K));get byEndpoint(){return c(this.#e)}set byEndpoint(e){p(this.#e,e,!0)}#t=S(`default`);get activeEndpointId(){return c(this.#t)}set activeEndpointId(e){p(this.#t,e,!0)}#n=S(y([]));get entries(){return c(this.#n)}set entries(e){p(this.#n,e,!0)}#r=S(!1);get entriesLoading(){return c(this.#r)}set entriesLoading(e){p(this.#r,e,!0)}#i=S(!1);get sending(){return c(this.#i)}set sending(e){p(this.#i,e,!0)}#a=S(``);get error(){return c(this.#a)}set error(e){p(this.#a,e,!0)}#o=S(``);get lastFailedText(){return c(this.#o)}set lastFailedText(e){p(this.#o,e,!0)}#s=S(``);get pendingAssistantText(){return c(this.#s)}set pendingAssistantText(e){p(this.#s,e,!0)}#c=S(y([]));get pendingToolStates(){return c(this.#c)}set pendingToolStates(e){p(this.#c,e,!0)}#l=S(null);get pendingPermission(){return c(this.#l)}set pendingPermission(e){p(this.#l,e,!0)}#u=S(null);get pendingQuestion(){return c(this.#u)}set pendingQuestion(e){p(this.#u,e,!0)}#d=S(!1);get liveConnected(){return c(this.#d)}set liveConnected(e){p(this.#d,e,!0)}_unsubscribeEvents=null;_pendingTurn=null;#f=m(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return c(this.#f)}set activeSessionId(e){p(this.#f,e)}#p=m(()=>{let e={},t=[],n=(n,r)=>{if(n)for(let i of n)e[i.id]||W(i)&&(e[i.id]=!0,t.push({...i,turnKey:r}))};for(let e of this.entries)n(e.toolStates,e.id);return n(this.pendingToolStates,`pending`),t});get toolLog(){return c(this.#p)}set toolLog(e){p(this.#p,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new K(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){if(e===this.activeEndpointId){this.error=``,this.liveConnected||this._resubscribeEvents();return}this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this._resubscribeEvents(),await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions??[],r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i)}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=P({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onEvent:e=>{this._onLiveEvent(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1,this._pendingTurn&&this._failPendingTurn(Error(`Assistant event stream disconnected.`))}})}_toRawEvent(e){return{type:e.type,properties:e.properties??{}}}_upsertPendingToolState(e){let t=e.callID||`${e.tool}:${this.pendingToolStates.length}`,n={id:t,kind:`tool`,tool:e.tool,status:e.status,title:e.title??e.tool,detail:e.detail??``,output:e.output??``,error:e.error??``,updatedAt:Date.now()};if(!this.pendingToolStates.find(e=>e.id===t)){this.pendingToolStates=[...this.pendingToolStates,n];return}this.pendingToolStates=this.pendingToolStates.map(e=>e.id===t?{...e,...n}:e)}_upsertPendingStepState(e){let t={id:e.id,kind:`step`,tool:`step`,status:e.status,title:e.title,detail:e.detail??``,output:``,error:``,updatedAt:Date.now()};if(!this.pendingToolStates.find(t=>t.id===e.id)){this.pendingToolStates=[...this.pendingToolStates,t];return}this.pendingToolStates=this.pendingToolStates.map(n=>n.id===e.id?{...n,...t}:n)}_resetPendingRenderState(){this.pendingAssistantText=``,this.pendingToolStates=[],this.pendingPermission=null,this.pendingQuestion=null}_appendAssistantReply(e,t){let n={id:T(),role:`assistant`,text:e,timestamp:Date.now(),...t&&t.length>0?{toolStates:[...t]}:{}};this.entries=[...this.entries,n]}_clearPendingTurn(){let e=this._pendingTurn;return e?(clearTimeout(e.timeout),this._pendingTurn=null,e):null}maybeSpeak(e){!D.ttsSupported||!D.ttsAutoEnabled||E(e)}finalizeTurn(e){let t=e.replyText??this.pendingAssistantText,n=t.trim()||`(no response)`;if(this.pendingQuestion?.status===`answered`&&this.pendingQuestion.message){let e={id:T(),type:`note`,label:`Question answered`,text:this.pendingQuestion.message,timestamp:Date.now()};this.entries=[...this.entries,e]}let r=this.pendingToolStates.length>0?[...this.pendingToolStates]:void 0;if(this._appendAssistantReply(n,r),this._resetPendingRenderState(),this._bumpSession(e.sessionId),n!==`(no response)`&&!e.suppressSpeech){let n=t.slice(e.spokenOffset??0).trim();n&&this.maybeSpeak(n)}ie(n===`(no response)`?``:n)}_finishPendingTurn(e){let t=this._clearPendingTurn();t&&(this.finalizeTurn({sessionId:t.sessionId,replyText:e,spokenOffset:t.spokenOffset}),t.resolve())}_failPendingTurn(e){let t=this._clearPendingTurn();t&&(this._resetPendingRenderState(),t.reject(e))}_bumpSession(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n)return;let r=Date.now(),i=n.sessions.find(t=>t.id===e),a=i?{...i,updatedAt:r}:{id:e,title:``,createdAt:r,updatedAt:r},o=n.sessions.filter(t=>t.id!==e);this.setEndpointState(t,{sessions:[a,...o]})}_onLiveEvent(e){let t=this._pendingTurn;if(!t)return;let n=this._toRawEvent(e);if(t.endpointId!==this.activeEndpointId)return;let r=R(n);r?.type===`reasoning`&&t.reasoningPartIds.add(r.partID);let i=se(n,t.sessionId,t.reasoningPartIds);if(i&&(this.pendingAssistantText+=i,D.ttsSupported&&D.ttsAutoEnabled)){let{chunks:e,nextOffset:n}=_e(this.pendingAssistantText,t.spokenOffset);for(let t of e)E(t);t.spokenOffset=n}let a=H(n,t.sessionId);a&&this._upsertPendingToolState(a);let o=A(n,t.sessionId);o&&this._upsertPendingStepState(o);let s=ce(n,t.sessionId);s&&(this.pendingPermission={...s,status:`pending`,decision:``,message:``});let c=V(n,t.sessionId);if(c&&(this.pendingQuestion={...c,status:`pending`,answers:c.questions.map(()=>``),message:``}),M(n,t.sessionId)){this._failPendingTurn(Error(`Assistant session ended unexpectedly.`));return}j(n,t.sessionId)&&this._finishPendingTurn()}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1){this._onSessionCreated(e);return}let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}setActiveSessionId(e,t=this.activeEndpointId){this.setEndpointState(t,{activeSessionId:e})}alignActiveEndpoint(e){this.activeEndpointId=e}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await N();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){this.setEndpointState(e,{sessionsLoading:!1,sessionsError:X(t,{fallback:`Failed to load sessions.`})})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this._resetPendingRenderState(),this.entriesLoading=!0,this.error=``;try{let n=await z(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){this.error=X(e,{fallback:`Failed to load messages.`,reconnectHint:!0})}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await L(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],this._resetPendingRenderState(),t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){let t=e.trim();if(!t)return;if(this.lastFailedText=``,this.pendingQuestion&&this.pendingQuestion.questions.length===1&&this.sending){await this.answerQuestion(t);return}if(this.pendingQuestion&&this.sending){this.pendingQuestion={...this.pendingQuestion,status:`error`,message:`This question has multiple parts and must be answered with the provided controls.`};return}if(this.sending)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:T(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this._resetPendingRenderState(),this.error=``,this.sending=!0,D.ttsAutoEnabled&&fe();try{if(this._unsubscribeEvents&&this.liveConnected)await new Promise((e,r)=>{let i=setTimeout(()=>{this._failPendingTurn(Error(`Timed out waiting for the assistant response.`))},ve);this._pendingTurn={endpointId:this.activeEndpointId,sessionId:n,spokenOffset:0,reasoningPartIds:new Set,resolve:e,reject:r,timeout:i},U(n,t).catch(e=>{this._failPendingTurn(e instanceof Error?e:Error(String(e)))})});else{let e=(await k(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``);this.finalizeTurn({sessionId:n,replyText:e})}}catch(e){this._resetPendingRenderState(),this.entries=this.entries.filter(e=>e.id!==r.id),this.lastFailedText=t;let n=e?.status;(n===503||n===502)&&this.setEndpointState(this.activeEndpointId,{activeSessionId:null}),this.error=X(e,{fallback:`Message failed.`,reconnectHint:!0}),ae()}finally{this.sending=!1}}async sendUtterance(e){let t=e.trim();if(t){if(this.sending&&!this.pendingQuestion){await this.stopTurn();for(let e=0;this.sending&&e<20;e++)await new Promise(e=>setTimeout(e,10));if(this.sending){this.lastFailedText=t,this.error=`The assistant is still finishing the previous reply — use retry to send your message.`;return}}await this.send(t)}}async stopTurn(){if(!this.sending)return;let e=this.activeSessionId;if(e)try{await I(e)}catch{}O();let t=this._clearPendingTurn();if(this.pendingAssistantText)this.finalizeTurn({sessionId:t?.sessionId??e??``,suppressSpeech:!0});else{this._resetPendingRenderState();let e={id:T(),type:`note`,label:`Stopped`,text:`Stopped.`,timestamp:Date.now()};this.entries=[...this.entries,e]}t?.resolve()}async answerPermission(e){if(!this.pendingPermission||this.pendingPermission.status===`submitting`)return;let t=this.pendingPermission;this.pendingPermission={...t,status:`submitting`,decision:e,message:``};try{await B(t.requestID,e),this.pendingPermission={...t,status:`resolved`,decision:e,message:e===`once`?`Allowed ${t.permission} once. Waiting for the assistant to continue...`:e===`always`?`Always allowed future matching ${t.permission} requests.`:`Denied ${t.permission}. Waiting for the assistant to continue...`}}catch(n){let r=n instanceof Error?n.message:`Failed to record permission reply.`;this.pendingPermission={...t,status:`error`,decision:e,message:r}}}setQuestionAnswer(e,t){if(!this.pendingQuestion||e<0||e>=this.pendingQuestion.questions.length)return;let n=[...this.pendingQuestion.answers];n[e]=t,this.pendingQuestion={...this.pendingQuestion,answers:n,message:``}}async answerQuestion(e){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let t=this.pendingQuestion,n=t.questions.length===1&&typeof e==`string`?[e.trim()]:t.answers.map(e=>e.trim());if(n.some(e=>!e)){this.pendingQuestion={...t,status:`error`,message:`Answer every question before submitting.`};return}this.pendingQuestion={...t,status:`submitting`,answers:n,message:``};try{await le(t.requestID,n.map(e=>[e])),this.pendingQuestion={...t,status:`answered`,answers:n,message:`Answer sent.`}}catch(e){let r=e instanceof Error?e.message:`Failed to send answer.`;this.pendingQuestion={...t,status:`error`,answers:n,message:r}}}async rejectQuestion(){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let e=this.pendingQuestion;this.pendingQuestion={...e,status:`submitting`,message:``};try{await F(e.requestID),this.pendingQuestion={...e,status:`rejected`,message:`Question declined.`}}catch(t){let n=t instanceof Error?t.message:`Failed to reject question.`;this.pendingQuestion={...e,status:`error`,message:n}}}reset(){if(O(),this._clearPendingTurn(),this.entries=[],this.error=``,this.lastFailedText=``,this._resetPendingRenderState(),this.byEndpoint=new K,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}};re(()=>Q.sending?`Wait for the current reply to finish before switching.`:null),ne(e=>Q.onEndpointChanged(e));function ye(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/=+$/g,``)}function be(){return Q.activeSessionId}function xe(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/advanced?${n}`:`/advanced`}function Se(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/chat?${n}`:`/chat`}function Ce(e,t,n){return!t||!n?e:`${e.replace(/\/$/,``)}/${ye(n)}/session/${encodeURIComponent(t)}`}var we=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 17l4-4-4-4"></path><path d="M12 17h8"></path></svg>`);function Te(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=we();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}function Ee(e){if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}}var De=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function $(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=De.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return G(e)}return t}function Oe(e,t){h(t,!0);let n=m(()=>$(t.title));C();var r=o();l(()=>i(r,c(n))),a(e,r),g()}var ke=t(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),Ae=t(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),je=t(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),Me=t(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Ne=t(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Pe=t(`<button type="button"><span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb"><!><!></span> <span class="item-meta svelte-1o6rxhb"> </span></span></button>`),Fe=t(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ie=t(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),Le=t(`<div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"><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>`,1),Re=t(`<div class="session-body svelte-1o6rxhb"><!> <!> <!></div>`);function ze(t,n){h(n,!0);let o=u(n,`hideNewBtn`,3,!1),y=S(!1),w=m(()=>oe.active),T=m(()=>c(w)?Q.byEndpoint.get(c(w).id)??null:null),E=m(()=>c(T)?.sessions??[]),D=m(()=>c(T)?.sessionsLoading??!1),O=m(()=>c(T)?.sessionsError??``),k=m(()=>Q.activeSessionId),A=m(()=>c(y)?c(E):c(E).slice(0,50)),j=m(()=>Math.max(0,c(E).length-50));ee(()=>{c(w)&&!c(T)?.sessionsLoaded&&!c(D)&&Q.loadSessions()});async function M(e){Q.sending||(await Q.openSession(e),n.onChosen?.())}async function N(){Q.sending||(await Q.startNewSession(),n.onChosen?.())}async function P(){await Q.loadSessions()}var F=Re(),I=x(F),L=e=>{a(e,ke())};r(I,e=>{Q.sending&&e(L)});var R=d(I,2),z=e=>{var t=Ae();ue(x(t),{size:12}),C(),s(t),a(e,t)},B=t=>{var n=je(),r=x(n),o=x(r,!0);s(r);var u=d(r,2);s(n),l(()=>i(o,c(O))),e(`click`,u,P),a(t,n)},V=e=>{a(e,Me())},H=t=>{var n=Ie(),o=_(n);v(o,21,()=>c(A),e=>e.id,(t,n)=>{var o=Pe();let u;var p=x(o),m=x(p),h=x(m);Oe(h,{get title(){return c(n).title}});var g=d(h),_=e=>{a(e,Ne())};r(g,e=>{c(n).id===c(k)&&e(_)}),s(m);var v=d(m,2),y=x(v,!0);s(v),s(p),s(o),l((e,t)=>{u=f(o,1,`list-item session-item svelte-1o6rxhb`,null,u,{active:c(n).id===c(k)}),b(o,`aria-current`,c(n).id===c(k)?`true`:void 0),o.disabled=Q.sending,b(o,`title`,e),i(y,t)},[()=>G(c(n).updatedAt),()=>te(c(n).updatedAt)]),e(`click`,o,()=>M(c(n).id)),a(t,o)}),s(o);var u=d(o,2),m=t=>{var n=Fe(),r=x(n);s(n),l(()=>i(r,`Show all (${c(j)??``} more)`)),e(`click`,n,()=>p(y,!0)),a(t,n)};r(u,e=>{!c(y)&&c(j)>0&&e(m)}),a(t,n)};r(R,e=>{!c(T)||c(D)?e(z):c(O)?e(B,1):c(E).length===0?e(V,2):e(H,-1)});var U=d(R,2),W=t=>{var n=Le(),r=d(_(n),2);l(()=>r.disabled=Q.sending),e(`click`,r,N),a(t,n)};r(U,e=>{o()||e(W)}),s(F),a(t,F),g()}w([`click`]);var Be=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16" opacity="0.9"></path><path d="M4 12h11" opacity="0.65"></path><path d="M4 17h7.5" opacity="0.5"></path></svg>`);function Ve(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=Be();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}var He=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><line x1="23" y1="9" x2="17" y2="15"></line><line x1="17" y1="9" x2="23" y2="15"></line></svg>`);function Ue(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=He();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}var We=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path></svg>`);function Ge(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=We();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}export{$ as a,Ce as c,be as d,Q as f,ze as i,xe as l,Ue as n,Ee as o,de as p,Ve as r,Te as s,Ge as t,Se as u};
|
|
3
|
+
`&&(s=o+2),s!==-1){let t=e.slice(i,s).trim();t.length>=pe&&(n.push(t),i=s,r=s)}o+=1}return{chunks:n,nextOffset:r}}function X(e,t={}){let{fallback:n=`Something went wrong.`,reconnectHint:r=!1}=t,i=e??{};return i.status===503||i.status===502?r?`Assistant is not reachable. Try reconnecting.`:`Assistant is not reachable.`:i.status===401?`Sign-in required.`:i.message??n}var ve=15e4;function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=S(y(new K));get byEndpoint(){return c(this.#e)}set byEndpoint(e){p(this.#e,e,!0)}#t=S(`default`);get activeEndpointId(){return c(this.#t)}set activeEndpointId(e){p(this.#t,e,!0)}#n=S(y([]));get entries(){return c(this.#n)}set entries(e){p(this.#n,e,!0)}#r=S(!1);get entriesLoading(){return c(this.#r)}set entriesLoading(e){p(this.#r,e,!0)}#i=S(!1);get sending(){return c(this.#i)}set sending(e){p(this.#i,e,!0)}#a=S(``);get error(){return c(this.#a)}set error(e){p(this.#a,e,!0)}#o=S(``);get lastFailedText(){return c(this.#o)}set lastFailedText(e){p(this.#o,e,!0)}#s=S(``);get pendingAssistantText(){return c(this.#s)}set pendingAssistantText(e){p(this.#s,e,!0)}#c=S(y([]));get pendingToolStates(){return c(this.#c)}set pendingToolStates(e){p(this.#c,e,!0)}#l=S(null);get pendingPermission(){return c(this.#l)}set pendingPermission(e){p(this.#l,e,!0)}#u=S(null);get pendingQuestion(){return c(this.#u)}set pendingQuestion(e){p(this.#u,e,!0)}#d=S(!1);get liveConnected(){return c(this.#d)}set liveConnected(e){p(this.#d,e,!0)}_unsubscribeEvents=null;_pendingTurn=null;#f=m(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return c(this.#f)}set activeSessionId(e){p(this.#f,e)}#p=m(()=>{let e={},t=[],n=(n,r)=>{if(n)for(let i of n)e[i.id]||F(i)&&(e[i.id]=!0,t.push({...i,turnKey:r}))};for(let e of this.entries)n(e.toolStates,e.id);return n(this.pendingToolStates,`pending`),t});get toolLog(){return c(this.#p)}set toolLog(e){p(this.#p,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new K(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){if(e===this.activeEndpointId){this.error=``,this.liveConnected||this._resubscribeEvents();return}this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this._resubscribeEvents(),await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions??[],r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i)}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=k({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onEvent:e=>{this._onLiveEvent(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1,this._pendingTurn&&this._failPendingTurn(Error(`Assistant event stream disconnected.`))}})}_toRawEvent(e){return{type:e.type,properties:e.properties??{}}}_upsertPendingToolState(e){let t=e.callID||`${e.tool}:${this.pendingToolStates.length}`,n={id:t,kind:`tool`,tool:e.tool,status:e.status,title:e.title??e.tool,detail:e.detail??``,output:e.output??``,error:e.error??``,updatedAt:Date.now()};if(!this.pendingToolStates.find(e=>e.id===t)){this.pendingToolStates=[...this.pendingToolStates,n];return}this.pendingToolStates=this.pendingToolStates.map(e=>e.id===t?{...e,...n}:e)}_upsertPendingStepState(e){let t={id:e.id,kind:`step`,tool:`step`,status:e.status,title:e.title,detail:e.detail??``,output:``,error:``,updatedAt:Date.now()};if(!this.pendingToolStates.find(t=>t.id===e.id)){this.pendingToolStates=[...this.pendingToolStates,t];return}this.pendingToolStates=this.pendingToolStates.map(n=>n.id===e.id?{...n,...t}:n)}_resetPendingRenderState(){this.pendingAssistantText=``,this.pendingToolStates=[],this.pendingPermission=null,this.pendingQuestion=null}_appendAssistantReply(e,t){let n={id:T(),role:`assistant`,text:e,timestamp:Date.now(),...t&&t.length>0?{toolStates:[...t]}:{}};this.entries=[...this.entries,n]}_clearPendingTurn(){let e=this._pendingTurn;return e?(clearTimeout(e.timeout),this._pendingTurn=null,e):null}maybeSpeak(e){!D.ttsSupported||!D.ttsAutoEnabled||O(e)}finalizeTurn(e){let t=e.replyText??this.pendingAssistantText,n=t.trim()||`(no response)`;if(this.pendingQuestion?.status===`answered`&&this.pendingQuestion.message){let e={id:T(),type:`note`,label:`Question answered`,text:this.pendingQuestion.message,timestamp:Date.now()};this.entries=[...this.entries,e]}let r=this.pendingToolStates.length>0?[...this.pendingToolStates]:void 0;if(this._appendAssistantReply(n,r),this._resetPendingRenderState(),this._bumpSession(e.sessionId),n!==`(no response)`&&!e.suppressSpeech){let n=t.slice(e.spokenOffset??0).trim();n&&this.maybeSpeak(n)}se(n===`(no response)`?``:n)}_finishPendingTurn(e){let t=this._clearPendingTurn();t&&(this.finalizeTurn({sessionId:t.sessionId,replyText:e,spokenOffset:t.spokenOffset}),t.resolve())}_failPendingTurn(e){let t=this._clearPendingTurn();t&&(this._resetPendingRenderState(),t.reject(e))}_bumpSession(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n)return;let r=Date.now(),i=n.sessions.find(t=>t.id===e),a=i?{...i,updatedAt:r}:{id:e,title:``,createdAt:r,updatedAt:r},o=n.sessions.filter(t=>t.id!==e);this.setEndpointState(t,{sessions:[a,...o]})}_onLiveEvent(e){let t=this._pendingTurn;if(!t)return;let n=this._toRawEvent(e);if(t.endpointId!==this.activeEndpointId)return;let r=A(n);r?.type===`reasoning`&&t.reasoningPartIds.add(r.partID);let i=P(n,t.sessionId,t.reasoningPartIds);if(i&&(this.pendingAssistantText+=i,D.ttsSupported&&D.ttsAutoEnabled)){let{chunks:e,nextOffset:n}=_e(this.pendingAssistantText,t.spokenOffset);for(let t of e)O(t);t.spokenOffset=n}let a=N(n,t.sessionId);a&&this._upsertPendingToolState(a);let o=U(n,t.sessionId);o&&this._upsertPendingStepState(o);let s=M(n,t.sessionId);s&&(this.pendingPermission={...s,status:`pending`,decision:``,message:``});let c=ce(n,t.sessionId);if(c&&(this.pendingQuestion={...c,status:`pending`,answers:c.questions.map(()=>``),message:``}),B(n,t.sessionId)){this._failPendingTurn(Error(`Assistant session ended unexpectedly.`));return}re(n,t.sessionId)&&this._finishPendingTurn()}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1){this._onSessionCreated(e);return}let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}setActiveSessionId(e,t=this.activeEndpointId){this.setEndpointState(t,{activeSessionId:e})}alignActiveEndpoint(e){this.activeEndpointId=e}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await V();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){this.setEndpointState(e,{sessionsLoading:!1,sessionsError:X(t,{fallback:`Failed to load sessions.`})})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this._resetPendingRenderState(),this.entriesLoading=!0,this.error=``;try{let n=await z(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){this.error=X(e,{fallback:`Failed to load messages.`,reconnectHint:!0})}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await R(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],this._resetPendingRenderState(),t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){let t=e.trim();if(!t)return;if(this.lastFailedText=``,this.pendingQuestion&&this.pendingQuestion.questions.length===1&&this.sending){await this.answerQuestion(t);return}if(this.pendingQuestion&&this.sending){this.pendingQuestion={...this.pendingQuestion,status:`error`,message:`This question has multiple parts and must be answered with the provided controls.`};return}if(this.sending)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:T(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this._resetPendingRenderState(),this.error=``,this.sending=!0,D.ttsAutoEnabled&&fe();try{if(this._unsubscribeEvents&&this.liveConnected)await new Promise((e,r)=>{let i=setTimeout(()=>{this._failPendingTurn(Error(`Timed out waiting for the assistant response.`))},ve);this._pendingTurn={endpointId:this.activeEndpointId,sessionId:n,spokenOffset:0,reasoningPartIds:new Set,resolve:e,reject:r,timeout:i},j(n,t).catch(e=>{this._failPendingTurn(e instanceof Error?e:Error(String(e)))})});else{let e=(await le(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``);this.finalizeTurn({sessionId:n,replyText:e})}}catch(e){this._resetPendingRenderState(),this.entries=this.entries.filter(e=>e.id!==r.id),this.lastFailedText=t;let n=e?.status;(n===503||n===502)&&this.setEndpointState(this.activeEndpointId,{activeSessionId:null}),this.error=X(e,{fallback:`Message failed.`,reconnectHint:!0}),W()}finally{this.sending=!1}}async sendUtterance(e){let t=e.trim();if(t){if(this.sending&&!this.pendingQuestion){await this.stopTurn();for(let e=0;this.sending&&e<20;e++)await new Promise(e=>setTimeout(e,10));if(this.sending){this.lastFailedText=t,this.error=`The assistant is still finishing the previous reply — use retry to send your message.`;return}}await this.send(t)}}async stopTurn(){if(!this.sending)return;let e=this.activeSessionId;if(e)try{await ne(e)}catch{}E();let t=this._clearPendingTurn();if(this.pendingAssistantText)this.finalizeTurn({sessionId:t?.sessionId??e??``,suppressSpeech:!0});else{this._resetPendingRenderState();let e={id:T(),type:`note`,label:`Stopped`,text:`Stopped.`,timestamp:Date.now()};this.entries=[...this.entries,e]}t?.resolve()}async answerPermission(e){if(!this.pendingPermission||this.pendingPermission.status===`submitting`)return;let t=this.pendingPermission;this.pendingPermission={...t,status:`submitting`,decision:e,message:``};try{await L(t.requestID,e),this.pendingPermission={...t,status:`resolved`,decision:e,message:e===`once`?`Allowed ${t.permission} once. Waiting for the assistant to continue...`:e===`always`?`Always allowed future matching ${t.permission} requests.`:`Denied ${t.permission}. Waiting for the assistant to continue...`}}catch(n){let r=n instanceof Error?n.message:`Failed to record permission reply.`;this.pendingPermission={...t,status:`error`,decision:e,message:r}}}setQuestionAnswer(e,t){if(!this.pendingQuestion||e<0||e>=this.pendingQuestion.questions.length)return;let n=[...this.pendingQuestion.answers];n[e]=t,this.pendingQuestion={...this.pendingQuestion,answers:n,message:``}}async answerQuestion(e){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let t=this.pendingQuestion,n=t.questions.length===1&&typeof e==`string`?[e.trim()]:t.answers.map(e=>e.trim());if(n.some(e=>!e)){this.pendingQuestion={...t,status:`error`,message:`Answer every question before submitting.`};return}this.pendingQuestion={...t,status:`submitting`,answers:n,message:``};try{await H(t.requestID,n.map(e=>[e])),this.pendingQuestion={...t,status:`answered`,answers:n,message:`Answer sent.`}}catch(e){let r=e instanceof Error?e.message:`Failed to send answer.`;this.pendingQuestion={...t,status:`error`,answers:n,message:r}}}async rejectQuestion(){if(!this.pendingQuestion||this.pendingQuestion.status===`submitting`)return;let e=this.pendingQuestion;this.pendingQuestion={...e,status:`submitting`,message:``};try{await I(e.requestID),this.pendingQuestion={...e,status:`rejected`,message:`Question declined.`}}catch(t){let n=t instanceof Error?t.message:`Failed to reject question.`;this.pendingQuestion={...e,status:`error`,message:n}}}reset(){if(E(),this._clearPendingTurn(),this.entries=[],this.error=``,this.lastFailedText=``,this._resetPendingRenderState(),this.byEndpoint=new K,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}};ie(()=>Q.sending?`Wait for the current reply to finish before switching.`:null),ae(e=>Q.onEndpointChanged(e));function ye(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/=+$/g,``)}function be(){return Q.activeSessionId}function xe(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/advanced?${n}`:`/advanced`}function Se(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/chat?${n}`:`/chat`}function Ce(e,t,n){return!t||!n?e:`${e.replace(/\/$/,``)}/${ye(n)}/session/${encodeURIComponent(t)}`}var we=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 17l4-4-4-4"></path><path d="M12 17h8"></path></svg>`);function Te(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=we();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}function Ee(e){if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}}var De=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function $(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=De.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return G(e)}return t}function Oe(e,t){h(t,!0);let n=m(()=>$(t.title));C();var r=o();l(()=>i(r,c(n))),a(e,r),g()}var ke=t(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),Ae=t(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),je=t(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),Me=t(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Ne=t(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Pe=t(`<button type="button"><span class="item-text svelte-1o6rxhb"><span class="item-label svelte-1o6rxhb"><!><!></span> <span class="item-meta svelte-1o6rxhb"> </span></span></button>`),Fe=t(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ie=t(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),Le=t(`<div class="divider svelte-1o6rxhb"></div> <button type="button" class="list-item new-btn svelte-1o6rxhb"><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>`,1),Re=t(`<div class="session-body svelte-1o6rxhb"><!> <!> <!></div>`);function ze(t,n){h(n,!0);let o=u(n,`hideNewBtn`,3,!1),y=S(!1),w=m(()=>oe.active),T=m(()=>c(w)?Q.byEndpoint.get(c(w).id)??null:null),E=m(()=>c(T)?.sessions??[]),D=m(()=>c(T)?.sessionsLoading??!1),O=m(()=>c(T)?.sessionsError??``),k=m(()=>Q.activeSessionId),A=m(()=>c(y)?c(E):c(E).slice(0,50)),j=m(()=>Math.max(0,c(E).length-50));ee(()=>{c(w)&&!c(T)?.sessionsLoaded&&!c(D)&&Q.loadSessions()});async function M(e){Q.sending||(await Q.openSession(e),n.onChosen?.())}async function N(){Q.sending||(await Q.startNewSession(),n.onChosen?.())}async function P(){await Q.loadSessions()}var F=Re(),I=x(F),L=e=>{a(e,ke())};r(I,e=>{Q.sending&&e(L)});var R=d(I,2),z=e=>{var t=Ae();ue(x(t),{size:12}),C(),s(t),a(e,t)},B=t=>{var n=je(),r=x(n),o=x(r,!0);s(r);var u=d(r,2);s(n),l(()=>i(o,c(O))),e(`click`,u,P),a(t,n)},V=e=>{a(e,Me())},H=t=>{var n=Ie(),o=_(n);v(o,21,()=>c(A),e=>e.id,(t,n)=>{var o=Pe();let u;var p=x(o),m=x(p),h=x(m);Oe(h,{get title(){return c(n).title}});var g=d(h),_=e=>{a(e,Ne())};r(g,e=>{c(n).id===c(k)&&e(_)}),s(m);var v=d(m,2),y=x(v,!0);s(v),s(p),s(o),l((e,t)=>{u=f(o,1,`list-item session-item svelte-1o6rxhb`,null,u,{active:c(n).id===c(k)}),b(o,`aria-current`,c(n).id===c(k)?`true`:void 0),o.disabled=Q.sending,b(o,`title`,e),i(y,t)},[()=>G(c(n).updatedAt),()=>te(c(n).updatedAt)]),e(`click`,o,()=>M(c(n).id)),a(t,o)}),s(o);var u=d(o,2),m=t=>{var n=Fe(),r=x(n);s(n),l(()=>i(r,`Show all (${c(j)??``} more)`)),e(`click`,n,()=>p(y,!0)),a(t,n)};r(u,e=>{!c(y)&&c(j)>0&&e(m)}),a(t,n)};r(R,e=>{!c(T)||c(D)?e(z):c(O)?e(B,1):c(E).length===0?e(V,2):e(H,-1)});var U=d(R,2),W=t=>{var n=Le(),r=d(_(n),2);l(()=>r.disabled=Q.sending),e(`click`,r,N),a(t,n)};r(U,e=>{o()||e(W)}),s(F),a(t,F),g()}w([`click`]);var Be=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16" opacity="0.9"></path><path d="M4 12h11" opacity="0.65"></path><path d="M4 17h7.5" opacity="0.5"></path></svg>`);function Ve(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=Be();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}var He=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><line x1="23" y1="9" x2="17" y2="15"></line><line x1="17" y1="9" x2="23" y2="15"></line></svg>`);function Ue(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=He();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}var We=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path></svg>`);function Ge(e,t){let n=u(t,`size`,3,20),r=u(t,`class`,3,``);var i=We();l(()=>{b(i,`width`,n()),b(i,`height`,n()),f(i,0,`s-icon ${r()??``}`)}),a(e,i)}export{$ as a,Ce as c,be as d,Q as f,ze as i,xe as l,Ue as n,Ee as o,de as p,Ve as r,Te as s,Ge as t,Se as u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Ct as t,E as n,F as r,I as i,L as a,M as o,N as s,P as c,S as l,St as u,U as d,X as f,a as p,at as m,b as h,ft as g,gt as _,ht as v,it as y,p as b,rt as x,xt as S,y as C,z as w}from"./DTLQuSQp.js";import"./xihTtKlq.js";import{
|
|
1
|
+
import{B as e,Ct as t,E as n,F as r,I as i,L as a,M as o,N as s,P as c,S as l,St as u,U as d,X as f,a as p,at as m,b as h,ft as g,gt as _,ht as v,it as y,p as b,rt as x,xt as S,y as C,z as w}from"./DTLQuSQp.js";import"./xihTtKlq.js";import{E as T}from"./D-DB6zTo.js";import{i as E,t as D}from"./CzKYnjEX.js";import{t as O}from"./qrqTdjh7.js";import{Q as k,X as A,Z as j,c as M,l as N,s as P}from"./DDSqq1hR.js";import{t as F}from"./ByiipSaR.js";var I=i(`<span class="icon-btn-label svelte-pe8zcr"> </span>`),L=i(`<a><!> <!></a>`),R=i(`<span class="icon-btn-label svelte-pe8zcr"> </span>`),z=i(`<button><!> <!></button>`);function B(t,i){let a=p(i,`disabled`,3,!1),l=p(i,`type`,3,`button`),d=p(i,`selected`,3,!1),g=p(i,`tone`,3,`primary`);var _=r(),v=y(_),S=t=>{var r=L();let l;var p=x(r);n(p,()=>i.icon);var _=m(p,2),v=e=>{var t=I(),n=x(t,!0);u(t),f(()=>s(n,i.label)),c(e,t)};o(_,e=>{i.label&&e(v)}),u(r),f(()=>{l=h(r,1,`icon-btn svelte-pe8zcr`,null,l,{"has-label":i.label,selected:d(),"tone-danger":g()===`danger`}),b(r,`href`,i.href),b(r,`title`,i.title??i.ariaLabel??i.label),b(r,`aria-label`,i.ariaLabel??i.label),b(r,`aria-disabled`,a()||void 0)}),e(`click`,r,function(...e){i.onclick?.apply(this,e)}),c(t,r)},C=t=>{var r=z();let p;var _=x(r);n(_,()=>i.icon);var v=m(_,2),y=e=>{var t=R(),n=x(t,!0);u(t),f(()=>s(n,i.label)),c(e,t)};o(v,e=>{i.label&&e(y)}),u(r),f(()=>{p=h(r,1,`icon-btn svelte-pe8zcr`,null,p,{"has-label":i.label,selected:d(),"tone-danger":g()===`danger`}),b(r,`type`,l()),r.disabled=a(),b(r,`title`,i.title??i.ariaLabel??i.label),b(r,`aria-label`,i.ariaLabel??i.label),b(r,`aria-pressed`,i.ariaPressed)}),e(`click`,r,function(...e){i.onclick?.apply(this,e)}),c(t,r)};o(v,e=>{i.href?e(S):e(C,-1)}),c(t,_)}w([`click`]);var V=e=>{var t=r(),n=y(t),i=e=>{k(e,{size:16})},a=e=>{j(e,{size:16})},s=e=>{A(e,{size:16})};o(n,e=>{T.preference===`system`?e(i):T.preference===`light`?e(a,1):e(s,-1)}),c(e,t)};function H(e,t){_(t,!0);let n=[`system`,`light`,`dark`];function r(){let e=T.preference,t=n[(n.indexOf(e)+1)%n.length];T.setPreference(t)}let i=g(()=>T.preference===`system`?`Theme: system (click for light)`:T.preference===`light`?`Theme: light (click for dark)`:`Theme: dark (click for system)`);B(e,{get icon(){return V},get ariaLabel(){return d(i)},get title(){return d(i)},onclick:r}),v()}var U=a(`<svg aria-hidden="true" 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>`);function W(e,t){let n=p(t,`size`,3,20),r=p(t,`class`,3,``);var i=U();f(()=>{b(i,`width`,n()),b(i,`height`,n()),h(i,0,`s-icon ${r()??``}`)}),c(e,i)}var G=a(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>`);function K(e,t){let n=p(t,`size`,3,20),r=p(t,`class`,3,``);var i=G();f(()=>{b(i,`width`,n()),b(i,`height`,n()),h(i,0,`s-icon ${r()??``}`)}),c(e,i)}var q=e=>{W(e,{size:18})},J=e=>{K(e,{size:18})},Y=i(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><!></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1"><!> <!> <!></div></div></header>`);function X(e,r){_(r,!0);let i=g(()=>E.routes.chat??`/chat`),a=g(()=>E.routes.host),s=g(()=>O.url?.pathname??``),l=g(()=>d(a)!==void 0&&(d(s)===d(a)||d(s).startsWith(`${d(a)}/`))),p=g(()=>r.brandHref??d(i));var h=Y(),y=x(h),C=x(y),w=x(C);F(x(w),{size:28}),u(w),S(2),u(C);var T=m(C,2),k=x(T),A=e=>{B(e,{get href(){return d(p)},ariaLabel:`Back to chat`,title:`Chat`,get icon(){return q}})},j=e=>{B(e,{get href(){return d(a)},ariaLabel:`Manage assistant`,title:`Admin`,get icon(){return J}})},M=g(()=>d(a)!==void 0&&D(`host:stack:read`));o(k,e=>{d(l)?e(A):d(M)&&e(j,1)});var N=m(k,2);H(N,{}),n(m(N,2),()=>r.children??t),u(T),u(y),u(h),f(()=>b(C,`href`,d(p))),c(e,h),v()}var Z=i(`<footer class="drawer-footer svelte-18x8ksj"><!></footer>`),Q=i(`<div class="drawer-scrim svelte-18x8ksj"></div> <div class="drawer svelte-18x8ksj" role="dialog" aria-modal="true" tabindex="-1"><header class="drawer-header svelte-18x8ksj"><!> <h3 class="drawer-title svelte-18x8ksj"> </h3> <button class="drawer-close svelte-18x8ksj" aria-label="Close"><!></button></header> <div class="drawer-body svelte-18x8ksj"><!></div> <!></div>`,1);function $(t,i){_(i,!0);let a=p(i,`width`,3,`32rem`),d=P({initialFocus:`.drawer-body`});var h=r(),g=y(h),S=t=>{var p=Q(),h=y(p),g=m(h,2),_=x(g),v=x(_),S=e=>{var t=r();n(y(t),()=>i.headerStart),c(e,t)};o(v,e=>{i.headerStart&&e(S)});var w=m(v,2),T=x(w,!0);u(w);var E=m(w,2);N(x(E),{size:18}),u(E),u(_);var D=m(_,2);n(x(D),()=>i.children),u(D);var O=m(D,2),k=e=>{var t=Z();n(x(t),()=>i.footer),u(t),c(e,t)};o(O,e=>{i.footer&&e(k)}),u(g),l(g,()=>d),f(()=>{C(g,`--drawer-width: ${a()??``}`),b(g,`aria-label`,i.title),s(T,i.title)}),e(`click`,h,function(...e){i.onClose?.apply(this,e)}),e(`keydown`,g,e=>M(e,i.onClose)),e(`click`,E,function(...e){i.onClose?.apply(this,e)}),c(t,p)};o(g,e=>{i.open&&e(S)}),c(t,h),v()}w([`click`,`keydown`]);export{X as n,B as r,$ as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{U as e,ct as t,ot as n,ut as r}from"./DTLQuSQp.js";var i={info:4e3,success:5e3,error:8e3},a=new class{#e=r(n([]));get toasts(){return e(this.#e)}set toasts(e){t(this.#e,e,!0)}timers=new Map;push(e,t,n={}){let r=n.replaceId??(typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`t-${Date.now()}-${Math.random().toString(36).slice(2)}`),a=n.sticky?null:n.ttlMs??i[e],o={id:r,kind:e,message:t,ttlMs:a},s=this.timers.get(r);s&&(clearTimeout(s),this.timers.delete(r));let c=this.toasts.findIndex(e=>e.id===r);if(c>=0){let e=[...this.toasts];e[c]=o,this.toasts=e}else this.toasts=[...this.toasts,o];if(a!==null){let e=setTimeout(()=>this.dismiss(r),a);this.timers.set(r,e)}return r}dismiss(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}clear(){for(let e of this.timers.values())clearTimeout(e);this.timers.clear(),this.toasts=[]}},o=`openpalm.theme`,s=`data-theme`,c=`#161c22`,l=`#f9fafb`;function u(e){return e===`light`||e===`dark`||e===`system`}var d=new class{#e=r(`system`);get preference(){return e(this.#e)}set preference(e){t(this.#e,e,!0)}#t=r(`light`);get resolved(){return e(this.#t)}set resolved(e){t(this.#t,e,!0)}#n=r(!1);get initialized(){return e(this.#n)}set initialized(e){t(this.#n,e,!0)}#r=null;#i=()=>{this.preference===`system`&&(this.resolved=this.#s(`system`),this.#l())};init(){typeof window>`u`||this.initialized||(this.preference=this.#a(),this.resolved=this.#s(this.preference),this.#c(),this.#l(),this.initialized=!0)}setPreference(e){this.preference=e,this.resolved=this.#s(e),this.#o(e),this.#l()}toggle(){let e=this.preference===`system`?`light`:this.preference===`light`?`dark`:`system`;this.setPreference(e)}dispose(){this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=null,this.initialized=!1}#a(){if(typeof window>`u`)return`system`;try{let e=window.localStorage.getItem(o);return u(e)?e:`system`}catch{return`system`}}#o(e){if(!(typeof window>`u`))try{window.localStorage.setItem(o,e)}catch{}}#s(e){return e===`light`||e===`dark`?e:typeof window>`u`||typeof window.matchMedia!=`function`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}#c(){if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);this.#r!==e&&(this.#r&&(typeof this.#r.removeEventListener==`function`?this.#r.removeEventListener(`change`,this.#i):this.#r.removeListener(this.#i)),this.#r=e,typeof e.addEventListener==`function`?e.addEventListener(`change`,this.#i):e.addListener(this.#i))}#l(){if(typeof document>`u`)return;let e=document.documentElement;e.setAttribute(s,this.resolved),e.style.colorScheme=this.resolved;let t=document.querySelector(`meta[name="theme-color"]`);t&&(t.content=this.resolved===`dark`?c:l);let n=document.querySelector(`meta[name="color-scheme"]`);n&&(n.content=this.resolved)}},f=[`audio/webm;codecs=opus`,`audio/webm`];function ee(){let e=globalThis.MediaRecorder;if(!(!e||typeof e.isTypeSupported!=`function`)){for(let t of f)if(e.isTypeSupported(t))return t}}async function te(){if(typeof window>`u`)throw Error(`Recording is only available in the browser.`);if(typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)throw Error(`Recording is not supported in this browser.`);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){let t=e?.name??``;throw Error(t===`NotAllowedError`||t===`SecurityError`?`Microphone access denied. Open System Settings → Privacy & Security → Microphone and enable OpenPalm, then restart the app.`:t===`NotFoundError`||t===`OverconstrainedError`?`No microphone was found. Plug in a microphone and try again.`:`Microphone error: ${e?.message??String(e)}`,{cause:e})}return re(e,!0)}function ne(e){if(typeof MediaRecorder>`u`)throw Error(`Recording is not supported in this browser.`);return re(e,!1)}function re(e,t){let n=ee(),r=n?new MediaRecorder(e,{mimeType:n}):new MediaRecorder(e),i=[];r.addEventListener(`dataavailable`,e=>{let t=e.data;t&&t.size>0&&i.push(t)});let a=!1,o=!1,s=null,c=null;function l(){if(t)for(let t of e.getTracks())try{t.stop()}catch{}}return r.addEventListener(`stop`,()=>{if(l(),o)return;let e=new Blob(i,{type:r.mimeType||n||`audio/webm`});s?.(e)}),r.addEventListener(`error`,e=>{l();let t=e?.error??Error(`Recorder error`);c?.(t)}),r.start(),{stop(){return a?Promise.reject(Error(`Recorder already stopped`)):(a=!0,new Promise((e,t)=>{s=e,c=t;try{r.state!==`inactive`&&r.stop()}catch(e){l(),t(e)}}))},cancel(){if(!a){a=!0,o=!0;try{r.state!==`inactive`&&r.stop()}catch{}l()}}}}var ie={threshold:.02,startFrames:3,endSilenceMs:900,frameIntervalMs:50};function ae(e,t){if(e.length===0)return t;let n=[...e].sort((e,t)=>e-t),r=n[Math.floor((n.length-1)*.2)];return Math.max(t,r*2.75)}function oe(e){return{...e,threshold:e.threshold*3,startFrames:8}}function se(){return{speaking:!1,aboveCount:0,silenceMs:0}}function ce(e,t,n){let r=t>=n.threshold;if(!e.speaking){let t=r?e.aboveCount+1:0;return t>=n.startFrames?{state:{speaking:!0,aboveCount:0,silenceMs:0},event:`speech-start`}:{state:{speaking:!1,aboveCount:t,silenceMs:0},event:null}}let i=r?0:e.silenceMs+n.frameIntervalMs;return i>=n.endSilenceMs?{state:{speaking:!1,aboveCount:0,silenceMs:0},event:`speech-end`}:{state:{speaking:!0,aboveCount:0,silenceMs:i},event:null}}function le(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++){let r=(e[n]-128)/128;t+=r*r}return Math.sqrt(t/e.length)}async function ue(e){if(typeof window>`u`||!navigator?.mediaDevices?.getUserMedia)throw Error(`Voice detection is not supported in this browser.`);let t=window.AudioContext??window.webkitAudioContext;if(!t)throw Error(`Voice detection is not supported in this browser.`);let n;try{n=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}})}catch(e){let t=e?.name??``;throw Error(t===`NotAllowedError`||t===`SecurityError`?`Microphone access denied.`:`Microphone error: ${e?.message??String(e)}`,{cause:e})}let r=e.config??ie,i=new t,a=i.createMediaStreamSource(n),o=i.createAnalyser();o.fftSize=1024,a.connect(o);let s=new Uint8Array(o.fftSize),c=se(),l=[],u=r,d=oe(r),f=!1,ee=setInterval(()=>{o.getByteTimeDomainData(s);let t=le(s);if(!f){l.push(t),l.length>=20&&(u={...r,threshold:ae(l,r.threshold)},d=oe(u),f=!0);return}let n=e.isAssistantSpeaking?.()?d:u,i=ce(c,t,n);c=i.state,i.event===`speech-start`?e.onSpeechStart():i.event===`speech-end`&&e.onSpeechEnd()},r.frameIntervalMs);return{stream:n,stop(){clearInterval(ee);try{a.disconnect()}catch{}i.close().catch(()=>{});for(let e of n.getTracks())try{e.stop()}catch{}}}}function de(){if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID();let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var fe=`https://github.com/itlackey/openpalm/blob/main/docs/remote-access-tls.md`;function p(e){return e===`localhost`||e===`127.0.0.1`||e===`::1`||e===`[::1]`}function m(e){try{let t=new URL(e);return t.username=``,t.password=``,t.toString().replace(/\/$/,t.pathname===`/`&&!e.endsWith(`/`)?``:`/`)}catch{return e}}function pe(e,t=globalThis.location??null){let n;try{n=new URL(e)}catch{return{ok:!1,reason:`invalid-url`,message:`Enter a valid URL.`}}return n.protocol!==`http:`&&n.protocol!==`https:`?{ok:!1,reason:`invalid-url`,message:`The URL must use http:// or https://.`}:n.username||n.password?{ok:!1,reason:`userinfo-not-allowed`,message:`Do not put credentials in the URL. Use the Authentication fields instead.`}:n.protocol===`https:`||p(n.hostname)||t?.protocol!==`https:`?{ok:!0}:{ok:!1,reason:`insecure-remote`,message:`This app runs on a secure (https) origin, so browsers block plain-HTTP connections to remote servers. Use an https:// URL — see the TLS setup guide.`,guideUrl:fe}}function me(e){let t=globalThis.location,n=m(e);if(!t||p(t.hostname))return n;try{let e=new URL(n);return p(e.hostname)?(e.hostname=t.hostname,e.toString()):n}catch{return n}}function h(e){let t=m(e.baseUrl);return t===e.baseUrl?e:{...e,baseUrl:t}}function he(e){let t;try{t=new URL(e)}catch{return}if(t.username||t.password)throw Error(`Credentials must use the Authentication fields, not the connection URL.`)}function ge(e){return{connections:e.connections.map(e=>({...h(e),baseUrl:e.locked?me(e.baseUrl):m(e.baseUrl)}))}}var g=`activeId`;function _(e){return structuredClone(e)}function _e(){let e=new Map,t=new Map,n=null;return{async getAll(){return[...e.values()].map(_)},async get(t){let n=e.get(t);return n?_(n):null},async put(t){e.set(t.id,_(h(t)))},async delete(t){e.delete(t)},async getMeta(e){return t.get(e)??null},async setMeta(e,n){n===null?t.delete(e):t.set(e,n)},async getCryptoKey(){return n},async setCryptoKey(e){n=e}}}var ve=`openpalm-ui-connections`,ye=1,v=`connections`,y=`meta`,b=`keys`,be=`secret-store-aes-gcm-key`;function x(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function xe(e){return new Promise((t,n)=>{let r=indexedDB.open(ve,ye);r.onupgradeneeded=()=>{let e=r.result;e.objectStoreNames.contains(v)||e.createObjectStore(v,{keyPath:`id`}),e.objectStoreNames.contains(y)||e.createObjectStore(y),e.objectStoreNames.contains(b)||e.createObjectStore(b)},r.onsuccess=()=>{let n=r.result;n.onversionchange=()=>{n.close(),e()},t(n)},r.onerror=()=>n(r.error??Error(`IndexedDB open failed`)),r.onblocked=()=>n(Error(`IndexedDB upgrade blocked by another open connection (close other tabs of this app and retry)`))})}function Se(){let e=null,t=()=>{e=null},n=()=>(e??=xe(t),e),r=async(e,t)=>(await n()).transaction(e,t).objectStore(e);return{async getAll(){return x((await r(v,`readonly`)).getAll())},async get(e){return await x((await r(v,`readonly`)).get(e))??null},async put(e){await x((await r(v,`readwrite`)).put(h(e)))},async delete(e){await x((await r(v,`readwrite`)).delete(e))},async getMeta(e){return await x((await r(y,`readonly`)).get(e))??null},async setMeta(e,t){let n=await r(y,`readwrite`);t===null?await x(n.delete(e)):await x(n.put(t,e))},async getCryptoKey(){return await x((await r(b,`readonly`)).get(be))??null},async setCryptoKey(e){await x((await r(b,`readwrite`)).put(e,be))}}}function Ce(e){let{storage:t}=e;async function n(e){let n=await t.get(e);if(!n)return null;let r=h(n);return r.baseUrl!==n.baseUrl&&await t.put(r),r}async function r(e){let t=await n(e);if(!t)throw Error(`Unknown connection: ${e}`);return t}return{async list(){let e=await t.getAll(),n=e.map(h);return await Promise.all(n.map((n,r)=>n.baseUrl===e[r]?.baseUrl?Promise.resolve():t.put(n))),n},get(e){return n(e)},async add(e){he(e.baseUrl);let r=e.id??de();if(await n(r))throw Error(`Connection already exists: ${r}`);let i={...e,id:r};return await t.put(i),_(i)},async update(e,n){n.baseUrl!==void 0&&he(n.baseUrl);let i=await r(e);if(i.locked)throw Error(`Connection is locked (config-owned): ${e}`);let a={...i,...n,id:e};return await t.put(a),_(a)},async remove(e){if((await r(e)).locked)throw Error(`Connection is locked (config-owned): ${e}`);await t.delete(e),await t.getMeta(g)===e&&await t.setMeta(g,null)},async setSecretRef(e,n){let i={...await r(e),auth:n,id:e};return await t.put(i),_(i)},getActiveId(){return t.getMeta(g)},async getActive(){let e=await t.getMeta(g);return e===null?null:n(e)},async setActive(e){await r(e),await t.setMeta(g,e)},async clearActive(){await t.setMeta(g,null)},async seedFromRuntimeConfig(e){if(!e)return;let r=await t.getMeta(g),i=new Set(e.connections.map(e=>e.id));for(let e of await t.getAll())!e.locked||i.has(e.id)||(await t.delete(e.id),r===e.id&&await t.setMeta(g,null));for(let r of e.connections){let e=h(r),i=await n(r.id);if(!i)await t.put(_(e));else if(i.locked){let n=_(e),r=i.auth&&i.auth.mode!==`none`;await t.put(r?{...n,auth:i.auth}:n)}}if(await t.getMeta(g)!==null)return;let a=e.connections.find(e=>e.isDefault);a&&await t.get(a.id)&&await t.setMeta(g,a.id)}}}async function we(e=globalThis.fetch){try{let t=await e(`/runtime-config.json`,{method:`GET`,headers:{accept:`application/json`},credentials:`omit`});if(!t.ok)return null;let n=await t.json();return!n||typeof n!=`object`||!Array.isArray(n.connections)?null:ge(n)}catch{return null}}var S=`secret:`,Te=2,Ee=256,De=12;function Oe(){return typeof crypto<`u`&&!!crypto.subtle}function ke(e){return!!e&&typeof e==`object`&&e.v===Te&&typeof e.iv==`string`&&typeof e.ciphertext==`string`}function C(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function w(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var T=new WeakMap;async function Ae(e){let t=await e.getCryptoKey();if(t)return t;let n=T.get(e);return n||(n=(async()=>{let t=await crypto.subtle.generateKey({name:`AES-GCM`,length:Ee},!1,[`encrypt`,`decrypt`]);return await e.setCryptoKey(t),t})(),T.set(e,n),n.catch(()=>{T.delete(e)})),n}async function je(e,t){let n=crypto.getRandomValues(new Uint8Array(De)),r=new TextEncoder().encode(JSON.stringify(t)),i=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},e,r));return{v:Te,iv:C(n),ciphertext:C(i)}}async function Me(e,t){let n=w(t.iv),r=w(t.ciphertext),i=await crypto.subtle.decrypt({name:`AES-GCM`,iv:n},e,r);return JSON.parse(new TextDecoder().decode(i))}async function E(e,t,n){if(!Oe()){await e.setMeta(S+t,JSON.stringify(n));return}let r=await je(await Ae(e),n);await e.setMeta(S+t,JSON.stringify(r))}async function D(e,t){let n=await e.getMeta(S+t);if(n===null)return null;let r;try{r=JSON.parse(n)}catch{return null}if(ke(r))try{return await Me(await Ae(e),r)}catch{return null}let i=r;if(Oe())try{await E(e,t,i)}catch{}return i}function Ne(e){return{async set(t,n){await E(e,t,n)},async delete(t){await e.setMeta(S+t,null)},get(t){return D(e,t)},async resolveAuth(t){if(t.auth.mode!==`basic`||!t.auth.secretRef)return{mode:`none`};let n=await D(e,t.auth.secretRef);if(!n||typeof n.password!=`string`)return{mode:`none`};let r=t.auth.username||n.username;return r?{mode:`basic`,username:r,password:n.password}:{mode:`basic`,password:n.password}},async updateUsername(t,n){let r=await D(e,t);if(!r)return;let i={...r};n===void 0?delete i.username:i.username=n,await E(e,t,i)}}}var Pe=1e3,Fe=3e4;function Ie(e){let t={},n=[];for(let r of e.split(`
|
|
2
|
+
`))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
|
|
3
|
+
`)),t}function Le(e,t){let n=t.properties?.info,r=n?.id??t.sessionID;if(r)switch(t.type){case`session.created`:e.onCreated(r);return;case`session.updated`:e.onUpdated(r,{title:n?.title,updatedAt:n?.time?.updated});return;case`session.deleted`:e.onDeleted(r);return;default:return}}function Re(e){let t=!1,n=new AbortController,r=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function i(){let t=!1;await qe().subscribeEvents(n=>{t||(t=!0,e.onConnect?.());let r=n;e.onEvent?.(r),Le(e,r)},n.signal)}return(async()=>{let a=0;for(;!t;)try{a++,await i(),a=0,t||await r(500)}catch(i){if(t)return;let o=i instanceof Error?i:Error(String(i));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await r(Math.min(Pe*2**Math.max(0,a-1),Fe)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}var ze=5e3;function Be(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function Ve(e){return e.mode===`basic`?`Basic ${Be(`${e.username??`opencode`}:${e.password}`)}`:null}function He(e,t,n=globalThis.fetch){function r(){let t=e();if(!t)throw Error(`No active connection`);return t}function i(e){return e.baseUrl.replace(/\/+$/,``)}async function a(e){let{authorization:n}=await t(e);return n?{authorization:n}:{}}return{async request(e,t,o){let s=r(),c={method:e,headers:{...o===void 0?{}:{"content-type":`application/json`},...await a(s)},credentials:`omit`};o!==void 0&&(c.body=JSON.stringify(o));let l=await n(`${i(s)}${t}`,c);if(!l.ok)throw Object.assign(Error(`HTTP ${l.status}`),{status:l.status});return l},async subscribeEvents(e,t){let o=r(),s=await n(`${i(o)}/event`,{method:`GET`,headers:{accept:`text/event-stream`,...await a(o)},credentials:`omit`,signal:t});if(!s.ok||!s.body)throw Object.assign(Error(`SSE stream failed: HTTP ${s.status}`),{status:s.status});let c=s.body.getReader(),l=new TextDecoder,u=``;try{for(;;){let{done:t,value:n}=await c.read();if(t)break;u+=l.decode(n,{stream:!0});let r=u.split(`
|
|
4
|
+
|
|
5
|
+
`);u=r.pop()??``;for(let t of r){if(!t)continue;let n=Ie(t);if(!n.data)continue;let r;try{r=JSON.parse(n.data)}catch{continue}e(r)}}}finally{try{c.releaseLock()}catch{}}},async probeHealth(){let t=e();if(!t)return{status:`unreachable`};let r=i(t),o=pe(r);if(!o.ok&&o.reason===`insecure-remote`)return{status:`insecure`};try{let e=await n(`${r}/`,{method:`GET`,headers:await a(t),credentials:`omit`,cache:`no-store`,signal:AbortSignal.timeout(ze)});return e.status===401||e.status===403?{status:`unauthorized`}:e.ok||e.status>=300&&e.status<400?{status:`accessible`}:{status:`unreachable`}}catch{return{status:`unreachable`}}}}}var O=null,k=null,A=null,Ue=null;function We(){try{if(typeof indexedDB<`u`)return Se()}catch{}return _e()}function j(){if(O&&k&&A)return;let e=We(),t=Ce({storage:e}),n=Ne(e),r=He(()=>Ue,async e=>({authorization:Ve(await n.resolveAuth(e))??void 0}));O=t,k=n,A=r}function Ge(){return j(),O}function Ke(){return j(),k}function qe(){return j(),A}function Je(e){Ue=e}var Ye=`openpalm.voice.settings`,Xe=[`disabled`,`browser`,`openpalm-voice`,`openai-compatible`];function Ze(){try{return globalThis.localStorage??null}catch{return null}}function Qe(e){if(!e||typeof e!=`object`)return null;let t=e;if(!Xe.includes(t.provider))return null;let n={provider:t.provider};for(let e of[`baseURL`,`model`,`language`,`voice`,`secretRef`])typeof t[e]==`string`&&t[e]&&(n[e]=t[e]);return n}function M(){let e=Ze()?.getItem(Ye);if(!e)return null;try{let t=JSON.parse(e),n=Qe(t.stt),r=Qe(t.tts);return!n||!r?null:{version:1,stt:n,tts:r}}catch{return null}}function $e(e){try{Ze()?.setItem(Ye,JSON.stringify(e))}catch{}}var et=`kokoro`,tt=`whisper-1`,nt=6e4,rt=5e3,N,P=null,F=0;async function it(){try{let e=await fetch(`/api/runtime`,{headers:{accept:`application/json`},credentials:`omit`,cache:`no-store`,signal:AbortSignal.timeout(rt)});if(!e.ok)return null;let t=await e.json();return typeof t.voice?.url==`string`&&t.voice.url?t.voice.url:null}catch{return null}}function at(){let e=F,t=it().then(t=>(e===F&&(N=t,P=null),t));return P=t,t}function ot(){return N===void 0?P??at():Promise.resolve(N)}function st(){return F++,N=void 0,at()}async function ct(e){if(e)try{return(await Ke().get(e))?.password||void 0}catch{return}}async function lt(e,t){let n=await ot();return n?{baseURL:n,model:t===`tts`?et:tt,language:t===`stt`?e?.language:void 0}:null}async function ut(e,t){let n=e?.provider;if(!n||n===`openpalm-voice`)return lt(e,t);if(n===`openai-compatible`){let n=e?.baseURL?.trim();return n?{baseURL:n,model:e?.model?.trim()||(t===`tts`?`tts-1`:`whisper-1`),voice:t===`tts`?e?.voice?.trim():void 0,language:t===`stt`?e?.language:void 0,apiKey:await ct(e?.secretRef)}:null}return null}function dt(){return ut(M()?.stt,`stt`)}function ft(){return ut(M()?.tts,`tts`)}function I(e){let t=e.replace(/\/+$/,``);return/\/v\d+$/.test(t)?t:`${t}/v1`}async function pt(e,t){let n=await dt();if(!n)throw Error(`Speech-to-text is not configured. Pick a provider in voice settings.`);let r=new FormData,i=e.name||`recording.webm`;r.append(`file`,e,i),r.append(`model`,n.model),r.append(`response_format`,`json`);let a=t?.language?.trim()||n.language?.trim();a&&r.append(`language`,a),t?.prompt?.trim()&&r.append(`prompt`,t.prompt.trim());let o={};n.apiKey&&(o.authorization=`Bearer ${n.apiKey}`);let s;try{s=await fetch(`${I(n.baseURL)}/audio/transcriptions`,{method:`POST`,headers:o,body:r,signal:AbortSignal.timeout(nt)})}catch{throw Error(`Could not reach the speech-to-text endpoint.`)}if(!s.ok)throw Error(`Transcription failed (HTTP ${s.status}).`);let c;try{c=await s.json()}catch{throw Error(`The speech-to-text endpoint returned a non-JSON response.`)}let l=c?.text;return typeof l==`string`?l:``}async function mt(e,t){let n=await ft();if(!n)return null;let r={"content-type":`application/json`};return n.apiKey&&(r.authorization=`Bearer ${n.apiKey}`),fetch(`${I(n.baseURL)}/audio/speech`,{method:`POST`,headers:r,body:JSON.stringify({model:n.model,input:e,...n.voice?{voice:n.voice}:{},response_format:t?.format??`wav`}),signal:AbortSignal.timeout(nt)})}async function ht(e){try{return(await fetch(`${I(e)}/models`,{method:`GET`,cache:`no-store`,signal:AbortSignal.timeout(2e3)})).status<500}catch{return!1}}var gt={"&":`&`,"<":`<`,">":`>`,""":`"`,"'":`'`};function _t(e){return e.replace(/&|<|>|"|'/g,e=>gt[e]??e)}function vt(e){try{return new URL(e).hostname}catch{return e}}function yt(e){let t=e;t=t.replace(/```[\s\S]*?```/g,` Code omitted. `),t=t.replace(/`([^`]+)`/g,`$1`),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`),t=t.replace(/https?:\/\/[^\s)<>"']+/g,e=>vt(e)),t=t.replace(/<[^>]+>/g,``),t=t.replace(/^\s*(?:-{3,}|\*{3,}|_{3,})\s*$/gm,``);let n=[];for(let e of t.split(`
|
|
6
|
+
`)){let t=e;if(/^\s*\|?[\s:|-]+\|?\s*$/.test(t)&&t.includes(`-`)&&t.includes(`|`))continue;t=t.replace(/^\s*>\s?/,``),t=t.replace(/^\s*#{1,6}\s+/,``);let r=/^\s*(?:[-*+]|\d+\.)\s+/.test(t);t=t.replace(/^\s*(?:[-*+]|\d+\.)\s+/,``),t.includes(`|`)&&(t=t.replace(/^\s*\|/,``).replace(/\|\s*$/,``).split(`|`).map(e=>e.trim()).join(`, `)),t=t.trim(),r&&t&&!/[.!?:]$/.test(t)&&(t+=`.`),n.push(t)}return t=n.join(`
|
|
7
|
+
`),t=t.replace(/~~(.+?)~~/g,`$1`),t=t.replace(/\*\*(.+?)\*\*/g,`$1`),t=t.replace(/__(.+?)__/g,`$1`),t=t.replace(/\*(.+?)\*/g,`$1`),t=t.replace(/(?<![A-Za-z0-9_])_(.+?)_(?![A-Za-z0-9_])/g,`$1`),t=_t(t),t=t.replace(/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g,``),t=t.replace(/\n{3,}/g,`
|
|
8
|
+
|
|
9
|
+
`),t=t.replace(/[^\S\n]{2,}/g,` `),t.trim()}var bt=20,xt=class{host;onQueueDrained=null;activeAudio=null;activeAudioUrl=null;speakQueue=[];busy=!1;generation=0;overflowNoticed=!1;pendingAutoplayAudio=null;pendingAutoplayUrl=null;constructor(e){this.host=e}primeForAutoplay(){if(typeof window>`u`)return;let e=window.AudioContext??window.webkitAudioContext;if(e)try{let t=new e,n=t.createBuffer(1,1,22050),r=t.createBufferSource();r.buffer=n,r.connect(t.destination),r.start(0),setTimeout(()=>{t.close().catch(()=>{})},100)}catch{}}teardownActiveAudio(){if(this.activeAudio){this.activeAudio.onerror=null,this.activeAudio.onended=null;try{this.activeAudio.pause()}catch{}this.activeAudio.src=``,this.activeAudio=null}this.activeAudioUrl&&=(URL.revokeObjectURL(this.activeAudioUrl),null)}teardownPendingAutoplay(){if(this.pendingAutoplayAudio){this.pendingAutoplayAudio.onerror=null,this.pendingAutoplayAudio.onended=null;try{this.pendingAutoplayAudio.pause()}catch{}this.pendingAutoplayAudio.src=``,this.pendingAutoplayAudio=null}this.pendingAutoplayUrl&&=(URL.revokeObjectURL(this.pendingAutoplayUrl),null),this.host.autoplayBlocked=!1}resume(){let e=this.pendingAutoplayAudio;if(!e){this.host.autoplayBlocked=!1;return}this.host.autoplayBlocked=!1,this.host.errorMessage=``,this.host.status=`speaking`,this.busy=!0,this.activeAudio=e,this.activeAudioUrl=this.pendingAutoplayUrl,this.pendingAutoplayAudio=null,this.pendingAutoplayUrl=null,e.play().catch(()=>{this.host.status=`idle`,this.host.errorMessage=`Audio playback failed.`,this.teardownActiveAudio(),this.drainNext()})}async speak(e){if(!(typeof window>`u`||!e.trim())){if(this.busy){this.speakQueue.push(e);let t=0;for(;this.speakQueue.length>bt;)this.speakQueue.shift(),t+=1;t>0&&!this.overflowNoticed&&(this.overflowNoticed=!0,a.push(`info`,`Skipped ${t} spoken ${t===1?`reply`:`replies`} — too much overlap. Lower the auto-speak chat rate.`));return}await this.playOne(e)}}drainNext(){let e=this.speakQueue.shift();e?this.playOne(e):(this.busy=!1,this.overflowNoticed=!1,this.onQueueDrained?.())}async playOne(e){if(typeof window>`u`)return;this.busy=!0;let t=this.generation,n=yt(e);if(!n){this.drainNext();return}this.teardownActiveAudio(),`speechSynthesis`in window&&window.speechSynthesis.cancel(),this.host.errorMessage=``;let r=this.host.ttsEngine,i=r===`openpalm-voice`||r===`remote`;if(i){let e;try{e=await mt(n)}catch{}if(t!==this.generation)return;if(e?.ok&&e.headers.get(`content-type`)?.startsWith(`audio/`)){let n=await e.blob();if(t!==this.generation)return;let r=URL.createObjectURL(n),i=new Audio(r);this.activeAudio=i,this.activeAudioUrl=r,i.onended=()=>{this.host.status=`idle`,this.teardownActiveAudio(),this.drainNext()},i.onerror=()=>{this.host.status=`idle`,this.host.errorMessage=`Audio playback failed.`,this.teardownActiveAudio(),this.drainNext()},this.host.status=`speaking`;try{await i.play()}catch{this.host.status=`idle`,this.pendingAutoplayAudio=i,this.pendingAutoplayUrl=r,this.activeAudio=null,this.activeAudioUrl=null,this.host.autoplayBlocked=!0}return}if(e&&!e.ok){let t=await this.extractSpeakError(e);this.host.errorMessage=t}}if(!(`speechSynthesis`in window)){this.drainNext();return}i&&(this.host.errorMessage=``);let a=new SpeechSynthesisUtterance(n);a.onstart=()=>{t===this.generation&&(this.host.status=`speaking`)},a.onend=()=>{t===this.generation&&(this.host.status=`idle`,this.drainNext())},a.onerror=()=>{t===this.generation&&(this.host.status=`idle`,this.drainNext())},window.speechSynthesis.speak(a)}async extractSpeakError(e){let t;try{let n=await e.clone().json();typeof n.error==`string`&&(t=n.error)}catch{}return t===`voice_unavailable`?`OpenPalm Voice is not enabled on this host.`:t===`voice_unreachable`||e.status>=500?`Voice engine is warming up — try again in a moment.`:`TTS failed (HTTP ${e.status}).`}stop(){this.speakQueue.length=0,this.busy=!1,this.generation+=1,this.overflowNoticed=!1,this.teardownPendingAutoplay(),this.teardownActiveAudio(),typeof window<`u`&&`speechSynthesis`in window&&window.speechSynthesis.cancel(),this.host.status=`idle`}},St=6e4,L=new class{#e=r(`idle`);get status(){return e(this.#e)}set status(e){t(this.#e,e,!0)}#t=r(!1);get sttSupported(){return e(this.#t)}set sttSupported(e){t(this.#t,e,!0)}#n=r(!1);get ttsSupported(){return e(this.#n)}set ttsSupported(e){t(this.#n,e,!0)}#r=r(``);get errorMessage(){return e(this.#r)}set errorMessage(e){t(this.#r,e,!0)}#i=r(``);get interimTranscript(){return e(this.#i)}set interimTranscript(e){t(this.#i,e,!0)}#a=r(`disabled`);get sttEngine(){return e(this.#a)}set sttEngine(e){t(this.#a,e,!0)}#o=r(`disabled`);get ttsEngine(){return e(this.#o)}set ttsEngine(e){t(this.#o,e,!0)}#s=r(``);get sttLanguage(){return e(this.#s)}set sttLanguage(e){t(this.#s,e,!0)}#c=r(!1);get ttsAutoEnabled(){return e(this.#c)}set ttsAutoEnabled(e){t(this.#c,e,!0)}#l=r(!1);get autoplayBlocked(){return e(this.#l)}set autoplayBlocked(e){t(this.#l,e,!0)}#u=r(!1);get conversationActive(){return e(this.#u)}set conversationActive(e){t(this.#u,e,!0)}#d=r(``);get browserSttUnsupportedReason(){return e(this.#d)}set browserSttUnsupportedReason(e){t(this.#d,e,!0)}},R=new xt(L);R.onQueueDrained=()=>{L.conversationActive&&L.status===`idle`&&(L.status=`recording`)};var Ct=`openpalm.tts.auto`,z=null,B=null,V=null,H=null,U=null,W=null,G=null,K=null,q=null,J=null,wt=800,Tt=3e4,Et=!1;function Dt(){Et||L.ttsEngine!==`remote`&&L.ttsEngine!==`openpalm-voice`||typeof window>`u`||(Et=!0,mt(`ok`).catch(()=>{}))}function Ot(e){let t=L.ttsAutoEnabled;if(L.ttsAutoEnabled=e,typeof window<`u`)try{window.localStorage.setItem(Ct,e?`1`:`0`)}catch{}if(!e){$();return}t||(R.primeForAutoplay(),Dt())}function Y(){if(!(typeof window>`u`))return window.SpeechRecognition??window.webkitSpeechRecognition??void 0}function kt(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent??``,t=/iPad|iPhone|iPod/.test(e),n=window.MSStream;return t&&!n}function At(){return!(typeof window>`u`||typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)}function jt(e){switch(e){case`browser`:return L.browserSttUnsupportedReason?!1:!!Y();case`remote`:case`openpalm-voice`:return At();default:return!1}}function Mt(e){return e===`browser`?`browser`:e===`openpalm-voice`?`openpalm-voice`:e===`openai-compatible`?`remote`:`disabled`}async function Nt(){let e=typeof window<`u`&&`speechSynthesis`in window;if(typeof window<`u`)try{L.ttsAutoEnabled=window.localStorage.getItem(Ct)===`1`}catch{}kt()&&Y()?L.browserSttUnsupportedReason=`iOS Safari does not support Web Speech recognition`:L.browserSttUnsupportedReason=``;let t=!!Y()&&!L.browserSttUnsupportedReason,n=await st(),r=M();r?(L.sttEngine=Mt(r.stt.provider),L.ttsEngine=Mt(r.tts.provider),L.sttLanguage=r.stt.language??``,(L.sttEngine===`openpalm-voice`||L.ttsEngine===`openpalm-voice`)&&!n&&(L.sttEngine===`openpalm-voice`&&(L.sttEngine=t?`browser`:`disabled`),L.ttsEngine===`openpalm-voice`&&(L.ttsEngine=e?`browser`:`disabled`))):(L.sttLanguage=``,L.sttEngine=n&&At()?`openpalm-voice`:t?`browser`:`disabled`,L.ttsEngine=n?`openpalm-voice`:e?`browser`:`disabled`),L.sttEngine===`browser`&&L.browserSttUnsupportedReason&&(L.sttEngine=`disabled`),L.ttsSupported=L.ttsEngine===`openpalm-voice`||L.ttsEngine===`remote`||L.ttsEngine===`browser`&&e,L.sttSupported=jt(L.sttEngine)}function Pt(e){if(L.conversationActive&&Q(),!(L.status===`recording`||L.status===`transcribing`)){if(!L.sttSupported||L.sttEngine===`disabled`){L.errorMessage=`Speech recognition is not available.`;return}if(L.errorMessage=``,H=e,L.sttEngine===`browser`){Ft(e);return}It()}}function Ft(e){let t=Y();if(!t){L.errorMessage=`Speech recognition is not supported in this browser.`;return}let n=new t;B=n,n.lang=L.sttLanguage||navigator?.language||`en-US`,n.interimResults=!0,n.maxAlternatives=1,n.continuous=!1;let r=``;n.onresult=e=>{let t=``;for(let n=e.resultIndex;n<e.results.length;n++){let i=e.results[n];i.isFinal?r+=i[0]?.transcript??``:t+=i[0]?.transcript??``}L.interimTranscript=r+t},n.onerror=e=>{if(B!==n)return;let t=e.error??``;t===`no-speech`||t===`aborted`||(t===`not-allowed`?L.errorMessage=`Microphone access denied.`:L.errorMessage=`Speech error: ${t}`),L.interimTranscript=``,L.status=`idle`,B=null,H=null},n.onend=()=>{B===n&&(r.trim()&&e&&e(r.trim()),L.interimTranscript=``,L.status=`idle`,B=null,H=null)};try{n.start(),L.status=`recording`}catch{L.errorMessage=`Failed to start speech recognition.`,L.status=`idle`,B=null,H=null}}async function It(){let e;try{e=await te()}catch(e){L.errorMessage=e instanceof Error?e.message:`Failed to start recording.`,L.status=`idle`,H=null;return}z=e,L.status=`recording`,V=setTimeout(()=>{X()},St)}async function X(){let e=z,t=H;if(!e)return;z=null,H=null,V&&=(clearTimeout(V),null),L.status=`transcribing`;let n;try{n=await e.stop()}catch(e){L.errorMessage=e instanceof Error?e.message:`Recording failed.`,L.status=`idle`;return}if(n.size===0){L.status=`idle`;return}try{let e=(await pt(n,{language:L.sttLanguage||void 0})).trim();e&&t&&t(e)}catch(e){L.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{L.status=`idle`}}function Lt(){if(B){try{B.stop()}catch{}return}z&&X()}function Rt(){if(V&&=(clearTimeout(V),null),z){try{z.cancel()}catch{}z=null}if(B){let e=B;B=null;try{e.stop()}catch{}}H=null,L.interimTranscript=``,L.status===`recording`&&(L.status=`idle`)}function Z(){G&&=(clearTimeout(G),null)}function zt(e){if(!L.conversationActive){if(!L.sttSupported||L.sttEngine===`disabled`){L.errorMessage=`Speech recognition is not available.`;return}if(Rt(),Dt(),L.errorMessage=``,L.conversationActive=!0,W=e,L.sttEngine===`browser`){Bt();return}Vt()}}function Q(){if(L.conversationActive){if(L.conversationActive=!1,W=null,Z(),J&&=(clearTimeout(J),null),U){let e=U;U=null;try{e.stop()}catch{}}if(q){try{q.cancel()}catch{}q=null}K&&=(K.stop(),null),L.interimTranscript=``,(L.status===`recording`||L.status===`transcribing`)&&(L.status=`idle`)}}function Bt(){let e=Y();if(!e){L.errorMessage=`Speech recognition is not supported in this browser.`,Q();return}let t=new e;U=t,t.lang=L.sttLanguage||navigator?.language||`en-US`,t.interimResults=!0,t.maxAlternatives=1,t.continuous=!0;let n=``,r=()=>{Z();let e=n.trim();n=``,L.interimTranscript=``,e&&W&&W(e)};t.onresult=e=>{if(U!==t)return;L.status===`speaking`&&($(),L.status=`recording`);let i=``;for(let t=e.resultIndex;t<e.results.length;t++){let r=e.results[t];r.isFinal?n+=r[0]?.transcript??``:i+=r[0]?.transcript??``}L.interimTranscript=n+i,Z(),n.trim()&&!i&&(G=setTimeout(r,wt))},t.onerror=e=>{if(U!==t)return;let n=e.error??``;if(!(n===`no-speech`||n===`aborted`)){if(n===`not-allowed`){L.errorMessage=`Microphone access denied.`,Q();return}L.errorMessage=`Speech error: ${n}`}},t.onend=()=>{U===t&&(n.trim()&&r(),L.conversationActive?Bt():U=null)};try{t.start(),L.status===`idle`&&(L.status=`recording`)}catch{L.errorMessage=`Failed to start speech recognition.`,U=null,Q()}}async function Vt(){let e;try{e=await ue({onSpeechStart:Ht,onSpeechEnd:()=>{Ut()},isAssistantSpeaking:()=>L.status===`speaking`})}catch(e){L.errorMessage=e instanceof Error?e.message:`Failed to start listening.`,L.conversationActive=!1,W=null;return}if(!L.conversationActive){e.stop();return}K=e,L.status===`idle`&&(L.status=`recording`)}function Ht(){if(!(!L.conversationActive||!K||q)){try{q=ne(K.stream)}catch(e){L.errorMessage=e instanceof Error?e.message:`Failed to start recording.`;return}L.status=`recording`,J=setTimeout(()=>{Ut()},Tt)}}async function Ut(){let e=q;if(!e)return;q=null,J&&=(clearTimeout(J),null),L.status=`transcribing`;let t;try{t=await e.stop()}catch(e){L.errorMessage=e instanceof Error?e.message:`Recording failed.`,L.conversationActive&&L.status===`transcribing`&&(L.status=`recording`);return}if(t.size===0){L.conversationActive&&L.status===`transcribing`&&(L.status=`recording`);return}try{let e=(await pt(t,{language:L.sttLanguage||void 0})).trim();e&&W&&L.conversationActive&&($(),L.status=`recording`,W(e))}catch(e){L.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{L.conversationActive&&L.status===`transcribing`&&(L.status=`recording`)}}function Wt(){R.resume()}function Gt(e){return R.speak(e)}function $(){R.stop()}function Kt(){if(Q(),V&&=(clearTimeout(V),null),z){try{z.cancel()}catch{}z=null}if(B){try{B.stop()}catch{}B=null}H=null,L.interimTranscript=``,L.status=`idle`}export{p as C,a as D,d as E,we as S,de as T,Ge as _,Ot as a,Je as b,Pt as c,$ as d,L as f,$e as g,M as h,Wt as i,Q as l,st as m,Nt as n,Gt as o,ht as p,kt as r,zt as s,Kt as t,Lt as u,Ke as v,pe as w,Re as x,qe as y};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{L as e,P as t,U as n,X as r,a as i,b as a,ct as o,ft as s,lt as c,ot as ee,p as l,q as u,st as d,ut as f}from"./DTLQuSQp.js";import"./xihTtKlq.js";import{C as p,S as te,_ as m,b as h,y as g}from"./D-DB6zTo.js";var ne=e(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v2"></path><path d="M14.837 16.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715"></path><path d="M16 12a4 4 0 0 0-4-4"></path><path d="m19 5-1.256 1.256"></path><path d="M20 12h2"></path></svg>`);function re(e,n){let o=i(n,`size`,3,20),s=i(n,`class`,3,``);var c=ne();r(()=>{l(c,`width`,o()),l(c,`height`,o()),a(c,0,`lucide lucide-sun-moon-icon lucide-sun-moon s-icon ${s()??``}`)}),t(e,c)}var ie=e(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2.5v2.2M12 19.3v2.2M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M2.5 12h2.2M19.3 12h2.2M19.4 4.6l-1.6 1.6M6.2 17.8l-1.6 1.6"></path></svg>`);function ae(e,n){let o=i(n,`size`,3,20),s=i(n,`class`,3,``);var c=ie();r(()=>{l(c,`width`,o()),l(c,`height`,o()),a(c,0,`s-icon ${s()??``}`)}),t(e,c)}var oe=e(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8z"></path></svg>`);function se(e,n){let o=i(n,`size`,3,20),s=i(n,`class`,3,``);var c=oe();r(()=>{l(c,`width`,o()),l(c,`height`,o()),a(c,0,`s-icon ${s()??``}`)}),t(e,c)}function _(e){if(typeof e==`string`)return e;if(e==null)return``;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return``}}function ce(...e){for(let t of e){let e=_(t);if(e)return e}return``}function le(e,t){if(e.type!==`tool`&&!e.state)return null;let n=e.state?.status??`running`;return{id:e.callID??e.id??t,kind:`tool`,tool:e.tool??`tool`,status:n,title:e.state?.title??e.tool??`tool`,detail:ce(e.state?.input,e.state?.metadata,e.state?.progress,e.state?.output),output:_(e.state?.output),error:e.state?.error??``,updatedAt:Date.now()}}function ue(e){let t=e.trim();if(!t||!(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`)))return null;try{return JSON.parse(t)}catch{return null}}function v(e){let t=ue(e);return t===null?e:JSON.stringify(t,null,2)}function de(e){return e?e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/[_-]+/g,` `).replace(/\s+/g,` `).trim().replace(/^./,e=>e.toUpperCase()):``}function fe(e,t){let n=e.toLowerCase();return t===`error`||t===`failed`?`alert`:n===`step`?t===`completed`?`done-circle`:`refresh`:n.includes(`remember`)||n.includes(`memory`)?`edit`:n.includes(`help`)||n.includes(`todo`)?t===`completed`?`done`:`agent`:n.includes(`bash`)||n.includes(`shell`)||n.includes(`command`)?`terminal`:n.includes(`grep`)||n.includes(`search`)?`search`:n.includes(`read`)||n.includes(`file`)?`file`:n.includes(`edit`)||n.includes(`write`)||n.includes(`patch`)?`edit`:n.includes(`web`)||n.includes(`http`)||n.includes(`fetch`)?`link`:n.includes(`task`)||n.includes(`agent`)?`agent`:t===`completed`?`done`:`clock`}function y(e){return e.kind===`step`?e.title:e.title||e.tool}function b(e){return e.kind===`step`?`Step`:`Tool`}function x(e){switch(e){case`completed`:return`completed`;case`error`:case`failed`:return`failed`;case`pending`:return`queued`;default:return`running`}}function pe(e){return`${b(e)}: ${y(e)} (${x(e.status)})`}function me(e){let t=[{label:`Type`,value:b(e)},{label:`Name`,value:y(e)},{label:`Status`,value:de(x(e.status))}];return e.kind!==`step`&&t.push({label:`Tool ID`,value:e.tool}),e.detail&&t.push({label:e.kind===`step`?`Details`:`Input / Details`,value:v(e.detail)}),e.output&&t.push({label:`Output`,value:v(e.output)}),e.error&&t.push({label:`Error`,value:v(e.error),tone:`error`}),t}var he=/(token|secret|password|key\s*=|key=)/i,ge=[{prefix:`gh auth login`,phrase:`Signed in to GitHub`},{prefix:`gh auth status`,phrase:`Checked GitHub sign-in`},{prefix:`gh auth`,phrase:`Set up GitHub access`},{prefix:`gh repo`,phrase:`Looked up a GitHub repo`},{prefix:`gh `,phrase:`Ran a GitHub command`},{prefix:`git config`,phrase:`Configured git`},{prefix:`git `,phrase:`Ran a git command`},{prefix:`akm add`,phrase:`Added a knowledge source`},{prefix:`akm remove`,phrase:`Removed a knowledge source`},{prefix:`akm `,phrase:`Updated knowledge`},{prefix:`cat `,phrase:`Read a file`},{prefix:`ls `,phrase:`Listed files`},{prefix:`grep`,phrase:`Searched files`},{prefix:`rg `,phrase:`Searched files`}];function _e(e){let t=e;for(;/^[A-Z_][A-Z0-9_]*=\S+\s+/.test(t);)t=t.replace(/^[A-Z_][A-Z0-9_]*=\S+\s+/,``);return t}function ve(e){let t=e;for(let e of[` && `,` || `,` | `,` ; `]){let n=t.indexOf(e);n>=0&&(t=t.slice(0,n))}return t.trim()}function ye(e){let t=e.toLowerCase();for(let{prefix:e,phrase:n}of ge)if(t.startsWith(e))return n;return null}function be(e){try{if(e.kind===`step`)return e.title;let t=(e.title||e.tool||``).trim(),n=(e.tool||``).toLowerCase();if(t){let r=ve(_e(t));if(r){let t=ye(r);if(t)return t;if(he.test(r)){let e=r.split(/\s+/)[0]||``;return e?`Ran a ${e} command`:`Ran a command`}return n.includes(`read`)||n.includes(`file`)?`Read a file`:n.includes(`edit`)||n.includes(`write`)||n.includes(`patch`)?`Edited a file`:n.includes(`grep`)||n.includes(`search`)?`Searched`:n.includes(`task`)||n.includes(`agent`)?e.title:r.replace(/^./,e=>e.toUpperCase())}}return n.includes(`read`)||n.includes(`file`)?`Read a file`:n.includes(`edit`)||n.includes(`write`)||n.includes(`patch`)?`Edited a file`:n.includes(`grep`)||n.includes(`search`)?`Searched`:n.includes(`task`)||n.includes(`agent`)?e.title||e.tool||`Worked`:t||e.tool||`Worked`}catch{return e.title||e.tool||`Worked`}}function xe(e,t=Date.now()){if(!e)return``;let n=t-e;if(n<0)return`just now`;let r=Math.floor(n/1e3);if(r<45)return`just now`;let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let a=Math.floor(i/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function Se(e){let t=e.status;if(t===`error`||t===`failed`)return!0;let n=(e.tool||``).toLowerCase();if(n===`todowrite`||n===`todoread`)return!1;let r=e.title||e.tool||``;return!/^\d+\s+todos?$/i.test(r)}function S(e){let t=[];for(let n of e){let e=n.info.time?.created??Date.now(),r=``,i=0,a=[];n.parts.forEach((e,t)=>{if(e.type===`text`&&e.text){r+=e.text;return}if(e.type===`tool`||e.state){let r=le(e,`${n.info.id}:${t}`);if(!r)return;a.push(r)}}),(()=>{let o=r.trim();if(r=``,!(!o&&a.length===0)){if(o){let r={id:i===0?n.info.id:`${n.info.id}:text:${i}`,role:n.info.role,text:o,timestamp:e};a.length>0&&(r.toolStates=[...a],a.length=0),t.push(r),i+=1}else if(a.length>0){let r={id:`${n.info.id}:tools:${i}`,type:`tool-group`,toolStates:[...a],timestamp:e};a.length=0,t.push(r),i+=1}}})()}return t}async function C(){return await(await g().request(`POST`,`/session`,{})).json()}async function w(){let e=(await(await g().request(`GET`,`/session`)).json()).map(e=>({id:e.id,title:e.title??``,createdAt:e.time?.created??0,updatedAt:e.time?.updated??e.time?.created??0}));return e.sort((e,t)=>t.updatedAt-e.updatedAt),e}async function T(e){return S(await(await g().request(`GET`,`/session/${encodeURIComponent(e)}/message`)).json())}async function E(e,t){return await(await g().request(`POST`,`/session/${encodeURIComponent(e)}/message`,{parts:[{type:`text`,text:t}]})).json()}async function D(e,t){await g().request(`POST`,`/session/${encodeURIComponent(e)}/message`,{parts:[{type:`text`,text:t}]})}async function O(e){await(await g().request(`POST`,`/session/${encodeURIComponent(e)}/abort`,{})).text().catch(()=>``)}async function k(e,t){await(await g().request(`POST`,`/permission/${encodeURIComponent(e)}/reply`,{reply:t})).text().catch(()=>``)}async function A(e,t){await(await g().request(`POST`,`/question/${encodeURIComponent(e)}/reply`,{answers:t})).text().catch(()=>``)}async function j(e){await(await g().request(`POST`,`/question/${encodeURIComponent(e)}/reject`,{})).text().catch(()=>``)}async function Ce(){return(await g().probeHealth()).status===`accessible`}function M(e,t){let n=e?.[t];return typeof n==`string`?n:void 0}function we(e){if(e.type!==`message.part.updated`)return null;let t=e.properties?.part;return typeof t?.id==`string`&&typeof t.type==`string`?{partID:t.id,type:t.type}:null}function Te(e,t,n){let r=e.properties??{};if(M(r,`sessionID`)!==t)return null;if(e.type===`session.next.text.delta`)return M(r,`delta`)??M(r,`text`)??null;if(e.type===`message.part.delta`){let e=M(r,`field`);if(e&&e!==`text`)return null;let t=M(r,`partID`);return t&&n?.has(t)?null:M(r,`delta`)??null}return null}function Ee(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.type==`string`)return e.type}function De(e,t){let n=e.properties??{};if(M(n,`sessionID`)!==t)return!1;if(e.type===`session.idle`)return!0;if(e.type===`session.status`){let e=Ee(n.status);return e===`idle`||e===`completed`||e===`done`}return!1}function N(e){if(typeof e==`string`)return e;if(e!=null){if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return}}}function P(...e){for(let t of e){let e=N(t);if(e)return e}}function Oe(e,t){let n=e.properties??{};if(M(n,`sessionID`)!==t)return null;let r=n.part??n.tool;if(e.type===`message.part.updated`&&r&&(r.type===`tool`||r.state)){let e=r.state??{};return{callID:String(r.callID??r.id??``),tool:String(r.tool??`tool`),status:String(e.status??`running`),title:typeof e.title==`string`?e.title:void 0,detail:P(e.input,e.metadata,e.progress,e.output),output:N(e.output),error:typeof e.error==`string`?e.error:void 0}}if(e.type.startsWith(`session.next.tool.`)){let t=e.type.replace(`session.next.tool.`,``);return{callID:M(n,`callID`)??``,tool:M(n,`tool`)??`tool`,status:t===`completed`?`completed`:t===`failed`?`error`:t===`called`?`running`:M(n,`status`)??`running`,title:M(n,`title`)??M(n,`tool`),detail:P(n.message,n.delta,n.progress,n.input,n.metadata),output:P(n.output,n.result),error:P(n.error)}}return null}function ke(e,t){return e.type===`session.error`&&M(e.properties,`sessionID`)===t}function Ae(e,t){if(e.type!==`permission.asked`||M(e.properties,`sessionID`)!==t)return null;let n=M(e.properties,`id`);if(!n)return null;let r=Array.isArray(e.properties?.patterns)?e.properties.patterns.filter(e=>typeof e==`string`):[],i=Array.isArray(e.properties?.always)?e.properties.always.filter(e=>typeof e==`string`):[],a=e.properties?.tool;return{requestID:n,permission:M(e.properties,`permission`)??`tool`,patterns:r,always:i,tool:M(a,`callID`)??M(e.properties,`permission`)??`tool`,detail:P(e.properties?.metadata,e.properties?.message)??``}}function je(e,t){if(e.type!==`question.asked`||M(e.properties,`sessionID`)!==t)return null;let n=M(e.properties,`id`);if(!n)return null;let r=Array.isArray(e.properties?.questions)?e.properties.questions:[],i=[];for(let e of r){let t=e,n=Array.isArray(t.options)?t.options.map(e=>e).filter(e=>typeof e.label==`string`).map(e=>({label:e.label,description:typeof e.description==`string`?e.description:``})):[];i.push({question:typeof t.question==`string`?t.question:``,header:typeof t.header==`string`?t.header:``,options:n})}return i.length===0?null:{requestID:n,questions:i}}function Me(e,t){let n=e.properties??{};return M(n,`sessionID`)!==t||e.type!==`session.next.step.started`&&e.type!==`session.next.step.ended`?null:{id:M(n,`stepID`)??M(n,`id`)??e.type,title:M(n,`title`)??M(n,`step`)??(e.type===`session.next.step.started`?`Working`:`Step complete`),status:e.type===`session.next.step.ended`?`completed`:`running`,detail:P(n.detail,n.message)}}var Ne=[`forEach`,`isDisjointFrom`,`isSubsetOf`,`isSupersetOf`],Pe=[`difference`,`intersection`,`symmetricDifference`,`union`],F=!1,Fe=class e extends Set{#e=new Map;#t=f(0);#n=f(0);#r=u||-1;constructor(e){if(super(),e){for(var t of e)super.add(t);this.#n.v=super.size}F||this.#a()}#i(e){return u===this.#r?f(e):c(e)}#a(){F=!0;var t=e.prototype,r=Set.prototype;for(let e of Ne)t[e]=function(...t){return n(this.#t),r[e].apply(this,t)};for(let i of Pe)t[i]=function(...t){return n(this.#t),new e(r[i].apply(this,t))}}has(e){var t=super.has(e),r=this.#e,i=r.get(e);if(i===void 0){if(!t)return n(this.#t),!1;i=this.#i(!0),r.set(e,i)}return n(i),t}add(e){return super.has(e)||(super.add(e),o(this.#n,super.size),d(this.#t)),this}delete(e){var t=super.delete(e),n=this.#e,r=n.get(e);return r!==void 0&&(n.delete(e),o(r,!1)),t&&(o(this.#n,super.size),d(this.#t)),t}clear(){if(super.size!==0){super.clear();var e=this.#e;for(var t of e.values())o(t,!1);e.clear(),o(this.#n,0),d(this.#t)}}keys(){return this.values()}values(){return n(this.#t),super.values()}entries(){return n(this.#t),super.entries()}[Symbol.iterator](){return this.keys()}get size(){return n(this.#n)}},Ie=class extends Map{#e=new Map;#t=f(0);#n=f(0);#r=u||-1;constructor(e){if(super(),e){for(var[t,n]of e)super.set(t,n);this.#n.v=super.size}}#i(e){return u===this.#r?f(e):c(e)}has(e){var t=this.#e,r=t.get(e);if(r===void 0)if(super.has(e))r=this.#i(0),t.set(e,r);else return n(this.#t),!1;return n(r),!0}forEach(e,t){this.#a(),super.forEach(e,t)}get(e){var t=this.#e,r=t.get(e);if(r===void 0)if(super.has(e))r=this.#i(0),t.set(e,r);else{n(this.#t);return}return n(r),super.get(e)}set(e,t){var n=this.#e,r=n.get(e),i=super.get(e),a=super.set(e,t),s=this.#t;if(r===void 0)r=this.#i(0),n.set(e,r),o(this.#n,super.size),d(s);else if(i!==t){d(r);var c=s.reactions===null?null:new Set(s.reactions);(c===null||!r.reactions?.every(e=>c.has(e)))&&d(s)}return a}delete(e){var t=this.#e,n=t.get(e),r=super.delete(e);return n!==void 0&&(t.delete(e),o(n,-1)),r&&(o(this.#n,super.size),d(this.#t)),r}clear(){if(super.size!==0){super.clear();var e=this.#e;o(this.#n,0);for(var t of e.values())o(t,-1);d(this.#t),e.clear()}}#a(){n(this.#t);var e=this.#e;if(this.#n.v!==e.size){for(var t of super.keys())if(!e.has(t)){var r=this.#i(0);e.set(t,r)}}for([,r]of this.#e)n(r)}keys(){return n(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return n(this.#n),super.size}},I=`openpalm.desktop.notify`,L=`openpalm.desktop.notify.preview`;function R(e){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(e)===`1`}catch{return!1}}function z(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(e,t?`1`:`0`)}catch{}}function B(){return R(I)}function V(){return R(L)}function Le(e){z(I,e)}function Re(e){z(L,e)}function H(){return typeof document>`u`||document.hasFocus()||!B()?!1:typeof window<`u`&&typeof window.openpalm?.notify==`function`}function ze(e){if(!H())return;let t=V()&&e.trim()?e.trim():`Assistant replied`;window.openpalm?.notify?.(`OpenPalm`,t)}function Be(){H()&&window.openpalm?.notify?.(`OpenPalm`,`Assistant error`)}var U=new Set,W=new Set;function Ve(e){return U.add(e),()=>{U.delete(e)}}function He(e){return W.add(e),()=>{W.delete(e)}}function G(){for(let e of W){let t=e();if(t)return t}return null}async function K(e){for(let t of U)await t(e)}var q=[{baseUrl:`http://127.0.0.1:3800`,label:`Local assistant`},{baseUrl:`http://127.0.0.1:3830/oc`,label:`Local assistant (guardian)`}],J=`openpalm.connections.local-discovery-dismissed`,Ue=1500;function Y(){try{return globalThis.localStorage??null}catch{return null}}function We(){return Y()?.getItem(J)===`1`}function Ge(){try{Y()?.setItem(J,`1`)}catch{}}function X(e){try{let t=new URL(e),n=p(t.hostname)?`127.0.0.1`:t.hostname.toLowerCase(),r=t.port||(t.protocol===`https:`?`443`:`80`),i=t.pathname.replace(/\/+$/,``);return`${t.protocol}//${n}:${r}${i}`}catch{return null}}function Ke(e){let t=X(e);return t?q.some(e=>X(e.baseUrl)===t):!1}async function qe(e,t){try{let n=await t(`${e}/`,{method:`GET`,credentials:`omit`,cache:`no-store`,signal:AbortSignal.timeout(Ue)});return n.status===401||n.status===403?!0:n.ok||n.status>=300&&n.status<400}catch{return!1}}async function Je(e,t=globalThis.fetch){try{if(typeof t!=`function`||We())return null;let n=async()=>(await e.list()).some(e=>{try{return p(new URL(e.baseUrl).hostname)}catch{return!1}});if(await n())return null;for(let r of q)if(await qe(r.baseUrl,t))return await n()?null:await e.add({label:r.label,baseUrl:r.baseUrl,auth:{mode:`none`}});return null}catch{return null}}function Z(e){return{...e,url:e.baseUrl,isDefault:!!(e.isDefault||e.locked),hasPassword:e.auth.mode===`basic`}}var Ye=new class{#e=f(ee([]));get endpoints(){return n(this.#e)}set endpoints(e){o(this.#e,e,!0)}#t=f(``);get activeId(){return n(this.#t)}set activeId(e){o(this.#t,e,!0)}#n=f(!1);get loading(){return n(this.#n)}set loading(e){o(this.#n,e,!0)}#r=f(!1);get loaded(){return n(this.#r)}set loaded(e){o(this.#r,e,!0)}#i=f(``);get error(){return n(this.#i)}set error(e){o(this.#i,e,!0)}seeded=!1;#a=s(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return n(this.#a)}set active(e){o(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let e=m();this.seeded||(this.seeded=!0,await e.seedFromRuntimeConfig(await te()));let[t,n]=await Promise.all([e.list(),e.getActiveId()]);this.endpoints=t.map(Z),this.activeId=n??this.endpoints[0]?.id??``,h(t.find(e=>e.id===this.activeId)??null),this.loaded=!0,this.discoveryStarted||(this.discoveryStarted=!0,this.discoverLocal())}catch(e){let t=e;this.error=t.message??`Failed to load connections`}finally{this.loading=!1}}}discoveryStarted=!1;async discoverLocal(){try{let e=m(),t=await Je(e);if(!t)return;let[n,r]=await Promise.all([e.list(),e.getActiveId()]);this.endpoints=n.map(Z),this.activeId=r??this.endpoints[0]?.id??``,h(n.find(e=>e.id===this.activeId)??null),this.activeId===t.id&&!G()&&await K(t.id)}catch{}}activationSeq=0;async activate(e){if(e===this.activeId)return;let t=G();if(t)throw this.error=t,Error(t);let n=++this.activationSeq,r=this.activeId,i=this.endpoints.find(e=>e.id===r)??null;this.activeId=e;let a=m();try{await a.setActive(e),h(await a.get(e)??null),await K(e)}catch(e){n===this.activationSeq&&(this.activeId=r,i?(await a.setActive(r).catch(()=>{}),h(i)):(await a.clearActive().catch(()=>{}),h(null)));let t=e;throw this.error=t.message??`Failed to switch connection`,e}}},Q=e(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>`);function Xe(e,n){let o=i(n,`size`,3,20),s=i(n,`class`,3,``);var c=Q();r(()=>{l(c,`width`,o()),l(c,`height`,o()),a(c,0,`s-icon ${s()??``}`)}),t(e,c)}var Ze=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`;function $(e){return Array.from(e.querySelectorAll(Ze)).filter(e=>!e.hasAttribute(`hidden`)&&e.getAttribute(`aria-hidden`)!==`true`)}function Qe(e={}){return t=>{if(e.active===!1)return;let n=document.activeElement,r=e.initialFocus?t.querySelector(e.initialFocus):null;return((r&&$(r)[0])??$(t)[0]??t).focus(),()=>{e.deferRestore?requestAnimationFrame(()=>n?.focus?.()):n?.focus?.()}}}function $e(e,t){if(e.key===`Escape`){t();return}if(e.key!==`Tab`)return;let n=$(e.currentTarget);if(n.length===0){e.preventDefault(),e.currentTarget.focus();return}let r=n[0],i=n.at(-1);if(!r||!i)return;let a=document.activeElement;e.shiftKey&&(a===r||a===e.currentTarget)?(e.preventDefault(),i.focus()):!e.shiftKey&&a===i&&(e.preventDefault(),r.focus())}var et=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),tt=new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`});function nt(e){return e?et.format(e):``}function rt(e){return e?tt.format(e):``}function it(e,t=`—`){if(!e)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:n.toLocaleString()}function at(e){if(!Number.isFinite(e))return`—`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(n>=10||r===0?0:1)} ${t[r]}`}function ot(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}var st=e(`<svg aria-hidden="true" viewBox="0 0 24 24"><rect fill="currentColor" stroke="none" x="7" y="7" width="10" height="10" rx="1.4"></rect></svg>`);function ct(e,n){let o=i(n,`size`,3,20),s=i(n,`class`,3,``);var c=st();r(()=>{l(c,`width`,o()),l(c,`height`,o()),a(c,0,`s-icon ${s()??``}`)}),t(e,c)}export{we as A,D as B,Ae as C,Oe as D,Te as E,Ce as F,pe as G,Se as H,j as I,b as J,me as K,k as L,C as M,T as N,ke as O,w as P,re as Q,A as R,Fe as S,Me as T,xe as U,be as V,y as W,se as X,x as Y,ae as Z,Be as _,ot as a,Re as b,$e as c,Ke as d,Ge as f,V as g,B as h,rt as i,O as j,De as k,Xe as l,He as m,at as n,nt as o,Ve as p,fe as q,it as r,Qe as s,ct as t,Ye as u,ze as v,je as w,Ie as x,Le as y,E as z};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as e}from"./D-DB6zTo.js";var t=``;function n(){return{"x-request-id":e(),"x-requested-by":`ui`}}async function r(e,r,i,a){let o={...i===void 0?{}:{"content-type":`application/json`},...n()};return fetch(`${t}${r}`,{...a,method:e,headers:o,credentials:`include`,...i===void 0?{}:{body:JSON.stringify(i)}})}async function i(e,t=`Request failed (HTTP ${e.status})`){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.clone().json().catch(e=>(console.warn(`[api] Failed to parse JSON error response:`,e),null));if(t&&typeof t.message==`string`&&t.message.length>0)return t.message;if(t&&typeof t.error==`string`&&t.error.length>0)return t.error}return await e.text().catch(e=>(console.warn(`[api] Failed to read error response text:`,e),``))||t}async function a(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!e.ok)throw Object.assign(Error(await i(e,t)),{status:e.status});return e}async function o(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!(e.headers.get(`content-type`)??``).includes(`application/json`))throw Error(await i(e,t));return await e.json()}export{a as i,r as n,o as r,i as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./DTLQuSQp.js";import{a as e,o as t,s as n}from"./
|
|
1
|
+
import"./DTLQuSQp.js";import{a as e,o as t,s as n}from"./B9uMOgDZ.js";var r={get data(){return n.data},get error(){return n.error},get form(){return n.form},get params(){return n.params},get route(){return n.route},get state(){return n.state},get status(){return n.status},get url(){return n.url}};Object.defineProperty({get from(){return t.current?t.current.from:null},get to(){return t.current?t.current.to:null},get type(){return t.current?t.current.type:null},get willUnload(){return t.current?t.current.willUnload:null},get delta(){return t.current?t.current.delta:null},get complete(){return t.current?t.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),e.updated.check;var i=r;export{i as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.
|
|
2
|
-
import{F as e,G as t,I as n,M as r,N as i,P as a,Q as o,R as s,St as c,T as l,U as u,X as d,Z as f,a as p,at as m,c as h,ct as g,ft as _,gt as v,ht as y,i as b,it as x,r as S,rt as C,ut as w}from"../chunks/DTLQuSQp.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=n(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=n(`<!> <!>`,1);function k(n,b){v(b,!0);let T=p(b,`components`,23,()=>[]),E=p(b,`data_0`,3,null),k=p(b,`data_1`,3,null),A=p(b,`data_2`,3,null);o(()=>b.stores.page.set(b.page)),f(()=>{b.stores,b.page,b.constructors,T(),b.form,E(),k(),A(),b.stores.page.notify()});let j=w(!1),M=w(!1),N=w(null);S(()=>{let e=b.stores.page.subscribe(()=>{u(j)&&(g(M,!0),t().then(()=>{g(N,document.title||`untitled page`,!0)}))});return g(j,!0),e});let P=_(()=>b.constructors[2]);var F=O(),I=x(F),L=t=>{let n=_(()=>b.constructors[0]);var i=e();l(x(i),()=>u(n),(t,n)=>{h(n(t,{get data(){return E()},get form(){return b.form},get params(){return b.page.params},children:(t,n)=>{var i=e(),o=x(i),s=t=>{let n=_(()=>b.constructors[1]);var r=e();l(x(r),()=>u(n),(t,n)=>{h(n(t,{get data(){return k()},get form(){return b.form},get params(){return b.page.params},children:(t,n)=>{var r=e();l(x(r),()=>u(P),(e,t)=>{h(t(e,{get data(){return A()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),a(t,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),a(t,r)},c=t=>{let n=_(()=>b.constructors[1]);var r=e();l(x(r),()=>u(n),(e,t)=>{h(t(e,{get data(){return k()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(t,r)};r(o,e=>{b.constructors[2]?e(s):e(c,-1)}),a(t,i)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(t,i)},R=t=>{let n=_(()=>b.constructors[0]);var r=e();l(x(r),()=>u(n),(e,t)=>{h(t(e,{get data(){return E()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(t,r)};r(I,e=>{b.constructors[1]?e(L):e(R,-1)});var z=m(I,2),B=e=>{var t=D(),n=C(t),o=e=>{var t=s();d(()=>i(t,u(N))),a(e,t)};r(n,e=>{u(M)&&e(o)}),c(t),a(e,t)};r(z,e=>{u(j)&&e(B)}),a(n,F),y()}var A=b(k),j=[()=>T(()=>import(`../nodes/0.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.Bfv0aXoG.js","../chunks/DTLQuSQp.js","../chunks/xihTtKlq.js","../chunks/D3d8Mm8X.js","../chunks/92accNiq.js","../chunks/CJc9QEdG.js","../chunks/D-DB6zTo.js","../chunks/CzKYnjEX.js","../assets/0.CNWpIzQn.css","../nodes/1.B8Ebge5I.js","../chunks/qrqTdjh7.js","../chunks/B9uMOgDZ.js","../chunks/CymRgjIC.js","../nodes/2.tmtk1Bjc.js","../nodes/3.BEaeucAu.js","../nodes/4.DQOL0qY_.js","../chunks/BwKrb5qD.js","../chunks/C6rMFkms.js","../assets/ChatMessage.BdXOPwBm.css","../chunks/DDSqq1hR.js","../chunks/C7g46Pjm.js","../chunks/CXv_deBx.js","../chunks/ByiipSaR.js","../assets/Drawer.C9zcL24P.css","../chunks/CR3nChHO.js","../chunks/BBXQKGHA.js","../assets/Spinner.DfNgj4dl.css","../assets/IconSoundOn.BsTA83Hx.css","../chunks/C4qTU5YY.js","../chunks/DTAO9S6h.js","../assets/ChatNavbar.C7LJB8r7.css","../chunks/C092q_Hl.js","../assets/QuestionCard.CSfD3z_X.css","../assets/4.Cd3Y_8BZ.css","../nodes/5.BGqmDWpO.js","../assets/5.CTNuT1CQ.css","../nodes/6.Cf2kRGl-.js","../chunks/1F1QVf3N.js","../chunks/BGx9HO1u.js","../assets/6.BM7A1dW5.css","../nodes/7.CvaILUo5.js","../chunks/_zkFsY4j.js","../chunks/d1cxvUgj.js","../assets/7.DHMKw-HL.css","../nodes/8.BANf4x1v.js","../nodes/9.DvOR66Q0.js","../chunks/DD22UF1L2.js","../assets/9.CmCaAuiy.css","../nodes/10.Di4b61Rb.js","../assets/10.vLP66eby.css","../nodes/11.CUlazdDv.js","../assets/11.D7iX4s2y.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{F as e,G as t,I as n,M as r,N as i,P as a,Q as o,R as s,St as c,T as l,U as u,X as d,Z as f,a as p,at as m,c as h,ct as g,ft as _,gt as v,ht as y,i as b,it as x,r as S,rt as C,ut as w}from"../chunks/DTLQuSQp.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=n(`<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>`),O=n(`<!> <!>`,1);function k(n,b){v(b,!0);let T=p(b,`components`,23,()=>[]),E=p(b,`data_0`,3,null),k=p(b,`data_1`,3,null),A=p(b,`data_2`,3,null);o(()=>b.stores.page.set(b.page)),f(()=>{b.stores,b.page,b.constructors,T(),b.form,E(),k(),A(),b.stores.page.notify()});let j=w(!1),M=w(!1),N=w(null);S(()=>{let e=b.stores.page.subscribe(()=>{u(j)&&(g(M,!0),t().then(()=>{g(N,document.title||`untitled page`,!0)}))});return g(j,!0),e});let P=_(()=>b.constructors[2]);var F=O(),I=x(F),L=t=>{let n=_(()=>b.constructors[0]);var i=e();l(x(i),()=>u(n),(t,n)=>{h(n(t,{get data(){return E()},get form(){return b.form},get params(){return b.page.params},children:(t,n)=>{var i=e(),o=x(i),s=t=>{let n=_(()=>b.constructors[1]);var r=e();l(x(r),()=>u(n),(t,n)=>{h(n(t,{get data(){return k()},get form(){return b.form},get params(){return b.page.params},children:(t,n)=>{var r=e();l(x(r),()=>u(P),(e,t)=>{h(t(e,{get data(){return A()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),a(t,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),a(t,r)},c=t=>{let n=_(()=>b.constructors[1]);var r=e();l(x(r),()=>u(n),(e,t)=>{h(t(e,{get data(){return k()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),a(t,r)};r(o,e=>{b.constructors[2]?e(s):e(c,-1)}),a(t,i)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),a(t,i)},R=t=>{let n=_(()=>b.constructors[0]);var r=e();l(x(r),()=>u(n),(e,t)=>{h(t(e,{get data(){return E()},get form(){return b.form},get params(){return b.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),a(t,r)};r(I,e=>{b.constructors[1]?e(L):e(R,-1)});var z=m(I,2),B=e=>{var t=D(),n=C(t),o=e=>{var t=s();d(()=>i(t,u(N))),a(e,t)};r(n,e=>{u(M)&&e(o)}),c(t),a(e,t)};r(z,e=>{u(j)&&e(B)}),a(n,F),y()}var A=b(k),j=[()=>T(()=>import(`../nodes/0.Bfv0aXoG.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),()=>T(()=>import(`../nodes/1.B8Ebge5I.js`),__vite__mapDeps([9,1,10,11,12,2]),import.meta.url),()=>T(()=>import(`../nodes/2.tmtk1Bjc.js`),__vite__mapDeps([13,1,2,3]),import.meta.url),()=>T(()=>import(`../nodes/3.BEaeucAu.js`),__vite__mapDeps([14,1,2,3]),import.meta.url),()=>T(()=>import(`../nodes/4.DQOL0qY_.js`),__vite__mapDeps([15,1,11,12,16,10,17,2,4,18,19,6,20,21,22,7,23,24,25,26,27,28,29,30,31,32,33]),import.meta.url),()=>T(()=>import(`../nodes/5.BGqmDWpO.js`),__vite__mapDeps([34,1,11,12,2,3,22,35]),import.meta.url),()=>T(()=>import(`../nodes/6.Cf2kRGl-.js`),__vite__mapDeps([36,1,11,12,16,10,17,2,4,18,19,6,37,24,25,26,27,38,28,31,32,39]),import.meta.url),()=>T(()=>import(`../nodes/7.CvaILUo5.js`),__vite__mapDeps([40,1,11,12,16,10,19,2,6,20,21,22,7,23,24,25,26,27,28,29,30,41,42,43]),import.meta.url),()=>T(()=>import(`../nodes/8.BANf4x1v.js`),__vite__mapDeps([44,1,12,2,3]),import.meta.url),()=>T(()=>import(`../nodes/9.DvOR66Q0.js`),__vite__mapDeps([45,1,11,12,16,10,17,2,4,18,19,6,46,21,22,7,23,25,26,37,38,5,41,29,42,47]),import.meta.url),()=>T(()=>import(`../nodes/10.Di4b61Rb.js`),__vite__mapDeps([48,1,11,12,16,2,25,26,49]),import.meta.url),()=>T(()=>import(`../nodes/11.CUlazdDv.js`),__vite__mapDeps([50,1,11,12,2,3,46,25,26,38,41,22,28,29,51]),import.meta.url)],M=[0],N={"/":[-4],"/advanced":[4],"/attention":[5],"/chat":[6],"/connections":[7],"/connections/new":[8],"/host":[9],"/login":[-11],"/setup":[11,[2]]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t);export{R as decode,F as decoders,N as dictionary,I as encoders,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,l as t}from"../chunks/B9uMOgDZ.js";export{t as load_css,e as start};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
�(�import{i as e,l as t}from"../chunks/B9uMOgDZ.js";export{t as load_css,e as start};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,Ct as t,E as n,F as r,I as i,K as a,L as o,M as s,N as c,P as l,R as u,St as d,U as f,X as p,Z as m,a as h,at as g,b as _,ct as v,gt as y,ht as b,it as x,k as S,o as C,p as w,r as T,rt as E,ut as D,z as O}from"../chunks/DTLQuSQp.js";import"../chunks/xihTtKlq.js";import"../chunks/D3d8Mm8X.js";import{
|
|
1
|
+
import{B as e,Ct as t,E as n,F as r,I as i,K as a,L as o,M as s,N as c,P as l,R as u,St as d,U as f,X as p,Z as m,a as h,at as g,b as _,ct as v,gt as y,ht as b,it as x,k as S,o as C,p as w,r as T,rt as E,ut as D,z as O}from"../chunks/DTLQuSQp.js";import"../chunks/xihTtKlq.js";import"../chunks/D3d8Mm8X.js";import{D as k,E as A,f as j}from"../chunks/D-DB6zTo.js";import{t as M}from"../chunks/92accNiq.js";import{t as N}from"../chunks/CJc9QEdG.js";import{n as P,r as F}from"../chunks/CzKYnjEX.js";var I=o(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>`);function L(e,t){let n=h(t,`size`,3,20),r=h(t,`class`,3,``);var i=I();p(()=>{w(i,`width`,n()),w(i,`height`,n()),_(i,0,`s-icon ${r()??``}`)}),l(e,i)}var R=i(`<a target="_blank" rel="noopener noreferrer" class="update-banner-link svelte-3idpmt">Download</a>`),z=i(`<div class="update-banner svelte-3idpmt" role="status"><span class="update-banner-icon svelte-3idpmt" aria-hidden="true"><!></span> <span class="update-banner-text svelte-3idpmt">A new version of OpenPalm is available — <strong> </strong> <!></span> <!> <button type="button" class="update-banner-dismiss svelte-3idpmt" aria-label="Dismiss">×</button></div>`);function B(t,n){y(n,!0);let i=D(null),a=D(!1);function o(e){return`openpalm.updateBanner.dismissed.${e}`}T(async()=>{try{let e=await fetch(`/api/electron/update-status`);if(!e.ok)return;let t=await e.json();if(!t.inElectron||!t.updateAvailable||!t.latestVersion||typeof localStorage<`u`&&localStorage.getItem(o(t.latestVersion)))return;v(i,t,!0)}catch{}});function m(){f(i)?.latestVersion&&typeof localStorage<`u`&&localStorage.setItem(o(f(i).latestVersion),`1`),v(a,!0)}var h=r(),_=x(h),S=t=>{var n=z(),r=E(n);L(E(r),{size:16}),d(r);var a=g(r,2),o=g(E(a)),h=E(o);d(o);var _=g(o,2),v=e=>{var t=u();p(()=>c(t,`(you have v${f(i).currentVersion??``})`)),l(e,t)};s(_,e=>{f(i).currentVersion&&e(v)}),d(a);var y=g(a,2),b=e=>{var t=R();p(()=>w(t,`href`,f(i).latestUrl)),l(e,t)};s(y,e=>{f(i).latestUrl&&e(b)});var x=g(y,2);d(n),p(()=>c(h,`v${f(i).latestVersion??``}`)),e(`click`,x,m),l(t,n)};s(_,e=>{f(i)&&!f(a)&&e(S)}),l(t,h),b()}O([`click`]);var V=i(`<div><span class="toast-icon svelte-vvf307" aria-hidden="true"><!> <span class="sr-only svelte-vvf307"> </span></span> <span class="toast-message svelte-vvf307"> </span> <button type="button" class="toast-dismiss svelte-vvf307" aria-label="Dismiss">×</button></div>`),H=i(`<div class="toast-stack svelte-vvf307" aria-live="polite"></div>`);function U(t,n){y(n,!1);function i(e){k.dismiss(e.id)}function a(e){return e.kind===`success`?`Success`:e.kind===`error`?`Error`:`Notice`}C();var o=r(),u=x(o),m=t=>{var n=H();S(n,5,()=>k.toasts,e=>e.id,(t,n)=>{var r=V(),o=E(r),u=E(o),m=e=>{M(e,{size:16})},h=e=>{N(e,{size:16})},v=e=>{N(e,{size:16})};s(u,e=>{f(n).kind===`success`?e(m):f(n).kind===`error`?e(h,1):e(v,-1)});var y=g(u,2),b=E(y);d(y),d(o);var x=g(o,2),S=E(x,!0);d(x);var C=g(x,2);d(r),p(e=>{_(r,1,`toast toast-${f(n).kind??``}`,`svelte-vvf307`),w(r,`role`,f(n).kind===`error`?`alert`:`status`),w(r,`aria-live`,f(n).kind===`error`?`assertive`:`polite`),c(b,`${e??``}:`),c(S,f(n).message)},[()=>a(f(n))]),e(`click`,C,()=>i(f(n))),l(t,r)}),d(n),l(t,n)};s(u,e=>{k.toasts.length>0&&e(m)}),l(t,o),b()}O([`click`]);function W(){return typeof navigator<`u`&&/Electron/.test(navigator.userAgent)?`electron`:typeof window<`u`&&window.matchMedia(`(display-mode: standalone)`).matches?`standalone-pwa`:`browser`}var G=o(`<svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs><filter id="ibrush" x="-40%" y="-40%" width="180%" height="180%"><feTurbulence type="fractalNoise" baseFrequency="0.026 0.032" numOctaves="1" seed="3" result="nA"></feTurbulence><feDisplacementMap in="SourceGraphic" in2="nA" scale="2.4" xChannelSelector="R" yChannelSelector="G" result="dA"></feDisplacementMap><feTurbulence type="fractalNoise" baseFrequency="0.034 0.028" numOctaves="1" seed="17" result="nB"></feTurbulence><feDisplacementMap in="SourceGraphic" in2="nB" scale="3.0" xChannelSelector="R" yChannelSelector="G" result="dB"></feDisplacementMap><feMerge result="strokes"><feMergeNode in="dA"></feMergeNode><feMergeNode in="dB"></feMergeNode></feMerge><feTurbulence type="turbulence" baseFrequency="0.7 0.7" numOctaves="2" seed="7" result="g"></feTurbulence><feComponentTransfer in="g" result="gm"><feFuncA type="linear" slope="0.55" intercept="0.52"></feFuncA></feComponentTransfer><feComposite in="strokes" in2="gm" operator="in"></feComposite></filter></defs></svg><!><!><!>`,1);function K(e,r){y(r,!0),a(()=>F(r.data.serverRuntimeContext)),T(()=>{A.init(),P(r.data.serverRuntimeContext,{displayMode:W()})});let i=null;m(()=>{let e=j.errorMessage;e&&(i=k.push(`error`,e,{replaceId:i??void 0}),j.errorMessage=``)});var o=G(),s=g(x(o));B(s,{});var c=g(s);n(c,()=>r.children??t),U(g(c),{}),l(e,o),b()}export{K as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as e,N as t,P as n,St as r,X as i,at as a,gt as o,ht as s,it as c,rt as l}from"../chunks/DTLQuSQp.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/
|
|
1
|
+
import{I as e,N as t,P as n,St as r,X as i,at as a,gt as o,ht as s,it as c,rt as l}from"../chunks/DTLQuSQp.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/qrqTdjh7.js";var d=e(`<h1> </h1> <p> </p>`,1);function f(e,f){o(f,!0);var p=d(),m=c(p),h=l(m,!0);r(m);var g=a(m,2),_=l(g,!0);r(g),i(()=>{t(h,u.status),t(_,u.error?.message)}),n(e,p),s()}export{f as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,I as t,L as n,M as r,N as i,P as a,R as o,St as s,U as c,V as l,X as u,Y as d,a as f,at as p,b as m,c as h,ct as g,d as _,f as v,gt as y,ht as b,p as x,rt as S,tt as C,ut as w,w as T,z as E}from"../chunks/DTLQuSQp.js";import{n as D}from"../chunks/
|
|
1
|
+
import{B as e,I as t,L as n,M as r,N as i,P as a,R as o,St as s,U as c,V as l,X as u,Y as d,a as f,at as p,b as m,c as h,ct as g,d as _,f as v,gt as y,ht as b,p as x,rt as S,tt as C,ut as w,w as T,z as E}from"../chunks/DTLQuSQp.js";import{n as D}from"../chunks/B9uMOgDZ.js";import"../chunks/xihTtKlq.js";import"../chunks/BwKrb5qD.js";import{t as O}from"../chunks/BBXQKGHA.js";var k=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>`);function A(e,t){let n=f(t,`size`,3,20),r=f(t,`class`,3,``);var i=k();u(()=>{x(i,`width`,n()),x(i,`height`,n()),m(i,0,`s-icon ${r()??``}`)}),a(e,i)}var j=n(`<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`);function M(e,t){let n=f(t,`size`,3,20),r=f(t,`class`,3,``);var i=j();u(()=>{x(i,`width`,n()),x(i,`height`,n()),m(i,0,`s-icon ${r()??``}`)}),a(e,i)}var N=t(`<p class="s-gate-error svelte-15cd8rf" role="alert"> </p>`),P=t(`<main class="s-gate svelte-15cd8rf" aria-label="Admin login gate"><div class="s-gate-inner svelte-15cd8rf"><div class="s-gate-mark svelte-15cd8rf">openpalm</div> <form class="s-gate-form svelte-15cd8rf"><input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-15cd8rf" tabindex="-1" aria-hidden="true"/> <div class="s-gate-field svelte-15cd8rf"><label for="admin-token" class="sr-only svelte-15cd8rf">Admin Password</label> <input id="admin-token" name="admin-token" class="s-gate-input svelte-15cd8rf" placeholder="password" autocomplete="current-password"/> <button type="button" class="s-gate-reveal svelte-15cd8rf"><!></button></div> <!> <button class="s-gate-submit svelte-15cd8rf" type="submit" aria-label="Unlock Console"><!></button></form></div></main>`);function F(t,n){y(n,!0);let d=w(``),f=w(!1),m=w(void 0);async function C(e){e.preventDefault();let t=c(d).trim();if(!t||n.loading){c(m)?.focus();return}await n.onSuccess(t)||(c(m)?.focus(),c(m)?.select())}var T=P(),E=S(T),D=p(S(E),2),k=p(S(D),2),j=p(S(k),2);v(j),h(j,e=>g(m,e),()=>c(m));var F=p(j,2),I=S(F),L=e=>{A(e,{size:14})},R=e=>{M(e,{size:14})};r(I,e=>{c(f)?e(L):e(R,-1)}),s(F),s(k);var z=p(k,2),B=e=>{var t=N(),r=S(t,!0);s(t),u(()=>i(r,n.error)),a(e,t)};r(z,e=>{n.error&&e(B)});var V=p(z,2),H=S(V),U=e=>{O(e,{})},W=e=>{a(e,o(`Unlock Console`))};r(H,e=>{n.loading?e(U):e(W,-1)}),s(V),s(D),s(E),s(T),u(e=>{x(j,`type`,c(f)?`text`:`password`),x(F,`aria-label`,c(f)?`Hide token`:`Show token`),V.disabled=e},[()=>n.loading||!c(d).trim()]),l(`submit`,D,C),_(j,()=>c(d),e=>g(d,e)),e(`click`,F,()=>g(f,!c(f))),a(t,T),b()}E([`click`]);function I(e,t){y(t,!0);let n=w(!1),r=w(``);async function i(e){if(c(n))return!1;let i=t.data.redirectTo||`/chat`;g(n,!0),g(r,``);try{let t=await fetch(`/api/auth/login`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({password:e}),credentials:`include`});return t.ok?(await D(i),!0):(g(r,t.status===503?`Admin password is not configured yet. Complete setup first.`:`Invalid password.`,!0),!1)}catch{return g(r,`Unable to reach admin API.`),!1}finally{g(n,!1)}}T(`1x05zx6`,e=>{d(()=>{C.title=`Sign in — OpenPalm`})}),F(e,{onSuccess:i,get loading(){return c(n)},get error(){return c(r)}}),b()}export{I as component};
|
|
Binary file
|
|
Binary file
|