@openpalm/ui 0.12.12 → 0.12.13
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.C2tVeZVh.css +1 -0
- package/build/client/_app/immutable/assets/4.C2tVeZVh.css.br +0 -0
- package/build/client/_app/immutable/assets/4.C2tVeZVh.css.gz +0 -0
- package/build/client/_app/immutable/chunks/{Ej9QUT4P.js → B7vwJqoj.js} +1 -1
- package/build/client/_app/immutable/chunks/B7vwJqoj.js.br +0 -0
- package/build/client/_app/immutable/chunks/B7vwJqoj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CpzMlkvh.js +1 -0
- package/build/client/_app/immutable/chunks/CpzMlkvh.js.br +2 -0
- package/build/client/_app/immutable/chunks/CpzMlkvh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{auSI7Wdb.js → Cub6afmL.js} +1 -1
- package/build/client/_app/immutable/chunks/Cub6afmL.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cub6afmL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2dFPcAY.js +3 -0
- package/build/client/_app/immutable/chunks/D2dFPcAY.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2dFPcAY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CTyb4jX-.js → DMSxHu0j.js} +2 -2
- package/build/client/_app/immutable/chunks/DMSxHu0j.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMSxHu0j.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i-u-oQAW.js +1 -0
- package/build/client/_app/immutable/chunks/i-u-oQAW.js.br +0 -0
- package/build/client/_app/immutable/chunks/i-u-oQAW.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DsQiW1Iw.js → app.CGwa9uv7.js} +2 -2
- package/build/client/_app/immutable/entry/app.CGwa9uv7.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CGwa9uv7.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js +1 -0
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CPRDHuTW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.6LuHgRwe.js → 0.DOxwxXh1.js} +1 -1
- package/build/client/_app/immutable/nodes/0.DOxwxXh1.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DOxwxXh1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DnRffqy6.js → 1.ALcLv429.js} +1 -1
- package/build/client/_app/immutable/nodes/1.ALcLv429.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.ALcLv429.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js +133 -0
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js.br +0 -0
- package/build/client/_app/immutable/nodes/4._U3pMj5x.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CnQ0zkJ5.js → 5.CUEzVL3V.js} +1 -1
- package/build/client/_app/immutable/nodes/5.CUEzVL3V.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CUEzVL3V.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BaOjUVsQ.js → 6.BL78XiLU.js} +1 -1
- package/build/client/_app/immutable/nodes/6.BL78XiLU.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BL78XiLU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.Dy-QUnwV.js → 7.F5ztMZTo.js} +1 -1
- package/build/client/_app/immutable/nodes/7.F5ztMZTo.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.F5ztMZTo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.B3kiJaWi.js → 8.xcsOM3k5.js} +1 -1
- package/build/client/_app/immutable/nodes/8.xcsOM3k5.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.xcsOM3k5.js.gz +0 -0
- package/build/client/_app/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-pjhEnsU9.js → 0-BKHhl45d.js} +3 -3
- package/build/server/chunks/{0-pjhEnsU9.js.map → 0-BKHhl45d.js.map} +1 -1
- package/build/server/chunks/1-2o6Ed2yp.js +9 -0
- package/build/server/chunks/{1-s4KrrHyU.js.map → 1-2o6Ed2yp.js.map} +1 -1
- package/build/server/chunks/{10-BsKSeayN.js → 10-sMfnW6s_.js} +5 -5
- package/build/server/chunks/10-sMfnW6s_.js.map +1 -0
- package/build/server/chunks/4-D6BCA1En.js +9 -0
- package/build/server/chunks/{4-DXcZ-YeU.js.map → 4-D6BCA1En.js.map} +1 -1
- package/build/server/chunks/5-FSdT4QNL.js +9 -0
- package/build/server/chunks/{5-CxWHKz_5.js.map → 5-FSdT4QNL.js.map} +1 -1
- package/build/server/chunks/6-C0ETgtOo.js +9 -0
- package/build/server/chunks/{6-C2va3-p8.js.map → 6-C0ETgtOo.js.map} +1 -1
- package/build/server/chunks/7-BcFrRC7r.js +9 -0
- package/build/server/chunks/{7-ZC2-wAze.js.map → 7-BcFrRC7r.js.map} +1 -1
- package/build/server/chunks/{8-CdAURkyt.js → 8-CGnXBMny.js} +3 -3
- package/build/server/chunks/{8-CdAURkyt.js.map → 8-CGnXBMny.js.map} +1 -1
- package/build/server/chunks/{ChatMessage-nFk7W8JO.js → ChatMessage-BEFlmHur.js} +2 -2
- package/build/server/chunks/{ChatMessage-nFk7W8JO.js.map → ChatMessage-BEFlmHur.js.map} +1 -1
- package/build/server/chunks/{Navbar-CqHAp9Qh.js → Navbar-y0AyDpcy.js} +4 -4
- package/build/server/chunks/{Navbar-CqHAp9Qh.js.map → Navbar-y0AyDpcy.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-CFKjimed.js → _layout.svelte-oFWL-MU8.js} +2 -2
- package/build/server/chunks/{_layout.svelte-CFKjimed.js.map → _layout.svelte-oFWL-MU8.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Ehsb0X1T.js → _page.svelte-Cqzbf_9r.js} +6 -6
- package/build/server/chunks/{_page.svelte-Ehsb0X1T.js.map → _page.svelte-Cqzbf_9r.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CmB5uGqK.js → _page.svelte-DCeKtm_e.js} +3 -3
- package/build/server/chunks/{_page.svelte-CmB5uGqK.js.map → _page.svelte-DCeKtm_e.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CmqaniiZ.js → _page.svelte-DM3jnL7B.js} +176 -173
- package/build/server/chunks/_page.svelte-DM3jnL7B.js.map +1 -0
- package/build/server/chunks/{_page.svelte-z0vjeg3m.js → _page.svelte-DbVLfUMo.js} +6 -6
- package/build/server/chunks/{_page.svelte-z0vjeg3m.js.map → _page.svelte-DbVLfUMo.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CQ8Ang1b.js → _page.svelte-LjsOqqWX.js} +7 -7
- package/build/server/chunks/{_page.svelte-CQ8Ang1b.js.map → _page.svelte-LjsOqqWX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CL74nB_X.js → _server.ts--pU-mhOv.js} +5 -5
- package/build/server/chunks/{_server.ts-CL74nB_X.js.map → _server.ts--pU-mhOv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhKn_mC3.js → _server.ts-0OeQ0WW1.js} +5 -5
- package/build/server/chunks/{_server.ts-DhKn_mC3.js.map → _server.ts-0OeQ0WW1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BvIDZNQ4.js → _server.ts-5CMhF-We.js} +5 -5
- package/build/server/chunks/{_server.ts-BvIDZNQ4.js.map → _server.ts-5CMhF-We.js.map} +1 -1
- package/build/server/chunks/{_server.ts-aBL-bZNn.js → _server.ts-B01UNM7i.js} +6 -6
- package/build/server/chunks/{_server.ts-aBL-bZNn.js.map → _server.ts-B01UNM7i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Be_Ms27u.js → _server.ts-B20Y2eS7.js} +6 -6
- package/build/server/chunks/{_server.ts-Be_Ms27u.js.map → _server.ts-B20Y2eS7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C9KhKEr6.js → _server.ts-B3Uljj7c.js} +5 -5
- package/build/server/chunks/{_server.ts-C9KhKEr6.js.map → _server.ts-B3Uljj7c.js.map} +1 -1
- package/build/server/chunks/_server.ts-BDRFGcRb.js +64 -0
- package/build/server/chunks/_server.ts-BDRFGcRb.js.map +1 -0
- package/build/server/chunks/{_server.ts-B127b-gL.js → _server.ts-BDu6FWnC.js} +6 -6
- package/build/server/chunks/{_server.ts-B127b-gL.js.map → _server.ts-BDu6FWnC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ynDn6nif.js → _server.ts-BE9SHXNP.js} +5 -5
- package/build/server/chunks/{_server.ts-ynDn6nif.js.map → _server.ts-BE9SHXNP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-p2EWpY.js → _server.ts-BFejqrWf.js} +5 -5
- package/build/server/chunks/{_server.ts-B-p2EWpY.js.map → _server.ts-BFejqrWf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bz9vYKcZ.js → _server.ts-BMfR4Lye.js} +5 -5
- package/build/server/chunks/{_server.ts-Bz9vYKcZ.js.map → _server.ts-BMfR4Lye.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dx9IVMZK.js → _server.ts-BNF5idzW.js} +5 -5
- package/build/server/chunks/{_server.ts-Dx9IVMZK.js.map → _server.ts-BNF5idzW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B4NR0V_b.js → _server.ts-BObiJ5Qo.js} +8 -8
- package/build/server/chunks/{_server.ts-B4NR0V_b.js.map → _server.ts-BObiJ5Qo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BjT0bTpr.js → _server.ts-BSe6G25o.js} +5 -5
- package/build/server/chunks/_server.ts-BSe6G25o.js.map +1 -0
- package/build/server/chunks/{_server.ts-DLbTplBn.js → _server.ts-BWRYvzwI.js} +5 -5
- package/build/server/chunks/{_server.ts-DLbTplBn.js.map → _server.ts-BWRYvzwI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BlLOBvFJ.js → _server.ts-B_HnVdK_.js} +2 -2
- package/build/server/chunks/{_server.ts-BlLOBvFJ.js.map → _server.ts-B_HnVdK_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B1CU5CUW.js → _server.ts-Ba5LpOKk.js} +7 -7
- package/build/server/chunks/{_server.ts-B1CU5CUW.js.map → _server.ts-Ba5LpOKk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BT6D3gEn.js → _server.ts-BcyD4FAK.js} +5 -5
- package/build/server/chunks/{_server.ts-BT6D3gEn.js.map → _server.ts-BcyD4FAK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DY7BHiev.js → _server.ts-BjzyHPaP.js} +5 -5
- package/build/server/chunks/{_server.ts-DY7BHiev.js.map → _server.ts-BjzyHPaP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CRJ6wZDZ.js → _server.ts-BlD-xqHX.js} +6 -6
- package/build/server/chunks/{_server.ts-CRJ6wZDZ.js.map → _server.ts-BlD-xqHX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BOhzCsMs.js → _server.ts-Bn2hwPxs.js} +6 -6
- package/build/server/chunks/{_server.ts-BOhzCsMs.js.map → _server.ts-Bn2hwPxs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbHCQlkY.js → _server.ts-BoxRUogb.js} +5 -5
- package/build/server/chunks/{_server.ts-CbHCQlkY.js.map → _server.ts-BoxRUogb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Byjf_Yk3.js → _server.ts-Bs20Z2x5.js} +4 -4
- package/build/server/chunks/{_server.ts-Byjf_Yk3.js.map → _server.ts-Bs20Z2x5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-qAVlgCgS.js → _server.ts-BxudLrGe.js} +5 -5
- package/build/server/chunks/{_server.ts-qAVlgCgS.js.map → _server.ts-BxudLrGe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CsWOQwa4.js → _server.ts-Bz06ow3I.js} +11 -6
- package/build/server/chunks/_server.ts-Bz06ow3I.js.map +1 -0
- package/build/server/chunks/{_server.ts-DALbFCuy.js → _server.ts-C0v2G2ly.js} +2 -2
- package/build/server/chunks/{_server.ts-DALbFCuy.js.map → _server.ts-C0v2G2ly.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Hi6ffAhl.js → _server.ts-C4OpgCAn.js} +6 -6
- package/build/server/chunks/{_server.ts-Hi6ffAhl.js.map → _server.ts-C4OpgCAn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B4U33TSS.js → _server.ts-C5SDazDN.js} +5 -5
- package/build/server/chunks/{_server.ts-B4U33TSS.js.map → _server.ts-C5SDazDN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bfg_O-Jd.js → _server.ts-C60smtiA.js} +6 -6
- package/build/server/chunks/{_server.ts-Bfg_O-Jd.js.map → _server.ts-C60smtiA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYy0jKI8.js → _server.ts-C7C_JnLA.js} +5 -5
- package/build/server/chunks/{_server.ts-DYy0jKI8.js.map → _server.ts-C7C_JnLA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BE4_j8Dq.js → _server.ts-C8itNTqQ.js} +5 -5
- package/build/server/chunks/{_server.ts-BE4_j8Dq.js.map → _server.ts-C8itNTqQ.js.map} +1 -1
- package/build/server/chunks/_server.ts-CC7pljaX.js +47 -0
- package/build/server/chunks/_server.ts-CC7pljaX.js.map +1 -0
- package/build/server/chunks/{_server.ts-fH2ffIS9.js → _server.ts-CDcL1v18.js} +5 -5
- package/build/server/chunks/{_server.ts-fH2ffIS9.js.map → _server.ts-CDcL1v18.js.map} +1 -1
- package/build/server/chunks/_server.ts-CEarW7QY.js +112 -0
- package/build/server/chunks/_server.ts-CEarW7QY.js.map +1 -0
- package/build/server/chunks/{_server.ts-BYGu7b1P.js → _server.ts-CG2B5rlx.js} +5 -5
- package/build/server/chunks/{_server.ts-BYGu7b1P.js.map → _server.ts-CG2B5rlx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DnlADeFs.js → _server.ts-CGqpENOm.js} +6 -6
- package/build/server/chunks/{_server.ts-DnlADeFs.js.map → _server.ts-CGqpENOm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZJM-wYv.js → _server.ts-CIhtd-Uh.js} +5 -5
- package/build/server/chunks/{_server.ts-CZJM-wYv.js.map → _server.ts-CIhtd-Uh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CG17acEX.js → _server.ts-CLGLoOX4.js} +38 -17
- package/build/server/chunks/_server.ts-CLGLoOX4.js.map +1 -0
- package/build/server/chunks/{_server.ts-DdIvxjIl.js → _server.ts-CMuzkwXb.js} +5 -5
- package/build/server/chunks/{_server.ts-DdIvxjIl.js.map → _server.ts-CMuzkwXb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BEt2_iG4.js → _server.ts-CPQlueaR.js} +5 -5
- package/build/server/chunks/{_server.ts-BEt2_iG4.js.map → _server.ts-CPQlueaR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTbiXJEw.js → _server.ts-CPoU3qb9.js} +5 -5
- package/build/server/chunks/{_server.ts-DTbiXJEw.js.map → _server.ts-CPoU3qb9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-7K5ENa0R.js → _server.ts-CV4ZTrHb.js} +6 -6
- package/build/server/chunks/{_server.ts-7K5ENa0R.js.map → _server.ts-CV4ZTrHb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bfp5h_w-.js → _server.ts-CWMMcZva.js} +5 -5
- package/build/server/chunks/{_server.ts-Bfp5h_w-.js.map → _server.ts-CWMMcZva.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DCezeO9D.js → _server.ts-CecMDzNO.js} +7 -7
- package/build/server/chunks/{_server.ts-DCezeO9D.js.map → _server.ts-CecMDzNO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CxHSDY6c.js → _server.ts-CigEk1M2.js} +5 -5
- package/build/server/chunks/{_server.ts-CxHSDY6c.js.map → _server.ts-CigEk1M2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-mD4FWHNQ.js → _server.ts-ClFngQ5g.js} +5 -5
- package/build/server/chunks/{_server.ts-mD4FWHNQ.js.map → _server.ts-ClFngQ5g.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BSx9Bn4-.js → _server.ts-CnMD6tM7.js} +5 -5
- package/build/server/chunks/{_server.ts-BSx9Bn4-.js.map → _server.ts-CnMD6tM7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CSSXRijy.js → _server.ts-CsUb-Aja.js} +5 -5
- package/build/server/chunks/{_server.ts-CSSXRijy.js.map → _server.ts-CsUb-Aja.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CBYbeZKo.js → _server.ts-CswJoelP.js} +5 -5
- package/build/server/chunks/{_server.ts-CBYbeZKo.js.map → _server.ts-CswJoelP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D1j4Npph.js → _server.ts-Cvr-yLEl.js} +7 -7
- package/build/server/chunks/{_server.ts-D1j4Npph.js.map → _server.ts-Cvr-yLEl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BybDdchW.js → _server.ts-D-By2JBW.js} +5 -5
- package/build/server/chunks/{_server.ts-BybDdchW.js.map → _server.ts-D-By2JBW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dz-fCCYT.js → _server.ts-D264FNyX.js} +5 -5
- package/build/server/chunks/{_server.ts-Dz-fCCYT.js.map → _server.ts-D264FNyX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DyxP5SI8.js → _server.ts-D2qIIqBN.js} +5 -5
- package/build/server/chunks/{_server.ts-DyxP5SI8.js.map → _server.ts-D2qIIqBN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CSrUQMls.js → _server.ts-D4KazeVl.js} +5 -5
- package/build/server/chunks/{_server.ts-CSrUQMls.js.map → _server.ts-D4KazeVl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNScUI9e.js → _server.ts-D4Z6LeT3.js} +2 -2
- package/build/server/chunks/{_server.ts-BNScUI9e.js.map → _server.ts-D4Z6LeT3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-5Yiwno6d.js → _server.ts-D6vZvzLt.js} +5 -5
- package/build/server/chunks/{_server.ts-5Yiwno6d.js.map → _server.ts-D6vZvzLt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DjDeeV6L.js → _server.ts-D7IC_Y32.js} +7 -7
- package/build/server/chunks/{_server.ts-DjDeeV6L.js.map → _server.ts-D7IC_Y32.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CefiPTY7.js → _server.ts-D89NvzFz.js} +7 -7
- package/build/server/chunks/{_server.ts-CefiPTY7.js.map → _server.ts-D89NvzFz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CGPLKrl6.js → _server.ts-D8kr1zcQ.js} +5 -5
- package/build/server/chunks/{_server.ts-CGPLKrl6.js.map → _server.ts-D8kr1zcQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CrR1vz-U.js → _server.ts-DBIVm5KK.js} +5 -5
- package/build/server/chunks/{_server.ts-CrR1vz-U.js.map → _server.ts-DBIVm5KK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D1kQ_j_2.js → _server.ts-DEgOzmt-.js} +5 -5
- package/build/server/chunks/{_server.ts-D1kQ_j_2.js.map → _server.ts-DEgOzmt-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4bwCw9CG.js → _server.ts-DFpIzR83.js} +6 -6
- package/build/server/chunks/{_server.ts-4bwCw9CG.js.map → _server.ts-DFpIzR83.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BkFpq5kl.js → _server.ts-DJdI0sh1.js} +6 -6
- package/build/server/chunks/{_server.ts-BkFpq5kl.js.map → _server.ts-DJdI0sh1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C2DDlJQE.js → _server.ts-DM9CM7r4.js} +6 -6
- package/build/server/chunks/{_server.ts-C2DDlJQE.js.map → _server.ts-DM9CM7r4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cqxa9z0t.js → _server.ts-DMCXKECk.js} +4 -4
- package/build/server/chunks/{_server.ts-Cqxa9z0t.js.map → _server.ts-DMCXKECk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DugFVaf4.js → _server.ts-DMPk4tQR.js} +5 -5
- package/build/server/chunks/{_server.ts-DugFVaf4.js.map → _server.ts-DMPk4tQR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-WPiWUEa6.js → _server.ts-DOHQRR39.js} +5 -5
- package/build/server/chunks/{_server.ts-WPiWUEa6.js.map → _server.ts-DOHQRR39.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BNE9aLNq.js → _server.ts-DTlf1C5O.js} +5 -5
- package/build/server/chunks/{_server.ts-BNE9aLNq.js.map → _server.ts-DTlf1C5O.js.map} +1 -1
- package/build/server/chunks/{_server.ts-EahvV4Vt.js → _server.ts-Di-AKVeN.js} +5 -5
- package/build/server/chunks/{_server.ts-EahvV4Vt.js.map → _server.ts-Di-AKVeN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dgq8tX6T.js → _server.ts-Dl9rmY33.js} +2 -2
- package/build/server/chunks/{_server.ts-Dgq8tX6T.js.map → _server.ts-Dl9rmY33.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B2bPdmtl.js → _server.ts-Dn4hPbO5.js} +5 -5
- package/build/server/chunks/{_server.ts-B2bPdmtl.js.map → _server.ts-Dn4hPbO5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DmGUn9K1.js → _server.ts-DohkVO-9.js} +5 -5
- package/build/server/chunks/{_server.ts-DmGUn9K1.js.map → _server.ts-DohkVO-9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-77-UZ7q6.js → _server.ts-DvVFuoZA.js} +6 -6
- package/build/server/chunks/{_server.ts-77-UZ7q6.js.map → _server.ts-DvVFuoZA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C9zraUpK.js → _server.ts-DyXpT2n9.js} +5 -5
- package/build/server/chunks/{_server.ts-C9zraUpK.js.map → _server.ts-DyXpT2n9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-6S_K8mGO.js → _server.ts-JejNP4uV.js} +5 -5
- package/build/server/chunks/{_server.ts-6S_K8mGO.js.map → _server.ts-JejNP4uV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DR8rM7PH.js → _server.ts-Oh_Zqa_M.js} +5 -5
- package/build/server/chunks/{_server.ts-DR8rM7PH.js.map → _server.ts-Oh_Zqa_M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-kfO_bH.js → _server.ts-QdNUZ6_w.js} +7 -7
- package/build/server/chunks/{_server.ts-B-kfO_bH.js.map → _server.ts-QdNUZ6_w.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWYMIWeQ.js → _server.ts-SFtKmPEN.js} +5 -5
- package/build/server/chunks/{_server.ts-CWYMIWeQ.js.map → _server.ts-SFtKmPEN.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJmx3la_.js → _server.ts-YBAOIJxB.js} +5 -5
- package/build/server/chunks/{_server.ts-DJmx3la_.js.map → _server.ts-YBAOIJxB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DfUwiIFc.js → _server.ts-beFmwPmw.js} +5 -5
- package/build/server/chunks/{_server.ts-DfUwiIFc.js.map → _server.ts-beFmwPmw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dy396KQ2.js → _server.ts-c_lwcz9M.js} +5 -5
- package/build/server/chunks/{_server.ts-Dy396KQ2.js.map → _server.ts-c_lwcz9M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B6d5y3_a.js → _server.ts-dD2FwqWw.js} +5 -5
- package/build/server/chunks/_server.ts-dD2FwqWw.js.map +1 -0
- package/build/server/chunks/{_server.ts-B-uMrGCn.js → _server.ts-gdEb-KvS.js} +5 -5
- package/build/server/chunks/{_server.ts-B-uMrGCn.js.map → _server.ts-gdEb-KvS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BZ4T51Sp.js → _server.ts-mz0P4bQg.js} +5 -5
- package/build/server/chunks/{_server.ts-BZ4T51Sp.js.map → _server.ts-mz0P4bQg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CM8mCJr2.js → _server.ts-qsfPaqQe.js} +5 -5
- package/build/server/chunks/{_server.ts-CM8mCJr2.js.map → _server.ts-qsfPaqQe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CzvJLf02.js → _server.ts-xb_1w1kf.js} +2 -2
- package/build/server/chunks/{_server.ts-CzvJLf02.js.map → _server.ts-xb_1w1kf.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-E9toOeAN.js → addon-helpers-CtXSmg5a.js} +3 -3
- package/build/server/chunks/{addon-helpers-E9toOeAN.js.map → addon-helpers-CtXSmg5a.js.map} +1 -1
- package/build/server/chunks/{akm-Iqapnq_M.js → akm-BRiRim0P.js} +2 -2
- package/build/server/chunks/{akm-Iqapnq_M.js.map → akm-BRiRim0P.js.map} +1 -1
- package/build/server/chunks/{catalog-kcWyiPep.js → catalog-DEv1nsOT.js} +5 -5
- package/build/server/chunks/{catalog-kcWyiPep.js.map → catalog-DEv1nsOT.js.map} +1 -1
- package/build/server/chunks/{client-COlNBMpO.js → client-BVhtM1mG.js} +2 -2
- package/build/server/chunks/{client-COlNBMpO.js.map → client-BVhtM1mG.js.map} +1 -1
- package/build/server/chunks/{config-osYhwi1d.js → config-CO8OSXtU.js} +2 -2
- package/build/server/chunks/{config-osYhwi1d.js.map → config-CO8OSXtU.js.map} +1 -1
- package/build/server/chunks/{docker-Cwz7g9Fp.js → docker-CTjWsP_Q.js} +2 -2
- package/build/server/chunks/{docker-Cwz7g9Fp.js.map → docker-CTjWsP_Q.js.map} +1 -1
- package/build/server/chunks/{endpoints-C2sfguhT.js → endpoints-UdQGgKsR.js} +2 -2
- package/build/server/chunks/{endpoints-C2sfguhT.js.map → endpoints-UdQGgKsR.js.map} +1 -1
- package/build/server/chunks/{environment-Dgk7Zpzu.js → environment-DedKcJdc.js} +2 -2
- package/build/server/chunks/{environment-Dgk7Zpzu.js.map → environment-DedKcJdc.js.map} +1 -1
- package/build/server/chunks/{error.svelte-B3E2hBuW.js → error.svelte-C6ZvgK-0.js} +4 -4
- package/build/server/chunks/{error.svelte-B3E2hBuW.js.map → error.svelte-C6ZvgK-0.js.map} +1 -1
- package/build/server/chunks/{helpers-DL0rlFJr.js → helpers-kzwksNq1.js} +3 -3
- package/build/server/chunks/{helpers-DL0rlFJr.js.map → helpers-kzwksNq1.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BVNQXwcy.js → hooks.server-BjQOtOyj.js} +7 -7
- package/build/server/chunks/hooks.server-BjQOtOyj.js.map +1 -0
- package/build/server/chunks/{http-D2p_SepQ.js → http-D8YVIqJa.js} +2 -2
- package/build/server/chunks/{http-D2p_SepQ.js.map → http-D8YVIqJa.js.map} +1 -1
- package/build/server/chunks/{internal-D1Iu5LHn.js → internal-DQFuMtuQ.js} +3 -3
- package/build/server/chunks/{internal-D1Iu5LHn.js.map → internal-DQFuMtuQ.js.map} +1 -1
- package/build/server/chunks/{migration-status-BV4S8Q7v.js → migration-status-a9KsTKSo.js} +2 -2
- package/build/server/chunks/{migration-status-BV4S8Q7v.js.map → migration-status-a9KsTKSo.js.map} +1 -1
- package/build/server/chunks/{session-cookie-DTiNx7Rk.js → session-cookie-CHgIES2p.js} +2 -2
- package/build/server/chunks/{session-cookie-DTiNx7Rk.js.map → session-cookie-CHgIES2p.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-CyDh3qyw.js → setup-deploy-B--th9ts.js} +2 -2
- package/build/server/chunks/{setup-deploy-CyDh3qyw.js.map → setup-deploy-B--th9ts.js.map} +1 -1
- package/build/server/chunks/{src-BGtbBgcg.js → src-CidJbygh.js} +245 -15
- package/build/server/chunks/src-CidJbygh.js.map +1 -0
- package/build/server/chunks/{state-yBCk2V-E.js → state-fxN45gBp.js} +2 -2
- package/build/server/chunks/{state-yBCk2V-E.js.map → state-fxN45gBp.js.map} +1 -1
- package/build/server/chunks/{state2-BvcX1tGj.js → state2-boKye0ZJ.js} +2 -2
- package/build/server/chunks/{state2-BvcX1tGj.js.map → state2-boKye0ZJ.js.map} +1 -1
- package/build/server/chunks/{theme-state.svelte-8qSluhfu.js → theme-state.svelte-BsNoJAjT.js} +38 -22
- package/build/server/chunks/theme-state.svelte-BsNoJAjT.js.map +1 -0
- package/build/server/chunks/version-cache-CSnmLqxQ.js +54 -0
- package/build/server/chunks/version-cache-CSnmLqxQ.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +101 -94
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/assets/4.C4HBo3yQ.css +0 -1
- package/build/client/_app/immutable/assets/4.C4HBo3yQ.css.br +0 -0
- package/build/client/_app/immutable/assets/4.C4HBo3yQ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BUmnu6gG.js +0 -3
- package/build/client/_app/immutable/chunks/BUmnu6gG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUmnu6gG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTyb4jX-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTyb4jX-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CgKtEGfl.js +0 -1
- package/build/client/_app/immutable/chunks/CgKtEGfl.js.br +0 -0
- package/build/client/_app/immutable/chunks/CgKtEGfl.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CzrNiLaD.js +0 -1
- package/build/client/_app/immutable/chunks/CzrNiLaD.js.br +0 -2
- package/build/client/_app/immutable/chunks/CzrNiLaD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ej9QUT4P.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ej9QUT4P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/auSI7Wdb.js.br +0 -0
- package/build/client/_app/immutable/chunks/auSI7Wdb.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DsQiW1Iw.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DsQiW1Iw.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DcWR1XKk.js +0 -1
- package/build/client/_app/immutable/entry/start.DcWR1XKk.js.br +0 -1
- package/build/client/_app/immutable/entry/start.DcWR1XKk.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.6LuHgRwe.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.6LuHgRwe.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DnRffqy6.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DnRffqy6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.X-buCxyA.js +0 -133
- package/build/client/_app/immutable/nodes/4.X-buCxyA.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.X-buCxyA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CnQ0zkJ5.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CnQ0zkJ5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BaOjUVsQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BaOjUVsQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Dy-QUnwV.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Dy-QUnwV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.B3kiJaWi.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.B3kiJaWi.js.gz +0 -0
- package/build/server/chunks/1-s4KrrHyU.js +0 -9
- package/build/server/chunks/10-BsKSeayN.js.map +0 -1
- package/build/server/chunks/4-DXcZ-YeU.js +0 -9
- package/build/server/chunks/5-CxWHKz_5.js +0 -9
- package/build/server/chunks/6-C2va3-p8.js +0 -9
- package/build/server/chunks/7-ZC2-wAze.js +0 -9
- package/build/server/chunks/_page.svelte-CmqaniiZ.js.map +0 -1
- package/build/server/chunks/_server.ts-B6d5y3_a.js.map +0 -1
- package/build/server/chunks/_server.ts-BbzNUN06.js +0 -79
- package/build/server/chunks/_server.ts-BbzNUN06.js.map +0 -1
- package/build/server/chunks/_server.ts-BjT0bTpr.js.map +0 -1
- package/build/server/chunks/_server.ts-CDOOK4kq.js +0 -85
- package/build/server/chunks/_server.ts-CDOOK4kq.js.map +0 -1
- package/build/server/chunks/_server.ts-CG17acEX.js.map +0 -1
- package/build/server/chunks/_server.ts-CsWOQwa4.js.map +0 -1
- package/build/server/chunks/hooks.server-BVNQXwcy.js.map +0 -1
- package/build/server/chunks/src-BGtbBgcg.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-8qSluhfu.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,C as r,E as i,F as a,G as o,I as s,K as c,L as l,M as u,N as d,P as f,Q as p,Z as m,a as h,b as g,ct as _,dt as v,et as y,f as b,ft as x,it as S,j as C,k as w,n as T,nt as E,r as D,st as O,tt as k,v as A,y as j}from"./BBI__kVO.js";import{t as M}from"./
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,E as i,F as a,G as o,I as s,K as c,L as l,M as u,N as d,P as f,Q as p,Z as m,a as h,b as g,ct as _,dt as v,et as y,f as b,ft as x,it as S,j as C,k as w,n as T,nt as E,r as D,st as O,tt as k,v as A,y as j}from"./BBI__kVO.js";import{t as M}from"./D2dFPcAY.js";import"./xihTtKlq.js";import{L as N,Q as P,X as F,a as ee,at as I,c as te,gt as L,i as ne,it as R,l as z,mt as re,n as ie,o as B,pt as ae,r as oe,rt as se,s as ce,t as V,u as H,v as le}from"./i-u-oQAW.js";import{t as U}from"./Cub6afmL.js";import"./CpzMlkvh.js";import{t as ue}from"./Oz5B_hgH.js";var W=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}),de=new Intl.DateTimeFormat(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`});function fe(e){return e?W.format(e):``}function pe(e){return e?de.format(e):``}function me(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 he=d(`<span class="icon-btn-label svelte-vx1yib"> </span>`),ge=d(`<a><!> <!></a>`),_e=d(`<span class="icon-btn-label svelte-vx1yib"> </span>`),ve=d(`<button><!> <!></button>`);function G(n,i){let a=h(i,`disabled`,3,!1),s=h(i,`type`,3,`button`),c=h(i,`selected`,3,!1),d=h(i,`tone`,3,`primary`);var f=u(),g=p(f),_=n=>{var s=ge();let u;var f=m(s);r(f,()=>i.icon);var p=e(f,2),h=e=>{var n=he(),r=m(n,!0);x(n),o(()=>t(r,i.label)),C(e,n)};w(p,e=>{i.label&&e(h)}),x(s),o(()=>{u=j(s,1,`icon-btn svelte-vx1yib`,null,u,{"has-label":i.label,selected:c(),"tone-danger":d()===`danger`}),b(s,`href`,i.href),b(s,`title`,i.title??i.ariaLabel??i.label),b(s,`aria-label`,i.ariaLabel??i.label),b(s,`aria-disabled`,a()||void 0)}),l(`click`,s,function(...e){i.onclick?.apply(this,e)}),C(n,s)},v=n=>{var u=ve();let f;var p=m(u);r(p,()=>i.icon);var h=e(p,2),g=e=>{var n=_e(),r=m(n,!0);x(n),o(()=>t(r,i.label)),C(e,n)};w(h,e=>{i.label&&e(g)}),x(u),o(()=>{f=j(u,1,`icon-btn svelte-vx1yib`,null,f,{"has-label":i.label,selected:c(),"tone-danger":d()===`danger`}),b(u,`type`,s()),u.disabled=a(),b(u,`title`,i.title??i.ariaLabel??i.label),b(u,`aria-label`,i.ariaLabel??i.label),b(u,`aria-pressed`,i.ariaPressed)}),l(`click`,u,function(...e){i.onclick?.apply(this,e)}),C(n,u)};w(g,e=>{i.href?e(_):e(v,-1)}),C(n,f)}s([`click`]);function ye(e,t){let r=h(t,`disabled`,3,!1),i=h(t,`tone`,3,`primary`);{let a=S(()=>t.pressed&&t.selectedIcon?t.selectedIcon:t.icon);G(e,{get icon(){return n(a)},get label(){return t.label},get title(){return t.title},get ariaLabel(){return t.ariaLabel},get disabled(){return r()},get tone(){return i()},get selected(){return t.pressed},get ariaPressed(){return t.pressed},get onclick(){return t.onToggle}})}}var be=`openpalm.chat.advanced`,K=new class{#e=E(!1);get enabled(){return n(this.#e)}set enabled(e){k(this.#e,e,!0)}#t=E(!1);get initialized(){return n(this.#t)}set initialized(e){k(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}preferredChatPath(){return this.enabled?`/advanced`:`/chat`}#n(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(be)===`1`}catch{return!1}}#r(e){if(!(typeof window>`u`))try{window.localStorage.setItem(be,e?`1`:`0`)}catch{}}};function q(e,t){let n=e?.[t];return typeof n==`string`?n:void 0}function xe(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 Se(e,t,n){let r=e.properties??{};if(q(r,`sessionID`)!==t)return null;if(e.type===`session.next.text.delta`)return q(r,`delta`)??q(r,`text`)??null;if(e.type===`message.part.delta`){let e=q(r,`field`);if(e&&e!==`text`)return null;let t=q(r,`partID`);return t&&n?.has(t)?null:q(r,`delta`)??null}return null}function Ce(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.type==`string`)return e.type}function we(e,t){let n=e.properties??{};if(q(n,`sessionID`)!==t)return!1;if(e.type===`session.idle`)return!0;if(e.type===`session.status`){let e=Ce(n.status);return e===`idle`||e===`completed`||e===`done`}return!1}function Te(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 J(...e){for(let t of e){let e=Te(t);if(e)return e}}function Ee(e,t){let n=e.properties??{};if(q(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:J(e.input,e.metadata,e.progress,e.output),output:Te(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:q(n,`callID`)??``,tool:q(n,`tool`)??`tool`,status:t===`completed`?`completed`:t===`failed`?`error`:t===`called`?`running`:q(n,`status`)??`running`,title:q(n,`title`)??q(n,`tool`),detail:J(n.message,n.delta,n.progress,n.input,n.metadata),output:J(n.output,n.result),error:J(n.error)}}return null}function De(e,t){return e.type===`session.error`&&q(e.properties,`sessionID`)===t}function Oe(e,t){if(e.type!==`permission.asked`||q(e.properties,`sessionID`)!==t)return null;let n=q(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:q(e.properties,`permission`)??`tool`,patterns:r,always:i,tool:q(a,`callID`)??q(e.properties,`permission`)??`tool`,detail:J(e.properties?.metadata,e.properties?.message)??``}}function ke(e,t){if(e.type!==`question.asked`||q(e.properties,`sessionID`)!==t)return null;let n=q(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 Ae(e,t){let n=e.properties??{};return q(n,`sessionID`)!==t||e.type!==`session.next.step.started`&&e.type!==`session.next.step.ended`?null:{id:q(n,`stepID`)??q(n,`id`)??e.type,title:q(n,`title`)??q(n,`step`)??(e.type===`session.next.step.started`?`Working`:`Step complete`),status:e.type===`session.next.step.ended`?`completed`:`running`,detail:J(n.detail,n.message)}}var je=1e3,Me=3e4,Ne=`/proxy/assistant/event`;function Pe(e){let t={},n=[];for(let r of e.split(`
|
|
2
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
3
|
`)),t}function Fe(e,t){let n=t.properties?.info,r=n?.id;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 Ie(e){let t=!1,n=new AbortController,r,i=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function a(){let t={accept:`text/event-stream`};r!==void 0&&(t[`Last-Event-ID`]=r);let i=await fetch(Ne,{method:`GET`,headers:t,credentials:`include`,signal:n.signal});if(!i.ok||!i.body)throw Error(`SSE stream failed: ${i.status} ${i.statusText}`);e.onConnect?.();let a=i.body.pipeThrough(new TextDecoderStream).getReader(),o=``;try{for(;;){let{done:t,value:n}=await a.read();if(t)break;o+=n;let i=o.split(`
|
|
4
4
|
|
|
5
|
-
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=Pe(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}e.onEvent?.(i),Fe(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(je*2**Math.max(0,r-1),Me)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}var Le=`openpalm.desktop.notify`,Re=`openpalm.desktop.notify.preview`;function ze(e){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(e)===`1`}catch{return!1}}function Be(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(e,t?`1`:`0`)}catch{}}function Ve(){return ze(Le)}function He(){return ze(Re)}function Ue(e){Be(Le,e)}function We(e){Be(Re,e)}function Ge(){return typeof document>`u`||document.hasFocus()||!Ve()?!1:typeof window<`u`&&typeof window.openpalm?.notify==`function`}function Ke(e){if(!Ge())return;let t=He()&&e.trim()?e.trim():`Assistant replied`;window.openpalm?.notify?.(`OpenPalm`,t)}function qe(){Ge()&&window.openpalm?.notify?.(`OpenPalm`,`Assistant error`)}var Je=15e4;function Y(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var X=new class{#e=E(y(new Map));get byEndpoint(){return n(this.#e)}set byEndpoint(e){k(this.#e,e,!0)}#t=E(`default`);get activeEndpointId(){return n(this.#t)}set activeEndpointId(e){k(this.#t,e,!0)}#n=E(y([]));get entries(){return n(this.#n)}set entries(e){k(this.#n,e,!0)}#r=E(!1);get entriesLoading(){return n(this.#r)}set entriesLoading(e){k(this.#r,e,!0)}#i=E(!1);get sending(){return n(this.#i)}set sending(e){k(this.#i,e,!0)}#a=E(``);get error(){return n(this.#a)}set error(e){k(this.#a,e,!0)}#o=E(``);get pendingAssistantText(){return n(this.#o)}set pendingAssistantText(e){k(this.#o,e,!0)}#s=E(y([]));get pendingToolStates(){return n(this.#s)}set pendingToolStates(e){k(this.#s,e,!0)}#c=E(null);get pendingPermission(){return n(this.#c)}set pendingPermission(e){k(this.#c,e,!0)}#l=E(null);get pendingQuestion(){return n(this.#l)}set pendingQuestion(e){k(this.#l,e,!0)}#u=E(!1);get liveConnected(){return n(this.#u)}set liveConnected(e){k(this.#u,e,!0)}_unsubscribeEvents=null;_pendingTurn=null;#d=S(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return n(this.#d)}set activeSessionId(e){k(this.#d,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Y(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Y(),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),this._resubscribeEvents()}_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=Ie({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:crypto.randomUUID(),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}_finishPendingTurn(e){let t=this._clearPendingTurn();if(!t)return;let n=(e??this.pendingAssistantText).trim()||`(no response)`;if(this.pendingQuestion?.status===`answered`&&this.pendingQuestion.message){let e={id:crypto.randomUUID(),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;this._appendAssistantReply(n,r),this._resetPendingRenderState(),this._bumpSession(t.sessionId),H.ttsSupported&&H.ttsAutoEnabled&&n&&n!==`(no response)`&&B(n,{mode:`chat_reply`,userText:t.userText,assistantText:n}),Ke(n===`(no response)`?``:n),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=xe(n);r?.type===`reasoning`&&t.reasoningPartIds.add(r.partID);let i=Se(n,t.sessionId,t.reasoningPartIds);i&&(this.pendingAssistantText+=i);let a=Ee(n,t.sessionId);a&&this._upsertPendingToolState(a);let o=Ae(n,t.sessionId);o&&this._upsertPendingStepState(o);let s=Oe(n,t.sessionId);s&&(this.pendingPermission={...s,status:`pending`,decision:``,message:``});let c=ke(n,t.sessionId);if(c&&(this.pendingQuestion={...c,status:`pending`,answers:c.questions.map(()=>``),message:``}),De(n,t.sessionId)){this._failPendingTurn(Error(`Assistant session ended unexpectedly.`));return}we(n,t.sessionId)&&this._finishPendingTurn()}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Y();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)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))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await F();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}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 P(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}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 le(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Y();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.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:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this._resetPendingRenderState(),this.error=``,this.sending=!0,H.ttsSupported&&H.ttsAutoEnabled&&B(`Working on it.`,{mode:`chat_ack`,userText:t});try{if(this._unsubscribeEvents&&this.liveConnected)await new Promise((e,r)=>{let i=setTimeout(()=>{this._failPendingTurn(Error(`Timed out waiting for the assistant response.`))},Je);this._pendingTurn={endpointId:this.activeEndpointId,sessionId:n,userText:t,reasoningPartIds:new Set,resolve:e,reject:r,timeout:i},L(n,t).catch(e=>{this._failPendingTurn(e instanceof Error?e:Error(String(e)))})});else{let e=(await ae(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``).trim()||`(no response)`,r=this.pendingToolStates.length>0?[...this.pendingToolStates]:void 0;this._appendAssistantReply(e,r),this._resetPendingRenderState(),this._bumpSession(n),H.ttsSupported&&H.ttsAutoEnabled&&e!==`(no response)`&&B(e,{mode:`chat_reply`,userText:t,assistantText:e}),Ke(e===`(no response)`?``:e)}}catch(e){let t=e;this._resetPendingRenderState(),t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`,qe()}finally{this.sending=!1}}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 R(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 I(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 se(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(z(),this._clearPendingTurn(),this.entries=[],this.error=``,this._resetPendingRenderState(),this.byEndpoint=new Map,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}};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 Xe(){return X.activeSessionId}function Z(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/advanced?${n}`:`/advanced`}function Ze(e,t){let n=new URLSearchParams;e&&n.set(`session`,e),t?.newChat&&n.set(`new`,`1`);let r=n.toString();return r?`/chat?${r}`:`/chat`}function Qe(e,t,n){return!t||!n?e:`${e.replace(/\/$/,``)}/${Ye(n)}/session/${encodeURIComponent(t)}`}var $e=e=>{C(e,et())},et=f(`<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>`);function tt(e,t){_(t,!0);let r=S(()=>U.url?.pathname??``),i=S(()=>n(r)===`/admin`||n(r).startsWith(`/admin/`));S(()=>n(r)===`/advanced`||n(r).startsWith(`/advanced/`));function a(){let e=K.toggle();if(n(i))return;let t=U.url.searchParams.get(`session`)??Xe();M(e?Z(t):Ze(t))}ye(e,{get pressed(){return K.enabled},onToggle:a,ariaLabel:`Advanced mode`,title:`Advanced mode (embedded OpenCode)`,get icon(){return $e}}),O()}var nt=e=>{var t=u(),n=p(t),r=e=>{C(e,rt())},i=e=>{C(e,it())},a=e=>{C(e,at())};w(n,e=>{V.preference===`system`?e(r):V.preference===`light`?e(i,1):e(a,-1)}),C(e,t)},rt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"></rect><path d="M8 21h8"></path><path d="M12 17v4"></path></svg>`),it=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),at=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`);function ot(e,t){_(t,!0);let r=[`system`,`light`,`dark`];function i(){let e=V.preference,t=r[(r.indexOf(e)+1)%r.length];V.setPreference(t)}let a=S(()=>V.preference===`system`?`Theme: system (click for light)`:V.preference===`light`?`Theme: light (click for dark)`:`Theme: dark (click for system)`);G(e,{get icon(){return nt},get ariaLabel(){return n(a)},get title(){return n(a)},onclick:i}),O()}var Q=new class{#e=E(y([]));get endpoints(){return n(this.#e)}set endpoints(e){k(this.#e,e,!0)}#t=E(`default`);get activeId(){return n(this.#t)}set activeId(e){k(this.#t,e,!0)}#n=E(!1);get loading(){return n(this.#n)}set loading(e){k(this.#n,e,!0)}#r=E(!1);get loaded(){return n(this.#r)}set loaded(e){k(this.#r,e,!0)}#i=E(``);get error(){return n(this.#i)}set error(e){k(this.#i,e,!0)}#a=S(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return n(this.#a)}set active(e){k(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await N();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(X.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await re(e),await X.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},st=d(`<footer class="drawer-footer svelte-1u2o1qj"><!></footer>`),ct=d(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj" role="dialog" aria-modal="true" tabindex="-1"><header class="drawer-header svelte-1u2o1qj"><!> <h3 class="drawer-title svelte-1u2o1qj"> </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"><!></div> <!></div>`,1);function $(n,i){_(i,!0);let a=h(i,`width`,3,`32rem`);function s(e){return Array.from(e.querySelectorAll(`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hasAttribute(`hidden`)&&e.getAttribute(`aria-hidden`)!==`true`)}function c(e){let t=document.activeElement,n=e.querySelector(`.drawer-body`);return((n&&s(n)[0])??s(e)[0]??e).focus(),()=>t?.focus?.()}function d(e){if(e.key===`Escape`){i.onClose();return}if(e.key!==`Tab`)return;let t=e.currentTarget,n=s(t);if(n.length===0){e.preventDefault(),t.focus();return}let r=n[0],a=n[n.length-1],o=document.activeElement;e.shiftKey&&(o===r||o===t)?(e.preventDefault(),a.focus()):!e.shiftKey&&o===a&&(e.preventDefault(),r.focus())}var f=u(),v=p(f),y=n=>{var s=ct(),f=p(s),h=e(f,2),_=m(h),v=m(_),y=e=>{var t=u();r(p(t),()=>i.headerStart),C(e,t)};w(v,e=>{i.headerStart&&e(y)});var S=e(v,2),T=m(S,!0);x(S);var E=e(S,2);x(_);var D=e(_,2);r(m(D),()=>i.children),x(D);var O=e(D,2),k=e=>{var t=st();r(m(t),()=>i.footer),x(t),C(e,t)};w(O,e=>{i.footer&&e(k)}),x(h),g(h,()=>c),o(()=>{A(h,`--drawer-width: ${a()??``}`),b(h,`aria-label`,i.title),t(T,i.title)}),l(`click`,f,function(...e){i.onClose?.apply(this,e)}),l(`keydown`,h,d),l(`click`,E,function(...e){i.onClose?.apply(this,e)}),C(n,s)};w(v,e=>{i.open&&e(y)}),C(n,f),O()}s([`click`,`keydown`]);function lt(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 ut=d(`<p class="list-error svelte-dlw00e" role="alert"> </p>`),dt=d(`<span class="sr-only svelte-dlw00e">(current)</span>`),ft=d(`<button type="button"><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e"> <!></span> <span class="item-url svelte-dlw00e"> </span></span></button>`),pt=d(`<a class="list-item link svelte-dlw00e" href="/admin">Manage this assistant…</a>`),mt=d(`<div class="endpoint-list svelte-dlw00e"><!> <div class="group" role="group" aria-label="Assistant endpoints"></div> <div class="divider svelte-dlw00e"></div> <!> <a class="list-item link svelte-dlw00e" href="/admin/endpoints">Manage assistant connections…</a></div>`);function ht(r,a){_(a,!0);let s=S(()=>Q.active),c=S(()=>Q.endpoints),u=S(()=>lt(n(s)?.url)),d=E(!1);async function f(e){if(!n(d)){if(e===n(s)?.id){a.onChosen?.();return}k(d,!0);try{await Q.activate(e),a.onChosen?.()}catch{}finally{k(d,!1)}}}var p=mt(),h=m(p),g=e=>{var n=ut(),r=m(n,!0);x(n),o(()=>t(r,Q.error)),C(e,n)};w(h,e=>{Q.error&&e(g)});var v=e(h,2);i(v,21,()=>n(c),e=>e.id,(r,i)=>{var a=ft();let c;var u=m(a),p=m(u),h=m(p,!0),g=e(h),_=e=>{C(e,dt())};w(g,e=>{n(i).id===n(s)?.id&&e(_)}),x(p);var v=e(p,2),y=m(v,!0);x(v),x(u),x(a),o(()=>{c=j(a,1,`list-item svelte-dlw00e`,null,c,{active:n(i).id===n(s)?.id}),b(a,`aria-current`,n(i).id===n(s)?.id?`true`:void 0),a.disabled=n(d),t(h,n(i).label),t(y,n(i).url)}),l(`click`,a,()=>f(n(i).id)),C(r,a)}),x(v);var y=e(v,4),T=e=>{var t=pt();l(`click`,t,()=>a.onChosen?.()),C(e,t)};w(y,e=>{n(u)&&e(T)});var D=e(y,2);x(p),l(`click`,D,()=>a.onChosen?.()),C(r,p),O()}s([`click`]);var gt=d(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"><svg class="trigger-icon svelte-48xr05" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <!>`,1);function _t(r,i){_(i,!0);let a=E(!1),s=S(()=>Q.active);D(()=>{Q.load()});var c=gt(),u=p(c),d=e(m(u),4),f=m(d,!0);x(d),v(2),x(u),$(e(u,2),{get open(){return n(a)},title:`Assistant endpoint`,onClose:()=>k(a,!1),width:`26rem`,children:(e,t)=>{ht(e,{onChosen:()=>k(a,!1)})},$$slots:{default:!0}}),o(()=>{b(u,`aria-expanded`,n(a)),b(u,`aria-label`,n(s)?`Assistant endpoint: ${n(s).label}`:`Assistant endpoints`),b(u,`title`,n(s)?`Connected to: ${n(s).label} (${n(s).url})`:`Assistant endpoints`),u.disabled=Q.loading,t(f,n(s)?.label??`Endpoint…`)}),l(`click`,u,()=>k(a,!0)),C(r,c),O()}s([`click`]);var vt=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function yt(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=vt.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return pe(e)}return t}function bt(e,r){_(r,!0);let i=S(()=>yt(r.title));v();var s=a();o(()=>t(s,n(i))),C(e,s),O()}var xt=d(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),St=d(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),Ct=d(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),wt=d(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Tt=d(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Et=d(`<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>`),Dt=d(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ot=d(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),kt=d(`<div class="session-body svelte-1o6rxhb"><!> <!> <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></div>`);function At(r,a){_(a,!0);let s=E(!1),c=S(()=>Q.active),u=S(()=>n(c)?X.byEndpoint.get(n(c).id)??null:null),d=S(()=>n(u)?.sessions??[]),f=S(()=>n(u)?.sessionsLoading??!1),h=S(()=>n(u)?.sessionsError??``),g=S(()=>X.activeSessionId),y=S(()=>n(s)?n(d):n(d).slice(0,50)),T=S(()=>Math.max(0,n(d).length-50));D(()=>{n(c)&&!n(u)?.sessionsLoaded&&!n(f)&&X.loadSessions()});async function A(e){X.sending||(await X.openSession(e),a.onChosen?.())}async function M(){X.sending||(await X.startNewSession(),a.onChosen?.())}async function N(){await X.loadSessions()}var P=kt(),F=m(P),ee=e=>{C(e,xt())};w(F,e=>{X.sending&&e(ee)});var I=e(F,2),te=e=>{var t=St();ue(m(t),{size:12}),v(),x(t),C(e,t)},L=r=>{var i=Ct(),a=m(i),s=m(a,!0);x(a);var c=e(a,2);x(i),o(()=>t(s,n(h))),l(`click`,c,N),C(r,i)},ne=e=>{C(e,wt())},R=r=>{var a=Ot(),c=p(a);i(c,21,()=>n(y),e=>e.id,(r,i)=>{var a=Et();let s;var c=m(a),u=m(c),d=m(u);bt(d,{get title(){return n(i).title}});var f=e(d),p=e=>{C(e,Tt())};w(f,e=>{n(i).id===n(g)&&e(p)}),x(u);var h=e(u,2),_=m(h,!0);x(h),x(c),x(a),o((e,r)=>{s=j(a,1,`list-item session-item svelte-1o6rxhb`,null,s,{active:n(i).id===n(g)}),b(a,`aria-current`,n(i).id===n(g)?`true`:void 0),a.disabled=X.sending,b(a,`title`,e),t(_,r)},[()=>pe(n(i).updatedAt),()=>me(n(i).updatedAt)]),l(`click`,a,()=>A(n(i).id)),C(r,a)}),x(c);var u=e(c,2),d=e=>{var r=Dt(),i=m(r);x(r),o(()=>t(i,`Show all (${n(T)??``} more)`)),l(`click`,r,()=>k(s,!0)),C(e,r)};w(u,e=>{!n(s)&&n(T)>0&&e(d)}),C(r,a)};w(I,e=>{n(f)?e(te):n(h)?e(L,1):n(d).length===0?e(ne,2):e(R,-1)});var z=e(I,4);x(P),o(()=>z.disabled=X.sending),l(`click`,z,M),C(r,P),O()}s([`click`]);var jt=d(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <!>`,1);function Mt(r,i){_(i,!0);let a=E(!1),s=S(()=>Q.active),c=S(()=>n(s)?X.byEndpoint.get(n(s).id)??null:null),u=S(()=>n(c)?.sessions??[]),d=S(()=>X.activeSessionId),f=S(()=>X.liveConnected),h=S(()=>n(u).find(e=>e.id===n(d))??null),g=S(()=>n(h)?yt(n(h).title):`New session`);var y=jt(),w=p(y),T=e(m(w),2);let D;var A=e(T,2),M=m(A,!0);x(A),v(2),x(w);var N=e(w,2);{let e=S(()=>n(s)?.label??`this endpoint`);$(N,{get open(){return n(a)},get title(){return`Sessions on ${n(e)??``}`},onClose:()=>k(a,!1),width:`26rem`,children:(e,t)=>{At(e,{onChosen:()=>k(a,!1)})},$$slots:{default:!0}})}o(()=>{b(w,`aria-expanded`,n(a)),b(w,`title`,n(g)),D=j(T,1,`dot svelte-cihcnl`,null,D,{connected:n(f)}),b(T,`title`,n(f)?`Live updates connected`:`Live updates disconnected`),t(M,n(g))}),l(`click`,w,()=>k(a,!0)),C(r,y),O()}s([`click`]);var Nt=d(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),Pt=d(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),Ft=f(`<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>`,1),It=f(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),Lt=d(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),Rt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),zt=d(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),Bt=d(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),Vt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),Ht=d(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function Ut(r,i){_(i,!0);let a=E(!1),s=null;D(()=>{oe().then(()=>{k(a,!0)}),s=window.openpalm?.onGlobalMicToggle?.(()=>{A()})??null}),T(()=>{typeof window<`u`&&window.openpalm?.setTrayMicRecording?.(!1),s?.(),s=null,ie()}),c(()=>{n(a)&&window.openpalm?.setTrayMicRecording?.(n(f))});let u=S(()=>n(a)&&H.sttEngine!==`disabled`&&H.sttSupported),d=S(()=>n(a)&&H.ttsSupported),f=S(()=>H.status===`recording`),h=S(()=>H.status===`transcribing`),g=S(()=>!n(f)&&!n(h)&&X.sending),y=S(()=>H.status===`speaking`);async function A(){if(n(g))return;if(n(f)){te();return}if(n(h))return;z();let e=window.openpalm;if(e?.requestMicPermission){let t=await e.requestMicPermission();if(t===`denied-no-prompt`){H.errorMessage=`This OpenPalm build cannot request microphone access on macOS. Please update to the latest version of the desktop app.`;return}if(t===`denied`||t===`restricted`){H.errorMessage=`Microphone access is turned off. In the System Settings window that just opened, enable OpenPalm under Microphone, then quit and reopen the app.`;return}}ce(e=>{let t=e.trim();t&&X.send(t)})}function M(){ee(!H.ttsAutoEnabled)}var N=Ht(),P=m(N),F=e=>{var n=Nt(),r=m(n,!0);x(n),o(e=>{b(n,`title`,H.interimTranscript),t(r,e)},[()=>H.interimTranscript.length>48?H.interimTranscript.slice(0,48)+`…`:H.interimTranscript]),C(e,n)};w(P,e=>{n(f)&&H.interimTranscript&&e(F)});var I=e(P,2),L=e=>{var t=Pt();l(`click`,t,()=>ne()),C(e,t)};w(I,e=>{H.autoplayBlocked&&e(L)});var R=e(I,2),re=t=>{var r=Lt();let i;var a=m(r),s=e(m(a)),c=t=>{var r=Ft(),i=p(r);let a;var s=e(i);let c;o(()=>{a=j(i,0,`svelte-7elv0w`,null,a,{"wave-anim":n(y)}),c=j(s,0,`svelte-7elv0w`,null,c,{"wave-anim-2":n(y)})}),C(t,r)},u=e=>{var t=It();v(),C(e,t)};w(s,e=>{H.ttsAutoEnabled?e(c):e(u,-1)}),x(a),x(r),o(()=>{i=j(r,1,`voice-btn svelte-7elv0w`,null,i,{"voice-btn-on":H.ttsAutoEnabled,"voice-btn-speaking":n(y)}),b(r,`aria-label`,H.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),b(r,`aria-pressed`,H.ttsAutoEnabled),b(r,`title`,n(y)?`Speaking — click to turn off spoken responses`:H.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),l(`click`,r,M),C(t,r)};w(R,e=>{n(d)&&e(re)});var B=e(R,2);let ae;var se=m(B),V=e=>{C(e,Rt())},le=e=>{C(e,zt())},U=e=>{var t=Bt();v(2),C(e,t)},ue=e=>{C(e,Vt())};w(se,e=>{n(u)?n(h)||n(g)?e(le,1):n(f)?e(U,2):e(ue,-1):e(V)}),x(B);var W=e(B,2),de=m(W,!0);x(W),x(N),o(()=>{ae=j(B,1,`voice-btn svelte-7elv0w`,null,ae,{"voice-btn-active":n(f),"voice-btn-processing":n(g)||n(h),"voice-btn-disabled":!n(u)}),B.disabled=!n(u)||n(g),b(B,`aria-label`,n(u)?n(f)?`Stop recording`:n(h)?`Transcribing…`:n(g)?`Sending message…`:`Start recording`:`Voice input unavailable`),b(B,`aria-pressed`,n(f)),b(B,`title`,n(u)?n(f)?`Stop recording`:n(h)?`Transcribing…`:n(g)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),t(de,n(f)&&H.interimTranscript?H.interimTranscript:n(f)?`Recording`:n(h)?`Transcribing`:n(g)?`Sending message to assistant`:n(y)?`Assistant is speaking`:H.ttsAutoEnabled?`Spoken responses on`:``)}),l(`click`,B,A),C(r,N),O()}s([`click`]);var Wt=e=>{C(e,Gt())},Gt=f(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`),Kt=d(`<span class="chat-selectors svelte-66bgq1"><!> <!></span>`),qt=d(`<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"><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"><!> <!> <!> <!> <!></div></div></header>`);function Jt(t,r){_(r,!0);let i=S(()=>U.url?.pathname??``),a=S(()=>n(i)===`/admin`||n(i).startsWith(`/admin/`)),s=S(()=>n(i)===`/chat`||n(i).startsWith(`/chat/`)),c=S(()=>n(i)===`/advanced`||n(i).startsWith(`/advanced/`)),l=S(()=>n(s)||n(c)),u=S(()=>{let e=U.url.searchParams.get(`session`)??Xe();return K.enabled?Z(e):Ze(e)});D(()=>{K.init()});var d=qt(),f=m(d),p=m(f),h=e(p,2),g=m(h),v=e=>{G(e,{get href(){return n(u)},ariaLabel:`Back to chat`,title:`Chat`,get icon(){return Wt}})};w(g,e=>{n(a)&&e(v)});var y=e(g,2);ot(y,{});var T=e(y,2),E=t=>{var n=Kt(),r=m(n);_t(r,{}),Mt(e(r,2),{}),x(n),C(t,n)};w(T,e=>{n(l)&&e(E)});var k=e(T,2);tt(k,{}),Ut(e(k,2),{}),x(h),x(f),x(d),o(()=>b(p,`href`,n(u))),C(t,d),O()}export{G as _,Q as a,X as c,Ue as d,We as f,K as g,Ee as h,$ as i,Ve as l,Ae as m,At as n,Qe as o,Ie as p,ht as r,Z as s,Jt as t,He as u,fe as v};
|
|
5
|
+
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=Pe(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}e.onEvent?.(i),Fe(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(je*2**Math.max(0,r-1),Me)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}var Le=`openpalm.desktop.notify`,Re=`openpalm.desktop.notify.preview`;function ze(e){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(e)===`1`}catch{return!1}}function Be(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(e,t?`1`:`0`)}catch{}}function Ve(){return ze(Le)}function He(){return ze(Re)}function Ue(e){Be(Le,e)}function We(e){Be(Re,e)}function Ge(){return typeof document>`u`||document.hasFocus()||!Ve()?!1:typeof window<`u`&&typeof window.openpalm?.notify==`function`}function Ke(e){if(!Ge())return;let t=He()&&e.trim()?e.trim():`Assistant replied`;window.openpalm?.notify?.(`OpenPalm`,t)}function qe(){Ge()&&window.openpalm?.notify?.(`OpenPalm`,`Assistant error`)}var Je=15e4;function Y(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var X=new class{#e=E(y(new Map));get byEndpoint(){return n(this.#e)}set byEndpoint(e){k(this.#e,e,!0)}#t=E(`default`);get activeEndpointId(){return n(this.#t)}set activeEndpointId(e){k(this.#t,e,!0)}#n=E(y([]));get entries(){return n(this.#n)}set entries(e){k(this.#n,e,!0)}#r=E(!1);get entriesLoading(){return n(this.#r)}set entriesLoading(e){k(this.#r,e,!0)}#i=E(!1);get sending(){return n(this.#i)}set sending(e){k(this.#i,e,!0)}#a=E(``);get error(){return n(this.#a)}set error(e){k(this.#a,e,!0)}#o=E(``);get pendingAssistantText(){return n(this.#o)}set pendingAssistantText(e){k(this.#o,e,!0)}#s=E(y([]));get pendingToolStates(){return n(this.#s)}set pendingToolStates(e){k(this.#s,e,!0)}#c=E(null);get pendingPermission(){return n(this.#c)}set pendingPermission(e){k(this.#c,e,!0)}#l=E(null);get pendingQuestion(){return n(this.#l)}set pendingQuestion(e){k(this.#l,e,!0)}#u=E(!1);get liveConnected(){return n(this.#u)}set liveConnected(e){k(this.#u,e,!0)}_unsubscribeEvents=null;_pendingTurn=null;#d=S(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return n(this.#d)}set activeSessionId(e){k(this.#d,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Y(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Y(),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),this._resubscribeEvents()}_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=Ie({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:crypto.randomUUID(),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}_finishPendingTurn(e){let t=this._clearPendingTurn();if(!t)return;let n=(e??this.pendingAssistantText).trim()||`(no response)`;if(this.pendingQuestion?.status===`answered`&&this.pendingQuestion.message){let e={id:crypto.randomUUID(),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;this._appendAssistantReply(n,r),this._resetPendingRenderState(),this._bumpSession(t.sessionId),H.ttsSupported&&H.ttsAutoEnabled&&n&&n!==`(no response)`&&B(n,{mode:`chat_reply`,userText:t.userText,assistantText:n}),Ke(n===`(no response)`?``:n),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=xe(n);r?.type===`reasoning`&&t.reasoningPartIds.add(r.partID);let i=Se(n,t.sessionId,t.reasoningPartIds);i&&(this.pendingAssistantText+=i);let a=Ee(n,t.sessionId);a&&this._upsertPendingToolState(a);let o=Ae(n,t.sessionId);o&&this._upsertPendingStepState(o);let s=Oe(n,t.sessionId);s&&(this.pendingPermission={...s,status:`pending`,decision:``,message:``});let c=ke(n,t.sessionId);if(c&&(this.pendingQuestion={...c,status:`pending`,answers:c.questions.map(()=>``),message:``}),De(n,t.sessionId)){this._failPendingTurn(Error(`Assistant session ended unexpectedly.`));return}we(n,t.sessionId)&&this._finishPendingTurn()}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Y();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)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))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await P();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}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 F(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}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 le(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Y();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.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:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this._resetPendingRenderState(),this.error=``,this.sending=!0,H.ttsSupported&&H.ttsAutoEnabled&&B(`Working on it.`,{mode:`chat_ack`,userText:t});try{if(this._unsubscribeEvents&&this.liveConnected)await new Promise((e,r)=>{let i=setTimeout(()=>{this._failPendingTurn(Error(`Timed out waiting for the assistant response.`))},Je);this._pendingTurn={endpointId:this.activeEndpointId,sessionId:n,userText:t,reasoningPartIds:new Set,resolve:e,reject:r,timeout:i},L(n,t).catch(e=>{this._failPendingTurn(e instanceof Error?e:Error(String(e)))})});else{let e=(await ae(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``).trim()||`(no response)`,r=this.pendingToolStates.length>0?[...this.pendingToolStates]:void 0;this._appendAssistantReply(e,r),this._resetPendingRenderState(),this._bumpSession(n),H.ttsSupported&&H.ttsAutoEnabled&&e!==`(no response)`&&B(e,{mode:`chat_reply`,userText:t,assistantText:e}),Ke(e===`(no response)`?``:e)}}catch(e){let t=e;this._resetPendingRenderState(),t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`,qe()}finally{this.sending=!1}}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 R(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 I(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 se(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(z(),this._clearPendingTurn(),this.entries=[],this.error=``,this._resetPendingRenderState(),this.byEndpoint=new Map,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}};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 Xe(){return X.activeSessionId}function Z(e){let t=new URLSearchParams;e&&t.set(`session`,e);let n=t.toString();return n?`/advanced?${n}`:`/advanced`}function Ze(e,t){let n=new URLSearchParams;e&&n.set(`session`,e),t?.newChat&&n.set(`new`,`1`);let r=n.toString();return r?`/chat?${r}`:`/chat`}function Qe(e,t,n){return!t||!n?e:`${e.replace(/\/$/,``)}/${Ye(n)}/session/${encodeURIComponent(t)}`}var $e=e=>{C(e,et())},et=f(`<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>`);function tt(e,t){_(t,!0);let r=S(()=>U.url?.pathname??``),i=S(()=>n(r)===`/admin`||n(r).startsWith(`/admin/`));S(()=>n(r)===`/advanced`||n(r).startsWith(`/advanced/`));function a(){let e=K.toggle();if(n(i))return;let t=U.url.searchParams.get(`session`)??Xe();M(e?Z(t):Ze(t))}ye(e,{get pressed(){return K.enabled},onToggle:a,ariaLabel:`Advanced mode`,title:`Advanced mode (embedded OpenCode)`,get icon(){return $e}}),O()}var nt=e=>{var t=u(),n=p(t),r=e=>{C(e,rt())},i=e=>{C(e,it())},a=e=>{C(e,at())};w(n,e=>{V.preference===`system`?e(r):V.preference===`light`?e(i,1):e(a,-1)}),C(e,t)},rt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"></rect><path d="M8 21h8"></path><path d="M12 17v4"></path></svg>`),it=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),at=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`);function ot(e,t){_(t,!0);let r=[`system`,`light`,`dark`];function i(){let e=V.preference,t=r[(r.indexOf(e)+1)%r.length];V.setPreference(t)}let a=S(()=>V.preference===`system`?`Theme: system (click for light)`:V.preference===`light`?`Theme: light (click for dark)`:`Theme: dark (click for system)`);G(e,{get icon(){return nt},get ariaLabel(){return n(a)},get title(){return n(a)},onclick:i}),O()}var Q=new class{#e=E(y([]));get endpoints(){return n(this.#e)}set endpoints(e){k(this.#e,e,!0)}#t=E(`default`);get activeId(){return n(this.#t)}set activeId(e){k(this.#t,e,!0)}#n=E(!1);get loading(){return n(this.#n)}set loading(e){k(this.#n,e,!0)}#r=E(!1);get loaded(){return n(this.#r)}set loaded(e){k(this.#r,e,!0)}#i=E(``);get error(){return n(this.#i)}set error(e){k(this.#i,e,!0)}#a=S(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return n(this.#a)}set active(e){k(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await N();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(X.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await re(e),await X.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},st=d(`<footer class="drawer-footer svelte-1u2o1qj"><!></footer>`),ct=d(`<div class="drawer-scrim svelte-1u2o1qj"></div> <div class="drawer svelte-1u2o1qj" role="dialog" aria-modal="true" tabindex="-1"><header class="drawer-header svelte-1u2o1qj"><!> <h3 class="drawer-title svelte-1u2o1qj"> </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"><!></div> <!></div>`,1);function $(n,i){_(i,!0);let a=h(i,`width`,3,`32rem`);function s(e){return Array.from(e.querySelectorAll(`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hasAttribute(`hidden`)&&e.getAttribute(`aria-hidden`)!==`true`)}function c(e){let t=document.activeElement,n=e.querySelector(`.drawer-body`);return((n&&s(n)[0])??s(e)[0]??e).focus(),()=>t?.focus?.()}function d(e){if(e.key===`Escape`){i.onClose();return}if(e.key!==`Tab`)return;let t=e.currentTarget,n=s(t);if(n.length===0){e.preventDefault(),t.focus();return}let r=n[0],a=n[n.length-1],o=document.activeElement;e.shiftKey&&(o===r||o===t)?(e.preventDefault(),a.focus()):!e.shiftKey&&o===a&&(e.preventDefault(),r.focus())}var f=u(),v=p(f),y=n=>{var s=ct(),f=p(s),h=e(f,2),_=m(h),v=m(_),y=e=>{var t=u();r(p(t),()=>i.headerStart),C(e,t)};w(v,e=>{i.headerStart&&e(y)});var S=e(v,2),T=m(S,!0);x(S);var E=e(S,2);x(_);var D=e(_,2);r(m(D),()=>i.children),x(D);var O=e(D,2),k=e=>{var t=st();r(m(t),()=>i.footer),x(t),C(e,t)};w(O,e=>{i.footer&&e(k)}),x(h),g(h,()=>c),o(()=>{A(h,`--drawer-width: ${a()??``}`),b(h,`aria-label`,i.title),t(T,i.title)}),l(`click`,f,function(...e){i.onClose?.apply(this,e)}),l(`keydown`,h,d),l(`click`,E,function(...e){i.onClose?.apply(this,e)}),C(n,s)};w(v,e=>{i.open&&e(y)}),C(n,f),O()}s([`click`,`keydown`]);function lt(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 ut=d(`<p class="list-error svelte-dlw00e" role="alert"> </p>`),dt=d(`<span class="sr-only svelte-dlw00e">(current)</span>`),ft=d(`<button type="button"><span class="item-text svelte-dlw00e"><span class="item-label svelte-dlw00e"> <!></span> <span class="item-url svelte-dlw00e"> </span></span></button>`),pt=d(`<a class="list-item link svelte-dlw00e" href="/admin">Manage this assistant…</a>`),mt=d(`<div class="endpoint-list svelte-dlw00e"><!> <div class="group" role="group" aria-label="Assistant endpoints"></div> <div class="divider svelte-dlw00e"></div> <!> <a class="list-item link svelte-dlw00e" href="/admin/endpoints">Manage assistant connections…</a></div>`);function ht(r,a){_(a,!0);let s=S(()=>Q.active),c=S(()=>Q.endpoints),u=S(()=>lt(n(s)?.url)),d=E(!1);async function f(e){if(!n(d)){if(e===n(s)?.id){a.onChosen?.();return}k(d,!0);try{await Q.activate(e),a.onChosen?.()}catch{}finally{k(d,!1)}}}var p=mt(),h=m(p),g=e=>{var n=ut(),r=m(n,!0);x(n),o(()=>t(r,Q.error)),C(e,n)};w(h,e=>{Q.error&&e(g)});var v=e(h,2);i(v,21,()=>n(c),e=>e.id,(r,i)=>{var a=ft();let c;var u=m(a),p=m(u),h=m(p,!0),g=e(h),_=e=>{C(e,dt())};w(g,e=>{n(i).id===n(s)?.id&&e(_)}),x(p);var v=e(p,2),y=m(v,!0);x(v),x(u),x(a),o(()=>{c=j(a,1,`list-item svelte-dlw00e`,null,c,{active:n(i).id===n(s)?.id}),b(a,`aria-current`,n(i).id===n(s)?.id?`true`:void 0),a.disabled=n(d),t(h,n(i).label),t(y,n(i).url)}),l(`click`,a,()=>f(n(i).id)),C(r,a)}),x(v);var y=e(v,4),T=e=>{var t=pt();l(`click`,t,()=>a.onChosen?.()),C(e,t)};w(y,e=>{n(u)&&e(T)});var D=e(y,2);x(p),l(`click`,D,()=>a.onChosen?.()),C(r,p),O()}s([`click`]);var gt=d(`<button type="button" class="trigger svelte-48xr05" aria-haspopup="dialog"><svg class="trigger-icon svelte-48xr05" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <!>`,1);function _t(r,i){_(i,!0);let a=E(!1),s=S(()=>Q.active);D(()=>{Q.load()});var c=gt(),u=p(c),d=e(m(u),4),f=m(d,!0);x(d),v(2),x(u),$(e(u,2),{get open(){return n(a)},title:`Assistant endpoint`,onClose:()=>k(a,!1),width:`26rem`,children:(e,t)=>{ht(e,{onChosen:()=>k(a,!1)})},$$slots:{default:!0}}),o(()=>{b(u,`aria-expanded`,n(a)),b(u,`aria-label`,n(s)?`Assistant endpoint: ${n(s).label}`:`Assistant endpoints`),b(u,`title`,n(s)?`Connected to: ${n(s).label} (${n(s).url})`:`Assistant endpoints`),u.disabled=Q.loading,t(f,n(s)?.label??`Endpoint…`)}),l(`click`,u,()=>k(a,!0)),C(r,c),O()}s([`click`]);var vt=/^New session - (\d{4}-\d{2}-\d{2}T[0-9:.]+Z?)$/;function yt(e){let t=(e??``).trim();if(!t)return`Untitled session`;let n=vt.exec(t);if(n){let e=Date.parse(n[1]);if(!Number.isNaN(e))return pe(e)}return t}function bt(e,r){_(r,!0);let i=S(()=>yt(r.title));v();var s=a();o(()=>t(s,n(i))),C(e,s),O()}var xt=d(`<div class="notice svelte-1o6rxhb">Wait for the current reply to finish before switching.</div>`),St=d(`<div class="empty svelte-1o6rxhb"><!><span>Loading sessions…</span></div>`),Ct=d(`<div class="list-error svelte-1o6rxhb"><span class="svelte-1o6rxhb"> </span> <button type="button" class="retry-btn svelte-1o6rxhb">Retry</button></div>`),wt=d(`<div class="empty svelte-1o6rxhb">No sessions yet. Start the first one.</div>`),Tt=d(`<span class="sr-only svelte-1o6rxhb">(current)</span>`),Et=d(`<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>`),Dt=d(`<button type="button" class="show-all svelte-1o6rxhb"> </button>`),Ot=d(`<div class="session-list svelte-1o6rxhb" role="group" aria-label="Sessions"></div> <!>`,1),kt=d(`<div class="session-body svelte-1o6rxhb"><!> <!> <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></div>`);function At(r,a){_(a,!0);let s=E(!1),c=S(()=>Q.active),u=S(()=>n(c)?X.byEndpoint.get(n(c).id)??null:null),d=S(()=>n(u)?.sessions??[]),f=S(()=>n(u)?.sessionsLoading??!1),h=S(()=>n(u)?.sessionsError??``),g=S(()=>X.activeSessionId),y=S(()=>n(s)?n(d):n(d).slice(0,50)),T=S(()=>Math.max(0,n(d).length-50));D(()=>{n(c)&&!n(u)?.sessionsLoaded&&!n(f)&&X.loadSessions()});async function A(e){X.sending||(await X.openSession(e),a.onChosen?.())}async function M(){X.sending||(await X.startNewSession(),a.onChosen?.())}async function N(){await X.loadSessions()}var P=kt(),F=m(P),ee=e=>{C(e,xt())};w(F,e=>{X.sending&&e(ee)});var I=e(F,2),te=e=>{var t=St();ue(m(t),{size:12}),v(),x(t),C(e,t)},L=r=>{var i=Ct(),a=m(i),s=m(a,!0);x(a);var c=e(a,2);x(i),o(()=>t(s,n(h))),l(`click`,c,N),C(r,i)},ne=e=>{C(e,wt())},R=r=>{var a=Ot(),c=p(a);i(c,21,()=>n(y),e=>e.id,(r,i)=>{var a=Et();let s;var c=m(a),u=m(c),d=m(u);bt(d,{get title(){return n(i).title}});var f=e(d),p=e=>{C(e,Tt())};w(f,e=>{n(i).id===n(g)&&e(p)}),x(u);var h=e(u,2),_=m(h,!0);x(h),x(c),x(a),o((e,r)=>{s=j(a,1,`list-item session-item svelte-1o6rxhb`,null,s,{active:n(i).id===n(g)}),b(a,`aria-current`,n(i).id===n(g)?`true`:void 0),a.disabled=X.sending,b(a,`title`,e),t(_,r)},[()=>pe(n(i).updatedAt),()=>me(n(i).updatedAt)]),l(`click`,a,()=>A(n(i).id)),C(r,a)}),x(c);var u=e(c,2),d=e=>{var r=Dt(),i=m(r);x(r),o(()=>t(i,`Show all (${n(T)??``} more)`)),l(`click`,r,()=>k(s,!0)),C(e,r)};w(u,e=>{!n(s)&&n(T)>0&&e(d)}),C(r,a)};w(I,e=>{n(f)?e(te):n(h)?e(L,1):n(d).length===0?e(ne,2):e(R,-1)});var z=e(I,4);x(P),o(()=>z.disabled=X.sending),l(`click`,z,M),C(r,P),O()}s([`click`]);var jt=d(`<button type="button" class="trigger svelte-cihcnl" aria-haspopup="dialog" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <!>`,1);function Mt(r,i){_(i,!0);let a=E(!1),s=S(()=>Q.active),c=S(()=>n(s)?X.byEndpoint.get(n(s).id)??null:null),u=S(()=>n(c)?.sessions??[]),d=S(()=>X.activeSessionId),f=S(()=>X.liveConnected),h=S(()=>n(u).find(e=>e.id===n(d))??null),g=S(()=>n(h)?yt(n(h).title):`New session`);var y=jt(),w=p(y),T=e(m(w),2);let D;var A=e(T,2),M=m(A,!0);x(A),v(2),x(w);var N=e(w,2);{let e=S(()=>n(s)?.label??`this endpoint`);$(N,{get open(){return n(a)},get title(){return`Sessions on ${n(e)??``}`},onClose:()=>k(a,!1),width:`26rem`,children:(e,t)=>{At(e,{onChosen:()=>k(a,!1)})},$$slots:{default:!0}})}o(()=>{b(w,`aria-expanded`,n(a)),b(w,`title`,n(g)),D=j(T,1,`dot svelte-cihcnl`,null,D,{connected:n(f)}),b(T,`title`,n(f)?`Live updates connected`:`Live updates disconnected`),t(M,n(g))}),l(`click`,w,()=>k(a,!0)),C(r,y),O()}s([`click`]);var Nt=d(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),Pt=d(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),Ft=f(`<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>`,1),It=f(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),Lt=d(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),Rt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),zt=d(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),Bt=d(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),Vt=f(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),Ht=d(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function Ut(r,i){_(i,!0);let a=E(!1),s=null;D(()=>{oe().then(()=>{k(a,!0)}),s=window.openpalm?.onGlobalMicToggle?.(()=>{A()})??null}),T(()=>{typeof window<`u`&&window.openpalm?.setTrayMicRecording?.(!1),s?.(),s=null,ie()}),c(()=>{n(a)&&window.openpalm?.setTrayMicRecording?.(n(f))});let u=S(()=>n(a)&&H.sttEngine!==`disabled`&&H.sttSupported),d=S(()=>n(a)&&H.ttsSupported),f=S(()=>H.status===`recording`),h=S(()=>H.status===`transcribing`),g=S(()=>!n(f)&&!n(h)&&X.sending),y=S(()=>H.status===`speaking`);async function A(){if(n(g))return;if(n(f)){te();return}if(n(h))return;z();let e=window.openpalm;if(e?.requestMicPermission){let t=await e.requestMicPermission();if(t===`denied-no-prompt`){H.errorMessage=`This OpenPalm build cannot request microphone access on macOS. Please update to the latest version of the desktop app.`;return}if(t===`denied`||t===`restricted`){H.errorMessage=`Microphone access is turned off. In the System Settings window that just opened, enable OpenPalm under Microphone, then quit and reopen the app.`;return}}ce(e=>{let t=e.trim();t&&X.send(t)})}function M(){ee(!H.ttsAutoEnabled)}var N=Ht(),P=m(N),F=e=>{var n=Nt(),r=m(n,!0);x(n),o(e=>{b(n,`title`,H.interimTranscript),t(r,e)},[()=>H.interimTranscript.length>48?H.interimTranscript.slice(0,48)+`…`:H.interimTranscript]),C(e,n)};w(P,e=>{n(f)&&H.interimTranscript&&e(F)});var I=e(P,2),L=e=>{var t=Pt();l(`click`,t,()=>ne()),C(e,t)};w(I,e=>{H.autoplayBlocked&&e(L)});var R=e(I,2),re=t=>{var r=Lt();let i;var a=m(r),s=e(m(a)),c=t=>{var r=Ft(),i=p(r);let a;var s=e(i);let c;o(()=>{a=j(i,0,`svelte-7elv0w`,null,a,{"wave-anim":n(y)}),c=j(s,0,`svelte-7elv0w`,null,c,{"wave-anim-2":n(y)})}),C(t,r)},u=e=>{var t=It();v(),C(e,t)};w(s,e=>{H.ttsAutoEnabled?e(c):e(u,-1)}),x(a),x(r),o(()=>{i=j(r,1,`voice-btn svelte-7elv0w`,null,i,{"voice-btn-on":H.ttsAutoEnabled,"voice-btn-speaking":n(y)}),b(r,`aria-label`,H.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),b(r,`aria-pressed`,H.ttsAutoEnabled),b(r,`title`,n(y)?`Speaking — click to turn off spoken responses`:H.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),l(`click`,r,M),C(t,r)};w(R,e=>{n(d)&&e(re)});var B=e(R,2);let ae;var se=m(B),V=e=>{C(e,Rt())},le=e=>{C(e,zt())},U=e=>{var t=Bt();v(2),C(e,t)},ue=e=>{C(e,Vt())};w(se,e=>{n(u)?n(h)||n(g)?e(le,1):n(f)?e(U,2):e(ue,-1):e(V)}),x(B);var W=e(B,2),de=m(W,!0);x(W),x(N),o(()=>{ae=j(B,1,`voice-btn svelte-7elv0w`,null,ae,{"voice-btn-active":n(f),"voice-btn-processing":n(g)||n(h),"voice-btn-disabled":!n(u)}),B.disabled=!n(u)||n(g),b(B,`aria-label`,n(u)?n(f)?`Stop recording`:n(h)?`Transcribing…`:n(g)?`Sending message…`:`Start recording`:`Voice input unavailable`),b(B,`aria-pressed`,n(f)),b(B,`title`,n(u)?n(f)?`Stop recording`:n(h)?`Transcribing…`:n(g)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),t(de,n(f)&&H.interimTranscript?H.interimTranscript:n(f)?`Recording`:n(h)?`Transcribing`:n(g)?`Sending message to assistant`:n(y)?`Assistant is speaking`:H.ttsAutoEnabled?`Spoken responses on`:``)}),l(`click`,B,A),C(r,N),O()}s([`click`]);var Wt=e=>{C(e,Gt())},Gt=f(`<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`),Kt=d(`<span class="chat-selectors svelte-66bgq1"><!> <!></span>`),qt=d(`<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"><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"><!> <!> <!> <!> <!></div></div></header>`);function Jt(t,r){_(r,!0);let i=S(()=>U.url?.pathname??``),a=S(()=>n(i)===`/admin`||n(i).startsWith(`/admin/`)),s=S(()=>n(i)===`/chat`||n(i).startsWith(`/chat/`)),c=S(()=>n(i)===`/advanced`||n(i).startsWith(`/advanced/`)),l=S(()=>n(s)||n(c)),u=S(()=>{let e=U.url.searchParams.get(`session`)??Xe();return K.enabled?Z(e):Ze(e)});D(()=>{K.init()});var d=qt(),f=m(d),p=m(f),h=e(p,2),g=m(h),v=e=>{G(e,{get href(){return n(u)},ariaLabel:`Back to chat`,title:`Chat`,get icon(){return Wt}})};w(g,e=>{n(a)&&e(v)});var y=e(g,2);ot(y,{});var T=e(y,2),E=t=>{var n=Kt(),r=m(n);_t(r,{}),Mt(e(r,2),{}),x(n),C(t,n)};w(T,e=>{n(l)&&e(E)});var k=e(T,2);tt(k,{}),Ut(e(k,2),{}),x(h),x(f),x(d),o(()=>b(p,`href`,n(u))),C(t,d),O()}export{G as _,Q as a,X as c,Ue as d,We as f,K as g,Ee as h,$ as i,Ve as l,Ae as m,At as n,Qe as o,Ie as p,ht as r,Z as s,Jt as t,He as u,fe as v};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,et as t,nt as n,tt as r}from"./BBI__kVO.js";var i=[`audio/webm;codecs=opus`,`audio/webm`];function a(){let e=globalThis.MediaRecorder;if(!(!e||typeof e.isTypeSupported!=`function`)){for(let t of i)if(e.isTypeSupported(t))return t}}async function o(){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)}`)}let t=a(),n=t?new MediaRecorder(e,{mimeType:t}):new MediaRecorder(e),r=[];n.addEventListener(`dataavailable`,e=>{let t=e.data;t&&t.size>0&&r.push(t)});let i=!1,o=!1,s=null,c=null;function l(){for(let t of e.getTracks())try{t.stop()}catch{}}return n.addEventListener(`stop`,()=>{if(l(),o)return;let e=new Blob(r,{type:n.mimeType||t||`audio/webm`});s?.(e)}),n.addEventListener(`error`,e=>{l();let t=e?.error??Error(`Recorder error`);c?.(t)}),n.start(),{stop(){return i?Promise.reject(Error(`Recorder already stopped`)):(i=!0,new Promise((e,t)=>{s=e,c=t;try{n.state!==`inactive`&&n.stop()}catch(e){l(),t(e)}}))},cancel(){if(!i){i=!0,o=!0;try{n.state!==`inactive`&&n.stop()}catch{}l()}}}}function s(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 c(...e){for(let t of e){let e=s(t);if(e)return e}return``}function l(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:c(e.state?.input,e.state?.metadata,e.state?.progress,e.state?.output),output:s(e.state?.output),error:e.state?.error??``,updatedAt:Date.now()}}var ee=``;function u(){return{"x-request-id":crypto.randomUUID(),"x-requested-by":`ui`}}async function d(e,t,n){let r={...n===void 0?{}:{"content-type":`application/json`},...u()};return fetch(`${ee}${t}`,{method:e,headers:r,credentials:`include`,...n===void 0?{}:{body:JSON.stringify(n)}})}async function f(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 p(e,t){if(e.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!e.ok)throw Error(await f(e,t));return e}async function te(){let[e,t]=await Promise.all([d(`GET`,`/health`),d(`GET`,`/guardian/health`).catch(e=>(console.warn(`[api] Guardian health check failed:`,e),null))]),n=await e.json(),r=null;if(t)try{r=await t.json()}catch(e){console.warn(`[api] Failed to parse guardian health response:`,e),r={status:`unavailable`,service:`guardian`}}return{admin:n,guardian:r}}async function ne(){return await(await p(await d(`GET`,`/admin/containers/list`))).json()}async function re(e,t){await p(await d(`POST`,{start:`/admin/containers/up`,stop:`/admin/containers/down`,restart:`/admin/containers/restart`}[e],{service:t}))}async function ie(){let e=await d(`POST`,`/admin/update`,{});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 f(e,`Apply failed (HTTP ${e.status})`));return await e.json()}async function ae(){return await(await p(await d(`POST`,`/admin/upgrade`,{}))).json()}async function oe(e={}){return await(await p(await d(`GET`,`/admin/versions${e.refresh?`?refresh=1`:``}`))).json()}async function se(e={}){try{let t=await d(`GET`,`/admin/versions/releases${e.refresh?`?refresh=1`:``}`);return t.ok?await t.json():{releases:[]}}catch{return{releases:[]}}}async function ce(e={}){try{let t=await d(`GET`,`/admin/versions/ui${e.refresh?`?refresh=1`:``}`);return t.ok?await t.json():{versions:[]}}catch{return{versions:[]}}}async function m(){try{await p(await d(`POST`,`/admin/versions/refresh`))}catch{}}var h=class extends Error{code=`downgrade_confirmation_required`;currentVersion;targetVersion;constructor(e,t,n){super(e),this.name=`DowngradeConfirmationRequiredError`,this.currentVersion=t,this.targetVersion=n}};async function le(e,t){if(e.status!==409)return null;let n={};try{n=await e.clone().json()}catch{}return n.error===`downgrade_confirmation_required`?new h(n.message??`This is a downgrade and requires confirmation.`,n.details?.currentVersion??``,n.details?.targetVersion??t):null}async function ue(e,t,n={}){let r=await d(`PATCH`,`/admin/stack-version`,{unit:e,tag:t,...n.confirmDowngrade?{confirmDowngrade:!0}:{}}),i=await le(r,t);if(i)throw i;return await p(r),await r.json()}async function de(){return await(await p(await d(`GET`,`/admin/backups`))).json()}async function fe(e){return await(await p(await d(`POST`,`/admin/backups`,{keep:e}))).json()}async function pe(){return await(await p(await d(`GET`,`/admin/secret-notice`))).json()}async function me(){return await(await p(await d(`DELETE`,`/admin/secret-notice`))).json()}async function he(){return await(await p(await d(`GET`,`/admin/unlock`))).json()}async function ge(){return await(await p(await d(`POST`,`/admin/unlock`))).json()}async function _e(e){return await(await p(await d(`POST`,`/admin/ui-version`,{tag:e}))).json()}async function ve(){return await(await p(await d(`GET`,`/admin/automations`))).json()}async function ye(e){return await(await p(await d(`POST`,`/admin/automations/${encodeURIComponent(e)}/run`))).json()}async function be(e,t=200){let n=new URLSearchParams({limit:String(t)});return await(await p(await d(`GET`,`/admin/automations/${encodeURIComponent(e)}/log?${n.toString()}`))).json()}async function xe(e){let t=new URLSearchParams;e?.service&&t.set(`service`,e.service),e?.tail&&t.set(`tail`,String(e.tail)),e?.since&&t.set(`since`,e.since);let n=t.toString();return await(await p(await d(`GET`,`/admin/logs${n?`?${n}`:``}`))).json()}async function Se(){return(await(await p(await d(`GET`,`/admin/addons`))).json()).addons}async function g(e,t,n){let r={enabled:t};return n&&(r.env=n),await(await p(await d(`POST`,`/admin/addons/${encodeURIComponent(e)}`,r))).json()}async function _(e){return(await(await p(await d(`GET`,`/admin/addons/${encodeURIComponent(e)}/credentials`))).json()).fields}async function v(e,t){return await(await p(await d(`POST`,`/admin/addons/${encodeURIComponent(e)}/credentials`,{values:t}))).json()}async function y(){return await(await p(await d(`GET`,`/admin/secrets`))).json()}async function b(e){return await(await p(await d(`GET`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function x(e,t){return await(await p(await d(`PUT`,`/admin/secrets/${encodeURIComponent(e)}`,{value:t}))).json()}async function S(e){return await(await p(await d(`DELETE`,`/admin/secrets/${encodeURIComponent(e)}`))).json()}async function C(e){return await(await p(await d(`GET`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function w(e,t){return await(await p(await d(`PUT`,`/admin/automations/${encodeURIComponent(e)}/file`,{content:t}))).json()}async function T(e){return await(await p(await d(`DELETE`,`/admin/automations/${encodeURIComponent(e)}/file`))).json()}async function E(){return await(await p(await d(`GET`,`/admin/voice`))).json()}async function D(e){let t=await d(`PUT`,`/admin/voice`,e);if(t.status===401)throw Object.assign(Error(`Invalid password.`),{status:401});if(t.status===200||t.status===202||t.status===502)return{...await t.json(),status:t.status};throw Error(await f(t))}async function O(e,t){let n=new FormData;n.append(`audio`,e,`recording.webm`),t?.language&&n.append(`language`,t.language),t?.prompt&&n.append(`prompt`,t.prompt);let r=await(await p(await fetch(`/api/transcribe`,{method:`POST`,headers:u(),credentials:`include`,body:n}))).json();return typeof r.text==`string`?r.text:``}async function k(){return await(await p(await d(`GET`,`/admin/akm`))).json()}async function A(e){return await(await p(await d(`PATCH`,`/admin/akm`,e))).json()}async function j(){return await(await p(await d(`POST`,`/admin/akm/embedding/detect`,{}))).json()}async function Ce(e){return await(await p(await d(`POST`,`/admin/akm/embedding/test`,e))).json()}async function we(){return await(await p(await d(`POST`,`/admin/akm/reindex`,{}))).json()}async function Te(){return await(await p(await d(`GET`,`/admin/assistant`))).json()}async function Ee(e){return await(await p(await d(`PUT`,`/admin/assistant`,e))).json()}async function De(){return await(await p(await d(`GET`,`/admin/akm/health`))).json()}async function Oe(){return await(await p(await d(`GET`,`/admin/akm/stats`))).json()}async function ke(){return await(await p(await d(`GET`,`/admin/akm/host-sharing`))).json()}async function Ae(e={}){return await(await p(await d(`PUT`,`/admin/akm/host-sharing`,e))).json()}async function je(){return await(await p(await d(`DELETE`,`/admin/akm/host-sharing`))).json()}async function Me(){await p(await d(`POST`,`/admin/containers/pull`,{}))}async function Ne(){return await(await p(await d(`GET`,`/admin/endpoints`))).json()}async function Pe(e){return await(await p(await d(`POST`,`/admin/endpoints`,e))).json()}async function Fe(e,t){return await(await p(await d(`PATCH`,`/admin/endpoints/${encodeURIComponent(e)}`,t))).json()}async function Ie(e){await p(await d(`DELETE`,`/admin/endpoints/${encodeURIComponent(e)}`))}async function Le(e){return await(await p(await d(`POST`,`/admin/endpoints/active`,{id:e}))).json()}async function Re(){return await(await p(await d(`POST`,`/proxy/assistant/session`,{}))).json()}async function ze(){let e=(await(await p(await d(`GET`,`/proxy/assistant/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 M(e){let t=await(await p(await d(`GET`,`/proxy/assistant/session/${encodeURIComponent(e)}/message`))).json(),n=[];for(let e of t){let t=e.info.time?.created??Date.now(),r=``,i=0,a=[];e.parts.forEach((t,n)=>{if(t.type===`text`&&t.text){r+=t.text;return}if(t.type===`tool`||t.state){let r=l(t,`${e.info.id}:${n}`);if(!r)return;a.push(r)}}),(()=>{let o=r.trim();if(r=``,!(!o&&a.length===0)){if(o){let r={id:i===0?e.info.id:`${e.info.id}:text:${i}`,role:e.info.role,text:o,timestamp:t};a.length>0&&(r.toolStates=[...a],a.length=0),n.push(r),i+=1}else if(a.length>0){let r={id:`${e.info.id}:tools:${i}`,type:`tool-group`,toolStates:[...a],timestamp:t};a.length=0,n.push(r),i+=1}}})()}return n}async function Be(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...u()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await f(n);throw Object.assign(Error(e),{status:n.status})}return await n.json()}async function Ve(e,t){let n=await fetch(`/proxy/assistant/session/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"content-type":`application/json`,...u()},credentials:`include`,body:JSON.stringify({parts:[{type:`text`,text:t}]}),signal:AbortSignal.timeout(15e4)});if(n.status===401)throw Object.assign(Error(`Sign-in required.`),{status:401});if(!n.ok){let e=await f(n);throw Object.assign(Error(e),{status:n.status})}}async function He(e,t){await(await p(await d(`POST`,`/proxy/assistant/permission/${encodeURIComponent(e)}/reply`,{reply:t}))).text().catch(()=>``)}async function Ue(e,t){await(await p(await d(`POST`,`/proxy/assistant/question/${encodeURIComponent(e)}/reply`,{answers:t}))).text().catch(()=>``)}async function We(e){await(await p(await d(`POST`,`/proxy/assistant/question/${encodeURIComponent(e)}/reject`,{}))).text().catch(()=>``)}async function Ge(){try{return(await fetch(`/proxy/assistant/provider`,{method:`GET`,headers:u(),credentials:`include`,signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}var Ke={info:4e3,success:5e3,error:8e3},N=new class{#e=n(t([]));get toasts(){return e(this.#e)}set toasts(e){r(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)}`),i=n.sticky?null:n.ttlMs??Ke[e],a={id:r,kind:e,message:t,ttlMs:i},o=this.timers.get(r);o&&(clearTimeout(o),this.timers.delete(r));let s=this.toasts.findIndex(e=>e.id===r);if(s>=0){let e=[...this.toasts];e[s]=a,this.toasts=e}else this.toasts=[...this.toasts,a];if(i!==null){let e=setTimeout(()=>this.dismiss(r),i);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=[]}},qe=6e4,P=new class{#e=n(`idle`);get status(){return e(this.#e)}set status(e){r(this.#e,e,!0)}#t=n(!1);get sttSupported(){return e(this.#t)}set sttSupported(e){r(this.#t,e,!0)}#n=n(!1);get ttsSupported(){return e(this.#n)}set ttsSupported(e){r(this.#n,e,!0)}#r=n(``);get errorMessage(){return e(this.#r)}set errorMessage(e){r(this.#r,e,!0)}#i=n(``);get interimTranscript(){return e(this.#i)}set interimTranscript(e){r(this.#i,e,!0)}#a=n(`disabled`);get sttEngine(){return e(this.#a)}set sttEngine(e){r(this.#a,e,!0)}#o=n(`disabled`);get ttsEngine(){return e(this.#o)}set ttsEngine(e){r(this.#o,e,!0)}#s=n(``);get sttLanguage(){return e(this.#s)}set sttLanguage(e){r(this.#s,e,!0)}#c=n(!1);get ttsAutoEnabled(){return e(this.#c)}set ttsAutoEnabled(e){r(this.#c,e,!0)}#l=n(!1);get autoplayBlocked(){return e(this.#l)}set autoplayBlocked(e){r(this.#l,e,!0)}#u=n(``);get browserSttUnsupportedReason(){return e(this.#u)}set browserSttUnsupportedReason(e){r(this.#u,e,!0)}},F=`openpalm.tts.auto`,I=null,L=null,R=null,z=null;function Je(e){let t=P.ttsAutoEnabled;if(P.ttsAutoEnabled=e,typeof window<`u`)try{window.localStorage.setItem(F,e?`1`:`0`)}catch{}if(!e){Q();return}t||Ye()}function Ye(){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{}}function B(){if(!(typeof window>`u`))return window.SpeechRecognition??window.webkitSpeechRecognition??void 0}function Xe(){if(typeof navigator>`u`)return!1;let e=navigator.userAgent??``,t=/iPad|iPhone|iPod/.test(e),n=window.MSStream;return t&&!n}function Ze(){return!(typeof window>`u`||typeof MediaRecorder>`u`||!navigator?.mediaDevices?.getUserMedia)}function Qe(e){switch(e){case`browser`:return P.browserSttUnsupportedReason?!1:!!B();case`remote`:case`openpalm-voice`:return Ze();default:return!1}}function V(e){return e===`browser`||e===`browser-stt`?`browser`:e===`openpalm-voice`?`openpalm-voice`:e&&!e.startsWith(`skip-`)?`remote`:`disabled`}async function $e(){let e=typeof window<`u`&&`speechSynthesis`in window;if(typeof window<`u`)try{P.ttsAutoEnabled=window.localStorage.getItem(F)===`1`}catch{}try{let e=await E(),t=e.stt??{},n=e.tts??{},r=typeof t.engine==`string`?t.engine:``,i=typeof n.engine==`string`?n.engine:``;P.sttLanguage=typeof t.language==`string`?t.language:``,P.sttEngine=V(r),P.ttsEngine=V(i)}catch{P.sttEngine=`disabled`,P.ttsEngine=`disabled`}P.ttsSupported=P.ttsEngine===`openpalm-voice`||P.ttsEngine===`remote`||P.ttsEngine===`browser`&&e,Xe()&&B()?(P.browserSttUnsupportedReason=`iOS Safari does not support Web Speech recognition`,P.sttEngine===`browser`&&(P.sttEngine=`disabled`)):P.browserSttUnsupportedReason=``,P.sttEngine===`disabled`&&B()&&!P.browserSttUnsupportedReason&&(P.sttEngine=`browser`),P.sttSupported=Qe(P.sttEngine)}function et(e){if(!(P.status===`recording`||P.status===`transcribing`)){if(!P.sttSupported||P.sttEngine===`disabled`){P.errorMessage=`Speech recognition is not available.`;return}if(P.errorMessage=``,z=e,P.sttEngine===`browser`){tt(e);return}nt()}}function tt(e){let t=B();if(!t){P.errorMessage=`Speech recognition is not supported in this browser.`;return}let n=new t;L=n,n.lang=P.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??``}P.interimTranscript=r+t},n.onerror=e=>{if(L!==n)return;let t=e.error??``;t===`no-speech`||t===`aborted`||(t===`not-allowed`?P.errorMessage=`Microphone access denied.`:P.errorMessage=`Speech error: ${t}`),P.interimTranscript=``,P.status=`idle`,L=null,z=null},n.onend=()=>{L===n&&(r.trim()&&e&&e(r.trim()),P.interimTranscript=``,P.status=`idle`,L=null,z=null)};try{n.start(),P.status=`recording`}catch{P.errorMessage=`Failed to start speech recognition.`,P.status=`idle`,L=null,z=null}}async function nt(){let e;try{e=await o()}catch(e){P.errorMessage=e instanceof Error?e.message:`Failed to start recording.`,P.status=`idle`,z=null;return}I=e,P.status=`recording`,R=setTimeout(()=>{H()},qe)}async function H(){let e=I,t=z;if(!e)return;I=null,z=null,R&&=(clearTimeout(R),null),P.status=`transcribing`;let n;try{n=await e.stop()}catch(e){P.errorMessage=e instanceof Error?e.message:`Recording failed.`,P.status=`idle`;return}if(n.size===0){P.status=`idle`;return}try{let e=(await O(n,{language:P.sttLanguage||void 0})).trim();e&&t&&t(e)}catch(e){P.errorMessage=e instanceof Error?e.message:`Transcription failed.`}finally{P.status=`idle`}}function rt(){if(L){try{L.stop()}catch{}return}I&&H()}var U=null,W=null,it=3,G=[],K=!1,q=null,J=null;function Y(){if(U){U.onerror=null,U.onended=null;try{U.pause()}catch{}U.src=``,U=null}W&&=(URL.revokeObjectURL(W),null)}function X(){if(q){q.onerror=null,q.onended=null;try{q.pause()}catch{}q.src=``,q=null}J&&=(URL.revokeObjectURL(J),null),P.autoplayBlocked=!1}function at(){let e=q;if(!e){P.autoplayBlocked=!1;return}P.autoplayBlocked=!1,P.errorMessage=``,P.status=`speaking`,U=e,W=J,q=null,J=null,e.play().catch(()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y()})}async function ot(e,t){if(!(typeof window>`u`||!e.trim())){if(P.status===`speaking`){G.push({text:e,options:t});let n=0;for(;G.length>it;)G.shift(),n+=1;n>0&&!K&&(K=!0,N.push(`info`,`Skipped ${n} spoken ${n===1?`reply`:`replies`} — too much overlap. Lower the auto-speak chat rate.`));return}await Z(e,t)}}async function Z(e,t){if(typeof window>`u`||!e.trim())return;X(),Y(),`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.errorMessage=``;let n=P.ttsEngine,r=n===`openpalm-voice`||n===`remote`;if(r){let n;try{n=await fetch(`/api/speak`,{method:`POST`,headers:{"content-type":`application/json`},credentials:`include`,body:JSON.stringify({text:e,...t?.mode&&t.mode!==`plain`?{mode:t.mode}:{},...t?.userText?{userText:t.userText}:{},...t?.assistantText?{assistantText:t.assistantText}:{}})})}catch{}if(n&&n.ok&&n.headers.get(`content-type`)?.startsWith(`audio/`)){let e=await n.blob(),t=URL.createObjectURL(e),r=new Audio(t);U=r,W=t,r.onended=()=>{P.status=`idle`,Y();let e=G.shift();e?Z(e.text,e.options):K=!1},r.onerror=()=>{P.status=`idle`,P.errorMessage=`Audio playback failed.`,Y();let e=G.shift();e?Z(e.text,e.options):K=!1},P.status=`speaking`;try{await r.play()}catch{P.status=`idle`,q=r,J=t,U=null,W=null,P.autoplayBlocked=!0}return}n&&!n.ok&&(P.errorMessage=await st(n))}if(!(`speechSynthesis`in window))return;r&&(P.errorMessage=``);let i=new SpeechSynthesisUtterance(e);i.onstart=()=>{P.status=`speaking`},i.onend=()=>{P.status=`idle`;let e=G.shift();e?Z(e.text,e.options):K=!1},i.onerror=()=>{P.status=`idle`;let e=G.shift();e?Z(e.text,e.options):K=!1},window.speechSynthesis.speak(i)}async function st(e){let t;try{let n=await e.clone().json();typeof n.error==`string`&&(t=n.error)}catch{}return t===`tts_not_configured`?`TTS is not configured.`:t===`upstream_error`||e.status===502||e.status===503?`Voice engine is warming up — try again in a moment.`:`TTS failed (HTTP ${e.status}).`}function Q(){G.length=0,K=!1,X(),Y(),typeof window<`u`&&`speechSynthesis`in window&&window.speechSynthesis.cancel(),P.status=`idle`}function ct(){if(R&&=(clearTimeout(R),null),I){try{I.cancel()}catch{}I=null}if(L){try{L.stop()}catch{}L=null}z=null,P.interimTranscript=``,P.status=`idle`}var $=`openpalm.theme`,lt=`data-theme`,ut=`#161c22`,dt=`#f9fafb`;function ft(e){return e===`light`||e===`dark`||e===`system`}var pt=new class{#e=n(`system`);get preference(){return e(this.#e)}set preference(e){r(this.#e,e,!0)}#t=n(`light`);get resolved(){return e(this.#t)}set resolved(e){r(this.#t,e,!0)}#n=n(!1);get initialized(){return e(this.#n)}set initialized(e){r(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(){this.setPreference(this.resolved===`dark`?`light`:`dark`)}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($);return ft(e)?e:`system`}catch{return`system`}}#o(e){if(!(typeof window>`u`))try{window.localStorage.setItem($,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(lt,this.resolved),e.style.colorScheme=this.resolved;let t=document.querySelector(`meta[name="theme-color"]`);t&&(t.content=this.resolved===`dark`?ut:dt);let n=document.querySelector(`meta[name="color-scheme"]`);n&&(n.content=this.resolved)}};export{Ge as $,De as A,he as B,je as C,_ as D,Ae as E,de as F,xe as G,b as H,ne as I,oe as J,C as K,Ne as L,Te as M,be as N,Se as O,ve as P,ze as Q,te as R,j as S,_e as T,y as U,se as V,pe as W,M as X,E as Y,m as Z,Pe as _,Ce as _t,Je as a,Ue as at,S as b,ae as bt,rt as c,A as ct,N as d,w as dt,fe as et,h as f,D as ft,re as g,Ve as gt,ge as h,ue as ht,at as i,He as it,Oe as j,k,Q as l,Ee as lt,u as m,Le as mt,ct as n,we as nt,ot as o,ye as ot,ie as p,Be as pt,ce as q,$e as r,We as rt,et as s,v as st,pt as t,Me as tt,P as u,x as ut,Re as v,g as vt,me as w,T as x,Ie as y,Fe as yt,ke as z};
|
|
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{$ as e,A as t,B as n,F as r,G as i,H as a,K as o,M as s,N as c,Q as l,S as u,Z as d,a as f,ct as p,ft as m,i as h,it as g,j as _,k as v,nt as y,q as b,r as x,s as S,st as C,tt as w}from"../chunks/BBI__kVO.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=c(`<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=c(`<!> <!>`,1);function k(c,h){p(h,!0);let T=f(h,`components`,23,()=>[]),E=f(h,`data_0`,3,null),k=f(h,`data_1`,3,null),A=f(h,`data_2`,3,null);b(()=>h.stores.page.set(h.page)),o(()=>{h.stores,h.page,h.constructors,T(),h.form,E(),k(),A(),h.stores.page.notify()});let j=y(!1),M=y(!1),N=y(null);x(()=>{let e=h.stores.page.subscribe(()=>{n(j)&&(w(M,!0),a().then(()=>{w(N,document.title||`untitled page`,!0)}))});return w(j,!0),e});let P=g(()=>h.constructors[2]);var F=O(),I=l(F),L=e=>{let t=g(()=>h.constructors[0]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return h.form},get params(){return h.page.params},children:(e,t)=>{var r=s(),i=l(r),a=e=>{let t=g(()=>h.constructors[1]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return h.form},get params(){return h.page.params},children:(e,t)=>{var r=s();u(l(r),()=>n(P),(e,t)=>{S(t(e,{get data(){return A()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),_(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),_(e,r)},o=e=>{let t=g(()=>h.constructors[1]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),_(e,r)};v(i,e=>{h.constructors[2]?e(a):e(o,-1)}),_(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),_(e,r)},R=e=>{let t=g(()=>h.constructors[0]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),_(e,r)};v(I,e=>{h.constructors[1]?e(L):e(R,-1)});var z=e(I,2),B=e=>{var a=D(),o=d(a),s=e=>{var a=r();i(()=>t(a,n(N))),_(e,a)};v(o,e=>{n(M)&&e(s)}),m(a),_(e,a)};v(z,e=>{n(j)&&e(B)}),_(c,F),C()}var A=h(k),j=[()=>T(()=>import(`../nodes/0.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DOxwxXh1.js","../chunks/BBI__kVO.js","../chunks/xihTtKlq.js","../chunks/i-u-oQAW.js","../assets/0.03HRqLzj.css","../nodes/1.ALcLv429.js","../chunks/Cub6afmL.js","../chunks/D2dFPcAY.js","../chunks/CymRgjIC.js","../nodes/2.CWCgggRE.js","../chunks/D-V3sSGz.js","../nodes/3.s6beQKPO.js","../nodes/4._U3pMj5x.js","../chunks/CpzMlkvh.js","../chunks/B7vwJqoj.js","../chunks/DMSxHu0j.js","../chunks/Oz5B_hgH.js","../assets/Spinner.BtzHSsat.css","../assets/Navbar.8KmI3SWX.css","../assets/ChatMessage.Dvo0uBBZ.css","../chunks/Buy0D9D-.js","../assets/4.C2tVeZVh.css","../nodes/5.CUEzVL3V.js","../assets/5.Cj0Mk9Gn.css","../nodes/6.BL78XiLU.js","../assets/6.C9M6ETTz.css","../nodes/7.F5ztMZTo.js","../assets/7.CIARtob0.css","../nodes/8.xcsOM3k5.js","../assets/8.CY2RMSue.css","../nodes/9.OQRL7WC0.js","../assets/9.CkiNtsHc.css","../nodes/10.BzTAm6YU.js","../assets/10.C4zN9dGC.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as e,A as t,B as n,F as r,G as i,H as a,K as o,M as s,N as c,Q as l,S as u,Z as d,a as f,ct as p,ft as m,i as h,it as g,j as _,k as v,nt as y,q as b,r as x,s as S,st as C,tt as w}from"../chunks/BBI__kVO.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=c(`<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=c(`<!> <!>`,1);function k(c,h){p(h,!0);let T=f(h,`components`,23,()=>[]),E=f(h,`data_0`,3,null),k=f(h,`data_1`,3,null),A=f(h,`data_2`,3,null);b(()=>h.stores.page.set(h.page)),o(()=>{h.stores,h.page,h.constructors,T(),h.form,E(),k(),A(),h.stores.page.notify()});let j=y(!1),M=y(!1),N=y(null);x(()=>{let e=h.stores.page.subscribe(()=>{n(j)&&(w(M,!0),a().then(()=>{w(N,document.title||`untitled page`,!0)}))});return w(j,!0),e});let P=g(()=>h.constructors[2]);var F=O(),I=l(F),L=e=>{let t=g(()=>h.constructors[0]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return h.form},get params(){return h.page.params},children:(e,t)=>{var r=s(),i=l(r),a=e=>{let t=g(()=>h.constructors[1]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return h.form},get params(){return h.page.params},children:(e,t)=>{var r=s();u(l(r),()=>n(P),(e,t)=>{S(t(e,{get data(){return A()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),_(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),_(e,r)},o=e=>{let t=g(()=>h.constructors[1]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),_(e,r)};v(i,e=>{h.constructors[2]?e(a):e(o,-1)}),_(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),_(e,r)},R=e=>{let t=g(()=>h.constructors[0]);var r=s();u(l(r),()=>n(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return h.form},get params(){return h.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),_(e,r)};v(I,e=>{h.constructors[1]?e(L):e(R,-1)});var z=e(I,2),B=e=>{var a=D(),o=d(a),s=e=>{var a=r();i(()=>t(a,n(N))),_(e,a)};v(o,e=>{n(M)&&e(s)}),m(a),_(e,a)};v(z,e=>{n(j)&&e(B)}),_(c,F),C()}var A=h(k),j=[()=>T(()=>import(`../nodes/0.DOxwxXh1.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>T(()=>import(`../nodes/1.ALcLv429.js`),__vite__mapDeps([5,1,6,7,8,2]),import.meta.url),()=>T(()=>import(`../nodes/2.CWCgggRE.js`),__vite__mapDeps([9,1,2,10]),import.meta.url),()=>T(()=>import(`../nodes/3.s6beQKPO.js`),__vite__mapDeps([11,1,8,2,10]),import.meta.url),()=>T(()=>import(`../nodes/4._U3pMj5x.js`),__vite__mapDeps([12,1,7,8,13,14,2,15,6,3,16,17,18,19,20,21]),import.meta.url),()=>T(()=>import(`../nodes/5.CUEzVL3V.js`),__vite__mapDeps([22,1,2,15,7,8,13,6,3,16,17,18,23]),import.meta.url),()=>T(()=>import(`../nodes/6.BL78XiLU.js`),__vite__mapDeps([24,1,6,7,8,2,15,13,3,16,17,18,25]),import.meta.url),()=>T(()=>import(`../nodes/7.F5ztMZTo.js`),__vite__mapDeps([26,1,7,8,13,6,14,2,15,3,16,17,18,19,27]),import.meta.url),()=>T(()=>import(`../nodes/8.xcsOM3k5.js`),__vite__mapDeps([28,1,7,8,13,2,16,17,29]),import.meta.url),()=>T(()=>import(`../nodes/9.OQRL7WC0.js`),__vite__mapDeps([30,1,2,20,16,17,31]),import.meta.url),()=>T(()=>import(`../nodes/10.BzTAm6YU.js`),__vite__mapDeps([32,1,2,33]),import.meta.url)],M=[],N={"/":[3],"/admin":[4],"/admin/endpoints":[5],"/advanced":[6],"/chat":[7],"/login":[-9],"/setup":[9,[2]],"/splash":[-11]},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{n as e,s as t}from"../chunks/D2dFPcAY.js";export{t as load_css,e as start};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,C as r,E as i,F as a,G as o,I as s,K as c,L as l,M as u,N as d,P as f,Q as p,Z as m,ct as h,f as g,ft as _,j as v,k as y,nt as b,pt as x,r as S,st as C,tt as w,y as T}from"../chunks/BBI__kVO.js";import"../chunks/xihTtKlq.js";import{d as E,t as D,u as O}from"../chunks/
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,E as i,F as a,G as o,I as s,K as c,L as l,M as u,N as d,P as f,Q as p,Z as m,ct as h,f as g,ft as _,j as v,k as y,nt as b,pt as x,r as S,st as C,tt as w,y as T}from"../chunks/BBI__kVO.js";import"../chunks/xihTtKlq.js";import{d as E,t as D,u as O}from"../chunks/i-u-oQAW.js";var k=d(`<a target="_blank" rel="noopener noreferrer" class="update-banner-link svelte-1u6ojbd">Download</a>`),A=d(`<div class="update-banner svelte-1u6ojbd" role="status"><span class="update-banner-icon svelte-1u6ojbd" aria-hidden="true"><svg width="16" height="16" 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></span> <span class="update-banner-text svelte-1u6ojbd">A new version of OpenPalm is available — <strong> </strong> <!></span> <!> <button type="button" class="update-banner-dismiss svelte-1u6ojbd" aria-label="Dismiss">×</button></div>`);function j(r,i){h(i,!0);let s=b(null),c=b(!1);function d(e){return`openpalm.updateBanner.dismissed.${e}`}S(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(d(t.latestVersion)))return;w(s,t,!0)}catch{}});function f(){n(s)?.latestVersion&&typeof localStorage<`u`&&localStorage.setItem(d(n(s).latestVersion),`1`),w(c,!0)}var x=u(),T=p(x),E=r=>{var i=A(),c=e(m(i),2),u=e(m(c)),d=m(u);_(u);var p=e(u,2),h=e=>{var r=a();o(()=>t(r,`(you have v${n(s).currentVersion??``})`)),v(e,r)};y(p,e=>{n(s).currentVersion&&e(h)}),_(c);var b=e(c,2),x=e=>{var t=k();o(()=>g(t,`href`,n(s).latestUrl)),v(e,t)};y(b,e=>{n(s).latestUrl&&e(x)});var S=e(b,2);_(i),o(()=>t(d,`v${n(s).latestVersion??``}`)),l(`click`,S,f),v(r,i)};y(T,e=>{n(s)&&!n(c)&&e(E)}),v(r,x),C()}s([`click`]);var M=f(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>`),N=f(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>`),P=f(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>`),F=d(`<div><span class="toast-icon svelte-c82lj3" aria-hidden="true"><!> <span class="sr-only svelte-c82lj3"> </span></span> <span class="toast-message svelte-c82lj3"> </span> <button type="button" class="toast-dismiss svelte-c82lj3" aria-label="Dismiss">×</button></div>`),I=d(`<div class="toast-stack svelte-c82lj3" aria-live="polite"></div>`);function L(r,a){h(a,!0);let s=null;c(()=>{let e=O.errorMessage;e&&(s=E.push(`error`,e,{replaceId:s??void 0}),O.errorMessage=``)});function d(e){E.dismiss(e.id),e.id===s&&(s=null)}function f(e){return e.kind===`success`?`Success`:e.kind===`error`?`Error`:`Notice`}var b=u(),x=p(b),S=r=>{var a=I();i(a,21,()=>E.toasts,e=>e.id,(r,i)=>{var a=F(),s=m(a),c=m(s),u=e=>{v(e,M())},p=e=>{v(e,N())},h=e=>{v(e,P())};y(c,e=>{n(i).kind===`success`?e(u):n(i).kind===`error`?e(p,1):e(h,-1)});var b=e(c,2),x=m(b);_(b),_(s);var S=e(s,2),C=m(S,!0);_(S);var w=e(S,2);_(a),o(e=>{T(a,1,`toast toast-${n(i).kind??``}`,`svelte-c82lj3`),g(a,`role`,n(i).kind===`error`?`alert`:`status`),g(a,`aria-live`,n(i).kind===`error`?`assertive`:`polite`),t(x,`${e??``}:`),t(C,n(i).message)},[()=>f(n(i))]),l(`click`,w,()=>d(n(i))),v(r,a)}),_(a),v(r,a)};y(x,e=>{E.toasts.length>0&&e(S)}),v(r,b),C()}s([`click`]);var R=d(`<!> <!> <!>`,1);function z(t,n){h(n,!0),S(()=>{D.init()});var i=R(),a=p(i);j(a,{});var o=e(a,2);r(o,()=>n.children??x),L(e(o,2),{}),v(t,i),C()}export{z as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,G as n,N as r,Q as i,Z as a,ct as o,ft as s,j as c,st as l}from"../chunks/BBI__kVO.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/
|
|
1
|
+
import{$ as e,A as t,G as n,N as r,Q as i,Z as a,ct as o,ft as s,j as c,st as l}from"../chunks/BBI__kVO.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/Cub6afmL.js";var d=r(`<h1> </h1> <p> </p>`,1);function f(r,f){o(f,!0);var p=d(),m=i(p),h=a(m,!0);s(m);var g=e(m,2),_=a(g,!0);s(g),n(()=>{t(h,u.status),t(_,u.error?.message)}),c(r,p),l()}export{f as component};
|
|
Binary file
|
|
Binary file
|