@openpalm/ui 0.11.0-rc.10 → 0.11.0-rc.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/assets/{0.p3iHeEvq.css → 0.DeiejCD_.css} +1 -1
- package/build/client/_app/immutable/assets/0.DeiejCD_.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DeiejCD_.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.B6B5gle-.css +1 -0
- package/build/client/_app/immutable/assets/4.B6B5gle-.css.br +0 -0
- package/build/client/_app/immutable/assets/4.B6B5gle-.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.CzC8JVIO.css +1 -0
- package/build/client/_app/immutable/assets/7.CzC8JVIO.css.br +0 -0
- package/build/client/_app/immutable/assets/7.CzC8JVIO.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.cpz_TytB.css +1 -0
- package/build/client/_app/immutable/assets/8.cpz_TytB.css.br +0 -0
- package/build/client/_app/immutable/assets/8.cpz_TytB.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate._tqG1OIX.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate._tqG1OIX.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate._tqG1OIX.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.DCz_KE2O.css +1 -0
- package/build/client/_app/immutable/assets/ModeSwitch.DCz_KE2O.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.DCz_KE2O.css.gz +0 -0
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css +1 -0
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css.br +2 -0
- package/build/client/_app/immutable/assets/Spinner.BtzHSsat.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Bg12AT7s.js +1 -0
- package/build/client/_app/immutable/chunks/Bg12AT7s.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bg12AT7s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cc6wg7UJ.js +1 -0
- package/build/client/_app/immutable/chunks/Cc6wg7UJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cc6wg7UJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BOq4Y36A.js → IwBvukWu.js} +1 -1
- package/build/client/_app/immutable/chunks/IwBvukWu.js.br +0 -0
- package/build/client/_app/immutable/chunks/IwBvukWu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bdvti_5C.js → KDj8brgV.js} +1 -1
- package/build/client/_app/immutable/chunks/KDj8brgV.js.br +0 -0
- package/build/client/_app/immutable/chunks/KDj8brgV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_Mh7QHoq.js +5 -0
- package/build/client/_app/immutable/chunks/_Mh7QHoq.js.br +0 -0
- package/build/client/_app/immutable/chunks/_Mh7QHoq.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.Coaz9qVz.js → app.31Qh0FBr.js} +2 -2
- package/build/client/_app/immutable/entry/app.31Qh0FBr.js.br +0 -0
- package/build/client/_app/immutable/entry/app.31Qh0FBr.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CLFcMUCh.js +1 -0
- package/build/client/_app/immutable/entry/start.CLFcMUCh.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CLFcMUCh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.B_uBaZbG.js +1 -0
- package/build/client/_app/immutable/nodes/0.B_uBaZbG.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.B_uBaZbG.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.DpM9NN8J.js → 1.CGikJOPd.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CGikJOPd.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CGikJOPd.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.Dtc8svhB.js +18 -0
- package/build/client/_app/immutable/nodes/4.Dtc8svhB.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.Dtc8svhB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.kb9iVd3S.js → 5.D8hNvEy3.js} +1 -1
- package/build/client/_app/immutable/nodes/5.D8hNvEy3.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.D8hNvEy3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DtmDzmki.js → 6.D8kKb3mt.js} +1 -1
- package/build/client/_app/immutable/nodes/6.D8kKb3mt.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D8kKb3mt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.DxsXmPb9.js +15 -0
- package/build/client/_app/immutable/nodes/7.DxsXmPb9.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.DxsXmPb9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.XhVG6Ups.js +2 -0
- package/build/client/_app/immutable/nodes/8.XhVG6Ups.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.XhVG6Ups.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-TTdZdv8o.js → 0-DD6GXiYJ.js} +4 -4
- package/build/server/chunks/{0-TTdZdv8o.js.map → 0-DD6GXiYJ.js.map} +1 -1
- package/build/server/chunks/1-4NrqSS1D.js +9 -0
- package/build/server/chunks/{1-XPMbcj69.js.map → 1-4NrqSS1D.js.map} +1 -1
- package/build/server/chunks/{2-C2y4ydWU.js → 2-DxxdrqNA.js} +2 -2
- package/build/server/chunks/{2-C2y4ydWU.js.map → 2-DxxdrqNA.js.map} +1 -1
- package/build/server/chunks/4-CKoyX1W2.js +9 -0
- package/build/server/chunks/4-CKoyX1W2.js.map +1 -0
- package/build/server/chunks/5-D2w_TBBj.js +9 -0
- package/build/server/chunks/5-D2w_TBBj.js.map +1 -0
- package/build/server/chunks/6-n5Ll7i1v.js +9 -0
- package/build/server/chunks/6-n5Ll7i1v.js.map +1 -0
- package/build/server/chunks/7-B0hhVkh-.js +9 -0
- package/build/server/chunks/7-B0hhVkh-.js.map +1 -0
- package/build/server/chunks/8-B-zk2XHy.js +9 -0
- package/build/server/chunks/8-B-zk2XHy.js.map +1 -0
- package/build/server/chunks/{AuthGate-UhfWI3rb.js → AuthGate-BWjATBSf.js} +44 -41
- package/build/server/chunks/AuthGate-BWjATBSf.js.map +1 -0
- package/build/server/chunks/ModeSwitch-BqMvBD68.js +15 -0
- package/build/server/chunks/ModeSwitch-BqMvBD68.js.map +1 -0
- package/build/server/chunks/Spinner-Bk6e83RX.js +12 -0
- package/build/server/chunks/Spinner-Bk6e83RX.js.map +1 -0
- package/build/server/chunks/VoiceProfileSelector-CbOV_v5A.js +306 -0
- package/build/server/chunks/VoiceProfileSelector-CbOV_v5A.js.map +1 -0
- package/build/server/chunks/{_layout.svelte-B93aaRP_.js → _layout.svelte-BV7A7zff.js} +2 -2
- package/build/server/chunks/{_layout.svelte-B93aaRP_.js.map → _layout.svelte-BV7A7zff.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-CcloHuB_.js → _layout.svelte-BdLdrTrZ.js} +8 -8
- package/build/server/chunks/_layout.svelte-BdLdrTrZ.js.map +1 -0
- package/build/server/chunks/_page.svelte-B--A9am9.js +2734 -0
- package/build/server/chunks/_page.svelte-B--A9am9.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CnZsPxgJ.js → _page.svelte-B2VQpNfK.js} +25 -22
- package/build/server/chunks/_page.svelte-B2VQpNfK.js.map +1 -0
- package/build/server/chunks/{_page.svelte-9RQ3rYiU.js → _page.svelte-BDf8s174.js} +8 -7
- package/build/server/chunks/{_page.svelte-9RQ3rYiU.js.map → _page.svelte-BDf8s174.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-pxsCzB7-.js → _page.svelte-BL-JtRyh.js} +7 -6
- package/build/server/chunks/{_page.svelte-pxsCzB7-.js.map → _page.svelte-BL-JtRyh.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D0gMlmzQ.js → _page.svelte-DLAHj-kk.js} +6 -14
- package/build/server/chunks/_page.svelte-DLAHj-kk.js.map +1 -0
- package/build/server/chunks/{dev-DjANv7AF.js → dev-B6xUe35c.js} +23 -2
- package/build/server/chunks/{dev-DjANv7AF.js.map → dev-B6xUe35c.js.map} +1 -1
- package/build/server/chunks/{error.svelte-ByNznOuj.js → error.svelte-CUl6zTha.js} +4 -4
- package/build/server/chunks/{error.svelte-ByNznOuj.js.map → error.svelte-CUl6zTha.js.map} +1 -1
- package/build/server/chunks/{internal-CeK24Lte.js → internal-DYJeWBcA.js} +3 -3
- package/build/server/chunks/{internal-CeK24Lte.js.map → internal-DYJeWBcA.js.map} +1 -1
- package/build/server/chunks/{state-D7JS-l_D.js → state-VFrVFHCZ.js} +3 -3
- package/build/server/chunks/{state-D7JS-l_D.js.map → state-VFrVFHCZ.js.map} +1 -1
- package/build/server/chunks/{theme-state.svelte-PtPMmKGN.js → theme-state.svelte-DvRrYp_f.js} +12 -2
- package/build/server/chunks/theme-state.svelte-DvRrYp_f.js.map +1 -0
- package/build/server/index.js +2 -2
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +9 -9
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css +0 -1
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css +0 -1
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css +0 -1
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css +0 -1
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +0 -1
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js +0 -5
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js +0 -1
- package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js +0 -1
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +0 -1
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js +0 -1
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +0 -18
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +0 -15
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +0 -2
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
- package/build/server/chunks/1-XPMbcj69.js +0 -9
- package/build/server/chunks/4-v8u4eatk.js +0 -9
- package/build/server/chunks/4-v8u4eatk.js.map +0 -1
- package/build/server/chunks/5-BkUoZ2K4.js +0 -9
- package/build/server/chunks/5-BkUoZ2K4.js.map +0 -1
- package/build/server/chunks/6-Cep4AGS2.js +0 -9
- package/build/server/chunks/6-Cep4AGS2.js.map +0 -1
- package/build/server/chunks/7-DOEFGynd.js +0 -9
- package/build/server/chunks/7-DOEFGynd.js.map +0 -1
- package/build/server/chunks/8-EJHw3wqt.js +0 -9
- package/build/server/chunks/8-EJHw3wqt.js.map +0 -1
- package/build/server/chunks/AuthGate-UhfWI3rb.js.map +0 -1
- package/build/server/chunks/ModeSwitch-S3I-WINb.js +0 -15
- package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +0 -1
- package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +0 -1
- package/build/server/chunks/_page.svelte-CKARhLvT.js +0 -408
- package/build/server/chunks/_page.svelte-CKARhLvT.js.map +0 -1
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +0 -1
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +0 -1
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,F as r,I as i,J as a,N as o,O as s,P as c,Q as l,V as u,X as d,Y as f,Z as p,ct as m,d as h,et as g,it as _,j as v,l as y,n as b,q as x,r as S,rt as C,s as w,st as T,u as E,v as D,w as O}from"./BwTF6U35.js";import"./xihTtKlq.js";import{B as k,V as A,X as j,Y as M,a as N,c as P,g as F,i as I,k as L,l as R,n as ee,o as te,r as ne,s as z,t as B,u as V}from"./DpdFx-ph.js";import{t as H}from"./IwBvukWu.js";import{t as U}from"./Cc6wg7UJ.js";var W=v(`<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>`),re=v(`<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>`),G=e(`<button type="button" class="theme-toggle svelte-1y2534t"><!></button>`);function K(e,t){_(t,!0);let r=g(()=>B.resolved===`dark`),a=g(()=>i(r)?`Switch to light mode`:`Switch to dark mode`);function o(){B.toggle()}var l=G(),d=x(l),f=e=>{s(e,W())},p=e=>{s(e,re())};n(d,e=>{i(r)?e(f):e(p,-1)}),m(l),u(()=>{h(l,`aria-label`,i(a)),h(l,`aria-pressed`,i(r)),h(l,`title`,i(a))}),c(`click`,l,o),s(e,l),C()}o([`click`]);var q=1e3,J=3e4,Y=`/proxy/assistant/event`;function X(e){let t={},n=[];for(let r of e.split(`
|
|
2
|
+
`))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
|
|
3
|
+
`)),t}function ie(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 ae(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(Y,{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
|
+
|
|
5
|
+
`);o=i.pop()??``;for(let t of i){if(!t)continue;let n=X(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}ie(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(q*2**Math.max(0,r-1),J)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=l(d(new Map));get byEndpoint(){return i(this.#e)}set byEndpoint(e){p(this.#e,e,!0)}#t=l(`default`);get activeEndpointId(){return i(this.#t)}set activeEndpointId(e){p(this.#t,e,!0)}#n=l(d([]));get entries(){return i(this.#n)}set entries(e){p(this.#n,e,!0)}#r=l(!1);get entriesLoading(){return i(this.#r)}set entriesLoading(e){p(this.#r,e,!0)}#i=l(!1);get sending(){return i(this.#i)}set sending(e){p(this.#i,e,!0)}#a=l(``);get error(){return i(this.#a)}set error(e){p(this.#a,e,!0)}#o=l(!1);get liveConnected(){return i(this.#o)}set liveConnected(e){p(this.#o,e,!0)}_unsubscribeEvents=null;#s=g(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return i(this.#s)}set activeSessionId(e){p(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...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)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),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=ae({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)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 A();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.entriesLoading=!0,this.error=``;try{let n=await k(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 F(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)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.error=``,this.sending=!0;try{let e=(await M(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}V.ttsSupported&&V.ttsAutoEnabled&&e&&te(e)}catch(e){let t=e;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.`}finally{this.sending=!1}}reset(){if(R(),this.entries=[],this.error=``,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}},$=new class{#e=l(d([]));get endpoints(){return i(this.#e)}set endpoints(e){p(this.#e,e,!0)}#t=l(`default`);get activeId(){return i(this.#t)}set activeId(e){p(this.#t,e,!0)}#n=l(!1);get loading(){return i(this.#n)}set loading(e){p(this.#n,e,!0)}#r=l(!1);get loaded(){return i(this.#r)}set loaded(e){p(this.#r,e,!0)}#i=l(``);get error(){return i(this.#i)}set error(e){p(this.#i,e,!0)}#a=g(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return i(this.#a)}set active(e){p(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 L();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(Q.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 j(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},oe=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-48xr05" aria-hidden="true"> </span> <span class="menu-item-text svelte-48xr05"><span class="menu-item-label svelte-48xr05"> </span> <span class="menu-item-url svelte-48xr05"> </span></span></button>`),se=e(`<div class="switcher svelte-48xr05"><button type="button" class="trigger svelte-48xr05" id="endpoint-trigger" aria-haspopup="menu"><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> <div class="menu svelte-48xr05" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-48xr05">Assistant endpoint</div> <!> <div class="menu-divider svelte-48xr05"></div> <a class="menu-item link svelte-48xr05" href="/admin/endpoints" role="menuitem">Manage endpoints…</a></div></div>`);function ce(e,n){_(n,!0);let a=`endpoint-menu`,o=l(!1),d=l(!1),v=g(()=>$.active),y=g(()=>$.endpoints),b=g(()=>i(y).length>1);S(()=>{$.load()});function w(e){i(b)||(e.preventDefault(),window.location.href=`/admin/endpoints`)}async function E(e){if(!i(o)&&e!==i(v)?.id){p(o,!0);try{await $.activate(e)}catch{}finally{p(o,!1)}}}function k(e){p(d,e.newState===`open`)}var A=se(),j=x(A);h(j,`aria-controls`,a);var M=f(x(j),4),N=x(M,!0);m(M),T(2),m(j);var P=f(j,2);h(P,`id`,a),O(f(x(P),2),17,()=>i(y),e=>e.id,(e,n)=>{var r=oe();let l;h(r,`popovertarget`,a);var d=x(r),p=x(d,!0);m(d);var g=f(d,2),_=x(g),y=x(_,!0);m(_);var b=f(_,2),S=x(b,!0);m(b),m(g),m(r),u(()=>{l=D(r,1,`menu-item svelte-48xr05`,null,l,{active:i(n).id===i(v)?.id}),h(r,`aria-checked`,i(n).id===i(v)?.id),r.disabled=i(o),t(p,i(n).id===i(v)?.id?`●`:`○`),t(y,i(n).label),t(S,i(n).url)}),c(`click`,r,()=>E(i(n).id)),s(e,r)}),T(4),m(P),m(A),u(()=>{h(j,`popovertarget`,i(b)?a:void 0),h(j,`aria-expanded`,i(d)),h(j,`aria-label`,i(v)?`Assistant endpoint: ${i(v).label}`:`Assistant endpoints`),h(j,`title`,i(v)?`Connected to: ${i(v).label} (${i(v).url})`:`Assistant endpoints`),j.disabled=i(o)||$.loading,t(N,i(v)?.label??`Endpoint…`)}),c(`click`,j,w),r(`toggle`,P,k),s(e,A),C()}o([`click`]);var le=e(`<div class="notice svelte-cihcnl">Wait for the current reply to finish before switching.</div>`),ue=e(`<div class="empty svelte-cihcnl"><!> <span>Loading sessions…</span></div>`),de=e(`<div class="error svelte-cihcnl"><span class="svelte-cihcnl"> </span> <button type="button" class="retry-btn svelte-cihcnl">Retry</button></div>`),fe=e(`<div class="empty svelte-cihcnl">No sessions yet. Start the first one.</div>`),pe=e(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true"> </span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl"> </span> <span class="menu-item-meta svelte-cihcnl"> </span></span></button>`),me=e(`<button type="button" class="show-all svelte-cihcnl"> </button>`),he=e(`<div class="session-list svelte-cihcnl" role="none"></div> <!>`,1),ge=e(`<div class="picker svelte-cihcnl"><button type="button" class="trigger svelte-cihcnl" id="session-trigger" aria-haspopup="menu" 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> <div class="menu svelte-cihcnl" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-cihcnl"> </div> <!> <button type="button" class="menu-item new-btn svelte-cihcnl" role="menuitem" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true">+</span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl">New session</span></span></button> <div class="menu-divider svelte-cihcnl"></div> <!></div></div>`);function _e(e,o){_(o,!0);let d=`session-menu`,v=l(!1),y=l(!1),b=g(()=>$.active),S=g(()=>i(b)?Q.byEndpoint.get(i(b).id)??null:null),w=g(()=>i(S)?.sessions??[]),E=g(()=>i(S)?.sessionsLoading??!1),k=g(()=>i(S)?.sessionsError??``),A=g(()=>Q.activeSessionId),j=g(()=>i(w).find(e=>e.id===i(A))??null),M=g(()=>i(j)?i(j).title||`Untitled · ${I(i(j).updatedAt)}`:`New session`),N=g(()=>Q.liveConnected),P=g(()=>i(v)?i(w):i(w).slice(0,50)),F=g(()=>Math.max(0,i(w).length-50));function I(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`}function L(){i(b)&&!i(S)?.sessionsLoaded&&!i(E)&&Q.loadSessions()}async function R(e){Q.sending||await Q.openSession(e)}async function ee(){Q.sending||await Q.startNewSession()}async function te(){await Q.loadSessions()}function ne(e){p(y,e.newState===`open`)}var z=ge(),B=x(z);h(B,`popovertarget`,d),h(B,`aria-controls`,d);var V=f(x(B),2);let H;var W=f(V,2),re=x(W,!0);m(W),T(2),m(B);var G=f(B,2);h(G,`id`,d);var K=x(G),q=x(K);m(K);var J=f(K,2),Y=e=>{s(e,le())};n(J,e=>{Q.sending&&e(Y)});var X=f(J,2);h(X,`popovertarget`,d);var ie=f(X,4),ae=e=>{var t=ue();U(x(t),{size:12}),T(2),m(t),s(e,t)},Z=e=>{var n=de(),r=x(n),a=x(r,!0);m(r);var o=f(r,2);m(n),u(()=>t(a,i(k))),c(`click`,o,te),s(e,n)},oe=e=>{s(e,fe())},se=e=>{var r=he(),o=a(r);O(o,21,()=>i(P),e=>e.id,(e,n)=>{var r=pe();let a;h(r,`popovertarget`,d);var o=x(r),l=x(o,!0);m(o);var p=f(o,2),g=x(p),_=x(g,!0);m(g);var v=f(g,2),y=x(v,!0);m(v),m(p),m(r),u(e=>{a=D(r,1,`menu-item session-item svelte-cihcnl`,null,a,{active:i(n).id===i(A)}),h(r,`aria-checked`,i(n).id===i(A)),r.disabled=Q.sending,t(l,i(n).id===i(A)?`●`:`○`),t(_,i(n).title||`Untitled`),t(y,e)},[()=>I(i(n).updatedAt)]),c(`click`,r,()=>R(i(n).id)),s(e,r)}),m(o);var l=f(o,2),g=e=>{var n=me(),r=x(n);m(n),u(()=>t(r,`Show all (${i(F)??``} more)`)),c(`click`,n,()=>p(v,!0)),s(e,n)};n(l,e=>{!i(v)&&i(F)>0&&e(g)}),s(e,r)};n(ie,e=>{i(E)?e(ae):i(k)?e(Z,1):i(w).length===0?e(oe,2):e(se,-1)}),m(G),m(z),u(()=>{h(B,`aria-expanded`,i(y)),h(B,`title`,i(M)),H=D(V,1,`dot svelte-cihcnl`,null,H,{connected:i(N)}),h(V,`title`,i(N)?`Live updates connected`:`Live updates disconnected`),t(re,i(M)),t(q,`Sessions on ${i(b)?.label??`this endpoint`??``}`),X.disabled=Q.sending}),c(`click`,B,L),r(`toggle`,G,ne),c(`click`,X,ee),s(e,z),C()}o([`click`]);var ve=e(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),ye=e(`<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>`),be=v(`<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),xe=v(`<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),Se=e(`<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>`),Ce=v(`<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>`),we=e(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),Te=e(`<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),Ee=v(`<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>`),De=e(`<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 Oe(e,r){_(r,!0);let o=l(!1);S(()=>{ne().then(()=>{p(o,!0)})}),b(()=>{ee()});let d=g(()=>i(o)&&V.sttEngine!==`disabled`&&V.sttSupported),v=g(()=>i(o)&&V.ttsSupported),y=g(()=>V.status===`recording`),w=g(()=>V.status===`transcribing`),E=g(()=>!i(y)&&!i(w)&&Q.sending),O=g(()=>V.status===`speaking`);function k(){if(i(y)){P();return}i(w)||(R(),z(e=>{let t=e.trim();t&&Q.send(t)}))}function A(){N(!V.ttsAutoEnabled)}var j=De(),M=x(j),F=e=>{var n=ve(),r=x(n,!0);m(n),u(e=>{h(n,`title`,V.interimTranscript),t(r,e)},[()=>V.interimTranscript.length>48?V.interimTranscript.slice(0,48)+`…`:V.interimTranscript]),s(e,n)};n(M,e=>{i(y)&&V.interimTranscript&&e(F)});var L=f(M,2),te=e=>{var t=ye();c(`click`,t,()=>I()),s(e,t)};n(L,e=>{V.autoplayBlocked&&e(te)});var B=f(L,2),H=e=>{var t=Se();let r;var o=x(t),l=f(x(o)),d=e=>{var t=be(),n=a(t);let r;var o=f(n);let c;u(()=>{r=D(n,0,`svelte-7elv0w`,null,r,{"wave-anim":i(O)}),c=D(o,0,`svelte-7elv0w`,null,c,{"wave-anim-2":i(O)})}),s(e,t)},p=e=>{var t=xe();T(),s(e,t)};n(l,e=>{V.ttsAutoEnabled?e(d):e(p,-1)}),m(o),m(t),u(()=>{r=D(t,1,`voice-btn svelte-7elv0w`,null,r,{"voice-btn-on":V.ttsAutoEnabled,"voice-btn-speaking":i(O)}),h(t,`aria-label`,V.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),h(t,`aria-pressed`,V.ttsAutoEnabled),h(t,`title`,i(O)?`Speaking — click to turn off spoken responses`:V.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),c(`click`,t,A),s(e,t)};n(B,e=>{i(v)&&e(H)});var U=f(B,2);let W;var re=x(U),G=e=>{s(e,Ce())},K=e=>{s(e,we())},q=e=>{var t=Te();T(2),s(e,t)},J=e=>{s(e,Ee())};n(re,e=>{i(d)?i(w)||i(E)?e(K,1):i(y)?e(q,2):e(J,-1):e(G)}),m(U);var Y=f(U,2),X=x(Y,!0);m(Y),m(j),u(()=>{W=D(U,1,`voice-btn svelte-7elv0w`,null,W,{"voice-btn-active":i(y),"voice-btn-processing":i(E)||i(w),"voice-btn-disabled":!i(d)}),U.disabled=!i(d)||i(E),h(U,`aria-label`,i(d)?i(y)?`Stop recording`:i(w)?`Transcribing…`:i(E)?`Sending message…`:`Start recording`:`Voice input unavailable`),h(U,`aria-pressed`,i(y)),h(U,`title`,i(d)?i(y)?`Stop recording`:i(w)?`Transcribing…`:i(E)?`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(X,i(y)&&V.interimTranscript?V.interimTranscript:i(y)?`Recording`:i(w)?`Transcribing`:i(E)?`Sending message to assistant`:i(O)?`Assistant is speaking`:V.ttsAutoEnabled?`Spoken responses on`:``)}),c(`click`,U,k),s(e,j),C()}o([`click`]);var ke=e(`<a href="/admin" aria-label="Settings & administration" title="Manage this machine"><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" class="svelte-66bgq1"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a>`),Ae=e(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" href="/chat" 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 je(e,t){_(t,!0);let r=g(()=>H.url?.pathname??``),a=g(()=>i(r)===`/admin`||i(r).startsWith(`/admin/`)),o=g(()=>{let e=$.active?.url??``;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 c=Ae(),l=x(c),d=f(x(l),2),p=x(d),v=e=>{var t=ke();let n;u(()=>{n=D(t,1,`gear-btn svelte-66bgq1`,null,n,{active:i(a)}),h(t,`aria-current`,i(a)?`page`:void 0)}),s(e,t)};n(p,e=>{i(o)&&e(v)});var y=f(p,2);ce(y,{});var b=f(y,2);_e(b,{});var S=f(b,2);K(S,{}),Oe(f(S,2),{}),m(d),m(l),m(c),s(e,c),C()}var Me=v(`<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="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line><path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"></path></svg>`),Ne=v(`<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="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),Pe=e(`<p class="auth-error svelte-zhbyfn" role="alert"> </p>`),Fe=e(`<main class="auth-gate svelte-zhbyfn" aria-label="Admin login gate"><section class="auth-card svelte-zhbyfn"><div class="auth-brand svelte-zhbyfn"><span class="brand-icon svelte-zhbyfn"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-zhbyfn"/></span> <div><h1 class="svelte-zhbyfn">OpenPalm Console</h1> <p class="svelte-zhbyfn">Enter your admin password to unlock the control plane.</p></div></div> <form class="auth-form svelte-zhbyfn"><label for="admin-token" class="svelte-zhbyfn">Admin Password</label> <input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-zhbyfn" tabindex="-1" aria-hidden="true"/> <div class="token-input-wrapper svelte-zhbyfn"><input id="admin-token" name="admin-token" placeholder="Enter admin password" autocomplete="current-password" class="svelte-zhbyfn"/> <button type="button" class="btn-toggle svelte-zhbyfn"><!></button></div> <!> <button class="btn btn-primary" type="submit"><!> Unlock Console</button></form></section></main>`);function Ie(e,a){_(a,!0);let o=l(``),d=l(!1),g=l(void 0);async function v(e){e.preventDefault();let t=i(o).trim();if(!t||a.loading){i(g)?.focus();return}await a.onSuccess(t)||(i(g)?.focus(),i(g)?.select())}var b=Fe(),S=x(b),D=f(x(S),2),O=f(f(x(D),2),2),k=x(O);E(k),w(k,e=>p(g,e),()=>i(g));var A=f(k,2),j=x(A),M=e=>{s(e,Me())},N=e=>{s(e,Ne())};n(j,e=>{i(d)?e(M):e(N,-1)}),m(A),m(O);var P=f(O,2),F=e=>{var n=Pe(),r=x(n,!0);m(n),u(()=>t(r,a.error)),s(e,n)};n(P,e=>{a.error&&e(F)});var I=f(P,2),L=x(I),R=e=>{U(e,{})};n(L,e=>{a.loading&&e(R)}),T(),m(I),m(D),m(S),m(b),u(e=>{h(k,`type`,i(d)?`text`:`password`),h(A,`aria-label`,i(d)?`Hide token`:`Show token`),I.disabled=e},[()=>a.loading||!i(o).trim()]),r(`submit`,D,v),y(k,()=>i(o),e=>p(o,e)),c(`click`,A,()=>p(d,!i(d))),s(e,b),C()}o([`click`]);export{Q as i,je as n,$ as r,Ie as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.
|
|
2
|
-
import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,O as s,Q as c,R as l,U as u,V as d,Y as f,Z as p,a as m,b as h,ct as g,et as _,i as v,it as y,k as b,q as x,r as S,rt as C,s as w}from"../chunks/BwTF6U35.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=e(`<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=e(`<!> <!>`,1);function k(e,v){y(v,!0);let T=m(v,`components`,23,()=>[]),E=m(v,`data_0`,3,null),k=m(v,`data_1`,3,null),A=m(v,`data_2`,3,null);u(()=>v.stores.page.set(v.page)),r(()=>{v.stores,v.page,v.constructors,T(),v.form,E(),k(),A(),v.stores.page.notify()});let j=c(!1),M=c(!1),N=c(null);S(()=>{let e=v.stores.page.subscribe(()=>{i(j)&&(p(M,!0),l().then(()=>{p(N,document.title||`untitled page`,!0)}))});return p(j,!0),e});let P=_(()=>v.constructors[2]);var F=O(),I=a(F),L=e=>{let t=_(()=>v.constructors[0]);var r=b();h(a(r),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var r=b(),o=a(r),c=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var n=b();h(a(n),()=>i(P),(e,t)=>{w(t(e,{get data(){return A()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),s(e,n)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)},l=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)};n(o,e=>{v.constructors[2]?e(c):e(l,-1)}),s(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,r)},R=e=>{let t=_(()=>v.constructors[0]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)};n(I,e=>{v.constructors[1]?e(L):e(R,-1)});var z=f(I,2),B=e=>{var r=D(),a=x(r),c=e=>{var n=o();d(()=>t(n,i(N))),s(e,n)};n(a,e=>{i(M)&&e(c)}),g(r),s(e,r)};n(z,e=>{i(j)&&e(B)}),s(e,F),C()}var A=v(k),j=[()=>T(()=>import(`../nodes/0.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.B_uBaZbG.js","../chunks/BwTF6U35.js","../chunks/xihTtKlq.js","../chunks/DpdFx-ph.js","../assets/0.DeiejCD_.css","../nodes/1.CGikJOPd.js","../chunks/IwBvukWu.js","../chunks/KDj8brgV.js","../chunks/BuFlayix.js","../nodes/2.ojh8oE7F.js","../chunks/os2NZ37U.js","../nodes/3.DeAC3yVJ.js","../nodes/4.Dtc8svhB.js","../chunks/_Mh7QHoq.js","../chunks/Cc6wg7UJ.js","../assets/Spinner.BtzHSsat.css","../assets/AuthGate._tqG1OIX.css","../chunks/CJkMgfFh.js","../assets/VoiceProfileSelector.CM_o2XIa.css","../assets/4.B6B5gle-.css","../nodes/5.D8hNvEy3.js","../assets/5.Cj0Mk9Gn.css","../nodes/6.D8kKb3mt.js","../chunks/Bg12AT7s.js","../assets/ModeSwitch.DCz_KE2O.css","../assets/6.B0Z8tVIH.css","../nodes/7.DxsXmPb9.js","../assets/7.CzC8JVIO.css","../nodes/8.XhVG6Ups.js","../assets/8.cpz_TytB.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,O as s,Q as c,R as l,U as u,V as d,Y as f,Z as p,a as m,b as h,ct as g,et as _,i as v,it as y,k as b,q as x,r as S,rt as C,s as w}from"../chunks/BwTF6U35.js";import{t as T}from"../chunks/kNaey6uv.js";import"../chunks/xihTtKlq.js";var E={},D=e(`<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=e(`<!> <!>`,1);function k(e,v){y(v,!0);let T=m(v,`components`,23,()=>[]),E=m(v,`data_0`,3,null),k=m(v,`data_1`,3,null),A=m(v,`data_2`,3,null);u(()=>v.stores.page.set(v.page)),r(()=>{v.stores,v.page,v.constructors,T(),v.form,E(),k(),A(),v.stores.page.notify()});let j=c(!1),M=c(!1),N=c(null);S(()=>{let e=v.stores.page.subscribe(()=>{i(j)&&(p(M,!0),l().then(()=>{p(N,document.title||`untitled page`,!0)}))});return p(j,!0),e});let P=_(()=>v.constructors[2]);var F=O(),I=a(F),L=e=>{let t=_(()=>v.constructors[0]);var r=b();h(a(r),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var r=b(),o=a(r),c=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params},children:(e,t)=>{var n=b();h(a(n),()=>i(P),(e,t)=>{w(t(e,{get data(){return A()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),s(e,n)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)},l=e=>{let t=_(()=>v.constructors[1]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return k()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),s(e,n)};n(o,e=>{v.constructors[2]?e(c):e(l,-1)}),s(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,r)},R=e=>{let t=_(()=>v.constructors[0]);var n=b();h(a(n),()=>i(t),(e,t)=>{w(t(e,{get data(){return E()},get form(){return v.form},get params(){return v.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),s(e,n)};n(I,e=>{v.constructors[1]?e(L):e(R,-1)});var z=f(I,2),B=e=>{var r=D(),a=x(r),c=e=>{var n=o();d(()=>t(n,i(N))),s(e,n)};n(a,e=>{i(M)&&e(c)}),g(r),s(e,r)};n(z,e=>{i(j)&&e(B)}),s(e,F),C()}var A=v(k),j=[()=>T(()=>import(`../nodes/0.B_uBaZbG.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>T(()=>import(`../nodes/1.CGikJOPd.js`),__vite__mapDeps([5,1,6,7,8,2]),import.meta.url),()=>T(()=>import(`../nodes/2.ojh8oE7F.js`),__vite__mapDeps([9,1,2,10]),import.meta.url),()=>T(()=>import(`../nodes/3.DeAC3yVJ.js`),__vite__mapDeps([11,1,8,2,10]),import.meta.url),()=>T(()=>import(`../nodes/4.Dtc8svhB.js`),__vite__mapDeps([12,1,2,3,13,6,7,8,14,15,16,17,18,19]),import.meta.url),()=>T(()=>import(`../nodes/5.D8hNvEy3.js`),__vite__mapDeps([20,1,2,3,13,6,7,8,14,15,16,21]),import.meta.url),()=>T(()=>import(`../nodes/6.D8kKb3mt.js`),__vite__mapDeps([22,1,2,13,6,7,8,3,14,15,16,23,24,25]),import.meta.url),()=>T(()=>import(`../nodes/7.DxsXmPb9.js`),__vite__mapDeps([26,1,2,3,13,6,7,8,14,15,16,23,24,27]),import.meta.url),()=>T(()=>import(`../nodes/8.XhVG6Ups.js`),__vite__mapDeps([28,1,2,14,15,17,18,29]),import.meta.url)],M=[],N={"/":[3],"/admin":[4],"/admin/endpoints":[5],"/advanced":[6],"/chat":[7],"/setup":[8,[2]]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t);export{R as decode,F as decoders,N as dictionary,I as encoders,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"../chunks/KDj8brgV.js";export{e as load_css,t as start};
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,D as t,E as n,H as r,I as i,J as a,M as o,N as s,O as c,P as l,Q as u,V as d,Y as f,Z as p,ct as m,d as h,it as g,j as _,k as v,lt as y,q as b,r as x,rt as S,v as C,w,x as T}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{d as E,t as D,u as O}from"../chunks/DpdFx-ph.js";var k=e(`<a target="_blank" rel="noopener noreferrer" class="update-banner-link svelte-1u6ojbd">Download</a>`),A=e(`<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(e,r){g(r,!0);let s=u(null),_=u(!1);function y(e){return`openpalm.updateBanner.dismissed.${e}`}x(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(y(t.latestVersion)))return;p(s,t,!0)}catch{}});function C(){i(s)?.latestVersion&&typeof localStorage<`u`&&localStorage.setItem(y(i(s).latestVersion),`1`),p(_,!0)}var w=v(),T=a(w),E=e=>{var r=A(),a=f(b(r),2),u=f(b(a)),p=b(u);m(u);var g=f(u,2),_=e=>{var n=o();d(()=>t(n,`(you have v${i(s).currentVersion??``})`)),c(e,n)};n(g,e=>{i(s).currentVersion&&e(_)}),m(a);var v=f(a,2),y=e=>{var t=k();d(()=>h(t,`href`,i(s).latestUrl)),c(e,t)};n(v,e=>{i(s).latestUrl&&e(y)});var x=f(v,2);m(r),d(()=>t(p,`v${i(s).latestVersion??``}`)),l(`click`,x,C),c(e,r)};n(T,e=>{i(s)&&!i(_)&&e(E)}),c(e,w),S()}s([`click`]);var M=_(`<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=_(`<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=_(`<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=e(`<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=e(`<div class="toast-stack svelte-c82lj3" aria-live="polite"></div>`);function L(e,o){g(o,!0);let s=null;r(()=>{let e=O.errorMessage;e&&(s=E.push(`error`,e,{replaceId:s??void 0}),O.errorMessage=``)});function u(e){E.dismiss(e.id),e.id===s&&(s=null)}function p(e){return e.kind===`success`?`Success`:e.kind===`error`?`Error`:`Notice`}var _=v(),y=a(_),x=e=>{var r=I();w(r,21,()=>E.toasts,e=>e.id,(e,r)=>{var a=F(),o=b(a),s=b(o),g=e=>{c(e,M())},_=e=>{c(e,N())},v=e=>{c(e,P())};n(s,e=>{i(r).kind===`success`?e(g):i(r).kind===`error`?e(_,1):e(v,-1)});var y=f(s,2),x=b(y);m(y),m(o);var S=f(o,2),w=b(S,!0);m(S);var T=f(S,2);m(a),d(e=>{C(a,1,`toast toast-${i(r).kind??``}`,`svelte-c82lj3`),h(a,`role`,i(r).kind===`error`?`alert`:`status`),h(a,`aria-live`,i(r).kind===`error`?`assertive`:`polite`),t(x,`${e??``}:`),t(w,i(r).message)},[()=>p(i(r))]),l(`click`,T,()=>u(i(r))),c(e,a)}),m(r),c(e,r)};n(y,e=>{E.toasts.length>0&&e(x)}),c(e,_),S()}s([`click`]);var R=e(`<!> <!> <!>`,1);function z(e,t){g(t,!0),x(()=>{D.init()});var n=R(),r=a(n);j(r,{});var i=f(r,2);T(i,()=>t.children??y),L(f(i,2),{}),c(e,n),S()}export{z as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,D as t,J as n,O as r,V as i,Y as a,ct as o,it as s,q as c,rt as l}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/
|
|
1
|
+
import{A as e,D as t,J as n,O as r,V as i,Y as a,ct as o,it as s,q as c,rt as l}from"../chunks/BwTF6U35.js";import"../chunks/xihTtKlq.js";import{t as u}from"../chunks/IwBvukWu.js";var d=e(`<h1> </h1> <p> </p>`,1);function f(e,f){s(f,!0);var p=d(),m=n(p),h=c(m,!0);o(m);var g=a(m,2),_=c(g,!0);o(g),i(()=>{t(h,u.status),t(_,u.error?.message)}),r(e,p),l()}export{f as component};
|
|
Binary file
|
|
Binary file
|