@openpalm/ui 0.11.5-rc.3 → 0.11.5-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css +1 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.br +0 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css +1 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css.br +0 -0
- package/build/client/_app/immutable/assets/7.BzioASK3.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css +1 -0
- package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css.br +0 -0
- package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js +3 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BQ0vnNWj.js → BAaXfhM-.js} +1 -1
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BTrxgLOM.js +1 -0
- package/build/client/_app/immutable/chunks/BTrxgLOM.js.br +2 -0
- package/build/client/_app/immutable/chunks/BTrxgLOM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{irujFCsS.js → B_FOicoS.js} +1 -1
- package/build/client/_app/immutable/chunks/B_FOicoS.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_FOicoS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js +1 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.br +1 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVWppHrm.js +16 -0
- package/build/client/_app/immutable/chunks/CVWppHrm.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVWppHrm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYcHS_qY.js +5 -0
- package/build/client/_app/immutable/chunks/DYcHS_qY.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYcHS_qY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CDS1U3lf.js → HsxQhp5A.js} +2 -2
- package/build/client/_app/immutable/chunks/HsxQhp5A.js.br +0 -0
- package/build/client/_app/immutable/chunks/HsxQhp5A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BTsRblfw.js → hgikw-Qd.js} +1 -1
- package/build/client/_app/immutable/chunks/hgikw-Qd.js.br +0 -0
- package/build/client/_app/immutable/chunks/hgikw-Qd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xtI7_jDL.js +1 -0
- package/build/client/_app/immutable/chunks/xtI7_jDL.js.br +0 -0
- package/build/client/_app/immutable/chunks/xtI7_jDL.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DtY5C9pR.js +2 -0
- package/build/client/_app/immutable/entry/app.DtY5C9pR.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DtY5C9pR.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CmS1dlrE.js +1 -0
- package/build/client/_app/immutable/entry/start.CmS1dlrE.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CmS1dlrE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CeRyHcWC.js +1 -0
- package/build/client/_app/immutable/nodes/0.CeRyHcWC.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CeRyHcWC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BIqfJFCb.js +1 -0
- package/build/client/_app/immutable/nodes/1.BIqfJFCb.js.br +1 -1
- package/build/client/_app/immutable/nodes/1.BIqfJFCb.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js +1 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js +1 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.h8N33vpx.js +19 -0
- package/build/client/_app/immutable/nodes/4.h8N33vpx.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.h8N33vpx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.B2qtGelf.js +4 -0
- package/build/client/_app/immutable/nodes/5.B2qtGelf.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.B2qtGelf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DrYb30Cc.js +1 -0
- package/build/client/_app/immutable/nodes/6.DrYb30Cc.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DrYb30Cc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.CrDhK7am.js +1 -0
- package/build/client/_app/immutable/nodes/7.CrDhK7am.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CrDhK7am.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CKAtL-gx.js +1 -0
- package/build/client/_app/immutable/nodes/8.CKAtL-gx.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CKAtL-gx.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js +5 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.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-sfmVs00_.js +9 -0
- package/build/server/chunks/{0-BGsPZcaQ.js.map → 0-sfmVs00_.js.map} +1 -1
- package/build/server/chunks/1-BQlukPTN.js +9 -0
- package/build/server/chunks/{1-Daoybjaw.js.map → 1-BQlukPTN.js.map} +1 -1
- package/build/server/chunks/{2-DQWoUtW1.js → 2-wNOz2qR7.js} +2 -2
- package/build/server/chunks/{2-DQWoUtW1.js.map → 2-wNOz2qR7.js.map} +1 -1
- package/build/server/chunks/{3-COIGgysA.js → 3-CMcVVZ5t.js} +2 -2
- package/build/server/chunks/{3-COIGgysA.js.map → 3-CMcVVZ5t.js.map} +1 -1
- package/build/server/chunks/4-C79a4Yto.js +9 -0
- package/build/server/chunks/4-C79a4Yto.js.map +1 -0
- package/build/server/chunks/5-D7eeN25a.js +9 -0
- package/build/server/chunks/{5-BfmhtNP9.js.map → 5-D7eeN25a.js.map} +1 -1
- package/build/server/chunks/6-Dg79fiQc.js +9 -0
- package/build/server/chunks/{6-AcylLX8-.js.map → 6-Dg79fiQc.js.map} +1 -1
- package/build/server/chunks/7-DTavGKhw.js +9 -0
- package/build/server/chunks/7-DTavGKhw.js.map +1 -0
- package/build/server/chunks/{8-DMgWQQBm.js → 8-B0FQ5gh5.js} +3 -3
- package/build/server/chunks/{8-DMgWQQBm.js.map → 8-B0FQ5gh5.js.map} +1 -1
- package/build/server/chunks/{9-CGVsBC0_.js → 9-BCmr-315.js} +2 -2
- package/build/server/chunks/{9-CGVsBC0_.js.map → 9-BCmr-315.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-C0eMsRDk.js → ChatMessage-CzW3dV57.js} +73 -105
- package/build/server/chunks/ChatMessage-CzW3dV57.js.map +1 -0
- package/build/server/chunks/{Navbar-C9kE6wR-.js → Navbar-EBUPxUnS.js} +670 -142
- package/build/server/chunks/Navbar-EBUPxUnS.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-DCfzq18z.js → _layout.svelte-e5vEwOWj.js} +2 -2
- package/build/server/chunks/{_layout.svelte-DCfzq18z.js.map → _layout.svelte-e5vEwOWj.js.map} +1 -1
- package/build/server/chunks/_page.svelte-CScIJqid.js +252 -0
- package/build/server/chunks/_page.svelte-CScIJqid.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Dl3WoXNo.js → _page.svelte-CXGT7iVI.js} +251 -15
- package/build/server/chunks/_page.svelte-CXGT7iVI.js.map +1 -0
- package/build/server/chunks/{_page.svelte-B3FJ13Ci.js → _page.svelte-Dc9YczvY.js} +6 -6
- package/build/server/chunks/{_page.svelte-B3FJ13Ci.js.map → _page.svelte-Dc9YczvY.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Dnt12F6c.js → _page.svelte-Dq0B2wTX.js} +9 -7
- package/build/server/chunks/_page.svelte-Dq0B2wTX.js.map +1 -0
- package/build/server/chunks/{_page.svelte-BA7DptUV.js → _page.svelte-Du_FGvId.js} +3 -3
- package/build/server/chunks/{_page.svelte-BA7DptUV.js.map → _page.svelte-Du_FGvId.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CVxiERfc.js → _server.ts--ajZwgpx.js} +4 -4
- package/build/server/chunks/{_server.ts-CVxiERfc.js.map → _server.ts--ajZwgpx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Gbkg-oto.js → _server.ts-B-YtpFZv.js} +4 -4
- package/build/server/chunks/{_server.ts-Gbkg-oto.js.map → _server.ts-B-YtpFZv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbOKfJ3v.js → _server.ts-B3n_KrVi.js} +6 -6
- package/build/server/chunks/{_server.ts-CbOKfJ3v.js.map → _server.ts-B3n_KrVi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D3QPUpDc.js → _server.ts-B8JGa5NB.js} +4 -4
- package/build/server/chunks/{_server.ts-D3QPUpDc.js.map → _server.ts-B8JGa5NB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DsTUwnu1.js → _server.ts-B8vW8q3-.js} +4 -4
- package/build/server/chunks/{_server.ts-DsTUwnu1.js.map → _server.ts-B8vW8q3-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CreuvDch.js → _server.ts-BCivjDa1.js} +4 -4
- package/build/server/chunks/{_server.ts-CreuvDch.js.map → _server.ts-BCivjDa1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BGqa6Laa.js → _server.ts-BGMXMZ3f.js} +4 -4
- package/build/server/chunks/_server.ts-BGMXMZ3f.js.map +1 -0
- package/build/server/chunks/{_server.ts-B8YF9aVx.js → _server.ts-BG_3Aam5.js} +4 -4
- package/build/server/chunks/{_server.ts-B8YF9aVx.js.map → _server.ts-BG_3Aam5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CqH3nv-S.js → _server.ts-BQlauqG7.js} +5 -5
- package/build/server/chunks/{_server.ts-CqH3nv-S.js.map → _server.ts-BQlauqG7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dd4Mh0JV.js → _server.ts-BQtDb5rW.js} +4 -4
- package/build/server/chunks/{_server.ts-Dd4Mh0JV.js.map → _server.ts-BQtDb5rW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BdLKHRnY.js → _server.ts-BTFsY3ns.js} +6 -6
- package/build/server/chunks/{_server.ts-BdLKHRnY.js.map → _server.ts-BTFsY3ns.js.map} +1 -1
- package/build/server/chunks/{_server.ts-3JO3CKsE.js → _server.ts-BUuhZLQW.js} +4 -4
- package/build/server/chunks/{_server.ts-3JO3CKsE.js.map → _server.ts-BUuhZLQW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D8cp-Em3.js → _server.ts-BYHQLzIU.js} +4 -4
- package/build/server/chunks/{_server.ts-D8cp-Em3.js.map → _server.ts-BYHQLzIU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzIilMO5.js → _server.ts-BYNejrbv.js} +2 -2
- package/build/server/chunks/{_server.ts-DzIilMO5.js.map → _server.ts-BYNejrbv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CdB1K2M6.js → _server.ts-BZNECWdo.js} +2 -2
- package/build/server/chunks/{_server.ts-CdB1K2M6.js.map → _server.ts-BZNECWdo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B31I037d.js → _server.ts-Bd95fWI2.js} +6 -6
- package/build/server/chunks/{_server.ts-B31I037d.js.map → _server.ts-Bd95fWI2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-SLlbT28g.js → _server.ts-BdyV0_Is.js} +2 -2
- package/build/server/chunks/{_server.ts-SLlbT28g.js.map → _server.ts-BdyV0_Is.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CH8uRkxq.js → _server.ts-BfXe8M8I.js} +4 -4
- package/build/server/chunks/{_server.ts-CH8uRkxq.js.map → _server.ts-BfXe8M8I.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B8EZxkK3.js → _server.ts-BglWcbgl.js} +5 -5
- package/build/server/chunks/{_server.ts-B8EZxkK3.js.map → _server.ts-BglWcbgl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BvbnbZsl.js → _server.ts-BhduAFwe.js} +4 -4
- package/build/server/chunks/{_server.ts-BvbnbZsl.js.map → _server.ts-BhduAFwe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8BrkC8T.js → _server.ts-Bi7Kdi9Z.js} +5 -5
- package/build/server/chunks/{_server.ts-C8BrkC8T.js.map → _server.ts-Bi7Kdi9Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-pQ9okj_b.js → _server.ts-BnCNI_5v.js} +6 -6
- package/build/server/chunks/{_server.ts-pQ9okj_b.js.map → _server.ts-BnCNI_5v.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtltE_T-.js → _server.ts-Bttq5XEc.js} +2 -2
- package/build/server/chunks/{_server.ts-CtltE_T-.js.map → _server.ts-Bttq5XEc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CpJ08_Lw.js → _server.ts-C0gphQE8.js} +4 -4
- package/build/server/chunks/{_server.ts-CpJ08_Lw.js.map → _server.ts-C0gphQE8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DL9hlvL8.js → _server.ts-C0p_epYa.js} +4 -4
- package/build/server/chunks/{_server.ts-DL9hlvL8.js.map → _server.ts-C0p_epYa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CXI7k8hl.js → _server.ts-CBW-iSGY.js} +4 -4
- package/build/server/chunks/{_server.ts-CXI7k8hl.js.map → _server.ts-CBW-iSGY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BhRtn8Xn.js → _server.ts-CBYhHA1_.js} +4 -4
- package/build/server/chunks/{_server.ts-BhRtn8Xn.js.map → _server.ts-CBYhHA1_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CX2sHcZR.js → _server.ts-CFjN9JNk.js} +4 -4
- package/build/server/chunks/{_server.ts-CX2sHcZR.js.map → _server.ts-CFjN9JNk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CIEz-ybk.js → _server.ts-CHd9_WPs.js} +4 -4
- package/build/server/chunks/{_server.ts-CIEz-ybk.js.map → _server.ts-CHd9_WPs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4HorMS2R.js → _server.ts-CKqIuso7.js} +4 -4
- package/build/server/chunks/{_server.ts-4HorMS2R.js.map → _server.ts-CKqIuso7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DLVGDzlE.js → _server.ts-CObmPmDw.js} +4 -4
- package/build/server/chunks/{_server.ts-DLVGDzlE.js.map → _server.ts-CObmPmDw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-MGn-MXr5.js → _server.ts-CQn6OWsw.js} +4 -4
- package/build/server/chunks/{_server.ts-MGn-MXr5.js.map → _server.ts-CQn6OWsw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWtTOsFi.js → _server.ts-CQucsScY.js} +4 -4
- package/build/server/chunks/{_server.ts-BWtTOsFi.js.map → _server.ts-CQucsScY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3ntDGZM.js → _server.ts-CZMBEF_P.js} +5 -5
- package/build/server/chunks/{_server.ts-B3ntDGZM.js.map → _server.ts-CZMBEF_P.js.map} +1 -1
- package/build/server/chunks/_server.ts-Cay6JJmu.js +205 -0
- package/build/server/chunks/_server.ts-Cay6JJmu.js.map +1 -0
- package/build/server/chunks/_server.ts-Cdq-yzqP.js +627 -0
- package/build/server/chunks/_server.ts-Cdq-yzqP.js.map +1 -0
- package/build/server/chunks/{_server.ts-1mdOjWEN.js → _server.ts-Ch8LouSG.js} +5 -5
- package/build/server/chunks/{_server.ts-1mdOjWEN.js.map → _server.ts-Ch8LouSG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B1Jl9Grz.js → _server.ts-Cmi0m_Ec.js} +4 -4
- package/build/server/chunks/{_server.ts-B1Jl9Grz.js.map → _server.ts-Cmi0m_Ec.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bq4Oko-2.js → _server.ts-CmshKmzd.js} +4 -4
- package/build/server/chunks/{_server.ts-Bq4Oko-2.js.map → _server.ts-CmshKmzd.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7K7bv8w.js → _server.ts-CoIWXJLt.js} +5 -5
- package/build/server/chunks/{_server.ts-C7K7bv8w.js.map → _server.ts-CoIWXJLt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-E5YqcwqQ.js → _server.ts-CqviakL3.js} +4 -4
- package/build/server/chunks/{_server.ts-E5YqcwqQ.js.map → _server.ts-CqviakL3.js.map} +1 -1
- package/build/server/chunks/_server.ts-CrK5Xjnh.js +86 -0
- package/build/server/chunks/_server.ts-CrK5Xjnh.js.map +1 -0
- package/build/server/chunks/{_server.ts-BLUm8wAq.js → _server.ts-CsUJia-4.js} +4 -4
- package/build/server/chunks/{_server.ts-BLUm8wAq.js.map → _server.ts-CsUJia-4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BY7nR9Ev.js → _server.ts-CtqksBun.js} +4 -4
- package/build/server/chunks/{_server.ts-BY7nR9Ev.js.map → _server.ts-CtqksBun.js.map} +1 -1
- package/build/server/chunks/{_server.ts-IzD0bafW.js → _server.ts-CuFSHsdA.js} +5 -5
- package/build/server/chunks/{_server.ts-IzD0bafW.js.map → _server.ts-CuFSHsdA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CzoE8edN.js → _server.ts-CvBgeFp9.js} +5 -5
- package/build/server/chunks/{_server.ts-CzoE8edN.js.map → _server.ts-CvBgeFp9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DY3ZDXdA.js → _server.ts-CxOokd6P.js} +4 -4
- package/build/server/chunks/{_server.ts-DY3ZDXdA.js.map → _server.ts-CxOokd6P.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bu_7eQaL.js → _server.ts-CxpkPdkw.js} +5 -5
- package/build/server/chunks/{_server.ts-Bu_7eQaL.js.map → _server.ts-CxpkPdkw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUIWPYRF.js → _server.ts-D-hh_BTK.js} +4 -4
- package/build/server/chunks/{_server.ts-BUIWPYRF.js.map → _server.ts-D-hh_BTK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D-Vwef5C.js → _server.ts-D064BG7i.js} +4 -4
- package/build/server/chunks/{_server.ts-D-Vwef5C.js.map → _server.ts-D064BG7i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVRyf5BI.js → _server.ts-D0fThJEL.js} +4 -4
- package/build/server/chunks/{_server.ts-DVRyf5BI.js.map → _server.ts-D0fThJEL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CExwMomX.js → _server.ts-D4QpYVnk.js} +4 -4
- package/build/server/chunks/{_server.ts-CExwMomX.js.map → _server.ts-D4QpYVnk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHBX6Ary.js → _server.ts-DABvBtNg.js} +5 -5
- package/build/server/chunks/{_server.ts-DHBX6Ary.js.map → _server.ts-DABvBtNg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BHmCir74.js → _server.ts-DBD7W3nM.js} +4 -4
- package/build/server/chunks/{_server.ts-BHmCir74.js.map → _server.ts-DBD7W3nM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C_EnHMEu.js → _server.ts-DDhNa_X1.js} +4 -4
- package/build/server/chunks/{_server.ts-C_EnHMEu.js.map → _server.ts-DDhNa_X1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dc9XEMmF.js → _server.ts-DFBxMXVv.js} +4 -4
- package/build/server/chunks/{_server.ts-Dc9XEMmF.js.map → _server.ts-DFBxMXVv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DlwXpopR.js → _server.ts-DLS_wObr.js} +3 -3
- package/build/server/chunks/{_server.ts-DlwXpopR.js.map → _server.ts-DLS_wObr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Lzz9ashZ.js → _server.ts-DTlXzoMP.js} +4 -4
- package/build/server/chunks/{_server.ts-Lzz9ashZ.js.map → _server.ts-DTlXzoMP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Do5L_4tt.js → _server.ts-Dicprv7A.js} +4 -4
- package/build/server/chunks/{_server.ts-Do5L_4tt.js.map → _server.ts-Dicprv7A.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CD-Cddqe.js → _server.ts-DooshvGc.js} +5 -5
- package/build/server/chunks/{_server.ts-CD-Cddqe.js.map → _server.ts-DooshvGc.js.map} +1 -1
- package/build/server/chunks/{_server.ts-j5xF-dJX.js → _server.ts-DpnQQsEi.js} +4 -4
- package/build/server/chunks/{_server.ts-j5xF-dJX.js.map → _server.ts-DpnQQsEi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CXmwf1pu.js → _server.ts-DqnxZoKV.js} +2 -2
- package/build/server/chunks/{_server.ts-CXmwf1pu.js.map → _server.ts-DqnxZoKV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DPC8qYUD.js → _server.ts-DwH287WQ.js} +4 -4
- package/build/server/chunks/{_server.ts-DPC8qYUD.js.map → _server.ts-DwH287WQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CHQmAGEC.js → _server.ts-SA9d0x_K.js} +5 -5
- package/build/server/chunks/{_server.ts-CHQmAGEC.js.map → _server.ts-SA9d0x_K.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C4pf3VKi.js → _server.ts-TS_ttjdr.js} +4 -4
- package/build/server/chunks/{_server.ts-C4pf3VKi.js.map → _server.ts-TS_ttjdr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BEjyvkVV.js → _server.ts-VtDFzmOm.js} +4 -4
- package/build/server/chunks/{_server.ts-BEjyvkVV.js.map → _server.ts-VtDFzmOm.js.map} +1 -1
- package/build/server/chunks/_server.ts-Y57oqscW.js +48 -0
- package/build/server/chunks/_server.ts-Y57oqscW.js.map +1 -0
- package/build/server/chunks/{_server.ts-CeeR1W32.js → _server.ts-YHGTRtDD.js} +4 -4
- package/build/server/chunks/{_server.ts-CeeR1W32.js.map → _server.ts-YHGTRtDD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CciSVwzg.js → _server.ts-Zu8ZTux3.js} +5 -5
- package/build/server/chunks/{_server.ts-CciSVwzg.js.map → _server.ts-Zu8ZTux3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CNLz6iJ7.js → _server.ts-_lxrLHOI.js} +4 -4
- package/build/server/chunks/{_server.ts-CNLz6iJ7.js.map → _server.ts-_lxrLHOI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BTvZB-WH.js → _server.ts-dBLS5OxC.js} +4 -4
- package/build/server/chunks/{_server.ts-BTvZB-WH.js.map → _server.ts-dBLS5OxC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ykNeG8km.js → _server.ts-jUybF0F9.js} +4 -4
- package/build/server/chunks/{_server.ts-ykNeG8km.js.map → _server.ts-jUybF0F9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C8zFV8J3.js → _server.ts-mFCCnU2f.js} +4 -4
- package/build/server/chunks/{_server.ts-C8zFV8J3.js.map → _server.ts-mFCCnU2f.js.map} +1 -1
- package/build/server/chunks/{_server.ts-yWBMi6sn.js → _server.ts-nOJLfmaj.js} +6 -6
- package/build/server/chunks/{_server.ts-yWBMi6sn.js.map → _server.ts-nOJLfmaj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DAW24-9-.js → _server.ts-pJgm08Ns.js} +4 -4
- package/build/server/chunks/{_server.ts-DAW24-9-.js.map → _server.ts-pJgm08Ns.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNJn20vV.js → _server.ts-vuXd3nrT.js} +4 -4
- package/build/server/chunks/{_server.ts-BNJn20vV.js.map → _server.ts-vuXd3nrT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-QvBpEIYu.js → _server.ts-wKN3c9Bs.js} +4 -4
- package/build/server/chunks/{_server.ts-QvBpEIYu.js.map → _server.ts-wKN3c9Bs.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-DBJL8kvq.js → addon-helpers-D3GJCulD.js} +3 -3
- package/build/server/chunks/{addon-helpers-DBJL8kvq.js.map → addon-helpers-D3GJCulD.js.map} +1 -1
- package/build/server/chunks/{akm-hO0p79ZE.js → akm-B_BIZJJv.js} +2 -2
- package/build/server/chunks/{akm-hO0p79ZE.js.map → akm-B_BIZJJv.js.map} +1 -1
- package/build/server/chunks/{client-DchoQXpW.js → client-DuNIsVic.js} +2 -2
- package/build/server/chunks/{client-DchoQXpW.js.map → client-DuNIsVic.js.map} +1 -1
- package/build/server/chunks/{config-5vfdWPGq.js → config-UnF5M7J6.js} +2 -2
- package/build/server/chunks/{config-5vfdWPGq.js.map → config-UnF5M7J6.js.map} +1 -1
- package/build/server/chunks/{docker-DYeytgDI.js → docker-DmrYwY_e.js} +2 -2
- package/build/server/chunks/{docker-DYeytgDI.js.map → docker-DmrYwY_e.js.map} +1 -1
- package/build/server/chunks/{endpoints-pIoXJCW6.js → endpoints-D6uoesB9.js} +19 -6
- package/build/server/chunks/endpoints-D6uoesB9.js.map +1 -0
- package/build/server/chunks/{environment-B0PbsX5P.js → environment-C9HyCxX9.js} +2 -2
- package/build/server/chunks/{environment-B0PbsX5P.js.map → environment-C9HyCxX9.js.map} +1 -1
- package/build/server/chunks/{error.svelte-Cmr7gpdL.js → error.svelte-BajT8v3i.js} +4 -4
- package/build/server/chunks/{error.svelte-Cmr7gpdL.js.map → error.svelte-BajT8v3i.js.map} +1 -1
- package/build/server/chunks/{helpers-CVirrNSz.js → helpers-zCNRvZpT.js} +3 -3
- package/build/server/chunks/{helpers-CVirrNSz.js.map → helpers-zCNRvZpT.js.map} +1 -1
- package/build/server/chunks/{hooks.server-pc-TSpQy.js → hooks.server-BKK-8Ct6.js} +6 -6
- package/build/server/chunks/hooks.server-BKK-8Ct6.js.map +1 -0
- package/build/server/chunks/{http-DGsfa0DV.js → http-Cm-sRzTa.js} +2 -2
- package/build/server/chunks/{http-DGsfa0DV.js.map → http-Cm-sRzTa.js.map} +1 -1
- package/build/server/chunks/{internal-DriC3vi3.js → internal-LXD6a4Om.js} +3 -3
- package/build/server/chunks/{internal-DriC3vi3.js.map → internal-LXD6a4Om.js.map} +1 -1
- package/build/server/chunks/{session-cookie-DEuOwtHY.js → session-cookie-CoF3FU_0.js} +2 -2
- package/build/server/chunks/{session-cookie-DEuOwtHY.js.map → session-cookie-CoF3FU_0.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-D4bnmfpV.js → setup-deploy-CVYxUJZD.js} +2 -2
- package/build/server/chunks/{setup-deploy-D4bnmfpV.js.map → setup-deploy-CVYxUJZD.js.map} +1 -1
- package/build/server/chunks/{src-CyeWH4Df.js → src-efp8mb8-.js} +567 -81
- package/build/server/chunks/src-efp8mb8-.js.map +1 -0
- package/build/server/chunks/{state-BcUnjLg5.js → state-z9dl5k8n.js} +2 -2
- package/build/server/chunks/{state-BcUnjLg5.js.map → state-z9dl5k8n.js.map} +1 -1
- package/build/server/chunks/{theme-state.svelte-CeABRes-.js → theme-state.svelte-BNtUaCD7.js} +119 -20
- package/build/server/chunks/theme-state.svelte-BNtUaCD7.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +106 -85
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -2
- package/build/client/_app/immutable/assets/4.BFLRjZM9.css +0 -1
- package/build/client/_app/immutable/assets/4.BFLRjZM9.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BFLRjZM9.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.DKl0e2Fb.css +0 -1
- package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.br +0 -0
- package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.gz +0 -0
- package/build/client/_app/immutable/chunks/0swOyi-5.js +0 -3
- package/build/client/_app/immutable/chunks/0swOyi-5.js.br +0 -0
- package/build/client/_app/immutable/chunks/0swOyi-5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B4LSIsxy.js +0 -1
- package/build/client/_app/immutable/chunks/B4LSIsxy.js.br +0 -2
- package/build/client/_app/immutable/chunks/B4LSIsxy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ0vnNWj.js.br +0 -1
- package/build/client/_app/immutable/chunks/BQ0vnNWj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BTsRblfw.js.br +0 -0
- package/build/client/_app/immutable/chunks/BTsRblfw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bmfn2m9N.js +0 -1
- package/build/client/_app/immutable/chunks/Bmfn2m9N.js.br +0 -1
- package/build/client/_app/immutable/chunks/Bmfn2m9N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C-9oV3QK.js +0 -1
- package/build/client/_app/immutable/chunks/C-9oV3QK.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-9oV3QK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDS1U3lf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDS1U3lf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/TM1MyO6b.js +0 -5
- package/build/client/_app/immutable/chunks/TM1MyO6b.js.br +0 -0
- package/build/client/_app/immutable/chunks/TM1MyO6b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/irujFCsS.js.br +0 -0
- package/build/client/_app/immutable/chunks/irujFCsS.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.j4FjlmJV.js +0 -2
- package/build/client/_app/immutable/entry/app.j4FjlmJV.js.br +0 -0
- package/build/client/_app/immutable/entry/app.j4FjlmJV.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BG0VgQz3.js +0 -1
- package/build/client/_app/immutable/entry/start.BG0VgQz3.js.br +0 -1
- package/build/client/_app/immutable/entry/start.BG0VgQz3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js +0 -1
- package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DOderKqv.js +0 -1
- package/build/client/_app/immutable/nodes/1.DOderKqv.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.DOderKqv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.B-8ehRO1.js +0 -1
- package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.B_FXzjZB.js +0 -1
- package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CL9pbPfw.js +0 -19
- package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.By0afU0Y.js +0 -4
- package/build/client/_app/immutable/nodes/5.By0afU0Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.By0afU0Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BnWmdf6t.js +0 -1
- package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js +0 -15
- package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Dytsowyk.js +0 -1
- package/build/client/_app/immutable/nodes/8.Dytsowyk.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Dytsowyk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.CFQabEMi.js +0 -5
- package/build/client/_app/immutable/nodes/9.CFQabEMi.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.CFQabEMi.js.gz +0 -0
- package/build/server/chunks/0-BGsPZcaQ.js +0 -9
- package/build/server/chunks/1-Daoybjaw.js +0 -9
- package/build/server/chunks/4-Lm1O6Rmh.js +0 -9
- package/build/server/chunks/4-Lm1O6Rmh.js.map +0 -1
- package/build/server/chunks/5-BfmhtNP9.js +0 -9
- package/build/server/chunks/6-AcylLX8-.js +0 -9
- package/build/server/chunks/7-BT0zxD9E.js +0 -9
- package/build/server/chunks/7-BT0zxD9E.js.map +0 -1
- package/build/server/chunks/Navbar-C9kE6wR-.js.map +0 -1
- package/build/server/chunks/_page.svelte-C0eMsRDk.js.map +0 -1
- package/build/server/chunks/_page.svelte-Dl3WoXNo.js.map +0 -1
- package/build/server/chunks/_page.svelte-Dnt12F6c.js.map +0 -1
- package/build/server/chunks/_server.ts-B79PxL9c.js +0 -91
- package/build/server/chunks/_server.ts-B79PxL9c.js.map +0 -1
- package/build/server/chunks/_server.ts-BGqa6Laa.js.map +0 -1
- package/build/server/chunks/endpoints-pIoXJCW6.js.map +0 -1
- package/build/server/chunks/hooks.server-pc-TSpQy.js.map +0 -1
- package/build/server/chunks/src-CyeWH4Df.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-CeABRes-.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { o as derived, r as escape_html, p as ensure_array_like, e as attr_class,
|
|
2
|
-
import { a as afterNavigate, o as onDestroy, g as goto } from './client-
|
|
3
|
-
import { h as fetchEndpoints,
|
|
4
|
-
import { p as page } from './state-
|
|
1
|
+
import { d as attr, o as derived, r as escape_html, p as ensure_array_like, e as attr_class, a8 as stringify, f as attr_style } from './dev-B6xUe35c.js';
|
|
2
|
+
import { a as afterNavigate, o as onDestroy, g as goto } from './client-DuNIsVic.js';
|
|
3
|
+
import { h as fetchEndpoints, q as setActiveEndpoint, A as voiceState, u as speakText, m as listSessions, l as getSessionMessages, c as createSession, v as startChatMessageTurn, s as sendChatMessage, o as replyChatPermission, p as replyChatQuestion, r as rejectChatQuestion, w as stopSpeaking, d as destroyVoice, y as themeService } from './theme-state.svelte-BNtUaCD7.js';
|
|
4
|
+
import { p as page } from './state-z9dl5k8n.js';
|
|
5
5
|
import { S as Spinner } from './Spinner-Bk6e83RX.js';
|
|
6
6
|
|
|
7
7
|
//#region src/lib/format-date.ts
|
|
@@ -112,112 +112,187 @@ function ToggleButton($$renderer, $$props) {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
//#endregion
|
|
115
|
-
//#region src/lib/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
115
|
+
//#region src/lib/advanced-mode-state.svelte.ts
|
|
116
|
+
var ADVANCED_MODE_STORAGE_KEY = "openpalm.chat.advanced";
|
|
117
|
+
var AdvancedModeService = class {
|
|
118
|
+
enabled = false;
|
|
119
|
+
initialized = false;
|
|
120
|
+
init() {
|
|
121
|
+
if (typeof window === "undefined" || this.initialized) return;
|
|
122
|
+
this.enabled = this.#readStoredPreference();
|
|
123
|
+
this.initialized = true;
|
|
124
|
+
}
|
|
125
|
+
setEnabled(value) {
|
|
126
|
+
this.enabled = value;
|
|
127
|
+
this.#writeStoredPreference(value);
|
|
128
|
+
}
|
|
129
|
+
toggle() {
|
|
130
|
+
const next = !this.enabled;
|
|
131
|
+
this.setEnabled(next);
|
|
132
|
+
return next;
|
|
133
|
+
}
|
|
134
|
+
preferredChatPath() {
|
|
135
|
+
return this.enabled ? "/advanced" : "/chat";
|
|
136
|
+
}
|
|
137
|
+
#readStoredPreference() {
|
|
138
|
+
if (typeof window === "undefined") return false;
|
|
139
|
+
try {
|
|
140
|
+
return window.localStorage.getItem(ADVANCED_MODE_STORAGE_KEY) === "1";
|
|
141
|
+
} catch {
|
|
142
|
+
return false;
|
|
125
143
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
}
|
|
145
|
+
#writeStoredPreference(value) {
|
|
146
|
+
if (typeof window === "undefined") return;
|
|
147
|
+
try {
|
|
148
|
+
window.localStorage.setItem(ADVANCED_MODE_STORAGE_KEY, value ? "1" : "0");
|
|
149
|
+
} catch {}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
var advancedModeService = new AdvancedModeService();
|
|
135
153
|
//#endregion
|
|
136
|
-
//#region src/lib/
|
|
137
|
-
function
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
/** Drawer width (CSS length). */
|
|
141
|
-
let { open, title, onClose, children, footer, headerStart, width = "32rem" } = $$props;
|
|
142
|
-
if (open) {
|
|
143
|
-
$$renderer.push("<!--[0-->");
|
|
144
|
-
$$renderer.push(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj"${attr_style(`--drawer-width: ${stringify(width)}`)} role="dialog" aria-modal="true"${attr("aria-label", title)} tabindex="-1"><header class="drawer-header svelte-1u2o1qj">`);
|
|
145
|
-
if (headerStart) {
|
|
146
|
-
$$renderer.push("<!--[0-->");
|
|
147
|
-
headerStart($$renderer);
|
|
148
|
-
$$renderer.push(`<!---->`);
|
|
149
|
-
} else $$renderer.push("<!--[-1-->");
|
|
150
|
-
$$renderer.push(`<!--]--> <h3 class="drawer-title svelte-1u2o1qj">${escape_html(title)}</h3> <button class="drawer-close svelte-1u2o1qj" aria-label="Close"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header> <div class="drawer-body svelte-1u2o1qj">`);
|
|
151
|
-
children($$renderer);
|
|
152
|
-
$$renderer.push(`<!----></div> `);
|
|
153
|
-
if (footer) {
|
|
154
|
-
$$renderer.push("<!--[0-->");
|
|
155
|
-
$$renderer.push(`<footer class="drawer-footer svelte-1u2o1qj">`);
|
|
156
|
-
footer($$renderer);
|
|
157
|
-
$$renderer.push(`<!----></footer>`);
|
|
158
|
-
} else $$renderer.push("<!--[-1-->");
|
|
159
|
-
$$renderer.push(`<!--]--></div>`);
|
|
160
|
-
} else $$renderer.push("<!--[-1-->");
|
|
161
|
-
$$renderer.push(`<!--]-->`);
|
|
162
|
-
});
|
|
154
|
+
//#region src/lib/chat/oc-events.ts
|
|
155
|
+
function propStr(props, key) {
|
|
156
|
+
const value = props?.[key];
|
|
157
|
+
return typeof value === "string" ? value : void 0;
|
|
163
158
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
159
|
+
function partSnapshotType(event) {
|
|
160
|
+
if (event.type !== "message.part.updated") return null;
|
|
161
|
+
const part = event.properties?.part;
|
|
162
|
+
if (typeof part?.id === "string" && typeof part.type === "string") return {
|
|
163
|
+
partID: part.id,
|
|
164
|
+
type: part.type
|
|
165
|
+
};
|
|
166
|
+
return null;
|
|
168
167
|
}
|
|
169
|
-
function
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
168
|
+
function extractTextDelta(event, sessionId, reasoningPartIds) {
|
|
169
|
+
const props = event.properties ?? {};
|
|
170
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
171
|
+
if (event.type === "session.next.text.delta") return propStr(props, "delta") ?? propStr(props, "text") ?? null;
|
|
172
|
+
if (event.type === "message.part.delta") {
|
|
173
|
+
const field = propStr(props, "field");
|
|
174
|
+
if (field && field !== "text") return null;
|
|
175
|
+
const partID = propStr(props, "partID");
|
|
176
|
+
if (partID && reasoningPartIds?.has(partID)) return null;
|
|
177
|
+
return propStr(props, "delta") ?? null;
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
function statusName(status) {
|
|
182
|
+
if (typeof status === "string") return status;
|
|
183
|
+
if (status && typeof status === "object" && typeof status.type === "string") return status.type;
|
|
184
|
+
}
|
|
185
|
+
function isTurnEnd(event, sessionId) {
|
|
186
|
+
const props = event.properties ?? {};
|
|
187
|
+
if (propStr(props, "sessionID") !== sessionId) return false;
|
|
188
|
+
if (event.type === "session.idle") return true;
|
|
189
|
+
if (event.type === "session.status") {
|
|
190
|
+
const name = statusName(props.status);
|
|
191
|
+
return name === "idle" || name === "completed" || name === "done";
|
|
192
|
+
}
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
function valueToText(value) {
|
|
196
|
+
if (typeof value === "string") return value;
|
|
197
|
+
if (value == null) return void 0;
|
|
198
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
199
|
+
try {
|
|
200
|
+
return JSON.stringify(value);
|
|
201
|
+
} catch {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function firstText(...values) {
|
|
206
|
+
for (const value of values) {
|
|
207
|
+
const text = valueToText(value);
|
|
208
|
+
if (text) return text;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function extractToolUpdate(event, sessionId) {
|
|
212
|
+
const props = event.properties ?? {};
|
|
213
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
214
|
+
const part = props.part ?? props.tool;
|
|
215
|
+
if (event.type === "message.part.updated" && part && (part.type === "tool" || part.state)) {
|
|
216
|
+
const state = part.state ?? {};
|
|
217
|
+
return {
|
|
218
|
+
callID: String(part.callID ?? part.id ?? ""),
|
|
219
|
+
tool: String(part.tool ?? "tool"),
|
|
220
|
+
status: String(state.status ?? "running"),
|
|
221
|
+
title: typeof state.title === "string" ? state.title : void 0,
|
|
222
|
+
detail: firstText(state.input, state.metadata, state.progress, state.output),
|
|
223
|
+
output: valueToText(state.output),
|
|
224
|
+
error: typeof state.error === "string" ? state.error : void 0
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if (event.type.startsWith("session.next.tool.")) {
|
|
228
|
+
const type = event.type.replace("session.next.tool.", "");
|
|
229
|
+
return {
|
|
230
|
+
callID: propStr(props, "callID") ?? "",
|
|
231
|
+
tool: propStr(props, "tool") ?? "tool",
|
|
232
|
+
status: type === "completed" ? "completed" : type === "failed" ? "error" : type === "called" ? "running" : propStr(props, "status") ?? "running",
|
|
233
|
+
title: propStr(props, "title") ?? propStr(props, "tool"),
|
|
234
|
+
detail: firstText(props.message, props.delta, props.progress, props.input, props.metadata),
|
|
235
|
+
output: firstText(props.output, props.result),
|
|
236
|
+
error: firstText(props.error)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
function isSessionError(event, sessionId) {
|
|
242
|
+
return event.type === "session.error" && propStr(event.properties, "sessionID") === sessionId;
|
|
243
|
+
}
|
|
244
|
+
function extractPermissionAsk(event, sessionId) {
|
|
245
|
+
if (event.type !== "permission.asked") return null;
|
|
246
|
+
if (propStr(event.properties, "sessionID") !== sessionId) return null;
|
|
247
|
+
const id = propStr(event.properties, "id");
|
|
248
|
+
if (!id) return null;
|
|
249
|
+
const patterns = Array.isArray(event.properties?.patterns) ? event.properties.patterns.filter((item) => typeof item === "string") : [];
|
|
250
|
+
const always = Array.isArray(event.properties?.always) ? event.properties.always.filter((item) => typeof item === "string") : [];
|
|
251
|
+
const toolRecord = event.properties?.tool;
|
|
252
|
+
return {
|
|
253
|
+
requestID: id,
|
|
254
|
+
permission: propStr(event.properties, "permission") ?? "tool",
|
|
255
|
+
patterns,
|
|
256
|
+
always,
|
|
257
|
+
tool: propStr(toolRecord, "callID") ?? propStr(event.properties, "permission") ?? "tool",
|
|
258
|
+
detail: firstText(event.properties?.metadata, event.properties?.message) ?? ""
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function extractQuestionAsk(event, sessionId) {
|
|
262
|
+
if (event.type !== "question.asked") return null;
|
|
263
|
+
if (propStr(event.properties, "sessionID") !== sessionId) return null;
|
|
264
|
+
const id = propStr(event.properties, "id");
|
|
265
|
+
if (!id) return null;
|
|
266
|
+
const rawQuestions = Array.isArray(event.properties?.questions) ? event.properties.questions : [];
|
|
267
|
+
const questions = [];
|
|
268
|
+
for (const raw of rawQuestions) {
|
|
269
|
+
const item = raw;
|
|
270
|
+
const options = Array.isArray(item.options) ? item.options.map((option) => option).filter((option) => typeof option.label === "string").map((option) => ({
|
|
271
|
+
label: option.label,
|
|
272
|
+
description: typeof option.description === "string" ? option.description : ""
|
|
273
|
+
})) : [];
|
|
274
|
+
questions.push({
|
|
275
|
+
question: typeof item.question === "string" ? item.question : "",
|
|
276
|
+
header: typeof item.header === "string" ? item.header : "",
|
|
277
|
+
options
|
|
187
278
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
$$renderer.option({ value: "light" }, ($$renderer) => {
|
|
206
|
-
$$renderer.push(`Light`);
|
|
207
|
-
});
|
|
208
|
-
$$renderer.option({ value: "dark" }, ($$renderer) => {
|
|
209
|
-
$$renderer.push(`Dark`);
|
|
210
|
-
});
|
|
211
|
-
}, "svelte-4kbm5j");
|
|
212
|
-
$$renderer.push(`</label> <nav class="settings-links svelte-4kbm5j" aria-label="Settings links">`);
|
|
213
|
-
if (showManageAssistant) {
|
|
214
|
-
$$renderer.push("<!--[0-->");
|
|
215
|
-
$$renderer.push(`<a class="settings-link svelte-4kbm5j" href="/admin">Manage this assistant...</a>`);
|
|
216
|
-
} else $$renderer.push("<!--[-1-->");
|
|
217
|
-
$$renderer.push(`<!--]--> <a class="settings-link svelte-4kbm5j" href="/admin/endpoints">Manage assistant connections...</a></nav></div>`);
|
|
218
|
-
}});
|
|
219
|
-
$$renderer.push(`<!---->`);
|
|
220
|
-
});
|
|
279
|
+
}
|
|
280
|
+
if (questions.length === 0) return null;
|
|
281
|
+
return {
|
|
282
|
+
requestID: id,
|
|
283
|
+
questions
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
function extractStepUpdate(event, sessionId) {
|
|
287
|
+
const props = event.properties ?? {};
|
|
288
|
+
if (propStr(props, "sessionID") !== sessionId) return null;
|
|
289
|
+
if (event.type !== "session.next.step.started" && event.type !== "session.next.step.ended") return null;
|
|
290
|
+
return {
|
|
291
|
+
id: propStr(props, "stepID") ?? propStr(props, "id") ?? event.type,
|
|
292
|
+
title: propStr(props, "title") ?? propStr(props, "step") ?? (event.type === "session.next.step.started" ? "Working" : "Step complete"),
|
|
293
|
+
status: event.type === "session.next.step.ended" ? "completed" : "running",
|
|
294
|
+
detail: firstText(props.detail, props.message)
|
|
295
|
+
};
|
|
221
296
|
}
|
|
222
297
|
//#endregion
|
|
223
298
|
//#region src/lib/chat/session-events.ts
|
|
@@ -308,6 +383,7 @@ function subscribeSessionEvents(handlers) {
|
|
|
308
383
|
console.warn("[session-events] Bad JSON in SSE frame", err);
|
|
309
384
|
continue;
|
|
310
385
|
}
|
|
386
|
+
handlers.onEvent?.(payload);
|
|
311
387
|
dispatch(handlers, payload);
|
|
312
388
|
}
|
|
313
389
|
}
|
|
@@ -343,7 +419,41 @@ function subscribeSessionEvents(handlers) {
|
|
|
343
419
|
};
|
|
344
420
|
}
|
|
345
421
|
//#endregion
|
|
422
|
+
//#region src/lib/desktop-notifications.ts
|
|
423
|
+
var DESKTOP_NOTIFY_ENABLED_KEY = "openpalm.desktop.notify";
|
|
424
|
+
var DESKTOP_NOTIFY_PREVIEW_KEY = "openpalm.desktop.notify.preview";
|
|
425
|
+
function readFlag(key) {
|
|
426
|
+
if (typeof window === "undefined") return false;
|
|
427
|
+
try {
|
|
428
|
+
return window.localStorage.getItem(key) === "1";
|
|
429
|
+
} catch {
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
function desktopNotifyEnabled() {
|
|
434
|
+
return readFlag(DESKTOP_NOTIFY_ENABLED_KEY);
|
|
435
|
+
}
|
|
436
|
+
function desktopReplyPreviewEnabled() {
|
|
437
|
+
return readFlag(DESKTOP_NOTIFY_PREVIEW_KEY);
|
|
438
|
+
}
|
|
439
|
+
function shouldNotifyDesktop() {
|
|
440
|
+
if (typeof document === "undefined") return false;
|
|
441
|
+
if (document.hasFocus()) return false;
|
|
442
|
+
if (!desktopNotifyEnabled()) return false;
|
|
443
|
+
return typeof window !== "undefined" && typeof window.openpalm?.notify === "function";
|
|
444
|
+
}
|
|
445
|
+
function notifyAssistantReply(replyText) {
|
|
446
|
+
if (!shouldNotifyDesktop()) return;
|
|
447
|
+
const body = desktopReplyPreviewEnabled() && replyText.trim() ? replyText.trim() : "Assistant replied";
|
|
448
|
+
window.openpalm?.notify?.("OpenPalm", body);
|
|
449
|
+
}
|
|
450
|
+
function notifyAssistantError() {
|
|
451
|
+
if (!shouldNotifyDesktop()) return;
|
|
452
|
+
window.openpalm?.notify?.("OpenPalm", "Assistant error");
|
|
453
|
+
}
|
|
454
|
+
//#endregion
|
|
346
455
|
//#region src/lib/chat/chat-state.svelte.ts
|
|
456
|
+
var STREAM_TURN_TIMEOUT_MS = 15e4;
|
|
347
457
|
function emptyEndpointState() {
|
|
348
458
|
return {
|
|
349
459
|
sessions: [],
|
|
@@ -369,6 +479,10 @@ var ChatService = class {
|
|
|
369
479
|
entriesLoading = false;
|
|
370
480
|
sending = false;
|
|
371
481
|
error = "";
|
|
482
|
+
pendingAssistantText = "";
|
|
483
|
+
pendingToolStates = [];
|
|
484
|
+
pendingPermission = null;
|
|
485
|
+
pendingQuestion = null;
|
|
372
486
|
/**
|
|
373
487
|
* Set true while the SSE event stream is connected. Surfaced by the
|
|
374
488
|
* SessionPicker as a tiny green/gray dot so the operator can see at a
|
|
@@ -380,6 +494,7 @@ var ChatService = class {
|
|
|
380
494
|
* Plain field (not `$state`) — only the chat service touches it.
|
|
381
495
|
*/
|
|
382
496
|
_unsubscribeEvents = null;
|
|
497
|
+
_pendingTurn = null;
|
|
383
498
|
#activeSessionId = derived(() => this.byEndpoint.get(this.activeEndpointId)?.activeSessionId ?? null);
|
|
384
499
|
get activeSessionId() {
|
|
385
500
|
return this.#activeSessionId();
|
|
@@ -443,14 +558,161 @@ var ChatService = class {
|
|
|
443
558
|
onDeleted: (id) => {
|
|
444
559
|
this._onSessionDeleted(id);
|
|
445
560
|
},
|
|
561
|
+
onEvent: (event) => {
|
|
562
|
+
this._onLiveEvent(event);
|
|
563
|
+
},
|
|
446
564
|
onConnect: () => {
|
|
447
565
|
this.liveConnected = true;
|
|
448
566
|
},
|
|
449
567
|
onDisconnect: () => {
|
|
450
568
|
this.liveConnected = false;
|
|
569
|
+
if (this._pendingTurn) this._failPendingTurn(/* @__PURE__ */ new Error("Assistant event stream disconnected."));
|
|
451
570
|
}
|
|
452
571
|
});
|
|
453
572
|
}
|
|
573
|
+
_toRawEvent(event) {
|
|
574
|
+
return {
|
|
575
|
+
type: event.type,
|
|
576
|
+
properties: event.properties ?? {}
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
_upsertPendingToolState(update) {
|
|
580
|
+
const id = update.callID || `${update.tool}:${this.pendingToolStates.length}`;
|
|
581
|
+
const next = {
|
|
582
|
+
id,
|
|
583
|
+
kind: "tool",
|
|
584
|
+
tool: update.tool,
|
|
585
|
+
status: update.status,
|
|
586
|
+
title: update.title ?? update.tool,
|
|
587
|
+
detail: update.detail ?? "",
|
|
588
|
+
output: update.output ?? "",
|
|
589
|
+
error: update.error ?? "",
|
|
590
|
+
updatedAt: Date.now()
|
|
591
|
+
};
|
|
592
|
+
if (!this.pendingToolStates.find((item) => item.id === id)) {
|
|
593
|
+
this.pendingToolStates = [...this.pendingToolStates, next];
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
596
|
+
this.pendingToolStates = this.pendingToolStates.map((item) => item.id === id ? {
|
|
597
|
+
...item,
|
|
598
|
+
...next
|
|
599
|
+
} : item);
|
|
600
|
+
}
|
|
601
|
+
_upsertPendingStepState(update) {
|
|
602
|
+
const next = {
|
|
603
|
+
id: update.id,
|
|
604
|
+
kind: "step",
|
|
605
|
+
tool: "step",
|
|
606
|
+
status: update.status,
|
|
607
|
+
title: update.title,
|
|
608
|
+
detail: update.detail ?? "",
|
|
609
|
+
output: "",
|
|
610
|
+
error: "",
|
|
611
|
+
updatedAt: Date.now()
|
|
612
|
+
};
|
|
613
|
+
if (!this.pendingToolStates.find((item) => item.id === update.id)) {
|
|
614
|
+
this.pendingToolStates = [...this.pendingToolStates, next];
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
this.pendingToolStates = this.pendingToolStates.map((item) => item.id === update.id ? {
|
|
618
|
+
...item,
|
|
619
|
+
...next
|
|
620
|
+
} : item);
|
|
621
|
+
}
|
|
622
|
+
_resetPendingRenderState() {
|
|
623
|
+
this.pendingAssistantText = "";
|
|
624
|
+
this.pendingToolStates = [];
|
|
625
|
+
this.pendingPermission = null;
|
|
626
|
+
this.pendingQuestion = null;
|
|
627
|
+
}
|
|
628
|
+
_appendAssistantReply(text) {
|
|
629
|
+
const assistantEntry = {
|
|
630
|
+
id: crypto.randomUUID(),
|
|
631
|
+
role: "assistant",
|
|
632
|
+
text,
|
|
633
|
+
timestamp: Date.now()
|
|
634
|
+
};
|
|
635
|
+
this.entries = [...this.entries, assistantEntry];
|
|
636
|
+
}
|
|
637
|
+
_clearPendingTurn() {
|
|
638
|
+
const pending = this._pendingTurn;
|
|
639
|
+
if (!pending) return null;
|
|
640
|
+
clearTimeout(pending.timeout);
|
|
641
|
+
this._pendingTurn = null;
|
|
642
|
+
return pending;
|
|
643
|
+
}
|
|
644
|
+
_finishPendingTurn(replyText) {
|
|
645
|
+
const pending = this._clearPendingTurn();
|
|
646
|
+
if (!pending) return;
|
|
647
|
+
const text = (replyText ?? this.pendingAssistantText).trim() || "(no response)";
|
|
648
|
+
this._appendAssistantReply(text);
|
|
649
|
+
this._resetPendingRenderState();
|
|
650
|
+
this._bumpSession(pending.sessionId);
|
|
651
|
+
if (voiceState.ttsSupported && voiceState.ttsAutoEnabled && text && text !== "(no response)") speakText(text, {
|
|
652
|
+
mode: "chat_reply",
|
|
653
|
+
userText: pending.userText,
|
|
654
|
+
assistantText: text
|
|
655
|
+
});
|
|
656
|
+
notifyAssistantReply(text === "(no response)" ? "" : text);
|
|
657
|
+
pending.resolve();
|
|
658
|
+
}
|
|
659
|
+
_failPendingTurn(error) {
|
|
660
|
+
const pending = this._clearPendingTurn();
|
|
661
|
+
if (!pending) return;
|
|
662
|
+
this._resetPendingRenderState();
|
|
663
|
+
pending.reject(error);
|
|
664
|
+
}
|
|
665
|
+
_bumpSession(sessionId) {
|
|
666
|
+
const endpointId = this.activeEndpointId;
|
|
667
|
+
const prev = this.byEndpoint.get(endpointId);
|
|
668
|
+
if (!prev) return;
|
|
669
|
+
const now = Date.now();
|
|
670
|
+
const existing = prev.sessions.find((s) => s.id === sessionId);
|
|
671
|
+
const updated = existing ? {
|
|
672
|
+
...existing,
|
|
673
|
+
updatedAt: now
|
|
674
|
+
} : {
|
|
675
|
+
id: sessionId,
|
|
676
|
+
title: "",
|
|
677
|
+
createdAt: now,
|
|
678
|
+
updatedAt: now
|
|
679
|
+
};
|
|
680
|
+
const rest = prev.sessions.filter((s) => s.id !== sessionId);
|
|
681
|
+
this.setEndpointState(endpointId, { sessions: [updated, ...rest] });
|
|
682
|
+
}
|
|
683
|
+
_onLiveEvent(event) {
|
|
684
|
+
const pending = this._pendingTurn;
|
|
685
|
+
if (!pending) return;
|
|
686
|
+
const raw = this._toRawEvent(event);
|
|
687
|
+
if (pending.endpointId !== this.activeEndpointId) return;
|
|
688
|
+
const snapshot = partSnapshotType(raw);
|
|
689
|
+
if (snapshot?.type === "reasoning") pending.reasoningPartIds.add(snapshot.partID);
|
|
690
|
+
const textDelta = extractTextDelta(raw, pending.sessionId, pending.reasoningPartIds);
|
|
691
|
+
if (textDelta) this.pendingAssistantText += textDelta;
|
|
692
|
+
const toolUpdate = extractToolUpdate(raw, pending.sessionId);
|
|
693
|
+
if (toolUpdate) this._upsertPendingToolState(toolUpdate);
|
|
694
|
+
const stepUpdate = extractStepUpdate(raw, pending.sessionId);
|
|
695
|
+
if (stepUpdate) this._upsertPendingStepState(stepUpdate);
|
|
696
|
+
const permissionAsk = extractPermissionAsk(raw, pending.sessionId);
|
|
697
|
+
if (permissionAsk) this.pendingPermission = {
|
|
698
|
+
...permissionAsk,
|
|
699
|
+
status: "pending",
|
|
700
|
+
decision: "",
|
|
701
|
+
message: ""
|
|
702
|
+
};
|
|
703
|
+
const questionAsk = extractQuestionAsk(raw, pending.sessionId);
|
|
704
|
+
if (questionAsk) this.pendingQuestion = {
|
|
705
|
+
...questionAsk,
|
|
706
|
+
status: "pending",
|
|
707
|
+
answers: questionAsk.questions.map(() => ""),
|
|
708
|
+
message: ""
|
|
709
|
+
};
|
|
710
|
+
if (isSessionError(raw, pending.sessionId)) {
|
|
711
|
+
this._failPendingTurn(/* @__PURE__ */ new Error("Assistant session ended unexpectedly."));
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
714
|
+
if (isTurnEnd(raw, pending.sessionId)) this._finishPendingTurn();
|
|
715
|
+
}
|
|
454
716
|
/**
|
|
455
717
|
* A session was created out-of-band — prepend to the active endpoint's
|
|
456
718
|
* list if not already known. Do not auto-switch to it: the user owns
|
|
@@ -549,6 +811,7 @@ var ChatService = class {
|
|
|
549
811
|
const endpointId = this.activeEndpointId;
|
|
550
812
|
this.setEndpointState(endpointId, { activeSessionId: sessionId });
|
|
551
813
|
this.entries = [];
|
|
814
|
+
this._resetPendingRenderState();
|
|
552
815
|
this.entriesLoading = true;
|
|
553
816
|
this.error = "";
|
|
554
817
|
try {
|
|
@@ -587,6 +850,7 @@ var ChatService = class {
|
|
|
587
850
|
activeSessionId: id
|
|
588
851
|
});
|
|
589
852
|
this.entries = [];
|
|
853
|
+
this._resetPendingRenderState();
|
|
590
854
|
return id;
|
|
591
855
|
} catch (e) {
|
|
592
856
|
const err = e;
|
|
@@ -599,9 +863,21 @@ var ChatService = class {
|
|
|
599
863
|
* first (matches the "zero sessions" empty-state flow).
|
|
600
864
|
*/
|
|
601
865
|
async send(text) {
|
|
602
|
-
if (this.sending) return;
|
|
603
866
|
const trimmed = text.trim();
|
|
604
867
|
if (!trimmed) return;
|
|
868
|
+
if (this.pendingQuestion && this.pendingQuestion.questions.length === 1 && this.sending) {
|
|
869
|
+
await this.answerQuestion(trimmed);
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
872
|
+
if (this.pendingQuestion && this.sending) {
|
|
873
|
+
this.pendingQuestion = {
|
|
874
|
+
...this.pendingQuestion,
|
|
875
|
+
status: "error",
|
|
876
|
+
message: "This question has multiple parts and must be answered with the provided controls."
|
|
877
|
+
};
|
|
878
|
+
return;
|
|
879
|
+
}
|
|
880
|
+
if (this.sending) return;
|
|
605
881
|
let sessionId = this.activeSessionId;
|
|
606
882
|
if (!sessionId) {
|
|
607
883
|
sessionId = await this.startNewSession();
|
|
@@ -614,50 +890,159 @@ var ChatService = class {
|
|
|
614
890
|
timestamp: Date.now()
|
|
615
891
|
};
|
|
616
892
|
this.entries = [...this.entries, userEntry];
|
|
893
|
+
this._resetPendingRenderState();
|
|
617
894
|
this.error = "";
|
|
618
895
|
this.sending = true;
|
|
896
|
+
if (voiceState.ttsSupported && voiceState.ttsAutoEnabled) speakText("Working on it.", {
|
|
897
|
+
mode: "chat_ack",
|
|
898
|
+
userText: trimmed
|
|
899
|
+
});
|
|
619
900
|
try {
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
const existing = prev.sessions.find((s) => s.id === sessionId);
|
|
633
|
-
const updated = existing ? {
|
|
634
|
-
...existing,
|
|
635
|
-
updatedAt: now
|
|
636
|
-
} : {
|
|
637
|
-
id: sessionId,
|
|
638
|
-
title: "",
|
|
639
|
-
createdAt: now,
|
|
640
|
-
updatedAt: now
|
|
901
|
+
if (this._unsubscribeEvents && this.liveConnected) await new Promise((resolve, reject) => {
|
|
902
|
+
const timeout = setTimeout(() => {
|
|
903
|
+
this._failPendingTurn(/* @__PURE__ */ new Error("Timed out waiting for the assistant response."));
|
|
904
|
+
}, STREAM_TURN_TIMEOUT_MS);
|
|
905
|
+
this._pendingTurn = {
|
|
906
|
+
endpointId: this.activeEndpointId,
|
|
907
|
+
sessionId,
|
|
908
|
+
userText: trimmed,
|
|
909
|
+
reasoningPartIds: /* @__PURE__ */ new Set(),
|
|
910
|
+
resolve,
|
|
911
|
+
reject,
|
|
912
|
+
timeout
|
|
641
913
|
};
|
|
642
|
-
|
|
643
|
-
|
|
914
|
+
startChatMessageTurn(sessionId, trimmed).catch((error) => {
|
|
915
|
+
this._failPendingTurn(error instanceof Error ? error : new Error(String(error)));
|
|
916
|
+
});
|
|
917
|
+
});
|
|
918
|
+
else {
|
|
919
|
+
const text = (await sendChatMessage(sessionId, trimmed)).parts.filter((p) => p.type === "text" && p.text).map((p) => p.text ?? "").join("").trim() || "(no response)";
|
|
920
|
+
this._appendAssistantReply(text);
|
|
921
|
+
this._bumpSession(sessionId);
|
|
922
|
+
if (voiceState.ttsSupported && voiceState.ttsAutoEnabled && text !== "(no response)") speakText(text, {
|
|
923
|
+
mode: "chat_reply",
|
|
924
|
+
userText: trimmed,
|
|
925
|
+
assistantText: text
|
|
926
|
+
});
|
|
927
|
+
notifyAssistantReply(text === "(no response)" ? "" : text);
|
|
644
928
|
}
|
|
645
|
-
if (voiceState.ttsSupported && voiceState.ttsAutoEnabled && replyText) speakText(replyText);
|
|
646
929
|
} catch (e) {
|
|
647
930
|
const err = e;
|
|
931
|
+
this._resetPendingRenderState();
|
|
648
932
|
if (err.status === 503 || err.status === 502) {
|
|
649
933
|
this.error = "Assistant is not reachable. Try reconnecting.";
|
|
650
934
|
this.setEndpointState(this.activeEndpointId, { activeSessionId: null });
|
|
651
935
|
} else if (err.status === 401) this.error = "Sign-in required.";
|
|
652
936
|
else this.error = err.message ?? "Message failed.";
|
|
937
|
+
notifyAssistantError();
|
|
653
938
|
} finally {
|
|
654
939
|
this.sending = false;
|
|
655
940
|
}
|
|
656
941
|
}
|
|
942
|
+
async answerPermission(reply) {
|
|
943
|
+
if (!this.pendingPermission || this.pendingPermission.status === "submitting") return;
|
|
944
|
+
const current = this.pendingPermission;
|
|
945
|
+
this.pendingPermission = {
|
|
946
|
+
...current,
|
|
947
|
+
status: "submitting",
|
|
948
|
+
decision: reply,
|
|
949
|
+
message: ""
|
|
950
|
+
};
|
|
951
|
+
try {
|
|
952
|
+
await replyChatPermission(current.requestID, reply);
|
|
953
|
+
this.pendingPermission = {
|
|
954
|
+
...current,
|
|
955
|
+
status: "resolved",
|
|
956
|
+
decision: reply,
|
|
957
|
+
message: reply === "once" ? `Allowed ${current.permission} once. Waiting for the assistant to continue...` : reply === "always" ? `Always allowed future matching ${current.permission} requests.` : `Denied ${current.permission}. Waiting for the assistant to continue...`
|
|
958
|
+
};
|
|
959
|
+
} catch (error) {
|
|
960
|
+
const message = error instanceof Error ? error.message : "Failed to record permission reply.";
|
|
961
|
+
this.pendingPermission = {
|
|
962
|
+
...current,
|
|
963
|
+
status: "error",
|
|
964
|
+
decision: reply,
|
|
965
|
+
message
|
|
966
|
+
};
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
setQuestionAnswer(index, answer) {
|
|
970
|
+
if (!this.pendingQuestion) return;
|
|
971
|
+
if (index < 0 || index >= this.pendingQuestion.questions.length) return;
|
|
972
|
+
const answers = [...this.pendingQuestion.answers];
|
|
973
|
+
answers[index] = answer;
|
|
974
|
+
this.pendingQuestion = {
|
|
975
|
+
...this.pendingQuestion,
|
|
976
|
+
answers,
|
|
977
|
+
message: ""
|
|
978
|
+
};
|
|
979
|
+
}
|
|
980
|
+
async answerQuestion(answer) {
|
|
981
|
+
if (!this.pendingQuestion || this.pendingQuestion.status === "submitting") return;
|
|
982
|
+
const current = this.pendingQuestion;
|
|
983
|
+
const answers = current.questions.length === 1 && typeof answer === "string" ? [answer.trim()] : current.answers.map((item) => item.trim());
|
|
984
|
+
if (answers.some((item) => !item)) {
|
|
985
|
+
this.pendingQuestion = {
|
|
986
|
+
...current,
|
|
987
|
+
status: "error",
|
|
988
|
+
message: "Answer every question before submitting."
|
|
989
|
+
};
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
this.pendingQuestion = {
|
|
993
|
+
...current,
|
|
994
|
+
status: "submitting",
|
|
995
|
+
answers,
|
|
996
|
+
message: ""
|
|
997
|
+
};
|
|
998
|
+
try {
|
|
999
|
+
await replyChatQuestion(current.requestID, answers.map((item) => [item]));
|
|
1000
|
+
this.pendingQuestion = {
|
|
1001
|
+
...current,
|
|
1002
|
+
status: "answered",
|
|
1003
|
+
answers,
|
|
1004
|
+
message: "Answer sent."
|
|
1005
|
+
};
|
|
1006
|
+
} catch (error) {
|
|
1007
|
+
const message = error instanceof Error ? error.message : "Failed to send answer.";
|
|
1008
|
+
this.pendingQuestion = {
|
|
1009
|
+
...current,
|
|
1010
|
+
status: "error",
|
|
1011
|
+
answers,
|
|
1012
|
+
message
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
async rejectQuestion() {
|
|
1017
|
+
if (!this.pendingQuestion || this.pendingQuestion.status === "submitting") return;
|
|
1018
|
+
const current = this.pendingQuestion;
|
|
1019
|
+
this.pendingQuestion = {
|
|
1020
|
+
...current,
|
|
1021
|
+
status: "submitting",
|
|
1022
|
+
message: ""
|
|
1023
|
+
};
|
|
1024
|
+
try {
|
|
1025
|
+
await rejectChatQuestion(current.requestID);
|
|
1026
|
+
this.pendingQuestion = {
|
|
1027
|
+
...current,
|
|
1028
|
+
status: "rejected",
|
|
1029
|
+
message: "Question declined."
|
|
1030
|
+
};
|
|
1031
|
+
} catch (error) {
|
|
1032
|
+
const message = error instanceof Error ? error.message : "Failed to reject question.";
|
|
1033
|
+
this.pendingQuestion = {
|
|
1034
|
+
...current,
|
|
1035
|
+
status: "error",
|
|
1036
|
+
message
|
|
1037
|
+
};
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
657
1040
|
reset() {
|
|
658
1041
|
stopSpeaking();
|
|
1042
|
+
this._clearPendingTurn();
|
|
659
1043
|
this.entries = [];
|
|
660
1044
|
this.error = "";
|
|
1045
|
+
this._resetPendingRenderState();
|
|
661
1046
|
this.byEndpoint = /* @__PURE__ */ new Map();
|
|
662
1047
|
if (this._unsubscribeEvents) {
|
|
663
1048
|
try {
|
|
@@ -672,6 +1057,146 @@ var ChatService = class {
|
|
|
672
1057
|
};
|
|
673
1058
|
var chat = new ChatService();
|
|
674
1059
|
//#endregion
|
|
1060
|
+
//#region src/lib/chat/navigation.ts
|
|
1061
|
+
var DEFAULT_WORKSPACE_PATH = "/work/itlackey/openpalm";
|
|
1062
|
+
function encodeWorkspacePath(path) {
|
|
1063
|
+
if (typeof window === "undefined" || typeof window.btoa !== "function") return "L3dvcmsvaXRsYWNrZXkvb3BlbnBhbG0";
|
|
1064
|
+
const bytes = new TextEncoder().encode(path);
|
|
1065
|
+
let binary = "";
|
|
1066
|
+
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
1067
|
+
return window.btoa(binary).replace(/=+$/g, "");
|
|
1068
|
+
}
|
|
1069
|
+
function currentChatSessionId() {
|
|
1070
|
+
return chat.activeSessionId;
|
|
1071
|
+
}
|
|
1072
|
+
function buildAdvancedPath(sessionId) {
|
|
1073
|
+
const params = new URLSearchParams();
|
|
1074
|
+
if (sessionId) params.set("session", sessionId);
|
|
1075
|
+
const query = params.toString();
|
|
1076
|
+
return query ? `/advanced?${query}` : "/advanced";
|
|
1077
|
+
}
|
|
1078
|
+
function buildChatPath(sessionId, options) {
|
|
1079
|
+
const params = new URLSearchParams();
|
|
1080
|
+
if (sessionId) params.set("session", sessionId);
|
|
1081
|
+
const query = params.toString();
|
|
1082
|
+
return query ? `/chat?${query}` : "/chat";
|
|
1083
|
+
}
|
|
1084
|
+
function buildAdvancedIframeUrl(baseUrl, sessionId) {
|
|
1085
|
+
if (!sessionId) return baseUrl;
|
|
1086
|
+
return `${baseUrl.replace(/\/$/, "")}/${encodeWorkspacePath(DEFAULT_WORKSPACE_PATH)}/session/${encodeURIComponent(sessionId)}`;
|
|
1087
|
+
}
|
|
1088
|
+
//#endregion
|
|
1089
|
+
//#region src/lib/components/chrome/ModeSwitch.svelte
|
|
1090
|
+
function advancedIcon($$renderer) {
|
|
1091
|
+
$$renderer.push(`<svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg>`);
|
|
1092
|
+
}
|
|
1093
|
+
function ModeSwitch($$renderer, $$props) {
|
|
1094
|
+
$$renderer.component(($$renderer) => {
|
|
1095
|
+
const pathname = derived(() => page.url?.pathname ?? "");
|
|
1096
|
+
const onAdmin = derived(() => pathname() === "/admin" || pathname().startsWith("/admin/"));
|
|
1097
|
+
function toggle() {
|
|
1098
|
+
const enabled = advancedModeService.toggle();
|
|
1099
|
+
if (onAdmin()) return;
|
|
1100
|
+
const sessionId = page.url.searchParams.get("session") ?? currentChatSessionId();
|
|
1101
|
+
goto(enabled ? buildAdvancedPath(sessionId) : buildChatPath(sessionId));
|
|
1102
|
+
}
|
|
1103
|
+
ToggleButton($$renderer, {
|
|
1104
|
+
pressed: advancedModeService.enabled,
|
|
1105
|
+
onToggle: toggle,
|
|
1106
|
+
ariaLabel: "Advanced mode",
|
|
1107
|
+
title: "Advanced mode (embedded OpenCode)",
|
|
1108
|
+
icon: advancedIcon
|
|
1109
|
+
});
|
|
1110
|
+
});
|
|
1111
|
+
}
|
|
1112
|
+
//#endregion
|
|
1113
|
+
//#region src/lib/components/common/Drawer.svelte
|
|
1114
|
+
function Drawer($$renderer, $$props) {
|
|
1115
|
+
$$renderer.component(($$renderer) => {
|
|
1116
|
+
/** Optional content rendered at the start of the header (e.g. a back button). */
|
|
1117
|
+
/** Drawer width (CSS length). */
|
|
1118
|
+
let { open, title, onClose, children, footer, headerStart, width = "32rem" } = $$props;
|
|
1119
|
+
if (open) {
|
|
1120
|
+
$$renderer.push("<!--[0-->");
|
|
1121
|
+
$$renderer.push(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj"${attr_style(`--drawer-width: ${stringify(width)}`)} role="dialog" aria-modal="true"${attr("aria-label", title)} tabindex="-1"><header class="drawer-header svelte-1u2o1qj">`);
|
|
1122
|
+
if (headerStart) {
|
|
1123
|
+
$$renderer.push("<!--[0-->");
|
|
1124
|
+
headerStart($$renderer);
|
|
1125
|
+
$$renderer.push(`<!---->`);
|
|
1126
|
+
} else $$renderer.push("<!--[-1-->");
|
|
1127
|
+
$$renderer.push(`<!--]--> <h3 class="drawer-title svelte-1u2o1qj">${escape_html(title)}</h3> <button class="drawer-close svelte-1u2o1qj" aria-label="Close"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></header> <div class="drawer-body svelte-1u2o1qj">`);
|
|
1128
|
+
children($$renderer);
|
|
1129
|
+
$$renderer.push(`<!----></div> `);
|
|
1130
|
+
if (footer) {
|
|
1131
|
+
$$renderer.push("<!--[0-->");
|
|
1132
|
+
$$renderer.push(`<footer class="drawer-footer svelte-1u2o1qj">`);
|
|
1133
|
+
footer($$renderer);
|
|
1134
|
+
$$renderer.push(`<!----></footer>`);
|
|
1135
|
+
} else $$renderer.push("<!--[-1-->");
|
|
1136
|
+
$$renderer.push(`<!--]--></div>`);
|
|
1137
|
+
} else $$renderer.push("<!--[-1-->");
|
|
1138
|
+
$$renderer.push(`<!--]-->`);
|
|
1139
|
+
});
|
|
1140
|
+
}
|
|
1141
|
+
//#endregion
|
|
1142
|
+
//#region src/lib/components/chrome/SettingsDrawer.svelte
|
|
1143
|
+
function gearIcon($$renderer) {
|
|
1144
|
+
$$renderer.push(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>`);
|
|
1145
|
+
}
|
|
1146
|
+
function SettingsDrawer($$renderer, $$props) {
|
|
1147
|
+
$$renderer.component(($$renderer) => {
|
|
1148
|
+
let { showManageAssistant = true } = $$props;
|
|
1149
|
+
let open = false;
|
|
1150
|
+
afterNavigate(() => {
|
|
1151
|
+
open = false;
|
|
1152
|
+
});
|
|
1153
|
+
function setTheme(event) {
|
|
1154
|
+
const next = event.currentTarget.value;
|
|
1155
|
+
if (next === "light" || next === "dark" || next === "system") themeService.setPreference(next);
|
|
1156
|
+
}
|
|
1157
|
+
IconButton($$renderer, {
|
|
1158
|
+
icon: gearIcon,
|
|
1159
|
+
ariaLabel: "Settings",
|
|
1160
|
+
title: "Settings",
|
|
1161
|
+
selected: open,
|
|
1162
|
+
ariaPressed: open,
|
|
1163
|
+
onclick: () => open = true
|
|
1164
|
+
});
|
|
1165
|
+
$$renderer.push(`<!----> `);
|
|
1166
|
+
Drawer($$renderer, {
|
|
1167
|
+
open,
|
|
1168
|
+
title: "Settings",
|
|
1169
|
+
onClose: () => open = false,
|
|
1170
|
+
width: "24rem",
|
|
1171
|
+
children: ($$renderer) => {
|
|
1172
|
+
$$renderer.push(`<div class="settings-drawer svelte-4kbm5j"><label class="field svelte-4kbm5j" for="theme-preference"><span class="field-label svelte-4kbm5j">Theme</span> `);
|
|
1173
|
+
$$renderer.select({
|
|
1174
|
+
id: "theme-preference",
|
|
1175
|
+
class: "field-select",
|
|
1176
|
+
value: themeService.preference,
|
|
1177
|
+
onchange: setTheme
|
|
1178
|
+
}, ($$renderer) => {
|
|
1179
|
+
$$renderer.option({ value: "system" }, ($$renderer) => {
|
|
1180
|
+
$$renderer.push(`System`);
|
|
1181
|
+
});
|
|
1182
|
+
$$renderer.option({ value: "light" }, ($$renderer) => {
|
|
1183
|
+
$$renderer.push(`Light`);
|
|
1184
|
+
});
|
|
1185
|
+
$$renderer.option({ value: "dark" }, ($$renderer) => {
|
|
1186
|
+
$$renderer.push(`Dark`);
|
|
1187
|
+
});
|
|
1188
|
+
}, "svelte-4kbm5j");
|
|
1189
|
+
$$renderer.push(`</label> <nav class="settings-links svelte-4kbm5j" aria-label="Settings links">`);
|
|
1190
|
+
if (showManageAssistant) {
|
|
1191
|
+
$$renderer.push("<!--[0-->");
|
|
1192
|
+
$$renderer.push(`<a class="settings-link svelte-4kbm5j" href="/admin">Manage this assistant...</a>`);
|
|
1193
|
+
} else $$renderer.push("<!--[-1-->");
|
|
1194
|
+
$$renderer.push(`<!--]--> <a class="settings-link svelte-4kbm5j" href="/admin/endpoints">Manage assistant connections...</a></nav></div>`);
|
|
1195
|
+
}});
|
|
1196
|
+
$$renderer.push(`<!---->`);
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1199
|
+
//#endregion
|
|
675
1200
|
//#region src/lib/endpoints-state.svelte.ts
|
|
676
1201
|
var EndpointsService = class {
|
|
677
1202
|
endpoints = [];
|
|
@@ -967,23 +1492,29 @@ function Navbar($$renderer, $$props) {
|
|
|
967
1492
|
const onAdmin = derived(() => pathname() === "/admin" || pathname().startsWith("/admin/"));
|
|
968
1493
|
const onChatSurface = derived(() => pathname() === "/chat" || pathname().startsWith("/chat/"));
|
|
969
1494
|
const onAdvancedSurface = derived(() => pathname() === "/advanced" || pathname().startsWith("/advanced/"));
|
|
1495
|
+
const onConversationSurface = derived(() => onChatSurface() || onAdvancedSurface());
|
|
970
1496
|
const isLocalAssistant = derived(() => {
|
|
971
1497
|
return isLocalAssistantUrl(endpointsService.active?.url);
|
|
972
1498
|
});
|
|
973
|
-
|
|
1499
|
+
const preferredChatHref = derived(() => {
|
|
1500
|
+
const sessionId = page.url.searchParams.get("session") ?? currentChatSessionId();
|
|
1501
|
+
return advancedModeService.enabled ? buildAdvancedPath(sessionId) : buildChatPath(sessionId);
|
|
1502
|
+
});
|
|
1503
|
+
$$renderer.push(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1"${attr("href", preferredChatHref())} aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1">`);
|
|
974
1504
|
if (onAdmin()) {
|
|
975
1505
|
$$renderer.push("<!--[0-->");
|
|
976
1506
|
IconButton($$renderer, {
|
|
977
|
-
href:
|
|
1507
|
+
href: preferredChatHref(),
|
|
978
1508
|
ariaLabel: "Back to chat",
|
|
979
1509
|
title: "Chat",
|
|
980
1510
|
icon: chatIcon
|
|
981
1511
|
});
|
|
1512
|
+
} else if (onConversationSurface()) {
|
|
1513
|
+
$$renderer.push("<!--[1-->");
|
|
1514
|
+
SettingsDrawer($$renderer, { showManageAssistant: isLocalAssistant() });
|
|
982
1515
|
} else $$renderer.push("<!--[-1-->");
|
|
983
1516
|
$$renderer.push(`<!--]--> `);
|
|
984
|
-
|
|
985
|
-
$$renderer.push(`<!----> `);
|
|
986
|
-
if (onChatSurface()) {
|
|
1517
|
+
if (onConversationSurface()) {
|
|
987
1518
|
$$renderer.push("<!--[0-->");
|
|
988
1519
|
$$renderer.push(`<span class="chat-selectors svelte-66bgq1">`);
|
|
989
1520
|
EndpointSwitcher($$renderer);
|
|
@@ -992,15 +1523,12 @@ function Navbar($$renderer, $$props) {
|
|
|
992
1523
|
$$renderer.push(`<!----></span>`);
|
|
993
1524
|
} else $$renderer.push("<!--[-1-->");
|
|
994
1525
|
$$renderer.push(`<!--]--> `);
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
ModeSwitch($$renderer);
|
|
998
|
-
} else $$renderer.push("<!--[-1-->");
|
|
999
|
-
$$renderer.push(`<!--]--> `);
|
|
1526
|
+
ModeSwitch($$renderer);
|
|
1527
|
+
$$renderer.push(`<!----> `);
|
|
1000
1528
|
VoiceControl($$renderer);
|
|
1001
1529
|
$$renderer.push(`<!----></div></div></header>`);
|
|
1002
1530
|
});
|
|
1003
1531
|
}
|
|
1004
1532
|
|
|
1005
|
-
export { EndpointList as E, IconButton as I, Navbar as N, SessionList as S, chat as c, endpointsService as e, formatTime as f };
|
|
1006
|
-
//# sourceMappingURL=Navbar-
|
|
1533
|
+
export { EndpointList as E, IconButton as I, Navbar as N, SessionList as S, buildAdvancedIframeUrl as b, chat as c, endpointsService as e, formatTime as f };
|
|
1534
|
+
//# sourceMappingURL=Navbar-EBUPxUnS.js.map
|