@pimote/pimote 0.5.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/client/build/_app/immutable/assets/0.-er3OUWm.css +2 -0
- package/client/build/_app/immutable/assets/2.BtlPyuHL.css +1 -0
- package/client/build/_app/immutable/chunks/ATalJV7d.js +3 -0
- package/client/build/_app/immutable/chunks/{eHWBE-tD.js → B1ItOytB.js} +2 -2
- package/client/build/_app/immutable/chunks/BiEvVL3P.js +1 -0
- package/client/build/_app/immutable/chunks/D8SptH3Y.js +1 -0
- package/client/build/_app/immutable/chunks/S8e8sMop.js +1 -0
- package/client/build/_app/immutable/chunks/b9CWRTHL.js +1 -0
- package/client/build/_app/immutable/entry/{app.Di2WQBl6.js → app.agj-hcVA.js} +2 -2
- package/client/build/_app/immutable/entry/start.NVZAE6Px.js +1 -0
- package/client/build/_app/immutable/nodes/0.DweM6Pbc.js +10 -0
- package/client/build/_app/immutable/nodes/{1.DKkktqMe.js → 1.owr_UHNy.js} +1 -1
- package/client/build/_app/immutable/nodes/2.CQNU1AJj.js +55 -0
- package/client/build/_app/version.json +1 -1
- package/client/build/index.html +7 -7
- package/package.json +2 -2
- package/server/dist/config.js +5 -2
- package/server/dist/event-buffer.js +10 -1
- package/server/dist/extension-ui-bridge.js +26 -10
- package/server/dist/file-references.js +123 -0
- package/server/dist/git-branch.js +12 -9
- package/server/dist/login-orchestrator.js +105 -0
- package/server/dist/push-infrastructure.js +13 -2
- package/server/dist/push-notification.js +18 -11
- package/server/dist/server.js +25 -2
- package/server/dist/session-cost.js +26 -2
- package/server/dist/session-manager.js +116 -7
- package/server/dist/static-host/gc.js +13 -0
- package/server/dist/static-host/http-handler.js +27 -1
- package/server/dist/static-host/index.js +24 -12
- package/server/dist/static-host/store.js +10 -1
- package/server/dist/static-host/tools.js +5 -1
- package/server/dist/voice/fsm/reducer.js +14 -2
- package/server/dist/voice/fsm/reducers/lifecycle.js +10 -4
- package/server/dist/voice/fsm/reducers/streaming.js +39 -3
- package/server/dist/voice/fsm/reducers/walkback.js +13 -10
- package/server/dist/voice/fsm/state.js +1 -1
- package/server/dist/voice/index.js +97 -41
- package/server/dist/voice/walk-back.js +94 -26
- package/server/dist/voice-orchestrator-boot.js +22 -5
- package/server/dist/voice-orchestrator.js +38 -1
- package/server/dist/ws-handler.js +194 -64
- package/shared/dist/protocol.d.ts +97 -2
- package/client/build/_app/immutable/assets/0.KP1suSk9.css +0 -2
- package/client/build/_app/immutable/assets/2.BaqEkCa-.css +0 -1
- package/client/build/_app/immutable/chunks/0-bXzYW9.js +0 -1
- package/client/build/_app/immutable/chunks/BgJ-X-tf.js +0 -3
- package/client/build/_app/immutable/chunks/CnTTbAN2.js +0 -1
- package/client/build/_app/immutable/chunks/RbcwTVzu.js +0 -1
- package/client/build/_app/immutable/chunks/TV35yyBT.js +0 -1
- package/client/build/_app/immutable/chunks/gZLAQ0sf.js +0 -1
- package/client/build/_app/immutable/entry/start.ClOWBB7j.js +0 -1
- package/client/build/_app/immutable/nodes/0.DJUqUGM7.js +0 -10
- package/client/build/_app/immutable/nodes/2.BTjJ9cu5.js +0 -54
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,E as i,G as a,I as o,K as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,T as h,U as g,X as _,Y as v,a as y,b,bt as x,c as S,d as C,et as w,it as T,mt as E,n as D,nt as O,o as k,ot as A,p as j,pt as M,r as N,s as P,st as F,tt as I,u as L,v as ee,vt as R,w as z,y as B,yt as V,z as H}from"../chunks/B8lQCytv.js";import"../chunks/D1hYfEew.js";import{A as te,B as U,C as ne,D as re,E as ie,F as ae,H as oe,I as se,J as ce,K as le,L as ue,M as de,N as fe,P as pe,R as me,S as he,T as ge,V as _e,W as ve,a as ye,b as be,c as xe,d as Se,f as Ce,g as we,h as Te,i as Ee,it as De,j as Oe,l as ke,m as Ae,n as je,nt as Me,o as Ne,p as Pe,q as Fe,r as Ie,s as Le,t as Re,u as ze,v as Be,w as Ve,x as He,y as Ue,z as We}from"../chunks/B1ItOytB.js";import{a as Ge,c as Ke,d as W,h as qe,i as Je,n as Ye,p as Xe,r as Ze,s as G,u as Qe}from"../chunks/D8SptH3Y.js";import{n as $e,r as et}from"../chunks/ATalJV7d.js";var tt=Fe({component:`separator`,parts:[`root`]}),nt=class e{static create(t){return new e(t)}opts;attachment;constructor(e){this.opts=e,this.attachment=ce(e.ref)}#e=F(()=>({id:this.opts.id.current,role:this.opts.decorative.current?`none`:`separator`,"aria-orientation":this.opts.orientation.current,"aria-hidden":le(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[tt.root]:``,...this.attachment}));get props(){return g(this.#e)}set props(e){T(this.#e,e)}},rt=f(`<div><!></div>`);function it(t,n){let r=o();E(n,!0);let i=y(n,`id`,19,()=>ve(r)),a=y(n,`ref`,15,null),s=y(n,`decorative`,3,!1),c=y(n,`orientation`,3,`horizontal`),f=k(n,[`$$slots`,`$$events`,`$$legacy`,`id`,`ref`,`child`,`children`,`decorative`,`orientation`]),p=nt.create({ref:De(()=>a(),e=>a(e)),id:De(()=>i()),decorative:De(()=>s()),orientation:De(()=>c())}),m=F(()=>Me(f,p.props));var h=u(),_=w(h),v=e=>{var t=u();z(w(t),()=>n.child,()=>({props:g(m)})),l(e,t)},b=t=>{var r=rt();C(r,()=>({...g(m)})),z(e(r),()=>n.children??x),V(r),l(t,r)};d(_,e=>{n.child?e(v):e(b,-1)}),l(t,h),M()}function at(e,t){return e.trim().length>0&&typeof t==`string`&&t.length>0}function ot(e,t,n){switch(n){case`replace`:return t;case`append`:return e+`
|
|
2
|
+
`+t;case`prepend`:return t+`
|
|
3
|
+
`+e;case`ignore`:return null}}var st={Href:1,Src:2,Lang:4,Checked:8,Start:16};function ct(e){switch(e){case 1:return`href`;case 2:return`src`;case 4:return`class`;case 8:return`checked`;case 16:return`start`}}var lt=e=>{switch(e){case 1:return 3;case 2:return 4;case 3:return 5;case 4:return 6;case 5:return 7;default:return 8}},ut=24;function dt(e){let t=new Uint32Array(ut);return t[0]=1,{renderer:e,text:``,pending:``,tokens:t,len:0,token:1,fence_end:0,blockquote_idx:0,hr_char:``,hr_chars:0,fence_start:0,spaces:new Uint8Array(ut),indent:``,indent_len:0,table_state:0}}function ft(e){e.pending.length>0&&Y(e,`
|
|
4
|
+
`)}function K(e){e.text.length!==0&&(console.assert(e.len>0,`Never adding text to root`),e.renderer.add_text(e.renderer.data,e.text),e.text=``)}function q(e){console.assert(e.len>0,`No nodes to end`),--e.len,e.token=e.tokens[e.len],e.renderer.end_token(e.renderer.data)}function J(e,t){(e.tokens[e.len]===24||e.tokens[e.len]===23)&&t!==25&&q(e),e.len+=1,e.tokens[e.len]=t,e.token=t,e.renderer.add_token(e.renderer.data,t)}function pt(e,t,n){for(;n<=e.len;){if(e.tokens[n]===t)return n;n+=1}return-1}function mt(e,t){for(e.fence_start=0;e.len>t;)q(e)}function ht(e,t){let n=0;for(let r=0;r<=e.len&&(t-=e.spaces[r],!(t<0));r+=1)switch(e.tokens[r]){case 9:case 10:case 20:case 25:n=r;break}for(;e.len>n;)q(e);return t}function gt(e,t){let n=-1,r=-1;for(let i=e.blockquote_idx+1;i<=e.len;i+=1)if(e.tokens[i]===25){if(e.indent_len<e.spaces[i]){r=-1;break}r=i}else e.tokens[i]===t&&(n=i);return r===-1?n===-1?(mt(e,e.blockquote_idx),J(e,t),!0):(mt(e,n),!1):(mt(e,r),J(e,t),!0)}function _t(e,t){J(e,25),e.spaces[e.len]=e.indent_len+t,vt(e),e.token=103}function vt(e){e.indent=``,e.indent_len=0,e.pending=``}function yt(e){switch(e){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return!0;default:return!1}}function bt(e){switch(e){case 32:case 58:case 59:case 41:case 44:case 33:case 46:case 63:case 93:case 10:return!0;default:return!1}}function xt(e){return yt(e)||bt(e)}function St(e){return yt(e)||e>=65&&e<=90||e>=97&&e<=122}function Y(e,t){for(let n of t){if(e.token===101){switch(n){case` `:e.indent_len+=1;continue;case` `:e.indent_len+=4;continue}let t=ht(e,e.indent_len);e.indent_len=0,e.token=e.tokens[e.len],t>0&&Y(e,` `.repeat(t))}let t=e.pending+n;switch(e.token){case 21:case 1:case 20:case 24:case 23:switch(console.assert(e.text.length===0,`Root should not have any text`),e.pending[0]){case void 0:e.pending=n;continue;case` `:console.assert(e.pending.length===1),e.pending=n,e.indent+=` `,e.indent_len+=1;continue;case` `:console.assert(e.pending.length===1),e.pending=n,e.indent+=` `,e.indent_len+=4;continue;case`
|
|
5
|
+
`:if(console.assert(e.pending.length===1),e.tokens[e.len]===25&&e.token===21){q(e),vt(e),e.pending=n;continue}mt(e,e.blockquote_idx),vt(e),e.blockquote_idx=0,e.fence_start=0,e.pending=n;continue;case`#`:switch(n){case`#`:if(e.pending.length<6){e.pending=t;continue}break;case` `:ht(e,e.indent_len),J(e,lt(e.pending.length)),vt(e);continue}break;case`>`:{let t=pt(e,20,e.blockquote_idx+1);t===-1?(mt(e,e.blockquote_idx),e.blockquote_idx+=1,e.fence_start=0,J(e,20)):e.blockquote_idx=t,vt(e),e.pending=n;continue}case`-`:case`*`:case`_`:if(e.hr_chars===0&&(console.assert(e.pending.length===1,`Pending should be one character`),e.hr_chars=1,e.hr_char=e.pending),e.hr_chars>0){switch(n){case e.hr_char:e.hr_chars+=1,e.pending=t;continue;case` `:e.pending=t;continue;case`
|
|
6
|
+
`:if(e.hr_chars<3)break;ht(e,e.indent_len),e.renderer.add_token(e.renderer.data,22),e.renderer.end_token(e.renderer.data),vt(e),e.hr_chars=0;continue}e.hr_chars=0}if(e.pending[0]!==`_`&&e.pending[1]===` `){gt(e,23),_t(e,2),Y(e,t.slice(2));continue}break;case"`":if(e.pending.length<3){if(n==="`"){e.pending=t,e.fence_start=t.length;continue}e.fence_start=0;break}switch(n){case"`":e.pending.length===e.fence_start?(e.pending=t,e.fence_start=t.length):(J(e,2),vt(e),e.fence_start=0,Y(e,t));continue;case`
|
|
7
|
+
`:ht(e,e.indent_len),J(e,10),e.pending.length>e.fence_start&&e.renderer.set_attr(e.renderer.data,4,e.pending.slice(e.fence_start)),vt(e),e.token=101;continue;default:e.pending=t;continue}case`+`:if(n!==` `)break;gt(e,23),_t(e,2);continue;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:if(e.pending[e.pending.length-1]===`.`){if(n!==` `)break;gt(e,24)&&e.pending!==`1.`&&e.renderer.set_attr(e.renderer.data,16,e.pending.slice(0,-1)),_t(e,e.pending.length+1);continue}else{let r=n.charCodeAt(0);if(r===46||yt(r)){e.pending=t;continue}}break;case`|`:mt(e,e.blockquote_idx),J(e,27),J(e,28),e.pending=``,Y(e,n);continue}let r=t;if(e.token===21)e.token=e.tokens[e.len],e.renderer.add_token(e.renderer.data,21),e.renderer.end_token(e.renderer.data);else if(e.indent_len>=4){let n=0;for(;n<4;n+=1)if(e.indent[n]===` `){n+=1;break}r=e.indent.slice(n)+t,J(e,9)}else J(e,2);vt(e),Y(e,r);continue;case 27:if(e.table_state===1)switch(n){case`-`:case` `:case`|`:case`:`:e.pending=t;continue;case`
|
|
8
|
+
`:e.table_state=2,e.pending=``;continue;default:q(e),e.table_state=0;break}else switch(e.pending){case`|`:J(e,28),e.pending=``,Y(e,n);continue;case`
|
|
9
|
+
`:q(e),e.pending=``,e.table_state=0,Y(e,n);continue}break;case 28:switch(e.pending){case``:break;case`|`:J(e,29),q(e),e.pending=``,Y(e,n);continue;case`
|
|
10
|
+
`:q(e),e.table_state=Math.min(e.table_state+1,2),e.pending=``,Y(e,n);continue;default:J(e,29),Y(e,n);continue}break;case 29:if(e.pending===`|`){K(e),q(e),e.pending=``,Y(e,n);continue}break;case 9:switch(t){case`
|
|
11
|
+
`:case`
|
|
12
|
+
`:case`
|
|
13
|
+
`:case`
|
|
14
|
+
`:case`
|
|
15
|
+
`:e.text+=`
|
|
16
|
+
`,e.pending=``;continue;case`
|
|
17
|
+
`:case`
|
|
18
|
+
`:case`
|
|
19
|
+
`:case`
|
|
20
|
+
`:e.pending=t;continue;default:e.pending.length===0?e.text+=n:(K(e),q(e),e.pending=n);continue}case 10:switch(n){case"`":e.pending=t;continue;case`
|
|
21
|
+
`:if(t.length===e.fence_start+e.fence_end+1){K(e),q(e),e.pending=``,e.fence_start=0,e.fence_end=0,e.token=101;continue}e.token=101;break;case` `:if(e.pending[0]===`
|
|
22
|
+
`){e.pending=t,e.fence_end+=1;continue}break}e.text+=e.pending,e.pending=n,e.fence_end=1;continue;case 11:switch(n){case"`":t.length===e.fence_start+Number(e.pending[0]===` `)?(K(e),q(e),e.pending=``,e.fence_start=0):e.pending=t;continue;case`
|
|
23
|
+
`:e.text+=e.pending,e.pending=``,e.token=21,e.blockquote_idx=0,K(e);continue;case` `:e.text+=e.pending,e.pending=n;continue;default:e.text+=t,e.pending=``;continue}case 103:switch(e.pending.length){case 0:if(n!==`[`)break;e.pending=t;continue;case 1:if(n!==` `&&n!==`x`)break;e.pending=t;continue;case 2:if(n!==`]`)break;e.pending=t;continue;case 3:if(n!==` `)break;e.renderer.add_token(e.renderer.data,26),e.pending[1]===`x`&&e.renderer.set_attr(e.renderer.data,8,``),e.renderer.end_token(e.renderer.data),e.pending=` `;continue}e.token=e.tokens[e.len],e.pending=``,Y(e,t);continue;case 14:case 15:{let t=`*`,r=12;if(e.token===15&&(t=`_`,r=13),t===e.pending){if(K(e),t===n){q(e),e.pending=``;continue}J(e,r),e.pending=n;continue}break}case 12:case 13:{let r=`*`,i=14;switch(e.token===13&&(r=`_`,i=15),e.pending){case r:if(r===n)e.tokens[e.len-1]===i?e.pending=t:(K(e),J(e,i),e.pending=``);else{if(r===`_`&&St(n.charCodeAt(0)))break;K(e),q(e),e.pending=n}continue;case r+r:let a=e.token;K(e),q(e),q(e),r===n?e.pending=``:(J(e,a),e.pending=n);continue}break}case 16:if(t===`~~`){K(e),q(e),e.pending=``;continue}break;case 105:n===`
|
|
24
|
+
`?(K(e),J(e,30),e.pending=``):(e.token=e.tokens[e.len],e.pending[0]===`\\`?e.text+=`[`:e.text+=`$$`,e.pending=``,Y(e,n));continue;case 30:if(t===`\\]`||t===`$$`){K(e),q(e),e.pending=``;continue}break;case 31:if(t===`\\)`||e.pending[0]===`$`){K(e),q(e),n===`)`?e.pending=``:e.pending=n;continue}break;case 102:t===`http://`||t===`https://`?(K(e),J(e,18),e.pending=t,e.text=t):`http:/`[e.pending.length]===n||`https:/`[e.pending.length]===n?e.pending=t:(e.token=e.tokens[e.len],Y(e,n));continue;case 17:case 19:if(e.pending===`]`){K(e),n===`(`?e.pending=t:(q(e),e.pending=n);continue}if(e.pending[0]===`]`&&e.pending[1]===`(`){if(n===`)`){let t=e.token===17?1:2,n=e.pending.slice(2);e.renderer.set_attr(e.renderer.data,t,n),q(e),e.pending=``}else e.pending+=n;continue}break;case 18:n===` `||n===`
|
|
25
|
+
`||n===`\\`?(e.renderer.set_attr(e.renderer.data,1,e.pending),K(e),q(e),e.pending=n):(e.text+=n,e.pending=t);continue;case 104:if(t.startsWith(`<br`)){if(t.length===3||n===` `||n===`/`&&(t.length===4||e.pending[e.pending.length-1]===` `)){e.pending=t;continue}if(n===`>`){K(e),e.token=e.tokens[e.len],e.renderer.add_token(e.renderer.data,21),e.renderer.end_token(e.renderer.data),e.pending=``;continue}}e.token=e.tokens[e.len],e.text+=`<`,e.pending=e.pending.slice(1),Y(e,n);continue}switch(e.pending[0]){case`\\`:if(e.token===19||e.token===30||e.token===31)break;switch(n){case`(`:K(e),J(e,31),e.pending=``;continue;case`[`:e.token=105,e.pending=t;continue;case`
|
|
26
|
+
`:e.pending=n;continue;default:let r=n.charCodeAt(0);e.pending=``,e.text+=yt(r)||r>=65&&r<=90||r>=97&&r<=122?t:n;continue}case`
|
|
27
|
+
`:switch(e.token){case 19:case 30:case 31:break;case 3:case 4:case 5:case 6:case 7:case 8:K(e),mt(e,e.blockquote_idx),e.blockquote_idx=0,e.pending=n;continue;default:K(e),e.pending=n,e.token=21,e.blockquote_idx=0;continue}break;case`<`:if(e.token!==19&&e.token!==30&&e.token!==31){K(e),e.pending=t,e.token=104;continue}break;case"`":if(e.token===19)break;n==="`"?(e.fence_start+=1,e.pending=t):(e.fence_start+=1,K(e),J(e,11),e.text=n===` `||n===`
|
|
28
|
+
`?``:n,e.pending=``);continue;case`_`:case`*`:{if(e.token===19||e.token===30||e.token===31||e.token===14)break;let r=12,i=14,a=e.pending[0];if(a===`_`&&(r=13,i=15),e.pending.length===1){if(a===n){e.pending=t;continue}if(a===`_`&&e.text.length>0&&St(e.text.charCodeAt(e.text.length-1))&&St(n.charCodeAt(0)))break;if(n!==` `&&n!==`
|
|
29
|
+
`){K(e),J(e,r),e.pending=n;continue}}else{if(a===n){K(e),J(e,i),J(e,r),e.pending=``;continue}if(a===`_`&&e.text.length>0&&St(e.text.charCodeAt(e.text.length-1))&&St(n.charCodeAt(0)))break;if(n!==` `&&n!==`
|
|
30
|
+
`){K(e),J(e,i),e.pending=n;continue}}break}case`~`:if(e.token!==19&&e.token!==16){if(e.pending===`~`){if(n===`~`){e.pending=t;continue}}else if(n!==` `&&n!==`
|
|
31
|
+
`){K(e),J(e,16),e.pending=n;continue}}break;case`$`:if(e.token!==19&&e.token!==16&&e.pending===`$`)if(n===`$`){e.token=105,e.pending=t;continue}else if(xt(n.charCodeAt(0)))break;else{K(e),J(e,31),e.pending=n;continue}break;case`[`:if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n!==`]`){K(e),J(e,17),e.pending=n;continue}break;case`!`:if(e.token!==19&&n===`[`){K(e),J(e,19),e.pending=``;continue}break;case` `:if(e.pending.length===1&&n===` `)continue;break}if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n===`h`&&(e.pending===` `||e.pending===``)){e.text+=e.pending,e.pending=n,e.token=102;continue}e.text+=e.pending,e.pending=n}K(e)}function Ct(e){return{add_token:wt,end_token:Tt,add_text:Et,set_attr:Dt,data:{nodes:[e,,,,,],index:0}}}function wt(e,t){let n=e.nodes[e.index],r;switch(t){case 1:return;case 20:r=document.createElement(`blockquote`);break;case 2:r=document.createElement(`p`);break;case 21:r=document.createElement(`br`);break;case 22:r=document.createElement(`hr`);break;case 3:r=document.createElement(`h1`);break;case 4:r=document.createElement(`h2`);break;case 5:r=document.createElement(`h3`);break;case 6:r=document.createElement(`h4`);break;case 7:r=document.createElement(`h5`);break;case 8:r=document.createElement(`h6`);break;case 12:case 13:r=document.createElement(`em`);break;case 14:case 15:r=document.createElement(`strong`);break;case 16:r=document.createElement(`s`);break;case 11:r=document.createElement(`code`);break;case 18:case 17:r=document.createElement(`a`);break;case 19:r=document.createElement(`img`);break;case 23:r=document.createElement(`ul`);break;case 24:r=document.createElement(`ol`);break;case 25:r=document.createElement(`li`);break;case 26:let e=r=document.createElement(`input`);e.type=`checkbox`,e.disabled=!0;break;case 9:case 10:n=n.appendChild(document.createElement(`pre`)),r=document.createElement(`code`);break;case 27:r=document.createElement(`table`);break;case 28:switch(n.children.length){case 0:n=n.appendChild(document.createElement(`thead`));break;case 1:n=n.appendChild(document.createElement(`tbody`));break;default:n=n.children[1]}r=document.createElement(`tr`);break;case 29:r=document.createElement(n.parentElement?.tagName===`THEAD`?`th`:`td`);break;case 30:r=document.createElement(`equation-block`);break;case 31:r=document.createElement(`equation-inline`);break}e.nodes[++e.index]=n.appendChild(r)}function Tt(e){--e.index}function Et(e,t){e.nodes[e.index].appendChild(document.createTextNode(t))}function Dt(e,t,n){e.nodes[e.index].setAttribute(ct(t),n)}function Ot(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function kt(e,t){if(t&&et.getLanguage(t))try{return et.highlight(e,{language:t}).value}catch{}return Ot(e)}function At(e){let t=e?.intervalMs??100,n=null,r=null,i=()=>{if(!n)return;let{el:e,text:t,language:r}=n;e.innerHTML=kt(t,r)};return{schedule(e,a,o){n={el:e,text:a,language:o},r===null&&(r=setTimeout(()=>{r=null,i()},t))},flush(){r!==null&&(clearTimeout(r),r=null),i()},dispose(){r!==null&&(clearTimeout(r),r=null),n=null}}}function jt(e){for(let t of e.classList)if(t!==`hljs`)return t.startsWith(`language-`)?t.slice(9):t;return null}var Mt=/^(?:https?|mailto):/i;function Nt(e,t){let n,r=e.parentElement;if(r?.classList.contains(`code-block-wrapper`))n=r;else if(r)n=document.createElement(`div`),n.className=`code-block-wrapper`,r.insertBefore(n,e),n.appendChild(e);else return;if(n.querySelector(`:scope > .code-copy-btn`))return;e.classList.add(`code-block-with-copy`);let i=document.createElement(`button`);i.type=`button`,i.className=`code-copy-btn`,i.setAttribute(`aria-label`,`Copy code`),i.title=`Copy code`,i.textContent=`Copy`;let a;i.addEventListener(`click`,async e=>{e.preventDefault(),e.stopPropagation();try{await navigator.clipboard.writeText(t.textContent??``),i.textContent=`Copied`,i.classList.add(`copied`),a&&clearTimeout(a),a=setTimeout(()=>{i.textContent=`Copy`,i.classList.remove(`copied`)},1200)}catch{}}),n.appendChild(i)}function Pt(e){let t=Ct(e),n=At();return{...t,dispose(){n.dispose()},set_attr(e,t,n){(t===st.Href||t===st.Src)&&!Mt.test(n.trim())||Dt(e,t,n)},add_text(e,t){Et(e,t);let r=e.nodes[e.index];if(r?.tagName===`CODE`&&r.parentElement?.tagName===`PRE`){let e=r;e.classList.add(`hljs`),n.schedule(e,e.textContent??``,jt(e))}},end_token(e){let t=e.nodes[e.index];if(t?.tagName===`CODE`&&t.parentElement?.tagName===`PRE`){let e=t,r=e.parentElement;e.classList.add(`hljs`);try{n.flush()}catch{}Nt(r,e)}Tt(e)}}}var Ft=f(`<div class="text-block markdown-content svelte-8p0cc8"></div>`);function It(e,t){E(t,!0);let n=y(t,`streaming`,3,!1),r;_(()=>{if(!r)return;let e=Pt(r),i=dt(e),a=0,o=!1;return _(()=>{o||(t.text.length>a&&(Y(i,t.text.slice(a)),a=t.text.length),n()||(ft(i),o=!0))}),()=>{o||ft(i),e.dispose(),r.innerHTML=``}});var i=Ft();S(i,e=>r=e,()=>r),l(e,i),M()}function Lt(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`}],[`path`,{d:`M12 13h4`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`}],[`path`,{d:`M12 8h8`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`}]];U(e,P({name:`brain-circuit`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Rt=f(`<span class="thinking-preview svelte-1mu9o59"> </span>`),zt=f(`<span class="thinking-word-count svelte-1mu9o59"> </span>`),Bt=f(`<span class="streaming-dot svelte-1mu9o59"></span>`),Vt=f(`<div class="thinking-content svelte-1mu9o59"><pre class="thinking-text svelte-1mu9o59"> </pre></div>`),Ht=f(`<div class="thinking-block svelte-1mu9o59"><button class="thinking-header svelte-1mu9o59"><!> <!> <span class="thinking-label svelte-1mu9o59"> </span> <!> <!> <!></button> <!></div>`);function Ut(n,r){E(r,!0);let i=y(r,`streaming`,3,!1),a=A(!1);_(()=>{i()?T(a,!0):T(a,!1)});let o=A(void 0);_(()=>{i()&&r.text&&g(o)&&(g(o).scrollTop=g(o).scrollHeight)});let s=F(()=>r.text?r.text.trim().split(/\s+/).slice(0,8).join(` `):``),c=F(()=>r.text?r.text.trim().split(/\s+/).filter(e=>e.length>0).length:0);var u=Ht(),f=e(u),p=e(f);{let e=F(()=>g(a)?`rotate-90`:``);ie(p,{get class(){return`shrink-0 transition-transform duration-150 ${g(e)??``}`},size:14})}var m=I(p,2);Lt(m,{size:14,class:`shrink-0`});var h=I(m,2),b=e(h,!0);V(h);var x=I(h,2),C=n=>{var r=Rt(),i=e(r,!0);V(r),v(()=>t(i,g(s))),l(n,r)};d(x,e=>{g(s)&&e(C)});var w=I(x,2),D=n=>{var r=zt(),i=e(r);V(r),v(e=>t(i,`${e??``} words`),[()=>g(c).toLocaleString()]),l(n,r)};d(w,e=>{g(c)>0&&e(D)});var O=I(w,2),k=e=>{l(e,Bt())};d(O,e=>{i()&&e(k)}),V(f);var j=I(f,2),N=n=>{var i=Vt(),a=e(i),s=e(a,!0);V(a),V(i),S(i,e=>T(o,e),()=>g(o)),v(()=>t(s,r.text)),l(n,i)};d(j,e=>{g(a)&&e(N)}),V(u),v(()=>t(b,i()?`Thinking…`:`Thought process`)),H(`click`,f,()=>T(a,!g(a))),l(n,u),M()}m([`click`]);var Wt=f(`<button class="collapsible-toggle svelte-tetllc"> </button>`),Gt=f(`<div><pre> </pre> <!></div>`);function Kt(n,r){E(r,!0);let i=y(r,`streaming`,3,!1),a=y(r,`maxCollapsedLines`,3,10),o=y(r,`accent`,3,`default`),s=F(i),c=A(void 0),u=F(()=>r.text.split(`
|
|
32
|
+
`)),f=F(()=>g(u).length),p=F(()=>g(f)>a()),m=F(()=>g(p)&&!g(s)?g(u).slice(0,a()).join(`
|
|
33
|
+
`):r.text);_(()=>{i()&&g(s)&&g(c)&&(r.text,g(c).scrollTop=g(c).scrollHeight)});var h=Gt();let b;var x=e(h);let C;var w=e(x,!0);V(x),S(x,e=>T(c,e),()=>g(c));var D=I(x,2),O=n=>{var r=Wt(),i=e(r,!0);V(r),v(()=>t(i,g(s)?`Show less`:`Show more… (${g(f)} lines)`)),H(`click`,r,()=>T(s,!g(s))),l(n,r)};d(D,e=>{g(p)&&e(O)}),V(h),v(()=>{b=B(h,1,`streaming-collapsible svelte-tetllc`,null,b,{"accent-purple":o()===`purple`}),C=B(x,1,`collapsible-text svelte-tetllc`,null,C,{scrollable:g(s)&&g(p)}),t(w,g(m))}),l(n,h),M()}m([`click`]);var X;(function(e){e[e.BACKSPACE=8]=`BACKSPACE`,e[e.FORM_FEED=12]=`FORM_FEED`,e[e.NEWLINE=10]=`NEWLINE`,e[e.CARRIAGE_RETURN=13]=`CARRIAGE_RETURN`,e[e.TAB=9]=`TAB`,e[e.SPACE=32]=`SPACE`,e[e.EXCLAMATION_MARK=33]=`EXCLAMATION_MARK`,e[e.QUOTATION_MARK=34]=`QUOTATION_MARK`,e[e.NUMBER_SIGN=35]=`NUMBER_SIGN`,e[e.DOLLAR_SIGN=36]=`DOLLAR_SIGN`,e[e.PERCENT_SIGN=37]=`PERCENT_SIGN`,e[e.AMPERSAND=38]=`AMPERSAND`,e[e.APOSTROPHE=39]=`APOSTROPHE`,e[e.LEFT_PARENTHESIS=40]=`LEFT_PARENTHESIS`,e[e.RIGHT_PARENTHESIS=41]=`RIGHT_PARENTHESIS`,e[e.ASTERISK=42]=`ASTERISK`,e[e.PLUS_SIGN=43]=`PLUS_SIGN`,e[e.COMMA=44]=`COMMA`,e[e.HYPHEN_MINUS=45]=`HYPHEN_MINUS`,e[e.FULL_STOP=46]=`FULL_STOP`,e[e.SOLIDUS=47]=`SOLIDUS`,e[e.DIGIT_ZERO=48]=`DIGIT_ZERO`,e[e.DIGIT_ONE=49]=`DIGIT_ONE`,e[e.DIGIT_TWO=50]=`DIGIT_TWO`,e[e.DIGIT_THREE=51]=`DIGIT_THREE`,e[e.DIGIT_FOUR=52]=`DIGIT_FOUR`,e[e.DIGIT_FIVE=53]=`DIGIT_FIVE`,e[e.DIGIT_SIX=54]=`DIGIT_SIX`,e[e.DIGIT_SEVEN=55]=`DIGIT_SEVEN`,e[e.DIGIT_EIGHT=56]=`DIGIT_EIGHT`,e[e.DIGIT_NINE=57]=`DIGIT_NINE`,e[e.COLON=58]=`COLON`,e[e.SEMICOLON=59]=`SEMICOLON`,e[e.LESS_THAN_SIGN=60]=`LESS_THAN_SIGN`,e[e.EQUALS_SIGN=61]=`EQUALS_SIGN`,e[e.GREATER_THAN_SIGN=62]=`GREATER_THAN_SIGN`,e[e.QUESTION_MARK=63]=`QUESTION_MARK`,e[e.COMMERCIAL_AT=64]=`COMMERCIAL_AT`,e[e.LATIN_CAPITAL_LETTER_A=65]=`LATIN_CAPITAL_LETTER_A`,e[e.LATIN_CAPITAL_LETTER_B=66]=`LATIN_CAPITAL_LETTER_B`,e[e.LATIN_CAPITAL_LETTER_C=67]=`LATIN_CAPITAL_LETTER_C`,e[e.LATIN_CAPITAL_LETTER_D=68]=`LATIN_CAPITAL_LETTER_D`,e[e.LATIN_CAPITAL_LETTER_E=69]=`LATIN_CAPITAL_LETTER_E`,e[e.LATIN_CAPITAL_LETTER_F=70]=`LATIN_CAPITAL_LETTER_F`,e[e.LATIN_CAPITAL_LETTER_G=71]=`LATIN_CAPITAL_LETTER_G`,e[e.LATIN_CAPITAL_LETTER_H=72]=`LATIN_CAPITAL_LETTER_H`,e[e.LATIN_CAPITAL_LETTER_I=73]=`LATIN_CAPITAL_LETTER_I`,e[e.LATIN_CAPITAL_LETTER_J=74]=`LATIN_CAPITAL_LETTER_J`,e[e.LATIN_CAPITAL_LETTER_K=75]=`LATIN_CAPITAL_LETTER_K`,e[e.LATIN_CAPITAL_LETTER_L=76]=`LATIN_CAPITAL_LETTER_L`,e[e.LATIN_CAPITAL_LETTER_M=77]=`LATIN_CAPITAL_LETTER_M`,e[e.LATIN_CAPITAL_LETTER_N=78]=`LATIN_CAPITAL_LETTER_N`,e[e.LATIN_CAPITAL_LETTER_O=79]=`LATIN_CAPITAL_LETTER_O`,e[e.LATIN_CAPITAL_LETTER_P=80]=`LATIN_CAPITAL_LETTER_P`,e[e.LATIN_CAPITAL_LETTER_Q=81]=`LATIN_CAPITAL_LETTER_Q`,e[e.LATIN_CAPITAL_LETTER_R=82]=`LATIN_CAPITAL_LETTER_R`,e[e.LATIN_CAPITAL_LETTER_S=83]=`LATIN_CAPITAL_LETTER_S`,e[e.LATIN_CAPITAL_LETTER_T=84]=`LATIN_CAPITAL_LETTER_T`,e[e.LATIN_CAPITAL_LETTER_U=85]=`LATIN_CAPITAL_LETTER_U`,e[e.LATIN_CAPITAL_LETTER_V=86]=`LATIN_CAPITAL_LETTER_V`,e[e.LATIN_CAPITAL_LETTER_W=87]=`LATIN_CAPITAL_LETTER_W`,e[e.LATIN_CAPITAL_LETTER_X=88]=`LATIN_CAPITAL_LETTER_X`,e[e.LATIN_CAPITAL_LETTER_Y=89]=`LATIN_CAPITAL_LETTER_Y`,e[e.LATIN_CAPITAL_LETTER_Z=90]=`LATIN_CAPITAL_LETTER_Z`,e[e.LEFT_SQUARE_BRACKET=91]=`LEFT_SQUARE_BRACKET`,e[e.REVERSE_SOLIDUS=92]=`REVERSE_SOLIDUS`,e[e.RIGHT_SQUARE_BRACKET=93]=`RIGHT_SQUARE_BRACKET`,e[e.CIRCUMFLEX_ACCENT=94]=`CIRCUMFLEX_ACCENT`,e[e.LOW_LINE=95]=`LOW_LINE`,e[e.GRAVE_ACCENT=96]=`GRAVE_ACCENT`,e[e.LATIN_SMALL_LETTER_A=97]=`LATIN_SMALL_LETTER_A`,e[e.LATIN_SMALL_LETTER_B=98]=`LATIN_SMALL_LETTER_B`,e[e.LATIN_SMALL_LETTER_C=99]=`LATIN_SMALL_LETTER_C`,e[e.LATIN_SMALL_LETTER_D=100]=`LATIN_SMALL_LETTER_D`,e[e.LATIN_SMALL_LETTER_E=101]=`LATIN_SMALL_LETTER_E`,e[e.LATIN_SMALL_LETTER_F=102]=`LATIN_SMALL_LETTER_F`,e[e.LATIN_SMALL_LETTER_G=103]=`LATIN_SMALL_LETTER_G`,e[e.LATIN_SMALL_LETTER_H=104]=`LATIN_SMALL_LETTER_H`,e[e.LATIN_SMALL_LETTER_I=105]=`LATIN_SMALL_LETTER_I`,e[e.LATIN_SMALL_LETTER_J=106]=`LATIN_SMALL_LETTER_J`,e[e.LATIN_SMALL_LETTER_K=107]=`LATIN_SMALL_LETTER_K`,e[e.LATIN_SMALL_LETTER_L=108]=`LATIN_SMALL_LETTER_L`,e[e.LATIN_SMALL_LETTER_M=109]=`LATIN_SMALL_LETTER_M`,e[e.LATIN_SMALL_LETTER_N=110]=`LATIN_SMALL_LETTER_N`,e[e.LATIN_SMALL_LETTER_O=111]=`LATIN_SMALL_LETTER_O`,e[e.LATIN_SMALL_LETTER_P=112]=`LATIN_SMALL_LETTER_P`,e[e.LATIN_SMALL_LETTER_Q=113]=`LATIN_SMALL_LETTER_Q`,e[e.LATIN_SMALL_LETTER_R=114]=`LATIN_SMALL_LETTER_R`,e[e.LATIN_SMALL_LETTER_S=115]=`LATIN_SMALL_LETTER_S`,e[e.LATIN_SMALL_LETTER_T=116]=`LATIN_SMALL_LETTER_T`,e[e.LATIN_SMALL_LETTER_U=117]=`LATIN_SMALL_LETTER_U`,e[e.LATIN_SMALL_LETTER_V=118]=`LATIN_SMALL_LETTER_V`,e[e.LATIN_SMALL_LETTER_W=119]=`LATIN_SMALL_LETTER_W`,e[e.LATIN_SMALL_LETTER_X=120]=`LATIN_SMALL_LETTER_X`,e[e.LATIN_SMALL_LETTER_Y=121]=`LATIN_SMALL_LETTER_Y`,e[e.LATIN_SMALL_LETTER_Z=122]=`LATIN_SMALL_LETTER_Z`,e[e.LEFT_CURLY_BRACKET=123]=`LEFT_CURLY_BRACKET`,e[e.VERTICAL_LINE=124]=`VERTICAL_LINE`,e[e.RIGHT_CURLY_BRACKET=125]=`RIGHT_CURLY_BRACKET`,e[e.TILDE=126]=`TILDE`})(X||={});var qt={[X.QUOTATION_MARK]:X.QUOTATION_MARK,[X.REVERSE_SOLIDUS]:X.REVERSE_SOLIDUS,[X.SOLIDUS]:X.SOLIDUS,[X.LATIN_SMALL_LETTER_B]:X.BACKSPACE,[X.LATIN_SMALL_LETTER_F]:X.FORM_FEED,[X.LATIN_SMALL_LETTER_N]:X.NEWLINE,[X.LATIN_SMALL_LETTER_R]:X.CARRIAGE_RETURN,[X.LATIN_SMALL_LETTER_T]:X.TAB},Jt=class{constructor(){this.decoder=new TextDecoder(`utf-8`),this.strings=[],this.byteLength=0}appendChar(e){this.strings.push(String.fromCharCode(e)),this.byteLength+=1}appendBuf(e,t=0,n=e.length){this.strings.push(this.decoder.decode(e.subarray(t,n))),this.byteLength+=n-t}reset(){this.strings=[],this.byteLength=0}toString(){return this.strings.join(``)}},Yt=class{constructor(e){this.decoder=new TextDecoder(`utf-8`),this.bufferOffset=0,this.string=``,this.byteLength=0,this.buffer=new Uint8Array(e)}appendChar(e){this.bufferOffset>=this.buffer.length&&this.flushStringBuffer(),this.buffer[this.bufferOffset++]=e,this.byteLength+=1}appendBuf(e,t=0,n=e.length){let r=n-t;this.bufferOffset+r>this.buffer.length&&this.flushStringBuffer(),this.buffer.set(e.subarray(t,n),this.bufferOffset),this.bufferOffset+=r,this.byteLength+=r}flushStringBuffer(){this.string+=this.decoder.decode(this.buffer.subarray(0,this.bufferOffset)),this.bufferOffset=0}reset(){this.string=``,this.bufferOffset=0,this.byteLength=0}toString(){return this.flushStringBuffer(),this.string}},Xt;(function(e){e[e.LEFT_BRACE=0]=`LEFT_BRACE`,e[e.RIGHT_BRACE=1]=`RIGHT_BRACE`,e[e.LEFT_BRACKET=2]=`LEFT_BRACKET`,e[e.RIGHT_BRACKET=3]=`RIGHT_BRACKET`,e[e.COLON=4]=`COLON`,e[e.COMMA=5]=`COMMA`,e[e.TRUE=6]=`TRUE`,e[e.FALSE=7]=`FALSE`,e[e.NULL=8]=`NULL`,e[e.STRING=9]=`STRING`,e[e.NUMBER=10]=`NUMBER`,e[e.SEPARATOR=11]=`SEPARATOR`})(Xt||={});var Z=Xt,Q;(function(e){e[e.START=0]=`START`,e[e.ENDED=1]=`ENDED`,e[e.ERROR=2]=`ERROR`,e[e.TRUE1=3]=`TRUE1`,e[e.TRUE2=4]=`TRUE2`,e[e.TRUE3=5]=`TRUE3`,e[e.FALSE1=6]=`FALSE1`,e[e.FALSE2=7]=`FALSE2`,e[e.FALSE3=8]=`FALSE3`,e[e.FALSE4=9]=`FALSE4`,e[e.NULL1=10]=`NULL1`,e[e.NULL2=11]=`NULL2`,e[e.NULL3=12]=`NULL3`,e[e.STRING_DEFAULT=13]=`STRING_DEFAULT`,e[e.STRING_AFTER_BACKSLASH=14]=`STRING_AFTER_BACKSLASH`,e[e.STRING_UNICODE_DIGIT_1=15]=`STRING_UNICODE_DIGIT_1`,e[e.STRING_UNICODE_DIGIT_2=16]=`STRING_UNICODE_DIGIT_2`,e[e.STRING_UNICODE_DIGIT_3=17]=`STRING_UNICODE_DIGIT_3`,e[e.STRING_UNICODE_DIGIT_4=18]=`STRING_UNICODE_DIGIT_4`,e[e.STRING_INCOMPLETE_CHAR=19]=`STRING_INCOMPLETE_CHAR`,e[e.NUMBER_AFTER_INITIAL_MINUS=20]=`NUMBER_AFTER_INITIAL_MINUS`,e[e.NUMBER_AFTER_INITIAL_ZERO=21]=`NUMBER_AFTER_INITIAL_ZERO`,e[e.NUMBER_AFTER_INITIAL_NON_ZERO=22]=`NUMBER_AFTER_INITIAL_NON_ZERO`,e[e.NUMBER_AFTER_FULL_STOP=23]=`NUMBER_AFTER_FULL_STOP`,e[e.NUMBER_AFTER_DECIMAL=24]=`NUMBER_AFTER_DECIMAL`,e[e.NUMBER_AFTER_E=25]=`NUMBER_AFTER_E`,e[e.NUMBER_AFTER_E_AND_SIGN=26]=`NUMBER_AFTER_E_AND_SIGN`,e[e.NUMBER_AFTER_E_AND_DIGIT=27]=`NUMBER_AFTER_E_AND_DIGIT`,e[e.SEPARATOR=28]=`SEPARATOR`,e[e.BOM_OR_START=29]=`BOM_OR_START`,e[e.BOM=30]=`BOM`})(Q||={});function Zt(e){return`START.ENDED.ERROR.TRUE1.TRUE2.TRUE3.FALSE1.FALSE2.FALSE3.FALSE4.NULL1.NULL2.NULL3.STRING_DEFAULT.STRING_AFTER_BACKSLASH.STRING_UNICODE_DIGIT_1.STRING_UNICODE_DIGIT_2.STRING_UNICODE_DIGIT_3.STRING_UNICODE_DIGIT_4.STRING_INCOMPLETE_CHAR.NUMBER_AFTER_INITIAL_MINUS.NUMBER_AFTER_INITIAL_ZERO.NUMBER_AFTER_INITIAL_NON_ZERO.NUMBER_AFTER_FULL_STOP.NUMBER_AFTER_DECIMAL.NUMBER_AFTER_E.NUMBER_AFTER_E_AND_SIGN.NUMBER_AFTER_E_AND_DIGIT.SEPARATOR.BOM_OR_START.BOM`.split(`.`)[e]}var Qt={stringBufferSize:0,numberBufferSize:0,separator:void 0,emitPartialTokens:!1},$t=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}},en=class{constructor(e){this.state=Q.BOM_OR_START,this.bomIndex=0,this.separatorIndex=0,this.escapedCharsByteLength=0,this.bytes_remaining=0,this.bytes_in_sequence=0,this.char_split_buffer=new Uint8Array(4),this.encoder=new TextEncoder,this.offset=-1,e=Object.assign(Object.assign({},Qt),e),this.emitPartialTokens=e.emitPartialTokens===!0,this.bufferedString=e.stringBufferSize&&e.stringBufferSize>4?new Yt(e.stringBufferSize):new Jt,this.bufferedNumber=e.numberBufferSize&&e.numberBufferSize>0?new Yt(e.numberBufferSize):new Jt,this.separator=e.separator,this.separatorBytes=e.separator?this.encoder.encode(e.separator):void 0}get isEnded(){return this.state===Q.ENDED}write(e){try{let t;if(e instanceof Uint8Array)t=e;else if(typeof e==`string`)t=this.encoder.encode(e);else if(Array.isArray(e))t=Uint8Array.from(e);else if(ArrayBuffer.isView(e))t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);else throw TypeError("Unexpected type. The `write` function only accepts Arrays, TypedArrays and Strings.");for(let n=0;n<t.length;n+=1){let r=t[n];switch(this.state){case Q.BOM_OR_START:if(e instanceof Uint8Array&&r===239){this.bom=[239,187,191],this.bomIndex+=1,this.state=Q.BOM;continue}if(e instanceof Uint16Array){if(r===254){this.bom=[254,255],this.bomIndex+=1,this.state=Q.BOM;continue}if(r===255){this.bom=[255,254],this.bomIndex+=1,this.state=Q.BOM;continue}}if(e instanceof Uint32Array){if(r===0){this.bom=[0,0,254,255],this.bomIndex+=1,this.state=Q.BOM;continue}if(r===255){this.bom=[255,254,0,0],this.bomIndex+=1,this.state=Q.BOM;continue}}case Q.START:if(this.offset+=1,this.separatorBytes&&r===this.separatorBytes[0]){if(this.separatorBytes.length===1){this.state=Q.START,this.onToken({token:Z.SEPARATOR,value:this.separator,offset:this.offset+this.separatorBytes.length-1});continue}this.state=Q.SEPARATOR;continue}if(r===X.SPACE||r===X.NEWLINE||r===X.CARRIAGE_RETURN||r===X.TAB)continue;if(r===X.LEFT_CURLY_BRACKET){this.onToken({token:Z.LEFT_BRACE,value:`{`,offset:this.offset});continue}if(r===X.RIGHT_CURLY_BRACKET){this.onToken({token:Z.RIGHT_BRACE,value:`}`,offset:this.offset});continue}if(r===X.LEFT_SQUARE_BRACKET){this.onToken({token:Z.LEFT_BRACKET,value:`[`,offset:this.offset});continue}if(r===X.RIGHT_SQUARE_BRACKET){this.onToken({token:Z.RIGHT_BRACKET,value:`]`,offset:this.offset});continue}if(r===X.COLON){this.onToken({token:Z.COLON,value:`:`,offset:this.offset});continue}if(r===X.COMMA){this.onToken({token:Z.COMMA,value:`,`,offset:this.offset});continue}if(r===X.LATIN_SMALL_LETTER_T){this.state=Q.TRUE1;continue}if(r===X.LATIN_SMALL_LETTER_F){this.state=Q.FALSE1;continue}if(r===X.LATIN_SMALL_LETTER_N){this.state=Q.NULL1;continue}if(r===X.QUOTATION_MARK){this.bufferedString.reset(),this.escapedCharsByteLength=0,this.state=Q.STRING_DEFAULT;continue}if(r>=X.DIGIT_ONE&&r<=X.DIGIT_NINE){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_INITIAL_NON_ZERO;continue}if(r===X.DIGIT_ZERO){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_INITIAL_ZERO;continue}if(r===X.HYPHEN_MINUS){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_INITIAL_MINUS;continue}break;case Q.STRING_DEFAULT:if(r===X.QUOTATION_MARK){let e=this.bufferedString.toString();this.state=Q.START,this.onToken({token:Z.STRING,value:e,offset:this.offset}),this.offset+=this.escapedCharsByteLength+this.bufferedString.byteLength+1;continue}if(r===X.REVERSE_SOLIDUS){this.state=Q.STRING_AFTER_BACKSLASH;continue}if(r>=128){if(r>=194&&r<=223?this.bytes_in_sequence=2:r<=239?this.bytes_in_sequence=3:this.bytes_in_sequence=4,this.bytes_in_sequence<=t.length-n){this.bufferedString.appendBuf(t,n,n+this.bytes_in_sequence),n+=this.bytes_in_sequence-1;continue}this.bytes_remaining=n+this.bytes_in_sequence-t.length,this.char_split_buffer.set(t.subarray(n)),n=t.length-1,this.state=Q.STRING_INCOMPLETE_CHAR;continue}if(r>=X.SPACE){this.bufferedString.appendChar(r);continue}break;case Q.STRING_INCOMPLETE_CHAR:this.char_split_buffer.set(t.subarray(n,n+this.bytes_remaining),this.bytes_in_sequence-this.bytes_remaining),this.bufferedString.appendBuf(this.char_split_buffer,0,this.bytes_in_sequence),n=this.bytes_remaining-1,this.state=Q.STRING_DEFAULT;continue;case Q.STRING_AFTER_BACKSLASH:let i=qt[r];if(i){this.bufferedString.appendChar(i),this.escapedCharsByteLength+=1,this.state=Q.STRING_DEFAULT;continue}if(r===X.LATIN_SMALL_LETTER_U){this.unicode=``,this.state=Q.STRING_UNICODE_DIGIT_1;continue}break;case Q.STRING_UNICODE_DIGIT_1:case Q.STRING_UNICODE_DIGIT_2:case Q.STRING_UNICODE_DIGIT_3:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE||r>=X.LATIN_CAPITAL_LETTER_A&&r<=X.LATIN_CAPITAL_LETTER_F||r>=X.LATIN_SMALL_LETTER_A&&r<=X.LATIN_SMALL_LETTER_F){this.unicode+=String.fromCharCode(r),this.state+=1;continue}break;case Q.STRING_UNICODE_DIGIT_4:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE||r>=X.LATIN_CAPITAL_LETTER_A&&r<=X.LATIN_CAPITAL_LETTER_F||r>=X.LATIN_SMALL_LETTER_A&&r<=X.LATIN_SMALL_LETTER_F){let e=parseInt(this.unicode+String.fromCharCode(r),16),t;if(this.highSurrogate===void 0)if(e>=55296&&e<=56319){this.highSurrogate=e,this.state=Q.STRING_DEFAULT;continue}else t=String.fromCharCode(e);else t=e>=56320&&e<=57343?String.fromCharCode(this.highSurrogate,e):String.fromCharCode(this.highSurrogate),this.highSurrogate=void 0;let n=this.encoder.encode(t);this.bufferedString.appendBuf(n),this.escapedCharsByteLength+=6-n.byteLength,this.state=Q.STRING_DEFAULT;continue}break;case Q.NUMBER_AFTER_INITIAL_MINUS:if(r===X.DIGIT_ZERO){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_INITIAL_ZERO;continue}if(r>=X.DIGIT_ONE&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_INITIAL_NON_ZERO;continue}break;case Q.NUMBER_AFTER_INITIAL_ZERO:if(r===X.FULL_STOP){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_FULL_STOP;continue}if(r===X.LATIN_SMALL_LETTER_E||r===X.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_E;continue}--n,this.state=Q.START,this.emitNumber();continue;case Q.NUMBER_AFTER_INITIAL_NON_ZERO:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}if(r===X.FULL_STOP){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_FULL_STOP;continue}if(r===X.LATIN_SMALL_LETTER_E||r===X.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_E;continue}--n,this.state=Q.START,this.emitNumber();continue;case Q.NUMBER_AFTER_FULL_STOP:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_DECIMAL;continue}break;case Q.NUMBER_AFTER_DECIMAL:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}if(r===X.LATIN_SMALL_LETTER_E||r===X.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_E;continue}--n,this.state=Q.START,this.emitNumber();continue;case Q.NUMBER_AFTER_E:if(r===X.PLUS_SIGN||r===X.HYPHEN_MINUS){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_E_AND_SIGN;continue}case Q.NUMBER_AFTER_E_AND_SIGN:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Q.NUMBER_AFTER_E_AND_DIGIT;continue}break;case Q.NUMBER_AFTER_E_AND_DIGIT:if(r>=X.DIGIT_ZERO&&r<=X.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}--n,this.state=Q.START,this.emitNumber();continue;case Q.TRUE1:if(r===X.LATIN_SMALL_LETTER_R){this.state=Q.TRUE2;continue}break;case Q.TRUE2:if(r===X.LATIN_SMALL_LETTER_U){this.state=Q.TRUE3;continue}break;case Q.TRUE3:if(r===X.LATIN_SMALL_LETTER_E){this.state=Q.START,this.onToken({token:Z.TRUE,value:!0,offset:this.offset}),this.offset+=3;continue}break;case Q.FALSE1:if(r===X.LATIN_SMALL_LETTER_A){this.state=Q.FALSE2;continue}break;case Q.FALSE2:if(r===X.LATIN_SMALL_LETTER_L){this.state=Q.FALSE3;continue}break;case Q.FALSE3:if(r===X.LATIN_SMALL_LETTER_S){this.state=Q.FALSE4;continue}break;case Q.FALSE4:if(r===X.LATIN_SMALL_LETTER_E){this.state=Q.START,this.onToken({token:Z.FALSE,value:!1,offset:this.offset}),this.offset+=4;continue}break;case Q.NULL1:if(r===X.LATIN_SMALL_LETTER_U){this.state=Q.NULL2;continue}break;case Q.NULL2:if(r===X.LATIN_SMALL_LETTER_L){this.state=Q.NULL3;continue}break;case Q.NULL3:if(r===X.LATIN_SMALL_LETTER_L){this.state=Q.START,this.onToken({token:Z.NULL,value:null,offset:this.offset}),this.offset+=3;continue}break;case Q.SEPARATOR:if(this.separatorIndex+=1,!this.separatorBytes||r!==this.separatorBytes[this.separatorIndex])break;this.separatorIndex===this.separatorBytes.length-1&&(this.state=Q.START,this.onToken({token:Z.SEPARATOR,value:this.separator,offset:this.offset+this.separatorIndex}),this.separatorIndex=0);continue;case Q.BOM:if(r===this.bom[this.bomIndex]){if(this.bomIndex===this.bom.length-1){this.state=Q.START,this.bom=void 0,this.bomIndex=0;continue}this.bomIndex+=1;continue}break;case Q.ENDED:if(r===X.SPACE||r===X.NEWLINE||r===X.CARRIAGE_RETURN||r===X.TAB)continue}throw new $t(`Unexpected "${String.fromCharCode(r)}" at position "${n}" in state ${Zt(this.state)}`)}if(this.emitPartialTokens)switch(this.state){case Q.TRUE1:case Q.TRUE2:case Q.TRUE3:this.onToken({token:Z.TRUE,value:!0,offset:this.offset,partial:!0});break;case Q.FALSE1:case Q.FALSE2:case Q.FALSE3:case Q.FALSE4:this.onToken({token:Z.FALSE,value:!1,offset:this.offset,partial:!0});break;case Q.NULL1:case Q.NULL2:case Q.NULL3:this.onToken({token:Z.NULL,value:null,offset:this.offset,partial:!0});break;case Q.STRING_DEFAULT:{let e=this.bufferedString.toString();this.onToken({token:Z.STRING,value:e,offset:this.offset,partial:!0});break}case Q.NUMBER_AFTER_INITIAL_ZERO:case Q.NUMBER_AFTER_INITIAL_NON_ZERO:case Q.NUMBER_AFTER_DECIMAL:case Q.NUMBER_AFTER_E_AND_DIGIT:try{this.onToken({token:Z.NUMBER,value:this.parseNumber(this.bufferedNumber.toString()),offset:this.offset,partial:!0})}catch{}}}catch(e){this.error(e)}}emitNumber(){this.onToken({token:Z.NUMBER,value:this.parseNumber(this.bufferedNumber.toString()),offset:this.offset}),this.offset+=this.bufferedNumber.byteLength-1}parseNumber(e){return Number(e)}error(e){this.state!==Q.ENDED&&(this.state=Q.ERROR),this.onError(e)}end(){switch(this.state){case Q.NUMBER_AFTER_INITIAL_ZERO:case Q.NUMBER_AFTER_INITIAL_NON_ZERO:case Q.NUMBER_AFTER_DECIMAL:case Q.NUMBER_AFTER_E_AND_DIGIT:this.state=Q.ENDED,this.emitNumber(),this.onEnd();break;case Q.BOM_OR_START:case Q.START:case Q.ERROR:case Q.SEPARATOR:this.state=Q.ENDED,this.onEnd();break;default:this.error(new $t(`Tokenizer ended in the middle of a token (state: ${Zt(this.state)}). Either not all the data was received or the data was invalid.`))}}onToken(e){throw new $t(`Can't emit tokens before the "onToken" callback has been set up.`)}onError(e){throw e}onEnd(){}},tn;(function(e){e[e.OBJECT=0]=`OBJECT`,e[e.ARRAY=1]=`ARRAY`})(tn||={});var $;(function(e){e[e.VALUE=0]=`VALUE`,e[e.KEY=1]=`KEY`,e[e.COLON=2]=`COLON`,e[e.COMMA=3]=`COMMA`,e[e.ENDED=4]=`ENDED`,e[e.ERROR=5]=`ERROR`,e[e.SEPARATOR=6]=`SEPARATOR`})($||={});function nn(e){return[`VALUE`,`KEY`,`COLON`,`COMMA`,`ENDED`,`ERROR`,`SEPARATOR`][e]}var rn={paths:void 0,keepStack:!0,separator:void 0,emitPartialValues:!1},an=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}},on=class{constructor(e){this.state=$.VALUE,this.mode=void 0,this.key=void 0,this.value=void 0,this.stack=[],e=Object.assign(Object.assign({},rn),e),e.paths&&(this.paths=e.paths.map(e=>{if(e===void 0||e===`$*`)return;if(!e.startsWith(`$`))throw new an(`Invalid selector "${e}". Should start with "$".`);let t=e.split(`.`).slice(1);if(t.includes(``))throw new an(`Invalid selector "${e}". ".." syntax not supported.`);return t})),this.keepStack=e.keepStack||!1,this.separator=e.separator,e.emitPartialValues||(this.emitPartial=()=>{})}shouldEmit(){return this.paths?this.paths.some(e=>{if(e===void 0)return!0;if(e.length!==this.stack.length)return!1;for(let t=0;t<e.length-1;t++){let n=e[t],r=this.stack[t+1].key;if(n!==`*`&&n!==r?.toString())return!1}let t=e[e.length-1];return t===`*`?!0:t===this.key?.toString()}):!0}push(){this.stack.push({key:this.key,value:this.value,mode:this.mode,emit:this.shouldEmit()})}pop(){let e=this.value,t;({key:this.key,value:this.value,mode:this.mode,emit:t}=this.stack.pop()),this.state=this.mode===void 0?$.VALUE:$.COMMA,this.emit(e,t)}emit(e,t){!this.keepStack&&this.value&&this.stack.every(e=>!e.emit)&&delete this.value[this.key],t&&this.onValue({value:e,key:this.key,parent:this.value,stack:this.stack}),this.stack.length===0&&(this.separator?this.state=$.SEPARATOR:this.separator===void 0&&this.end())}emitPartial(e){if(this.shouldEmit()){if(this.state===$.KEY){this.onValue({value:void 0,key:e,parent:this.value,stack:this.stack,partial:!0});return}this.onValue({value:e,key:this.key,parent:this.value,stack:this.stack,partial:!0})}}get isEnded(){return this.state===$.ENDED}write({token:e,value:t,partial:n}){try{if(n){this.emitPartial(t);return}if(this.state===$.VALUE){if(e===Z.STRING||e===Z.NUMBER||e===Z.TRUE||e===Z.FALSE||e===Z.NULL){this.mode===tn.OBJECT?(this.value[this.key]=t,this.state=$.COMMA):this.mode===tn.ARRAY&&(this.value.push(t),this.state=$.COMMA),this.emit(t,this.shouldEmit());return}if(e===Z.LEFT_BRACE){if(this.push(),this.mode===tn.OBJECT)this.value=this.value[this.key]={};else if(this.mode===tn.ARRAY){let e={};this.value.push(e),this.value=e}else this.value={};this.mode=tn.OBJECT,this.state=$.KEY,this.key=void 0,this.emitPartial();return}if(e===Z.LEFT_BRACKET){if(this.push(),this.mode===tn.OBJECT)this.value=this.value[this.key]=[];else if(this.mode===tn.ARRAY){let e=[];this.value.push(e),this.value=e}else this.value=[];this.mode=tn.ARRAY,this.state=$.VALUE,this.key=0,this.emitPartial();return}if(this.mode===tn.ARRAY&&e===Z.RIGHT_BRACKET&&this.value.length===0){this.pop();return}}if(this.state===$.KEY){if(e===Z.STRING){this.key=t,this.state=$.COLON,this.emitPartial();return}if(e===Z.RIGHT_BRACE&&Object.keys(this.value).length===0){this.pop();return}}if(this.state===$.COLON&&e===Z.COLON){this.state=$.VALUE;return}if(this.state===$.COMMA){if(e===Z.COMMA){if(this.mode===tn.ARRAY){this.state=$.VALUE,this.key+=1;return}if(this.mode===tn.OBJECT){this.state=$.KEY;return}}if(e===Z.RIGHT_BRACE&&this.mode===tn.OBJECT||e===Z.RIGHT_BRACKET&&this.mode===tn.ARRAY){this.pop();return}}if(this.state===$.SEPARATOR&&e===Z.SEPARATOR&&t===this.separator){this.state=$.VALUE;return}if(e===Z.SEPARATOR&&this.state!==$.SEPARATOR&&Array.from(t).map(e=>e.charCodeAt(0)).every(e=>e===X.SPACE||e===X.NEWLINE||e===X.CARRIAGE_RETURN||e===X.TAB))return;throw new an(`Unexpected ${Z[e]} (${JSON.stringify(t)}) in state ${nn(this.state)}`)}catch(e){this.error(e)}}error(e){this.state!==$.ENDED&&(this.state=$.ERROR),this.onError(e)}end(){this.state!==$.VALUE&&this.state!==$.SEPARATOR||this.stack.length>0?this.error(Error(`Parser ended in mid-parsing (state: ${nn(this.state)}). Either not all the data was received or the data was invalid.`)):(this.state=$.ENDED,this.onEnd())}onValue(e){throw new an(`Can't emit data before the "onValue" callback has been set up.`)}onError(e){throw e}onEnd(){}},sn=class{constructor(e={}){this.tokenizer=new en(e),this.tokenParser=new on(e),this.tokenizer.onToken=this.tokenParser.write.bind(this.tokenParser),this.tokenizer.onEnd=()=>{this.tokenParser.isEnded||this.tokenParser.end()},this.tokenParser.onError=this.tokenizer.error.bind(this.tokenizer),this.tokenParser.onEnd=()=>{this.tokenizer.isEnded||this.tokenizer.end()}}get isEnded(){return this.tokenizer.isEnded&&this.tokenParser.isEnded}write(e){this.tokenizer.write(e)}end(){this.tokenizer.end()}set onToken(e){this.tokenizer.onToken=t=>{e(t),this.tokenParser.write(t)}}set onValue(e){this.tokenParser.onValue=e}set onError(e){this.tokenizer.onError=e}set onEnd(e){this.tokenParser.onEnd=()=>{this.tokenizer.isEnded||this.tokenizer.end(),e.call(this.tokenParser)}}};function cn(e){let t=[];if(e.oldText!==``)for(let n of e.oldText.split(`
|
|
34
|
+
`))t.push({kind:`deletion`,text:`- ${n}`});if(e.newText!==``)for(let n of e.newText.split(`
|
|
35
|
+
`))t.push({kind:`addition`,text:`+ ${n}`});return t}function ln(){let e=[],t=!1,n=!1,r=t=>{for(;e.length<=t;)e.push({oldText:``,newText:``});return e[t]},i=null;try{i=new sn({emitPartialTokens:!0,emitPartialValues:!0,paths:[`$.edits.*.oldText`,`$.edits.*.newText`],keepStack:!1})}catch{t=!0}return i&&(i.onValue=e=>{try{let t=e.key;if(t!==`oldText`&&t!==`newText`)return;let n;for(let t of e.stack)if(typeof t.key==`number`){n=t.key;break}if(n===void 0)return;let i=typeof e.value==`string`?e.value:``;r(n)[t]=i}catch{t=!0}},i.onError=()=>{t=!0}),{get entries(){return e},write(e){if(!(t||n||!i))try{i.write(e)}catch{t=!0}},dispose(){if(!n){n=!0;try{i?.end()}catch{}i=null}}}}var un=f(`<div class="edit-diff-gap svelte-1i84oek"></div>`),dn=f(`<span> </span> `,1),fn=f(`<!> <pre class="edit-diff svelte-1i84oek"><code class="hljs language-diff svelte-1i84oek"></code></pre>`,1);function pn(n,r){E(r,!0);var a=u();h(w(a),17,()=>r.entries,i,(n,r,a)=>{let o=F(()=>cn(g(r)));var s=fn(),c=w(s),u=e=>{l(e,un())};d(c,e=>{a>0&&e(u)});var f=I(c,2),p=e(f);h(p,21,()=>g(o),i,(n,r,i)=>{var a=dn(),s=w(a),c=e(s,!0);V(s);var u=I(s,1,!0);v(()=>{B(s,1,`hljs-${g(r).kind}`,`svelte-1i84oek`),t(c,g(r).text),t(u,i<g(o).length-1?`
|
|
36
|
+
`:``)}),l(n,a)}),V(p),V(f),l(n,s)}),l(n,a),M()}var mn=f(`<pre><code class="hljs svelte-efow92"></code></pre>`),hn=f(`<div><!></div>`),gn=f(`<button class="wfb-toggle svelte-efow92"> </button>`),_n=f(`<div class="write-file-block svelte-efow92"><button type="button" aria-label="Copy file contents" title="Copy file contents"> </button> <!> <!></div>`);function vn(n,r){E(r,!0);let i=y(r,`streaming`,3,!1),a=A(void 0),o=A(void 0),s=F(()=>r.content.split(`
|
|
37
|
+
`).length),c=F(()=>g(s)>20),u=F(i),f=F(()=>g(c)&&!g(u)),p=F(()=>g(c)&&g(u)),m=At();_(()=>()=>m.dispose()),_(()=>{if(r.mode!==`code`)return;let e=g(a);if(!e)return;e.classList.add(`hljs`);let t=r.content,n=r.language;i()?m.schedule(e,t,n):(m.schedule(e,t,n),m.flush())}),_(()=>{r.mode!==`code`||!i()||!g(p)||!g(o)||(r.content,g(o).scrollTop=g(o).scrollHeight)});let h=A(!1),b;_(()=>()=>{b&&clearTimeout(b)});async function x(){try{await navigator.clipboard.writeText(r.content),T(h,!0),b&&clearTimeout(b),b=setTimeout(()=>T(h,!1),1200)}catch{}}var C=_n(),w=e(C);let D;var O=e(w,!0);V(w);var k=I(w,2),N=t=>{var n=mn();let r;S(e(n),e=>T(a,e),()=>g(a)),V(n),S(n,e=>T(o,e),()=>g(o)),v(()=>r=B(n,1,`wfb-body wfb-code svelte-efow92`,null,r,{clamped:g(f),scrollable:g(p)})),l(t,n)},P=t=>{var n=hn();let a;It(e(n),{get text(){return r.content},get streaming(){return i()}}),V(n),S(n,e=>T(o,e),()=>g(o)),v(()=>a=B(n,1,`wfb-body wfb-markdown svelte-efow92`,null,a,{clamped:g(f),scrollable:g(p)})),l(t,n)};d(k,e=>{r.mode===`code`?e(N):e(P,-1)});var L=I(k,2),ee=n=>{var r=gn(),i=e(r,!0);V(r),v(()=>t(i,g(u)?`Show less`:`Show more… (${g(s)} lines)`)),H(`click`,r,()=>T(u,!g(u))),l(n,r)};d(L,e=>{g(c)&&e(ee)}),V(C),v(()=>{j(C,`data-mode`,r.mode),D=B(w,1,`code-copy-btn svelte-efow92`,null,D,{copied:g(h)}),t(O,g(h)?`Copied`:`Copy`)}),H(`click`,w,x),l(n,C),M()}m([`click`]);function yn(e){return e&&typeof e==`object`&&typeof e.content==`string`?e.content:``}function bn(){let e=``,t=!1,n=!1,r=null;try{r=new sn({emitPartialTokens:!0,emitPartialValues:!0,paths:[`$.content`],keepStack:!1})}catch{t=!0}return r&&(r.onValue=n=>{try{typeof n.value==`string`&&(e=n.value)}catch{t=!0}},r.onError=()=>{t=!0}),{get content(){return e},write(e){if(!(t||n||!r))try{r.write(e)}catch{t=!0}},dispose(){if(!n){n=!0;try{r?.end()}catch{}r=null}}}}function xn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`}]];U(e,P({name:`wrench`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Sn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]];U(e,P({name:`circle-check`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Cn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m15 9-6 6`}],[`path`,{d:`m9 9 6 6`}]];U(e,P({name:`circle-x`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var wn=f(`<span class="tool-detail svelte-1j1om46"> </span>`),Tn=f(`<span class="tool-status svelte-1j1om46">running…</span>`),En=f(`<span class="tool-status svelte-1j1om46">completed</span>`),Dn=f(`<div class="tool-section svelte-1j1om46"><!></div>`),On=f(`<div class="tool-section svelte-1j1om46"><!></div>`),kn=f(`<div class="tool-section svelte-1j1om46"><div class="tool-section-label svelte-1j1om46">Arguments</div> <!></div>`),An=f(`<div class="tool-section svelte-1j1om46"><div class="tool-section-label svelte-1j1om46"> </div> <!></div>`),jn=f(`<div class="tool-content svelte-1j1om46"><!> <!></div>`),Mn=f(`<div><button class="tool-header svelte-1j1om46"><!> <!> <span class="tool-name svelte-1j1om46"> </span> <!> <!></button> <!></div>`);function Nn(n,r){E(r,!0);let i=y(r,`streaming`,3,!1),a=y(r,`inProgress`,3,!1),o=y(r,`partialResult`,3,``),s=y(r,`result`,3,void 0),c=y(r,`isError`,3,!1),u=A(!1),f=F(()=>r.content.toolName??`unknown`),p=F(()=>r.content.type===`tool_result`),m=F(()=>g(p)||s()!==void 0),h=F(()=>g(f)===`edit`),b=F(()=>g(f)===`write`),x=A(void 0),S=0,C=A(O([]));_(()=>{if(!g(h))return;if(!i()){g(x)&&(g(x).dispose(),T(x,void 0),S=0);return}let e=r.content.text??``;e&&(g(x)||(T(x,ln(),!0),S=0),e.length>S&&(g(x).write(e.slice(S)),S=e.length),T(C,g(x).entries.map(e=>({oldText:e.oldText,newText:e.newText})),!0))}),_(()=>{g(h)&&(i()||a()?T(u,!0):T(u,!1))});let w=A(void 0),D=0,k=A(``);_(()=>{if(!g(b))return;if(!i()){g(w)&&(g(w).dispose(),T(w,void 0),D=0);return}let e=r.content.text??``;e&&(g(w)||(T(w,bn(),!0),D=0),e.length>D&&(g(w).write(e.slice(D)),D=e.length),T(k,g(w).content,!0))}),_(()=>{g(b)&&(i()||a()?T(u,!0):T(u,!1))});let j=F(()=>{let e=r.content.args;if(e&&typeof e.path==`string`)return e.path;let t=(r.content.text??``).match(/"path"\s*:\s*"((?:[^"\\]|\\.)*)"/);if(t)try{return JSON.parse(`"${t[1]}"`)}catch{return``}return``}),N=F(()=>g(b)?$e(g(j)):null),P=F(()=>g(N)===`markdown`),L=F(()=>g(b)&&r.content.args?yn(r.content.args):void 0),ee=F(()=>g(b)?g(L)??g(k):``),R=F(()=>g(h)&&r.content.args?r.content.args.edits??[]:void 0),z=F(()=>g(h)?g(R)??g(C):[]);function te(e,t){let n=e,r=t.endsWith(`/`)?t.slice(0,-1):t;if(r&&n.startsWith(r+`/`)&&(n=n.slice(r.length+1)),n.length>80){let e=n.split(`/`);for(;e.length>1&&e.join(`/`).length>80;)e.shift();n=`…/`+e.join(`/`)}return n}let U=F(()=>{let e=r.content.args;if(!e||typeof e!=`object`)return``;let t=e,n=g(f);return(n===`read`||n===`write`||n===`edit`)&&typeof t.path==`string`?te(t.path,G.viewed?.folderPath??``):n===`bash`&&typeof t.command==`string`?t.command.replace(/[\n\r]+/g,` `).replace(/\s+/g,` `).trim():``});function ne(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}let re=F(()=>i()&&!r.content.args?r.content.text??``:ne(r.content.args)),ae=F(()=>g(p)?ne(r.content.result):s()===void 0?o():ne(s()));var oe=Mn();let se;var ce=e(oe),le=e(ce);{let e=F(()=>g(u)?`rotate-90`:``);ie(le,{get class(){return`shrink-0 transition-transform duration-150 ${g(e)??``}`},size:14})}var ue=I(le,2),de=e=>{ge(e,{size:14,class:`shrink-0 animate-spin`})},fe=e=>{Cn(e,{size:14,class:`tool-icon-error shrink-0`})},pe=e=>{Sn(e,{size:14,class:`shrink-0`})},me=e=>{xn(e,{size:14,class:`shrink-0`})};d(ue,e=>{a()?e(de):g(m)&&c()?e(fe,1):g(m)?e(pe,2):e(me,-1)});var he=I(ue,2),_e=e(he,!0);V(he);var ve=I(he,2),ye=n=>{var r=wn(),i=e(r,!0);V(r),v(()=>t(i,g(U))),l(n,r)};d(ve,e=>{g(U)&&e(ye)});var be=I(ve,2),xe=e=>{l(e,Tn())},Se=e=>{l(e,En())};d(be,e=>{a()?e(xe):g(m)&&e(Se,1)}),V(ce);var Ce=I(ce,2),we=n=>{var o=jn(),s=e(o),c=t=>{var n=Dn();pn(e(n),{get entries(){return g(z)}}),V(n),l(t,n)},u=t=>{var n=On(),r=e(n);{let e=F(()=>g(P)?`markdown`:`code`),t=F(()=>i()&&!g(m));vn(r,{get content(){return g(ee)},get mode(){return g(e)},get language(){return g(N)},get streaming(){return g(t)}})}V(n),l(t,n)},f=t=>{var n=kn(),r=I(e(n),2);{let e=F(()=>i()&&!g(m));Kt(r,{get text(){return g(re)},get streaming(){return g(e)}})}V(n),l(t,n)};d(s,e=>{g(h)&&g(z).length>0?e(c):g(b)&&(g(ee)!==``||r.content.args)?e(u,1):g(re)&&e(f,2)});var p=I(s,2),_=n=>{var r=An(),i=e(r),o=e(i,!0);V(i),Kt(I(i,2),{get text(){return g(ae)},get streaming(){return a()}}),V(r),v(()=>t(o,a()?`Output (streaming)`:`Result`)),l(n,r)};d(p,e=>{g(ae)&&e(_)}),V(o),l(n,o)};d(Ce,e=>{g(u)&&e(we)}),V(oe),v(()=>{se=B(oe,1,`tool-block svelte-1j1om46`,null,se,{"tool-result":g(p),"tool-completed":g(m),"tool-error":c(),"in-progress":a()}),t(_e,g(f))}),H(`click`,ce,()=>T(u,!g(u))),l(n,oe),M()}m([`click`]);function Pn(e){let t=e;return t=t.replace(/^```(\w*)\n([\s\S]*?)^```/gm,(e,t,n)=>{let r=n?n.replace(/\n$/,``).split(`
|
|
38
|
+
`):[],i=n.trim()===``?0:r.length;return t?`Code block, ${i} lines, ${t}.`:`Code block, ${i} lines.`}),t=t.replace(/<[^>]+>/g,``),t=t.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`),t=t.replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`),t=t.replace(/^#{1,6}\s+/gm,``),t=t.replace(/^(?:---|\*\*\*|___)$/gm,``),t=t.replace(/(?:^\|.+\|[ \t]*(?:\n|$))+/gm,e=>{let t=e.trim().split(`
|
|
39
|
+
`).map(e=>e.replace(/^\|/,``).replace(/\|$/,``).split(`|`).map(e=>e.trim()));if(t.length<2)return``;let n=t[0];if(!t[1].every(e=>/^[:-][-:]*$/.test(e)))return``;let r=t.slice(2);return r.length===0?``:r.map(e=>n.map((t,n)=>`${t}: ${e[n]??``}.`).join(` `)).join(`
|
|
40
|
+
`)+`
|
|
41
|
+
`}),t=t.replace(/^([-*+]|\d+\.)\s+(.*)/gm,(e,t,n)=>{let r=n.trimEnd();return r&&!/[.!?:]$/.test(r)?r+`.`:r}),t=t.replace(/\*{3}(.*?)\*{3}/g,`$1`),t=t.replace(/\*{2}(.*?)\*{2}/g,`$1`),t=t.replace(/~~(.*?)~~/g,`$1`),t=t.replace(/`([^`]+)`/g,`$1`),t=t.replace(/(?<!\w)\*([^*]+)\*(?!\w)/g,`$1`),t=t.replace(/(?<!\w)_([^_]+)_(?!\w)/g,`$1`),t=t.replace(/\n{3,}/g,`
|
|
42
|
+
|
|
43
|
+
`),t=t.trim(),/^\s*$/.test(t)?``:t}var Fn=O({playingKey:null}),In=0;function Ln(e,t){speechSynthesis.cancel(),In++,Fn.playingKey=null;let n=e.split(`
|
|
44
|
+
|
|
45
|
+
`).map(e=>e.trim()).filter(e=>e.length>0);if(n.length===0)return;Fn.playingKey=t;let r=In,i=n.length;for(let e=0;e<i;e++){let t=new SpeechSynthesisUtterance(n[e]);t.onend=()=>{r===In&&e===i-1&&(Fn.playingKey=null)},t.onerror=()=>{r===In&&Rn()},speechSynthesis.speak(t)}}function Rn(){speechSynthesis.cancel(),In++,Fn.playingKey=null}function zn(e,t){if(Fn.playingKey===e)Rn();else{let n=Pn(t);n&&Ln(n,e)}}function Bn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`}]];U(e,P({name:`volume-2`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Vn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M16 9a5 5 0 0 1 .95 2.293`}],[`path`,{d:`M19.364 5.636a9 9 0 0 1 1.889 9.96`}],[`path`,{d:`m2 2 20 20`}],[`path`,{d:`m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11`}],[`path`,{d:`M9.828 4.172A.686.686 0 0 1 11 4.657v.686`}]];U(e,P({name:`volume-off`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Hn=f(`<button class="tool-btn svelte-4obvr9"><!></button>`);function Un(t,n){E(n,!0);let r=F(()=>Fn.playingKey===n.messageKey);var i=Hn(),a=e(i),o=e=>{Vn(e,{size:14})},s=e=>{Bn(e,{size:14})};d(a,e=>{g(r)?e(o):e(s,-1)}),V(i),v(()=>j(i,`title`,g(r)?`Stop audio`:`Read aloud`)),H(`click`,i,()=>zn(n.messageKey,n.textContent)),l(t,i),M()}m([`click`]);function Wn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]];U(e,P({name:`copy`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Gn=f(`<button class="tool-btn svelte-1kw4msz"><!></button>`);function Kn(t,n){let r=y(n,`title`,3,`Copy message`),i=A(!1),a;async function o(){try{await navigator.clipboard.writeText(n.text),T(i,!0),a&&clearTimeout(a),a=setTimeout(()=>T(i,!1),1200)}catch{}}var s=Gn(),c=e(s),u=e=>{ze(e,{size:14})},f=e=>{Wn(e,{size:14})};d(c,e=>{g(i)?e(u):e(f,-1)}),V(s),v(()=>{j(s,`title`,r()),j(s,`aria-label`,r())}),H(`click`,s,o),l(t,s)}m([`click`]);function qn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]];U(e,P({name:`user`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Jn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 8V4H8`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`}],[`path`,{d:`M2 14h2`}],[`path`,{d:`M20 14h2`}],[`path`,{d:`M15 13v2`}],[`path`,{d:`M9 13v2`}]];U(e,P({name:`bot`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Yn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`18`,r:`3`}],[`circle`,{cx:`6`,cy:`6`,r:`3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`}],[`path`,{d:`M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9`}],[`path`,{d:`M12 12v3`}]];U(e,P({name:`git-fork`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Xn(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`}]];U(e,P({name:`circle-slash`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Zn(e){let t=e.trim()||`Unknown provider error`;try{let n=JSON.parse(e),r=n.error,i=typeof r?.message==`string`&&r.message.trim()?r.message.trim():typeof n.message==`string`&&n.message.trim()?n.message.trim():t,a=typeof r?.type==`string`&&r.type.trim()?r.type.trim():typeof n.type==`string`&&n.type.trim()?n.type.trim():void 0,o=typeof n.request_id==`string`&&n.request_id.trim()?n.request_id.trim():void 0;return{summary:a?`${i} (${a})`:i,detail:t,...o?{requestId:o}:{}}}catch{return{summary:t}}}var Qn=f(`<div class="tool-menu svelte-1uqoiy7"><button class="fork-btn svelte-1uqoiy7" title="Fork from this message"><!></button></div>`),$n=f(`<div class="user-icon-col svelte-1uqoiy7"><button class="message-icon user-icon svelte-1uqoiy7"><!></button> <!></div>`),er=f(`<div class="message-icon user-icon svelte-1uqoiy7"><!></div>`),tr=f(`<span class="skill-line-count svelte-1uqoiy7"> </span>`),nr=f(`<button class="skill-toggle svelte-1uqoiy7">Show more…</button>`),rr=f(`<button class="skill-toggle svelte-1uqoiy7">Show less</button>`),ir=f(`<div class="user-body skill-after svelte-1uqoiy7"><div class="user-text svelte-1uqoiy7"> </div></div>`),ar=f(`<div class="skill-body svelte-1uqoiy7"><button class="skill-header svelte-1uqoiy7"><!> <span class="skill-label svelte-1uqoiy7"> </span> <!></button> <div class="skill-content svelte-1uqoiy7"><div><!></div> <!></div></div> <!>`,1),or=f(`<div class="user-body svelte-1uqoiy7"><div class="user-text svelte-1uqoiy7"> </div></div>`),sr=f(`<div class="message user-message svelte-1uqoiy7"><!> <div class="message-body svelte-1uqoiy7"><!></div></div>`),cr=f(`<div class="message aborted-indicator text-muted-foreground flex items-center gap-2 px-2 py-1 text-xs italic svelte-1uqoiy7"><!> <span>interrupted</span></div>`),lr=f(`<div class="tool-menu svelte-1uqoiy7"><!> <!></div>`),ur=f(`<button class="message-icon assistant-icon svelte-1uqoiy7"><!></button> <!>`,1),dr=f(`<div class="message-icon assistant-icon svelte-1uqoiy7"><!></div>`),fr=f(`<div class="assistant-error-meta svelte-1uqoiy7"> </div>`),pr=f(`<div class="assistant-error svelte-1uqoiy7"><div class="assistant-error-header svelte-1uqoiy7"><!> <span>provider error</span></div> <div class="assistant-error-summary svelte-1uqoiy7"> </div> <!></div>`),mr=f(`<div class="text-muted-foreground mt-1 flex items-center gap-1.5 text-xs italic opacity-70"><!> <span>interrupted</span></div>`),hr=f(`<div><div class="assistant-icon-col svelte-1uqoiy7"><!></div> <div class="message-body svelte-1uqoiy7"><!> <!> <!></div></div>`),gr=f(`<div class="custom-header svelte-1uqoiy7"><span class="custom-label svelte-1uqoiy7">[custom]</span></div> <div class="custom-content svelte-1uqoiy7"><!></div>`,1),_r=f(`<span class="custom-line-count svelte-1uqoiy7"> </span>`),vr=f(`<button class="custom-toggle svelte-1uqoiy7">Show more…</button>`),yr=f(`<button class="custom-toggle svelte-1uqoiy7">Show less</button>`),br=f(`<button class="custom-header svelte-1uqoiy7"><!> <span class="custom-label svelte-1uqoiy7"> </span> <!></button> <div class="custom-content svelte-1uqoiy7"><div><!></div> <!></div>`,1),xr=f(`<div class="message custom-message svelte-1uqoiy7"><div class="custom-body svelte-1uqoiy7"><!></div></div>`),Sr=f(`<div class="message system-message svelte-1uqoiy7"><div class="message-body svelte-1uqoiy7"><div class="system-text svelte-1uqoiy7"> </div></div></div>`);function Cr(n,r){E(r,!0);let a=y(r,`streaming`,3,!1),o=y(r,`messageKey`,3,``),s=A(!1),c=A(!1),f=A(!1),p=A(!1),m=F(()=>r.message.role===`assistant`&&!a()&&r.message.content.some(e=>e.type===`text`&&e.text)),_=F(()=>r.message.role===`assistant`&&r.message.aborted===!0),b=F(()=>g(_)&&r.message.content.every(e=>e.type===`text`&&(!e.text||e.text.length===0)||e.type!==`text`&&e.type!==`tool_call`&&e.type!==`tool_result`&&e.type!==`thinking`)),x=F(()=>r.message.content.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
|
|
46
|
+
|
|
47
|
+
`)),S=F(()=>{if(r.message.role!==`assistant`)return null;let e=`errorMessage`in r.message&&typeof r.message.errorMessage==`string`?r.message.errorMessage:void 0;return e?Zn(e):null}),C=F(()=>r.message.role===`assistant`&&!a()&&g(x).length>0);function D(e){return e.content.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
|
|
48
|
+
`)}function O(e){let t=e.match(/^<skill\s+name="([^"]+)"[^>]*>\n?([\s\S]*?)\n?<\/skill>\s*([\s\S]*)$/);return t?{name:t[1],body:t[2],after:t[3].trim()}:null}let k=F(()=>`entryId`in r.message&&typeof r.message.entryId==`string`?r.message.entryId:void 0),j=F(()=>D(r.message)),N=F(()=>r.message.role===`user`?O(g(j)):null),P=F(()=>g(N)?g(N).body.split(`
|
|
49
|
+
`):[]),L=F(()=>g(P).length>3),ee=F(()=>D(r.message)),z=F(()=>g(ee).split(`
|
|
50
|
+
`)),te=F(()=>g(z).length>10);var U=u(),ne=w(U),re=e=>{},ae=n=>{var i=sr(),a=e(i),o=t=>{var n=$n(),i=e(n);qn(e(i),{size:16}),V(i);var a=I(i,2),o=t=>{var n=Qn(),i=e(n);Yn(e(i),{size:16}),V(i),V(n),H(`click`,i,()=>{r.onfork?.(g(k)),T(s,!1)}),l(t,n)};d(a,e=>{g(s)&&e(o)}),V(n),H(`click`,i,()=>T(s,!g(s))),l(t,n)},c=t=>{var n=er();qn(e(n),{size:16}),V(n),l(t,n)};d(a,e=>{g(k)?e(o):e(c,-1)});var p=I(a,2),m=e(p),h=n=>{var r=ar(),i=w(r),a=e(i),o=e(a),s=e=>{var t=u(),n=w(t),r=e=>{ke(e,{size:14})},i=e=>{ie(e,{size:14})};d(n,e=>{g(f)?e(r):e(i,-1)}),l(e,t)};d(o,e=>{g(L)&&e(s)});var c=I(o,2),p=e(c);V(c);var m=I(c,2),h=n=>{var r=tr(),i=e(r);V(r),v(()=>t(i,`${g(P).length??``} lines`)),l(n,r)};d(m,e=>{g(L)&&e(h)}),V(a);var _=I(a,2),y=e(_);let b;It(e(y),{get text(){return g(N).body}}),V(y);var x=I(y,2),S=e=>{var t=nr();H(`click`,t,()=>T(f,!0)),l(e,t)},C=e=>{var t=rr();H(`click`,t,()=>T(f,!1)),l(e,t)};d(x,e=>{g(L)&&!g(f)?e(S):g(L)&&g(f)&&e(C,1)}),V(_),V(i);var E=I(i,2),D=n=>{var r=ir(),i=e(r),a=e(i,!0);V(i),V(r),v(()=>t(a,g(N).after)),l(n,r)};d(E,e=>{g(N).after&&e(D)}),v(()=>{t(p,`[skill: ${g(N).name??``}]`),b=B(y,1,`skill-text-container svelte-1uqoiy7`,null,b,{"skill-text-collapsed":g(L)&&!g(f),"skill-text-expanded":g(L)&&g(f)})}),H(`click`,a,()=>T(f,!g(f))),l(n,r)},_=n=>{var r=or(),i=e(r),a=e(i,!0);V(i),V(r),v(()=>t(a,g(j))),l(n,r)};d(m,e=>{g(N)?e(h):e(_,-1)}),V(p),V(i),l(n,i)},oe=n=>{let a=F(()=>G.viewed?.toolExecutions??{});var s=u(),c=w(s),f=t=>{var n=cr();Xn(e(n),{size:12}),R(2),V(n),l(t,n)},y=n=>{var s=hr(),c=e(s),f=e(c),y=t=>{var n=ur(),r=w(n);Jn(e(r),{size:16}),V(r);var i=I(r,2),a=t=>{var n=lr(),r=e(n),i=e=>{Un(e,{get messageKey(){return o()},get textContent(){return g(x)}})};d(r,e=>{g(m)&&e(i)}),Kn(I(r,2),{get text(){return g(x)},title:`Copy message`}),V(n),l(t,n)};d(i,e=>{g(p)&&e(a)}),H(`click`,r,()=>T(p,!g(p))),l(t,n)},b=t=>{var n=dr();Jn(e(n),{size:16}),V(n),l(t,n)};d(f,e=>{g(C)?e(y):e(b,-1)}),V(c);var E=I(c,2),D=e(E),O=n=>{var r=pr(),i=e(r);Te(e(i),{size:14}),R(2),V(i);var a=I(i,2),o=e(a,!0);V(a);var s=I(a,2),c=n=>{var r=fr(),i=e(r);V(r),v(()=>t(i,`request id: ${g(S).requestId??``}`)),l(n,r)};d(s,e=>{g(S).requestId&&e(c)}),V(r),v(()=>t(o,g(S).summary)),l(n,r)};d(D,e=>{g(S)&&e(O)});var k=I(D,2);h(k,17,()=>r.message.content,i,(e,t)=>{let n=F(()=>g(t).streaming??!1);var r=u(),i=w(r),o=e=>{{let r=F(()=>g(t).text??``);It(e,{get text(){return g(r)},get streaming(){return g(n)}})}},s=e=>{{let r=F(()=>g(t).text??``);Ut(e,{get text(){return g(r)},get streaming(){return g(n)}})}},c=e=>{let r=F(()=>g(t).toolCallId?g(a)[g(t).toolCallId]:void 0);{let i=F(()=>g(r)?.status===`running`),a=F(()=>g(r)?.partialResult??``),o=F(()=>g(r)?.status===`completed`?g(r).result:void 0),s=F(()=>g(r)?.isError);Nn(e,{get content(){return g(t)},get streaming(){return g(n)},get inProgress(){return g(i)},get partialResult(){return g(a)},get result(){return g(o)},get isError(){return g(s)}})}},f=e=>{Nn(e,{get content(){return g(t)}})};d(i,e=>{g(t).type===`text`?e(o):g(t).type===`thinking`?e(s,1):g(t).type===`tool_call`?e(c,2):g(t).type===`tool_result`&&e(f,3)}),l(e,r)});var A=I(k,2),j=t=>{var n=mr();Xn(e(n),{size:12}),R(2),V(n),l(t,n)};d(A,e=>{g(_)&&e(j)}),V(E),V(s),v(()=>B(s,1,`message assistant-message ${g(_)?`aborted`:``} ${g(S)?`errored`:``}`,`svelte-1uqoiy7`)),l(n,s)};d(c,e=>{g(b)?e(f):e(y,-1)}),l(n,s)},se=n=>{var i=xr(),o=e(i),s=e(o),f=t=>{var n=gr(),r=I(w(n),2);Kt(e(r),{get text(){return g(ee)},get streaming(){return a()},accent:`purple`}),V(r),l(t,n)},p=n=>{var i=br(),a=w(i),o=e(a),s=e=>{var t=u(),n=w(t),r=e=>{ke(e,{size:14})},i=e=>{ie(e,{size:14})};d(n,e=>{g(c)?e(r):e(i,-1)}),l(e,t)};d(o,e=>{g(te)&&e(s)});var f=I(o,2),p=e(f);V(f);var m=I(f,2),h=n=>{var r=_r(),i=e(r);V(r),v(()=>t(i,`${g(z).length??``} lines`)),l(n,r)};d(m,e=>{g(te)&&e(h)}),V(a);var _=I(a,2),y=e(_);let b;It(e(y),{get text(){return g(ee)}}),V(y);var x=I(y,2),S=e=>{var t=vr();H(`click`,t,()=>T(c,!0)),l(e,t)},C=e=>{var t=yr();H(`click`,t,()=>T(c,!1)),l(e,t)};d(x,e=>{g(te)&&!g(c)?e(S):g(te)&&g(c)&&e(C,1)}),V(_),v(()=>{t(p,`[${(`customType`in r.message?r.message.customType??`custom`:`custom`)??``}]`),b=B(y,1,`custom-text-container svelte-1uqoiy7`,null,b,{"custom-text-collapsed":g(te)&&!g(c),"custom-text-expanded":g(te)&&g(c)})}),H(`click`,a,()=>T(c,!g(c))),l(n,i)};d(s,e=>{a()?e(f):e(p,-1)}),V(o),V(i),l(n,i)},ce=n=>{var i=Sr(),a=e(i),o=e(a),s=e(o,!0);V(o),V(a),V(i),v(e=>t(s,e),[()=>D(r.message)]),l(n,i)};d(ne,e=>{r.message.role===`toolResult`?e(re):r.message.role===`user`?e(ae,1):r.message.role===`assistant`?e(oe,2):r.message.role===`custom`?e(se,3):e(ce,-1)}),l(n,U),M()}m([`click`]);var wr=f(`<div class="streaming-indicator svelte-132ojzb"><span class="dot svelte-132ojzb"></span> <span class="dot svelte-132ojzb"></span> <span class="dot svelte-132ojzb"></span></div>`);function Tr(e){l(e,wr())}function Er(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]];U(e,P({name:`arrow-down`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Dr(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`m15 9-6 6`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`}],[`path`,{d:`m9 9 6 6`}]];U(e,P({name:`octagon-x`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Or=f(`<div class="empty-state svelte-qha2j"><p>No messages yet</p></div>`),kr=f(`<div class="streaming-indicator-row svelte-qha2j"><!></div>`),Ar=f(`<div class="last-activity svelte-qha2j"> </div>`),jr=f(`<button class="bg-destructive text-primary-foreground hover:bg-destructive/80 active:bg-destructive/70 absolute right-3 bottom-3 z-10 flex items-center justify-center rounded-full p-3 shadow-lg transition-colors md:hidden" title="Abort"><!></button>`),Mr=f(`<!> <!>`,1),Nr=f(`<!> <!> <!> <!>`,1),Pr=f(`<!> <!>`,1),Fr=f(`<button class="scroll-to-bottom svelte-qha2j"><!></button>`),Ir=f(`<div class="message-list-wrapper svelte-qha2j"><div class="message-list svelte-qha2j"><div><!> <!> <!> <!></div></div> <!> <!> <!></div>`);function Lr(i,o){E(o,!0);let s=y(o,`readOnly`,3,!1),f=A(!1),p=A(null);function m(){return new Promise(e=>{T(p,e,!0),T(f,!0)})}function b(e){g(p)?.(e),T(p,null),T(f,!1)}async function x(e){let t=G.viewed;if(!t?.sessionId)return;let n;try{n=await W.send({type:`fork`,sessionId:t.sessionId,entryId:e})}catch(e){console.error(`Failed to send fork:`,e);return}if(!n.success||!n.data)return;let r=n.data;if(r.cancelled)return;let i=G.viewedSessionId;if(!i)return;let a=G.viewed?.draftText??``,o=r.selectedText;if(!s())if(at(a,o)){let e=ot(a,o,await m());e!==null&&Be(i,e)}else o&&Be(i,o)}async function C(){let e=G.viewed;if(e?.sessionId){try{await W.send({type:`abort`,sessionId:e.sessionId})}catch(e){console.error(`Failed to send abort:`,e)}if(e.pendingSteeringMessages.length>0){try{let t=await W.send({type:`dequeue_steering`,sessionId:e.sessionId});if(t.success&&t.data){let{steering:n,followUp:r}=t.data,i=[...n,...r];i.length>0&&Be(e.sessionId,i.join(`
|
|
51
|
+
`))}}catch(e){console.error(`Failed to dequeue steering messages after abort:`,e)}e.pendingSteeringMessages=[]}}}let k=A(void 0),j=A(!1),N=A(!0);function P(){if(!g(k))return;let{scrollTop:e,scrollHeight:t,clientHeight:n}=g(k),r=t-e-n<80;T(j,!r),T(N,r)}let L=F(()=>{let e=G.viewed;if(!e)return[];let t=[];for(let n=0;n<e.messages.length;n++){let r=e.messages[n];r.display!==!1&&t.push({key:e.messageKeys[n]??`fallback-${n}`,message:r,streaming:!1})}return e.streamingMessage&&e.streamingKey&&t.push({key:e.streamingKey,message:e.streamingMessage,streaming:!0}),t}),ee=F(()=>{let e=G.viewed;return e?.isStreaming?!e.streamingMessage||e.streamingMessage.content.length===0:!1});_(()=>{g(L).length;let e=G.viewed?.streamingMessage;e&&e.content.length>0&&(e.content.length,e.content[e.content.length-1].text),g(N)&&g(k)&&a().then(()=>{g(k)&&g(N)&&(g(k).scrollTop=g(k).scrollHeight)})});function z(){g(k)&&(T(N,!0),g(k).scrollTop=g(k).scrollHeight)}let U=A(O(Date.now())),ne=setInterval(()=>{T(U,Date.now(),!0)},15e3);D(()=>clearInterval(ne));let re=F(()=>{g(U);let e=G.viewed;return!e?.lastBotActivityTimestamp||e.isStreaming?null:_e(e.lastBotActivityTimestamp)});var ie=Ir(),oe=e(ie),ce=e(oe);let le;var de=e(ce),me=e=>{l(e,Or())};d(de,e=>{g(L).length===0&&!G.viewed?.isStreaming&&e(me)});var he=I(de,2);h(he,17,()=>g(L),e=>e.key,(e,t)=>{Cr(e,{get message(){return g(t).message},get streaming(){return g(t).streaming},get messageKey(){return g(t).key},onfork:x})});var ge=I(he,2),ve=t=>{var n=kr();Tr(e(n),{}),V(n),l(t,n)};d(ge,e=>{g(ee)&&e(ve)});var ye=I(ge,2),be=n=>{var r=Ar(),i=e(r,!0);V(r),v(()=>t(i,g(re))),l(n,r)};d(ye,e=>{g(re)&&e(be)}),V(ce),V(oe),S(oe,e=>T(k,e),()=>g(k));var xe=I(oe,2),Se=t=>{var n=jr();Dr(e(n),{class:`size-5`}),V(n),H(`pointerdown`,n,e=>e.preventDefault()),H(`click`,n,C),l(t,n)};d(xe,e=>{G.viewed?.isStreaming&&!s()&&e(Se)});var Ce=I(xe,2);r(Ce,()=>ue,(e,t)=>{t(e,{get open(){return g(f)},onOpenChange:e=>{e||b(`ignore`)},children:(e,t)=>{var n=u();r(w(n),()=>Oe,(e,t)=>{t(e,{showCloseButton:!1,children:(e,t)=>{var n=Pr(),i=w(n);r(i,()=>fe,(e,t)=>{t(e,{children:(e,t)=>{var n=Mr(),i=w(n);r(i,()=>se,(e,t)=>{t(e,{children:(e,t)=>{R(),l(e,c(`Draft conflict`))},$$slots:{default:!0}})}),r(I(i,2),()=>te,(e,t)=>{t(e,{children:(e,t)=>{R(),l(e,c(`The editor already has text. How should the forked message be combined?`))},$$slots:{default:!0}})}),l(e,n)},$$slots:{default:!0}})}),r(I(i,2),()=>pe,(e,t)=>{t(e,{children:(e,t)=>{var n=Nr(),r=w(n);ae(r,{variant:`outline`,onclick:()=>b(`ignore`),children:(e,t)=>{R(),l(e,c(`Ignore`))},$$slots:{default:!0}});var i=I(r,2);ae(i,{variant:`outline`,onclick:()=>b(`prepend`),children:(e,t)=>{R(),l(e,c(`Prepend`))},$$slots:{default:!0}});var a=I(i,2);ae(a,{variant:`outline`,onclick:()=>b(`append`),children:(e,t)=>{R(),l(e,c(`Append`))},$$slots:{default:!0}}),ae(I(a,2),{onclick:()=>b(`replace`),children:(e,t)=>{R(),l(e,c(`Replace`))},$$slots:{default:!0}}),l(e,n)},$$slots:{default:!0}})}),l(e,n)},$$slots:{default:!0}})}),l(e,n)},$$slots:{default:!0}})});var we=I(Ce,2),Te=t=>{var n=Fr();Er(e(n),{size:18}),V(n),H(`click`,n,z),l(t,n)};d(we,e=>{g(j)&&e(Te)}),V(ie),v(()=>le=B(ce,1,`message-list-inner svelte-qha2j`,null,le,{"pointer-events-none":s()})),n(`scroll`,oe,P),l(i,ie),M()}m([`pointerdown`,`click`]);var Rr=f(`<span class="panel-title-meta svelte-j9tcnn"> </span>`),zr=f(`<div class="panel-description svelte-j9tcnn"> </div>`),Br=f(`<span class="option-desc svelte-j9tcnn"> </span>`),Vr=f(`<button><span class="option-number svelte-j9tcnn"> </span> <span class="option-body svelte-j9tcnn"><span class="option-label svelte-j9tcnn"> </span> <!></span></button>`),Hr=f(`<!> <div class="panel-options svelte-j9tcnn"></div> <div class="panel-hint svelte-j9tcnn"><span><kbd class="svelte-j9tcnn">1</kbd>–<kbd class="svelte-j9tcnn"> </kbd> select</span> <span class="hint-sep svelte-j9tcnn">·</span> <span><kbd class="svelte-j9tcnn">↑↓</kbd> navigate</span> <span class="hint-sep svelte-j9tcnn">·</span> <span><kbd class="svelte-j9tcnn">Enter</kbd> confirm</span> <span class="hint-sep svelte-j9tcnn">·</span> <span><kbd class="svelte-j9tcnn">Esc</kbd> cancel</span></div>`,1),Ur=f(`<div tabindex="0" role="listbox"><div class="panel-header svelte-j9tcnn"><span class="panel-title svelte-j9tcnn"> <!></span> <div class="panel-header-actions svelte-j9tcnn"><button class="panel-collapse svelte-j9tcnn"> </button> <button class="panel-cancel svelte-j9tcnn">Esc to cancel</button></div></div> <!></div>`),Wr=f(`<div class="panel-description svelte-j9tcnn"> </div>`),Gr=f(`<!> <div class="confirm-actions svelte-j9tcnn"><!> <!></div> <div class="panel-hint svelte-j9tcnn"><span><kbd class="svelte-j9tcnn">Y</kbd> yes</span> <span class="hint-sep svelte-j9tcnn">·</span> <span><kbd class="svelte-j9tcnn">N</kbd> no</span> <span class="hint-sep svelte-j9tcnn">·</span> <span><kbd class="svelte-j9tcnn">Esc</kbd> cancel</span></div>`,1),Kr=f(`<div tabindex="0" role="dialog"><div class="panel-header svelte-j9tcnn"><span class="panel-title svelte-j9tcnn"> </span> <div class="panel-header-actions svelte-j9tcnn"><button class="panel-collapse svelte-j9tcnn"> </button> <button class="panel-cancel svelte-j9tcnn">Esc to cancel</button></div></div> <!></div>`);function qr(r,i){E(i,!0);function a(e){let t=e.replace(/^\d\.\s+/,``),n=t.match(/^(.+?)\s+[—–]\s+(.+)$/s);return n?{value:e,label:n[1].trim(),description:n[2].trim()}:{value:e,label:t.trim()}}let o=he(),s=A(-1),f=A(!1),p=A(void 0),m=F(()=>{let e=G.viewedSessionId;return o.all.find(t=>He.has(t.method)&&t.sessionId===e)??null});_(()=>{g(m)&&(T(s,-1),T(f,!1))}),_(()=>{g(m)&&g(p)&&g(p).focus()});function y(e){e.stopPropagation(),T(f,!g(f)),queueMicrotask(()=>g(p)?.focus())}function b(e){g(m)&&o.sendResponse(g(m).requestId,g(m).sessionId,e)}function x(e){b({value:e})}function C(e){b({confirmed:e})}function D(){b({cancelled:!0})}function O(e,t){if(g(m)?.method===`select`){if(e.key>=`1`&&e.key<=`9`){let n=parseInt(e.key)-1;if(n<t.length){e.preventDefault(),x(t[n].value);return}}if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),e.key===`ArrowDown`?T(s,Math.min(g(s)+1,t.length-1),!0):T(s,Math.max(g(s)-1,0),!0);return}if(e.key===`Enter`&&g(s)>=0&&g(s)<t.length){e.preventDefault(),x(t[g(s)].value);return}}if(g(m)?.method===`confirm`){if(e.key===`y`||e.key===`Y`){e.preventDefault(),C(!0);return}if(e.key===`n`||e.key===`N`){e.preventDefault(),C(!1);return}}e.key===`Escape`&&(e.preventDefault(),D())}var k=u(),N=w(k),P=r=>{var i=u(),o=w(i),_=r=>{let i=F(()=>g(m).options??[]),o=F(()=>g(i).map(e=>{let t=typeof e==`string`?e:e.label??e.value??String(e);return{value:typeof e==`string`?e:e.value??e.label??String(e),parsed:a(t)}}));var c=Ur();let u;var _=e(c),b=e(_),C=e(b),E=I(C),k=n=>{var r=Rr(),i=e(r);V(r),v(()=>t(i,`· ${g(o).length??``} option${g(o).length===1?``:`s`}`)),l(n,r)};d(E,e=>{g(f)&&e(k)}),V(b);var A=I(b,2),M=e(A),N=e(M,!0);V(M);var P=I(M,2);V(A),V(_);var L=I(_,2),ee=r=>{var i=Hr(),a=w(i),c=n=>{var r=zr(),i=e(r,!0);V(r),v(()=>t(i,g(m).message)),l(n,r)};d(a,e=>{g(m).message&&e(c)});var u=I(a,2);h(u,23,()=>g(o),e=>e.value,(r,i,a)=>{let o=F(()=>g(i).parsed);var c=Vr();let u;var f=e(c),p=e(f,!0);V(f);var m=I(f,2),h=e(m),_=e(h,!0);V(h);var y=I(h,2),b=n=>{var r=Br(),i=e(r,!0);V(r),v(()=>t(i,g(o).description)),l(n,r)};d(y,e=>{g(o).description&&e(b)}),V(m),V(c),v(()=>{u=B(c,1,`select-option svelte-j9tcnn`,null,u,{highlighted:g(a)===g(s)}),t(p,g(a)+1),t(_,g(o).label)}),H(`click`,c,()=>x(g(i).value)),n(`mouseenter`,c,()=>T(s,g(a),!0)),l(r,c)}),V(u);var f=I(u,2),p=e(f),_=I(e(p),2),y=e(_,!0);V(_),R(),V(p),R(12),V(f),v(()=>t(y,g(o).length)),l(r,i)};d(L,e=>{g(f)||e(ee)}),V(c),S(c,e=>T(p,e),()=>g(p)),v(()=>{u=B(c,1,`inline-select-panel svelte-j9tcnn`,null,u,{collapsed:g(f)}),t(C,`${g(m).title??`Select`??``} `),j(M,`aria-label`,g(f)?`Expand`:`Collapse`),j(M,`aria-expanded`,!g(f)),t(N,g(f)?`▾`:`▴`)}),H(`keydown`,c,e=>O(e,g(o))),H(`click`,M,y),H(`click`,P,D),l(r,c)},b=n=>{var r=Kr();let i;var a=e(r),o=e(a),s=e(o,!0);V(o);var u=I(o,2),h=e(u),_=e(h,!0);V(h);var b=I(h,2);V(u),V(a);var x=I(a,2),E=n=>{var r=Gr(),i=w(r),a=n=>{var r=Wr(),i=e(r,!0);V(r),v(()=>t(i,g(m).message)),l(n,r)};d(i,e=>{g(m).message&&e(a)});var o=I(i,2),s=e(o);ae(s,{variant:`outline`,onclick:()=>C(!1),children:(e,t)=>{R(),l(e,c(`No`))},$$slots:{default:!0}}),ae(I(s,2),{onclick:()=>C(!0),children:(e,t)=>{R(),l(e,c(`Yes`))},$$slots:{default:!0}}),V(o),R(2),l(n,r)};d(x,e=>{g(f)||e(E)}),V(r),S(r,e=>T(p,e),()=>g(p)),v(()=>{i=B(r,1,`inline-select-panel svelte-j9tcnn`,null,i,{collapsed:g(f)}),t(s,g(m).title??`Confirm`),j(h,`aria-label`,g(f)?`Expand`:`Collapse`),j(h,`aria-expanded`,!g(f)),t(_,g(f)?`▾`:`▴`)}),H(`keydown`,r,e=>O(e,[])),H(`click`,h,y),H(`click`,b,D),l(n,r)};d(o,e=>{g(m).method===`select`?e(_):g(m).method===`confirm`&&e(b,1)}),l(r,i)};d(N,e=>{g(m)&&e(P)}),l(r,k),M()}m([`keydown`,`click`]);var Jr=f(`<p class="text-muted-foreground truncate text-left text-xs"> </p>`),Yr=f(`<button class="border-border bg-background hover:bg-accent/50 active:bg-accent w-full border-t transition-colors" title="Pull back pending steering messages for editing"><div class="mx-auto flex max-w-3xl items-start gap-2 px-4 py-2"><!> <div class="flex min-w-0 flex-1 flex-col gap-0.5"></div> <span class="text-muted-foreground/60 mt-0.5 shrink-0 text-[10px]">tap to edit</span></div></button>`);function Xr(n,r){E(r,!0);let a=A(!1),o=F(()=>G.viewed?.pendingSteeringMessages??[]);async function s(){let e=G.viewed;if(!(!e||g(a))){T(a,!0);try{let t=await W.send({type:`dequeue_steering`,sessionId:e.sessionId});if(t.success&&t.data){let{steering:n}=t.data;n.length>0&&Be(e.sessionId,n.join(`
|
|
52
|
+
`)),e.pendingSteeringMessages=[]}}catch(e){console.error(`Failed to dequeue steering messages:`,e)}finally{T(a,!1)}}}var c=u(),f=w(c),p=n=>{var r=Yr(),c=e(r),u=e(c);me(u,{class:`text-muted-foreground mt-0.5 size-3.5 shrink-0`});var d=I(u,2);h(d,21,()=>g(o),i,(n,r)=>{var i=Jr(),a=e(i,!0);V(i),v(()=>t(a,g(r))),l(n,i)}),V(d),R(2),V(c),V(r),v(()=>r.disabled=g(a)),H(`click`,r,s),l(n,r)};d(f,e=>{g(o).length>0&&e(p)}),l(n,c),M()}m([`click`]);function Zr(e,t){let n=e.toLowerCase(),r=t.toLowerCase(),i=e=>{if(e.length===0)return{matches:!0,score:0};if(e.length>r.length)return{matches:!1,score:0};let t=0,n=0,i=-1,a=0;for(let o=0;o<r.length&&t<e.length;o++)if(r[o]===e[t]){let e=o===0||/[\s\-_./:]/.test(r[o-1]);i===o-1?(a++,n-=a*5):(a=0,i>=0&&(n+=(o-i-1)*2)),e&&(n-=10),n+=o*.1,i=o,t++}return t<e.length?{matches:!1,score:0}:{matches:!0,score:n}},a=i(n);if(a.matches)return a;let o=n.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),s=n.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),c=o?`${o.groups?.digits??``}${o.groups?.letters??``}`:s?`${s.groups?.letters??``}${s.groups?.digits??``}`:``;if(!c)return a;let l=i(c);return l.matches?{matches:!0,score:l.score+5}:a}function Qr(e,t,n){if(!t.trim())return e;let r=t.trim().split(/\s+/).filter(e=>e.length>0);if(r.length===0)return e;let i=[];for(let t of e){let e=n(t),a=0,o=!0;for(let t of r){let n=Zr(t,e);if(n.matches)a+=n.score;else{o=!1;break}}o&&i.push({item:t,totalScore:a})}return i.sort((e,t)=>e.totalScore-t.totalScore),i.map(e=>e.item)}var $r=f(`<span class="text-muted-foreground truncate text-xs"> </span>`),ei=f(`<button><span class="shrink-0 font-medium"> </span> <!></button>`),ti=f(`<div class="bg-popover text-popover-foreground border-border absolute right-0 bottom-full left-0 z-50 mb-1 max-h-64 overflow-y-auto rounded-lg border shadow-md"></div>`);function ni(n,r){E(r,!0);let i=F(()=>r.mode===`command`?Qr(r.items,r.query,e=>e.name).slice(0,10):[]),a=A(O([])),o,s=0;_(()=>{if(r.mode!==`args`&&r.mode!==`fileRefs`||!r.visible)return;let e=r.mode,t=r.query,n=r.commandName,i=r.sessionId;return clearTimeout(o),o=setTimeout(async()=>{let r=++s;try{let o=await(e===`fileRefs`?W.send({type:`complete_file_refs`,sessionId:i,prefix:t}):W.send({type:`complete_args`,sessionId:i,commandName:n,prefix:t}));if(r!==s)return;if(o.success&&o.data){let e=o.data.items;T(a,e??[],!0)}else T(a,[],!0)}catch{if(r!==s)return;T(a,[],!0)}},200),()=>clearTimeout(o)});let c=F(()=>r.mode===`command`?g(i).map(e=>({name:e.name,description:e.description})):g(a).map(e=>({name:e.label,value:e.value,description:e.description}))),f=A(0);_(()=>{g(c),T(f,0)});let p=A(void 0);_(()=>{if(!g(p))return;let e=g(f);g(p).children[e]?.scrollIntoView({block:`nearest`})});function m(){g(c).length!==0&&T(f,g(f)<=0?g(c).length-1:g(f)-1,!0)}function y(){g(c).length!==0&&T(f,g(f)>=g(c).length-1?0:g(f)+1,!0)}function b(){let e=g(c)[g(f)];e&&r.onselect(e)}function x(){r.ondismiss()}var C={moveUp:m,moveDown:y,accept:b,dismiss:x},D=u(),k=w(D),j=n=>{var r=ti();h(r,23,()=>g(c),(e,t)=>e.name+`-`+t,(n,r,i)=>{var a=ei(),o=e(a),s=e(o,!0);V(o);var c=I(o,2),u=n=>{var i=$r(),a=e(i,!0);V(i),v(()=>t(a,g(r).description)),l(n,i)};d(c,e=>{g(r).description&&e(u)}),V(a),v(()=>{B(a,1,`flex w-full items-baseline gap-2 px-3 py-2 text-left text-sm transition-colors ${g(i)===g(f)?`bg-accent`:`hover:bg-accent/50`}`),t(s,g(r).name)}),H(`pointerdown`,a,e=>e.preventDefault()),H(`click`,a,()=>{T(f,g(i),!0),b()}),l(n,a)}),V(r),S(r,e=>T(p,e),()=>g(p)),l(n,r)};return d(k,e=>{r.visible&&g(c).length>0&&e(j)}),l(n,D),M(C)}m([`pointerdown`,`click`]);function ri(e){let t=-1;for(let n=e.length-1;n>=0;n--){if(e[n]!==`@`)continue;let r=n===0?void 0:e[n-1];if(r===void 0||r===`"`||r===`=`||/\s/.test(r)){t=n;break}}if(t===-1)return null;let n=e.slice(t),r=n.slice(1);return r.startsWith(`"`)?n:/\s/.test(r)?null:n}function ii(e){let t=e.startsWith(`@"`)&&e.endsWith(`"`),n=t?e.slice(2,-1):e.slice(1);if(!n.endsWith(`/`))return{insertedText:e,isDirectory:!1,nextPrefix:null};let r=t?`@"${n}`:`@${n}`;return{insertedText:r,isDirectory:!0,nextPrefix:r}}function ai(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`}],[`path`,{d:`m21.854 2.147-10.94 10.939`}]];U(e,P({name:`send`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function oi(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`}]];U(e,P({name:`message-square`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var si=f(`<button class="bg-destructive text-primary-foreground hover:bg-destructive/80 active:bg-destructive/70 mb-1 hidden shrink-0 items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors md:flex" title="Abort"><!> <span class="hidden sm:inline">Abort</span></button>`),ci=f(`<button class="text-muted-foreground bg-secondary border-border hover:bg-accent active:bg-accent/70 flex shrink-0 items-center justify-center rounded-lg border px-3 py-3 transition-colors md:hidden" title="Slash commands"><span class="text-sm leading-5 font-bold">/</span></button>`),li=f(`<div class="group relative"><img alt="Staged" class="border-border h-16 w-16 rounded-lg border object-cover"/> <button class="bg-background/80 text-foreground hover:bg-destructive hover:text-destructive-foreground border-border absolute -top-1.5 -right-1.5 flex h-5 w-5 items-center justify-center rounded-full border shadow-sm transition-colors" title="Remove image"><!></button></div>`),ui=f(`<div class="mb-1 flex flex-wrap gap-1.5"></div>`),di=f(`<div class="border-border bg-background relative shrink-0 border-t px-3 pt-2 pb-[max(env(safe-area-inset-bottom),8px)]"><div class="mx-auto flex max-w-3xl items-end gap-2"><!> <!> <div class="relative flex-1"><!> <!> <textarea></textarea> <button><!></button></div></div></div>`);function fi(t,r){E(r,!0);let o=A(``),c=A(void 0),u=A(void 0),f=A(O([])),m=A(!1),y=F(()=>G.viewedSessionId===null),b=F(()=>G.viewedSessionId?.startsWith(`pending-`)??!1),x=F(()=>!g(y)&&!g(b)&&W.ready),C=F(()=>g(o).trim().length>0||g(f).length>0),w=A(!1),D=A(`command`),k=A(null),N=A(null),P=F(()=>Qe.getCommands(G.viewedSessionId??``)),ee=F(()=>{if(!g(w))return``;if(g(D)===`fileRefs`)return g(N)??``;let e=g(o);if(!e.startsWith(`/`))return``;let t=e.slice(1),n=t.indexOf(` `);return g(D)===`command`?n===-1?t:t.slice(0,n):n===-1?``:t.slice(n+1)});_(()=>{G.viewedSessionId,T(o,s(()=>G.viewed?.draftText??``),!0),T(f,[],!0),a().then(()=>U())});let z=0;_(()=>{let{sessionId:e,text:t,seq:n}=we;n!==z&&(z=n,e===G.viewedSessionId&&(T(o,t,!0),a().then(()=>U())))});let te=0;_(()=>{let{images:e,seq:t}=Ue;t!==te&&(te=t,e.length>0&&T(f,[...g(f),...e],!0))});function U(){if(!g(c))return;g(c).style.overflow=`hidden`,g(c).style.height=`auto`;let e=Math.min(g(c).scrollHeight,200);g(c).style.height=`${e}px`,g(c).style.overflow=g(c).scrollHeight>200?`auto`:`hidden`}function ne(e){for(let t of e){if(!t.type.startsWith(`image/`))continue;let e=new FileReader;e.onload=()=>{T(f,[...g(f),e.result],!0)},e.readAsDataURL(t)}}function re(e){T(f,g(f).filter((t,n)=>n!==e),!0)}function ie(e){if(!g(x))return;let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.type.startsWith(`image/`)){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(ne(n),e.clipboardData?.types.includes(`text/plain`)||e.preventDefault())}function ae(e){if(e.preventDefault(),T(m,!1),!g(x))return;let t=e.dataTransfer?.files;t&&ne(Array.from(t))}function oe(e){e.preventDefault(),g(x)&&T(m,!0)}function se(e){let t=e.currentTarget.getBoundingClientRect();(e.clientX<=t.left||e.clientX>=t.right||e.clientY<=t.top||e.clientY>=t.bottom)&&T(m,!1)}function ce(){if(!g(c)){T(w,!1),T(k,null),T(N,null);return}let e=ri(g(o).slice(0,g(c).selectionStart));if(e!==null){T(w,!0),T(D,`fileRefs`),T(N,e,!0),T(k,null);return}if(T(N,null),!g(o).startsWith(`/`)){T(w,!1),T(k,null);return}let t=g(c).selectionStart,n=g(o).slice(1),r=n.indexOf(` `);t<=(r===-1?n.length:r)+1?(g(w)||T(k,null),T(w,!0),T(D,`command`)):g(k)?.hasArgCompletions?(T(w,!0),T(D,`args`)):(T(w,!1),T(k,null))}function le(e){if(e&&g(c)){let t=e;t.inputType===`insertText`&&t.data===`/`&&g(c).selectionStart===1&&g(o).length>1&&g(o)[1]!==` `&&(T(o,`/ `+g(o).slice(1)),G.viewed&&(G.viewed.draftText=g(o)),a().then(()=>{g(c).selectionStart=g(c).selectionEnd=1}))}G.viewed&&(G.viewed.draftText=g(o)),ce(),U()}async function ue(){let e=g(o).trim();if(!g(x))return;if(e===`/login`){Ce.open(),T(o,``),T(w,!1),T(k,null),G.viewed&&(G.viewed.draftText=``),g(c)&&(g(c).style.height=`auto`);return}let t=!1;if(G.viewed?.isStreaming){if(!e)return;G.viewed.pendingSteeringMessages.push(e);try{await W.send({type:`steer`,sessionId:G.viewed.sessionId,message:e}),t=!0}catch(e){console.error(`Failed to send steer:`,e)}}else{if(!e&&g(f).length===0)return;try{let n=await W.send({type:`prompt`,sessionId:G.viewed.sessionId,message:e,...g(f).length>0?{images:g(f)}:{}});t=!0;let r=n.data;r?.tree?Se.openDialog(G.viewed.sessionId,r.tree,r.currentLeafId??null):G.addOptimisticUserMessage(G.viewed.sessionId,e)}catch(e){console.error(`Failed to send prompt:`,e)}}t&&(T(o,``),T(w,!1),T(k,null),T(f,[],!0),G.viewed&&(G.viewed.draftText=``),g(c)&&(g(c).style.height=`auto`))}async function fe(){let e=G.viewed;if(e?.sessionId){try{await W.send({type:`abort`,sessionId:e.sessionId})}catch(e){console.error(`Failed to send abort:`,e)}if(e.pendingSteeringMessages.length>0){try{let t=await W.send({type:`dequeue_steering`,sessionId:e.sessionId});if(t.success&&t.data){let{steering:n,followUp:r}=t.data,i=[...n,...r];i.length>0&&Be(e.sessionId,i.join(`
|
|
53
|
+
`))}}catch(e){console.error(`Failed to dequeue steering messages after abort:`,e)}e.pendingSteeringMessages=[]}}}function pe(e){if(g(D)===`command`){let t=g(o).slice(1),n=t.indexOf(` `),r=n===-1?``:t.slice(n);T(o,`/`+e.name+(r||` `));let i=1+e.name.length+1;T(k,g(P).find(t=>t.name===e.name)??null,!0),g(k)?.hasArgCompletions?(T(w,!0),T(D,`args`)):T(w,!1),a().then(()=>{g(c)&&(g(c).selectionStart=g(c).selectionEnd=i)})}else if(g(D)===`fileRefs`){let t=g(c)?.selectionStart??g(o).length,n=t-(g(N)?.length??0),r=ii(e.value??e.name);T(o,g(o).slice(0,n)+r.insertedText+g(o).slice(t));let i=n+r.insertedText.length;r.isDirectory?(T(w,!0),T(D,`fileRefs`),T(N,r.nextPrefix,!0)):T(w,!1),a().then(()=>{g(c)&&(g(c).selectionStart=g(c).selectionEnd=i)})}else{let t=`/`+(g(k)?.name??``)+` `,n=g(c)?.selectionStart??g(o).length,r=n<g(o).length?g(o).slice(n):``,i=e.value??e.name;T(o,t+i+r);let s=t.length+i.length;T(w,!1),T(k,null),a().then(()=>{g(c)&&(g(c).selectionStart=g(c).selectionEnd=s)})}G.viewed&&(G.viewed.draftText=g(o)),U()}function me(){T(w,!1),T(k,null)}function he(){if(!g(c))return;let e=g(c).selectionStart??g(o).length,t=g(c).selectionEnd??e,n=g(o).slice(t),r=e===0&&n.length>0&&n[0]!==` `;T(o,g(o).slice(0,e)+`/`+(r?` `:``)+n);let i=e+1;G.viewed&&(G.viewed.draftText=g(o)),le(),U(),g(c).focus(),a().then(()=>{g(c).selectionStart=g(c).selectionEnd=i})}function ge(e){if(g(w)&&g(u)){if(e.key===`ArrowUp`){e.preventDefault(),g(u).moveUp();return}if(e.key===`ArrowDown`){e.preventDefault(),g(u).moveDown();return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),g(u).accept();return}if(e.key===`Escape`){e.preventDefault(),g(u).dismiss();return}}if(e.key===`Escape`&&G.viewed?.isStreaming){e.preventDefault(),fe();return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ue())}var _e=di(),ve=e(_e),ye=e(ve),be=t=>{var n=si();Dr(e(n),{class:`size-4`}),R(2),V(n),H(`pointerdown`,n,e=>e.preventDefault()),H(`click`,n,fe),l(t,n)};d(ye,e=>{G.viewed?.isStreaming&&e(be)});var xe=I(ye,2),Te=e=>{var t=ci();H(`pointerdown`,t,e=>e.preventDefault()),H(`click`,t,he),l(e,t)},Ee=F(()=>!g(y)&&!g(o).startsWith(`/`));d(xe,e=>{g(Ee)&&e(Te)});var De=I(xe,2),Oe=e(De);{let e=F(()=>G.viewedSessionId??``),t=F(()=>g(k)?.name??``);S(ni(Oe,{get items(){return g(P)},get query(){return g(ee)},get visible(){return g(w)},get mode(){return g(D)},get sessionId(){return g(e)},get commandName(){return g(t)},onselect:pe,ondismiss:me}),e=>T(u,e,!0),()=>g(u))}var ke=I(Oe,2),Ae=t=>{var n=ui();h(n,21,()=>g(f),i,(t,n,r)=>{var i=li(),a=e(i),o=I(a,2);de(e(o),{class:`size-3`}),V(o),V(i),v(()=>j(a,`src`,g(n))),H(`click`,o,()=>re(r)),l(t,i)}),V(n),l(t,n)};d(ke,e=>{g(f).length>0&&e(Ae)});var je=I(ke,2);p(je),j(je,`rows`,1),S(je,e=>T(c,e),()=>g(c));var Me=I(je,2),Ne=e(Me),Pe=e=>{oi(e,{class:`size-5`})},Fe=e=>{ai(e,{class:`size-5`})};d(Ne,e=>{G.viewed?.isStreaming?e(Pe):e(Fe,-1)}),V(Me),V(De),V(ve),V(_e),v((e,t)=>{je.disabled=g(y)||g(b),j(je,`placeholder`,g(y)?`Open a session to start…`:g(b)?`Starting session…`:G.viewed?.isStreaming?`Steer the conversation…`:`Send a message…`),B(je,1,`border-border bg-secondary text-foreground placeholder:text-muted-foreground focus:border-ring focus:ring-ring block w-full resize-none overflow-hidden rounded-xl border py-3 pr-11 pl-4 text-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50
|
|
54
|
+
${g(m)?`ring-ring ring-2`:``}`),B(Me,1,`absolute right-1.5 bottom-1.5 flex items-center justify-center rounded-lg p-1.5 text-sm font-medium transition-colors
|
|
55
|
+
${e??``}`),Me.disabled=t,j(Me,`title`,G.viewed?.isStreaming?`Steer`:`Send`)},[()=>!g(x)||(G.viewed?.isStreaming?!g(o).trim():!g(C))?`text-muted-foreground cursor-not-allowed opacity-50`:G.viewed?.isStreaming?`bg-status-streaming text-primary-foreground hover:bg-status-streaming/80 active:bg-status-streaming/70`:`bg-primary text-primary-foreground hover:bg-primary/80 active:bg-primary/70`,()=>!g(x)||(G.viewed?.isStreaming?!g(o).trim():!g(C))]),n(`dragover`,De,oe),n(`dragleave`,De,se),n(`drop`,De,ae),H(`input`,je,le),H(`keydown`,je,ge),H(`click`,je,ce),n(`paste`,je,ie),L(je,()=>g(o),e=>T(o,e)),H(`pointerdown`,Me,e=>e.preventDefault()),H(`click`,Me,ue),l(t,_e),M()}m([`pointerdown`,`click`,`input`,`keydown`]);function pi(e,t){E(t,!0);let n=y(t,`ref`,15,null),i=y(t,`data-slot`,3,`separator`),a=k(t,[`$$slots`,`$$events`,`$$legacy`,`ref`,`class`,`data-slot`]);var o=u(),s=w(o);{let e=F(()=>oe(`bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px`,`data-[orientation=vertical]:h-full`,t.class));r(s,()=>it,(t,r)=>{r(t,P({get"data-slot"(){return i()},get class(){return g(e)}},()=>a,{get ref(){return n()},set ref(e){n(e)}}))})}l(e,o),M()}function mi(e){switch(e){case`incremental_replay`:return`Replaying from offset`;case`full_resync_cursor_stale`:return`Full resync (offset too old)`;case`disk_full_resync`:return`Reopening from disk`;case`full_resync_no_cursor`:return`Full resync`;default:return null}}function hi(e){return e?`flex-1 md:hidden`:`flex-1`}function gi(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`}]];U(e,P({name:`bell`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function _i(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`m18 15-6-6-6 6`}]];U(e,P({name:`chevron-up`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function vi(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`}],[`circle`,{cx:`6`,cy:`18`,r:`3`}]];U(e,P({name:`git-branch`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function yi(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 19v3`}],[`path`,{d:`M15 9.34V5a3 3 0 0 0-5.68-1.33`}],[`path`,{d:`M16.95 16.95A7 7 0 0 1 5 12v-2`}],[`path`,{d:`M18.89 13.23A7 7 0 0 0 19 12v-2`}],[`path`,{d:`m2 2 20 20`}],[`path`,{d:`M9 9v3a3 3 0 0 0 5.12 2.12`}]];U(e,P({name:`mic-off`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function bi(e,t){E(t,!0);let n=k(t,[`$$slots`,`$$events`,`$$legacy`]),r=[[`path`,{d:`M12 19v3`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`}]];U(e,P({name:`mic`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();z(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var xi=f(`<button type="button" class="text-muted-foreground hover:text-foreground min-w-0 flex-1 truncate text-left text-xs transition-colors select-none"> </button>`),Si=f(`<!> <div class="hidden min-w-0 flex-1 md:flex"><!></div>`,1),Ci=f(`<span title="Context window usage"> </span>`),wi=f(`<span class="text-muted-foreground hidden items-center gap-1 md:flex" title="Session cost"> </span>`),Ti=f(`<span class="text-muted-foreground hidden items-center gap-1 md:flex" title="Git branch"><!> <span class="max-w-[8rem] truncate"> </span></span> <!>`,1),Ei=f(`<span class="relative flex size-2"><span class="absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-75"></span> <span class="relative inline-flex size-2 rounded-full bg-emerald-500"></span></span> Streaming`,1),Di=f(`<span class="relative flex size-2"><span class="absolute inline-flex size-full animate-ping rounded-full bg-amber-400 opacity-75"></span> <span class="relative inline-flex size-2 rounded-full bg-amber-500"></span></span> Compacting…`,1),Oi=f(`<span></span>`),ki=f(`<button type="button" class="text-muted-foreground hover:text-foreground min-w-0 flex-1 truncate text-left transition-colors select-none"> </button>`),Ai=f(`<span class="text-muted-foreground flex shrink-0 items-center gap-1" title="Git branch"><!> <span class="max-w-[6rem] truncate"> </span></span>`),ji=f(`<span title="Context window usage"> </span>`),Mi=f(`<span class="text-muted-foreground flex shrink-0 items-center gap-1" title="Session cost"> </span>`),Ni=f(`<div class="border-border/50 flex h-7 items-center gap-2 border-t px-2 md:hidden"><!> <!> <!> <!></div>`),Pi=f(`<div class="border-border bg-muted/30 text-muted-foreground shrink-0 border-b text-xs"><div class="flex h-9 items-center gap-1 px-2"><!> <!> <!> <div></div> <!> <!> <!> <!> <!> <!> <!> <div class="flex items-center gap-1.5"><span class="relative flex size-2"><!> <span></span></span> <span class="hidden text-xs sm:inline"> </span></div></div> <!></div>`);function Fi(n,r){E(r,!0);let i=F(()=>G.viewed?.isRestoring?mi(G.viewed.restoreMode):null),a=F(()=>g(i)??W.phaseLabel),o=F(()=>W.phase===`ready`?`bg-emerald-500`:W.phase===`syncing`?`bg-blue-500`:W.phase===`backoff`||W.phase===`connecting`?`bg-amber-500`:`bg-red-500`),s=F(()=>G.viewed?.contextUsage?.percent),c=F(()=>je(G.viewed)),u=F(()=>Re(G.viewed?.lifetimeCostUsd??0)),f=F(()=>Ie(g(s))===`critical`?`text-red-400`:Ie(g(s))===`warning`?`text-amber-400`:`text-muted-foreground`),p=F(()=>Ee(G.viewed));var m=Pi(),h=e(m),_=e(h);xe(_,{});var y=I(_,2);pi(y,{orientation:`vertical`,class:`mx-0.5 h-4`});var x=I(y,2);Le(x,{});var S=I(x,2),C=I(S,2),T=n=>{var r=Si(),i=w(r);pi(i,{orientation:`vertical`,class:`mx-0.5 hidden h-4 md:block`});var a=I(i,2),o=e(a);{let n=(n,r)=>{let i=()=>r?.().openRenameDialog;var a=xi(),o=e(a,!0);V(a),v(()=>{j(a,`title`,`Rename session: ${g(p)}`),t(o,g(p))}),H(`click`,a,function(...e){i()?.apply(this,e)}),l(n,a)},r=F(()=>G.viewed?.sessionId),i=F(()=>G.viewed?.folderPath),a=F(()=>G.viewed?.sessionName);re(o,{get sessionId(){return g(r)},get folderPath(){return g(i)},get sessionName(){return g(a)},get displayName(){return g(p)},children:n,$$slots:{default:!0}})}V(a),l(n,r)};d(C,e=>{g(p)&&e(T)});var D=I(C,2),O=n=>{var r=Ci(),i=e(r,!0);V(r),v(()=>{B(r,1,`hidden items-center gap-1 md:flex ${g(f)??``}`),t(i,g(c))}),l(n,r)};d(D,e=>{g(c)&&e(O)});var k=I(D,2),A=n=>{var r=wi(),i=e(r,!0);V(r),v(()=>t(i,g(u))),l(n,r)};d(k,e=>{g(u)&&e(A)});var N=I(k,2),P=n=>{var r=Ti(),i=w(r),a=e(i);vi(a,{class:`size-3`});var o=I(a,2),s=e(o,!0);V(o),V(i),pi(I(i,2),{orientation:`vertical`,class:`mx-0.5 hidden h-4 md:block`}),v(()=>t(s,G.viewed.gitBranch)),l(n,r)};d(N,e=>{G.viewed?.gitBranch&&e(P)});var L=I(N,2);{let e=F(()=>G.viewed?.sessionId);ye(L,{get sessionId(){return g(e)}})}var ee=I(L,2),z=e=>{be(e,{variant:`secondary`,class:`gap-1.5 text-xs`,children:(e,t)=>{var n=Ei();R(),l(e,n)},$$slots:{default:!0}})};d(ee,e=>{G.viewed?.isStreaming&&e(z)});var te=I(ee,2),U=e=>{be(e,{variant:`secondary`,class:`gap-1 text-xs`,children:(e,t)=>{var n=Di();R(),l(e,n)},$$slots:{default:!0}})};d(te,e=>{G.viewed?.isCompacting&&e(U)});var ne=I(te,2),ie=e(ne),ae=e(ie),oe=e=>{var t=Oi();v(()=>B(t,1,`absolute inline-flex size-full animate-ping rounded-full ${g(o)??``} opacity-75`)),l(e,t)};d(ae,e=>{(W.phase===`syncing`||W.phase===`connecting`)&&e(oe)});var se=I(ae,2);V(ie);var ce=I(ie,2),le=e(ce,!0);V(ce),V(ne),V(h);var ue=I(h,2),de=n=>{var r=Ni(),i=e(r),a=n=>{{let r=(n,r)=>{let i=()=>r?.().openRenameDialog;var a=ki(),o=e(a,!0);V(a),v(()=>{j(a,`title`,`Rename session: ${g(p)}`),t(o,g(p))}),H(`click`,a,function(...e){i()?.apply(this,e)}),l(n,a)},i=F(()=>G.viewed?.sessionId),a=F(()=>G.viewed?.folderPath),o=F(()=>G.viewed?.sessionName);re(n,{get sessionId(){return g(i)},get folderPath(){return g(a)},get sessionName(){return g(o)},get displayName(){return g(p)},children:r,$$slots:{default:!0}})}};d(i,e=>{g(p)&&e(a)});var o=I(i,2),s=n=>{var r=Ai(),i=e(r);vi(i,{class:`size-3`});var a=I(i,2),o=e(a,!0);V(a),V(r),v(()=>t(o,G.viewed.gitBranch)),l(n,r)};d(o,e=>{G.viewed?.gitBranch&&e(s)});var m=I(o,2),h=n=>{var r=ji(),i=e(r,!0);V(r),v(()=>{B(r,1,`flex shrink-0 items-center gap-1 ${g(f)??``}`),t(i,g(c))}),l(n,r)};d(m,e=>{g(c)&&e(h)});var _=I(m,2),y=n=>{var r=Mi(),i=e(r,!0);V(r),v(()=>t(i,g(u))),l(n,r)};d(_,e=>{g(u)&&e(y)}),V(r),l(n,r)};d(ue,e=>{(g(p)||G.viewed?.gitBranch||g(c)||g(u))&&e(de)}),V(m),v(e=>{B(S,1,e),j(ne,`title`,g(a)),B(se,1,`relative inline-flex size-2 rounded-full ${g(o)??``}`),t(le,g(a))},[()=>b(hi(!!g(p)))]),l(n,m),M()}m([`click`]);var Ii=f(`<span> </span>`),Li=f(`<div class="border-border bg-background/95 flex shrink-0 gap-2 overflow-x-auto border-b px-4 py-1.5 md:hidden"></div>`);function Ri(n,r){E(r,!0);let i=F(()=>{let e=[],t=G.viewed;if(t?.isCompacting&&e.push({label:`Compacting…`,className:`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`}),W.phase===`syncing`&&t?.isRestoring){let n=mi(t.restoreMode);n&&e.push({label:n,className:`border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400`})}else W.phase===`connecting`||W.phase===`backoff`?e.push({label:W.phaseLabel,className:`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`}):W.phase===`idle`&&e.push({label:`Disconnected`,className:`border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400`});return e});var a=u(),o=w(a),s=n=>{var r=Li();h(r,21,()=>g(i),e=>e.label,(n,r)=>{var i=Ii(),a=e(i,!0);V(i),v(()=>{B(i,1,`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${g(r).className??``}`),t(a,g(r).label)}),l(n,i)}),V(r),l(n,r)};d(o,e=>{g(i).length>0&&e(s)}),l(n,a),M()}function zi(e,t,n=16){return t<-n&&Math.abs(t)>Math.abs(e)}var Bi=f(`<div class="bg-popover text-popover-foreground ring-foreground/10 flex items-center gap-2 rounded-2xl px-2 py-1 shadow-md ring-1 md:hidden svelte-1s9sawt"><div class="min-w-0 flex-1 px-1 svelte-1s9sawt"><div class="truncate text-xs font-medium svelte-1s9sawt"> </div> <div class="text-muted-foreground text-[11px] svelte-1s9sawt">Session actions</div></div> <button class="active:bg-accent active:text-accent-foreground flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-medium svelte-1s9sawt"><!> <span class="svelte-1s9sawt">Archive</span></button> <button class="text-destructive active:bg-destructive/10 flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-medium svelte-1s9sawt"><!> <span class="svelte-1s9sawt">Close</span></button></div>`),Vi=f(`<span class="relative inline-flex size-2 rounded-full bg-orange-500 svelte-1s9sawt"></span>`),Hi=f(`<span class="absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-75 svelte-1s9sawt"></span> <span class="relative inline-flex size-2 rounded-full bg-emerald-500 svelte-1s9sawt"></span>`,1),Ui=f(`<span class="relative inline-flex size-2 rounded-full bg-orange-500 svelte-1s9sawt"></span>`),Wi=f(`<span class="relative inline-flex size-2 rounded-full bg-gray-400 svelte-1s9sawt"></span>`),Gi=f(`<button style="touch-action: pan-x;"><span class="relative flex size-2 svelte-1s9sawt"><!></span> <span class="max-w-[80px] truncate svelte-1s9sawt"> </span> <span role="button" tabindex="-1" title="Close session"><!></span></button>`),Ki=f(`<button class="border-muted-foreground/30 text-muted-foreground hover:border-muted-foreground/50 hover:text-foreground flex shrink-0 items-center gap-1 rounded-full border border-dashed px-2.5 py-1 text-xs transition-colors disabled:pointer-events-none disabled:opacity-40 svelte-1s9sawt"><!> <span class="svelte-1s9sawt">New</span></button>`),qi=f(`<div class="session-pill-bar-root border-border bg-muted/30 flex shrink-0 flex-col gap-1.5 border-t px-2 py-1.5 svelte-1s9sawt"><!> <div class="flex shrink-0 items-center gap-1.5 overflow-x-auto overflow-y-hidden svelte-1s9sawt"><!> <!></div></div>`);function Ji(r,i){E(i,!0);let a=he(),o=A(null),s=A(null),c=A(null),f=null,p=0,m=0,y=0,b=0,x=null,S=null,C=Xe();function D(){f=null,p=0,m=0,y=0,b=0}function O(e){T(o,e,!0),T(s,e,!0),D()}function k(){C||(C=!0,qe(!0))}function P(e,t){if(t.touches.length!==1)return;let n=t.touches[0];f=e,p=n.clientX,m=n.clientY,y=0,b=0}function L(e,t){if(f!==e||t.touches.length!==1)return;let n=t.touches[0];y=n.clientX-p,b=n.clientY-m}function ee(e){if(f===e){if(zi(y,b)){k(),O(e);return}D()}}function z(e){if(g(s)===e){T(s,null);return}if(g(o)===e){T(o,null);return}T(o,null),Ke(e)}async function te(e){let t=G.sessions[e];if(t)try{await W.send({type:`archive_session`,folderPath:t.folderPath,sessionIds:[e],archived:!0}),T(o,null),Ye(e)}catch(e){console.error(`Failed to archive session:`,e)}}function U(e){T(o,null),Ye(e)}N(()=>{let e=e=>{if(!g(o))return;let t=e.target;t instanceof Element&&t.closest(`.session-pill-bar-root`)||T(o,null)};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e),x&&clearTimeout(x),S&&clearTimeout(S)}}),_(()=>{if(C||G.activeSessions.length===0||typeof window>`u`||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=G.viewedSessionId??G.activeSessions[0]?.sessionId;e&&(x&&clearTimeout(x),S&&clearTimeout(S),x=setTimeout(()=>{T(c,e,!0),S=setTimeout(()=>{T(c,null)},900)},900))});var ne=u(),re=w(ne),ie=r=>{var i=qi(),s=e(i),u=n=>{let r=F(()=>G.sessions[g(o)]);var i=Bi(),a=e(i),s=e(a),c=e(s,!0);V(s),R(2),V(a);var u=I(a,2);We(e(u),{class:`size-3`}),R(2),V(u);var d=I(u,2);de(e(d),{class:`size-3`}),R(2),V(d),V(i),v(()=>t(c,g(r).projectName)),H(`click`,u,()=>void te(g(r).sessionId)),H(`click`,d,()=>U(g(r).sessionId)),l(n,i)};d(s,e=>{g(o)&&G.sessions[g(o)]&&e(u)});var f=I(s,2),p=e(f);h(p,17,()=>G.activeSessions,e=>e.sessionId,(r,i)=>{let o=F(()=>G.viewedSessionId===g(i).sessionId),s=F(()=>a.hasRequestForSession(g(i).sessionId));var u=Gi(),f=e(u),p=e(f),m=e=>{l(e,Vi())},h=e=>{var t=Hi();R(2),l(e,t)},_=e=>{l(e,Ui())},y=e=>{l(e,Wi())};d(p,e=>{g(s)?e(m):g(i).status===`working`?e(h,1):g(i).needsAttention?e(_,2):e(y,-1)}),V(f);var b=I(f,2),x=e(b,!0);V(b);var S=I(b,2);de(e(S),{class:`size-3`}),V(S),V(u),v(()=>{B(u,1,`group/chip ${g(o)?`bg-primary text-primary-foreground`:`bg-secondary text-secondary-foreground hover:bg-secondary/80`} flex shrink-0 items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium transition-colors select-none ${g(c)===g(i).sessionId?`session-pill-swipe-hint`:``}`,`svelte-1s9sawt`),j(u,`title`,g(i).projectName),t(x,g(i).projectName),B(S,1,`${g(o)?`text-primary-foreground/50 hover:bg-primary-foreground/20 hover:text-primary-foreground`:`text-secondary-foreground/50 hover:bg-secondary-foreground/20 hover:text-secondary-foreground`} -mr-1 ml-0.5 hidden items-center justify-center rounded-full p-0.5 transition-colors md:flex md:opacity-0 md:group-hover/chip:opacity-100`,`svelte-1s9sawt`)}),H(`click`,u,()=>z(g(i).sessionId)),n(`auxclick`,u,e=>{e.button===1&&(e.preventDefault(),Ye(g(i).sessionId))}),H(`touchstart`,u,e=>P(g(i).sessionId,e),void 0,!0),H(`touchmove`,u,e=>L(g(i).sessionId,e),void 0,!0),H(`touchend`,u,()=>ee(g(i).sessionId)),n(`touchcancel`,u,D),H(`click`,S,e=>{e.stopPropagation(),Ye(g(i).sessionId)}),H(`keydown`,S,e=>{e.key===`Enter`&&(e.stopPropagation(),Ye(g(i).sessionId))}),l(r,u)});var m=I(p,2),_=t=>{var n=Ki();Ve(e(n),{class:`size-3`}),R(2),V(n),v(()=>{j(n,`title`,`New session in ${G.viewed?.projectName??``}`),n.disabled=!!G.pendingNewSession}),H(`click`,n,()=>Ge(G.viewedSessionId)),l(t,n)};d(m,e=>{G.viewedSessionId&&e(_)}),V(f),V(i),n(`scroll`,f,()=>T(o,null)),l(r,i)};d(re,e=>{G.activeSessions.length>0&&e(ie)}),l(r,ne),M()}m([`click`,`touchstart`,`touchmove`,`touchend`,`keydown`]);var Yi=f(`<div class="text-destructive px-4 pb-3 text-xs"> </div>`),Xi=f(`<div class="border-border bg-muted/50 flex flex-col border-b"><div class="flex items-center gap-3 px-4 py-3"><!> <span class="text-foreground flex-1 text-sm">Enable notifications to know when sessions finish.</span> <button class="bg-primary text-primary-foreground hover:bg-primary/80 rounded-md px-3 py-1.5 text-xs font-medium disabled:opacity-50"> </button> <button class="text-muted-foreground hover:text-foreground rounded-md p-1" title="Dismiss"><!></button></div> <!></div>`);function Zi(n,r){E(r,!0);let i=A(!1),a=A(``),o=A(!1);N(()=>{if(!(!(`serviceWorker`in navigator)||!(`PushManager`in window))&&!localStorage.getItem(`pimote-push-dismissed`)&&Notification.permission!==`denied`){if(Notification.permission===`default`){T(i,!0);return}navigator.serviceWorker.ready.then(async e=>{await e.pushManager.getSubscription()||T(i,!0)}).catch(()=>{})}});async function s(){T(a,``),T(o,!0);try{let e=await navigator.serviceWorker.ready,{publicKey:t}=await(await fetch(`/api/vapid-key`)).json();if(!t){T(a,`Server returned no VAPID key. Push notifications are not configured.`);return}let n;try{n=await e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:f(t)})}catch(e){let t=e.message??String(e);Notification.permission===`denied`?T(a,`Notification permission was denied. Enable notifications for this app in your system settings, then try again.`):T(a,`Push subscription failed: ${t}`),console.error(`[pimote] pushManager.subscribe() failed:`,e,`Notification.permission:`,Notification.permission);return}let r=n.toJSON();if(!r.endpoint||!r.keys?.p256dh||!r.keys?.auth){T(a,`Push subscription returned incomplete data.`),console.error(`[pimote] Incomplete subscription:`,JSON.stringify(r));return}await W.send({type:`register_push`,subscription:{endpoint:r.endpoint,keys:{p256dh:r.keys.p256dh,auth:r.keys.auth}}}),console.log(`[pimote] Push notifications enabled successfully`),T(i,!1)}catch(e){T(a,`Notification setup failed: ${e.message??e}`),console.error(`[pimote] Failed to setup push notifications:`,e)}finally{T(o,!1)}}function c(){localStorage.setItem(`pimote-push-dismissed`,`true`),T(i,!1)}function f(e){let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;++e)r[e]=n.charCodeAt(e);return r.buffer}var p=u(),m=w(p),h=n=>{var r=Xi(),i=e(r),u=e(i);gi(u,{class:`text-muted-foreground size-4 shrink-0`});var f=I(u,4),p=e(f,!0);V(f);var m=I(f,2);de(e(m),{class:`size-4`}),V(m),V(i);var h=I(i,2),_=n=>{var r=Yi(),i=e(r,!0);V(r),v(()=>t(i,g(a))),l(n,r)};d(h,e=>{g(a)&&e(_)}),V(r),v(()=>{f.disabled=g(o),t(p,g(o)?`Enabling…`:`Enable`)}),H(`click`,f,s),H(`click`,m,c),l(n,r)};d(m,e=>{g(i)&&e(h)}),l(n,p),M()}m([`click`]);function Qi(e){return e.remoteAudioLevel>e.speakingThreshold?`speaking`:e.isStreaming?`thinking`:`listening`}function $i(e){let t=Math.max(0,Math.floor(e/1e3)),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=String(n).padStart(2,`0`),o=String(r).padStart(2,`0`);return i>0?`${i}:${o}:${a}`:`${o}:${a}`}var ea=f(`<span class="dot animate-breathe bg-cyan-400 svelte-ttwohx" aria-hidden="true"></span>`),ta=f(`<span class="dot animate-thinking bg-amber-400 svelte-ttwohx" aria-hidden="true"></span>`),na=f(`<span class="dot bg-emerald-400 transition-[transform,opacity] duration-[80ms] svelte-ttwohx" aria-hidden="true"></span>`),ra=f(`<div class="flex items-center gap-2 svelte-ttwohx"><!> <span class="text-foreground text-sm font-medium svelte-ttwohx"> </span></div>`);function ia(n,r){let i=F(()=>1+Math.min(1,Math.max(0,r.remoteAudioLevel))*.6),a=F(()=>.6+Math.min(1,Math.max(0,r.remoteAudioLevel))*.4),o=F(()=>r.state);var s=ra(),c=e(s),u=e=>{l(e,ea())},f=e=>{l(e,ta())},p=e=>{var t=na();let n;v(()=>n=ee(t,``,n,{transform:`scale(${g(i)??``})`,opacity:g(a)})),l(e,t)};d(c,e=>{r.state===`listening`?e(u):r.state===`thinking`?e(f,1):e(p,-1)});var m=I(c,2),h=e(m,!0);V(m),V(s),v(()=>t(h,g(o))),l(n,s)}var aa=f(`<!> <span>Muted</span>`,1),oa=f(`<!> <span>Live</span>`,1),sa=f(`<div class="flex flex-col gap-2 px-4 pt-6 pb-3"><div class="text-muted-foreground truncate text-xs"> </div> <div class="text-foreground text-3xl tabular-nums"> </div> <div class="text-muted-foreground flex items-center gap-2 text-sm"><!></div> <!></div>`);function ca(n,r){E(r,!0);let i=A(O(Date.now()));_(()=>{if(r.startedAt===null)return;T(i,Date.now(),!0);let e=setInterval(()=>{T(i,Date.now(),!0)},1e3);return()=>clearInterval(e)});let a=F(()=>r.startedAt?g(i)-r.startedAt:0),o=F(()=>$i(g(a))),s=F(()=>{if(!r.folderPath)return`session`;let e=r.folderPath.replace(/\/+$/,``),t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e||`session`}),c=F(()=>r.sessionDisplayName??`Session`);var u=sa(),f=e(u),p=e(f);V(f);var m=I(f,2),h=e(m,!0);V(m);var y=I(m,2),b=e(y),x=e=>{var t=aa();yi(w(t),{class:`size-4`,"aria-hidden":`true`}),R(2),l(e,t)},S=e=>{var t=oa();bi(w(t),{class:`size-4`,"aria-hidden":`true`}),R(2),l(e,t)};d(b,e=>{r.micMuted?e(x):e(S,-1)}),V(y),ia(I(y,2),{get state(){return r.agentState},get remoteAudioLevel(){return r.remoteAudioLevel}}),V(u),v(()=>{t(p,`${g(s)??``} · ${g(c)??``}`),t(h,g(o))}),l(n,u),M()}function la(e){let t=e??(()=>new AudioContext),n=null,r=()=>(n||=t(),n),i=(e,t,n=0)=>{let i=r(),a=i.createOscillator(),o=i.createGain();a.type=`sine`,a.frequency.value=e;let s=i.currentTime+n/1e3,c=s+t/1e3;o.gain.setValueAtTime(0,s),o.gain.linearRampToValueAtTime(.4,s+.005),o.gain.linearRampToValueAtTime(0,c),a.connect(o).connect(i.destination),a.start(s),a.stop(c)};return{playMuteOn(){i(880,80)},playMuteOff(){i(440,80)},playAbortConfirm(){i(660,80,0),i(660,80,120)},dispose(){n&&=(n.close().catch(()=>{}),null)}}}function ua(e,t,n={}){let r=n.tapMaxMovementPx??10,i=n.tapMaxDurationMs??300,a=n.swipeMinDeltaPx??80,o=t.x-e.x,s=t.y-e.y,c=t.t-e.t;return Math.abs(o)+Math.abs(s)<=r&&c<=i?`tap`:s<=-a?`swipe-up`:s>=a?`swipe-down`:null}var da=f(`<!> <span class="absolute inset-0 -z-10 animate-ping rounded-full bg-emerald-500/20"></span>`,1),fa=f(`<div class="relative flex w-full touch-none flex-col items-center justify-between py-3 select-none" style="height: min(28vh, 220px); min-height: 160px;" role="button" tabindex="-1" aria-label="Call gesture zone: tap mic to mute, swipe up to hang up, swipe down to abort"><div class="flex flex-col items-center gap-0.5 text-rose-400/90"><!> <div class="flex items-center gap-1.5 rounded-full border border-rose-500/40 bg-rose-500/10 px-3 py-1 text-xs font-medium tracking-wide"><!> <span>Swipe up to hang up</span></div></div> <div><!></div> <div class="flex flex-col items-center gap-0.5 text-amber-400/90"><div class="flex items-center gap-1.5 rounded-full border border-amber-500/40 bg-amber-500/10 px-3 py-1 text-xs font-medium tracking-wide"><!> <span>Swipe down to abort</span></div> <!></div></div>`);function pa(t,r){E(r,!0);let i=null;function a(){return i||=la(),i}D(()=>{i?.dispose(),i=null});let o=A(null),s=null,c=null,u=A(0);function f(e){if(s&&e!==null&&s.hasPointerCapture?.(e))try{s.releasePointerCapture(e)}catch{}s=null,T(o,null),c=null,T(u,0)}function p(e){if(!e.isPrimary)return;if(g(o)!==null&&g(o)!==e.pointerId){f(g(o));return}let t=e.target;try{t.setPointerCapture(e.pointerId)}catch{}s=t,T(o,e.pointerId,!0),c={x:e.clientX,y:e.clientY,t:e.timeStamp},T(u,0)}function m(e){g(o)!==e.pointerId||!c||T(u,e.clientY-c.y)}function h(e){if(g(o)!==e.pointerId||!c){f(g(o));return}let t={x:e.clientX,y:e.clientY,t:e.timeStamp},n=ua(c,t);switch(f(e.pointerId),n){case`tap`:{Ae.toggleMute();let e=Ae.state.micMuted;try{e?a().playMuteOn():a().playMuteOff()}catch(e){console.warn(`[voice] mute cue failed`,e)}break}case`swipe-up`:Ae.endCall().catch(()=>{});break;case`swipe-down`:Ae.abortAgent().catch(()=>{});try{a().playAbortConfirm()}catch(e){console.warn(`[voice] abort cue failed`,e)}break;default:break}}function _(e){g(o)===e.pointerId&&f(e.pointerId)}let y=F(()=>Math.max(-32,Math.min(32,g(u)*.4))),b=F(()=>Ae.state.micMuted);var x=fa(),S=e(x);let C;var O=e(S);_i(O,{class:`-mb-1 size-5 animate-pulse`,"aria-hidden":`true`});var k=I(O,2);Ne(e(k),{class:`size-3.5`,"aria-hidden":`true`}),R(2),V(k),V(S);var N=I(S,2),P=e(N),L=e=>{yi(e,{class:`size-7`,"aria-hidden":`true`})},z=e=>{var t=da();bi(w(t),{class:`size-7`,"aria-hidden":`true`}),R(2),l(e,t)};d(P,e=>{g(b)?e(L):e(z,-1)}),V(N);var te=I(N,2);let U;var ne=e(te);Dr(e(ne),{class:`size-3.5`,"aria-hidden":`true`}),R(2),V(ne),ke(I(ne,2),{class:`-mt-1 size-5 animate-pulse`,"aria-hidden":`true`}),V(te),V(x),v(()=>{C=ee(S,``,C,{transform:`translateY(${g(y)??``}px)`}),B(N,1,`relative flex size-16 items-center justify-center rounded-full border-2 transition-colors ${g(b)?`border-amber-500/60 bg-amber-500/15 text-amber-300`:`border-emerald-500/70 bg-emerald-500/15 text-emerald-300`}`),j(N,`aria-label`,g(b)?`Microphone muted, tap to unmute`:`Microphone live, tap to mute`),U=ee(te,``,U,{transform:`translateY(${g(y)??``}px)`})}),H(`pointerdown`,x,p),H(`pointermove`,x,m),H(`pointerup`,x,h),n(`pointercancel`,x,_),l(t,x),M()}m([`pointerdown`,`pointermove`,`pointerup`]);var ma=f(`<div class="bg-background text-foreground fixed inset-0 z-40 flex flex-col"><!> <div class="flex min-h-0 flex-1 flex-col overflow-hidden"><!></div> <!></div>`);function ha(t,n){E(n,!0);let r=A(0);_(()=>{if(Ae.state.phase!==`connected`){T(r,0);return}let e=setInterval(()=>{T(r,Pe(),!0)},100);return()=>clearInterval(e)});let i=F(()=>G.viewed),a=F(()=>Qi({isStreaming:!!g(i)?.isStreaming,remoteAudioLevel:g(r),speakingThreshold:.02})),o=F(()=>g(i)?.folderPath??null),s=F(()=>Ee(g(i)??null));var c=ma(),u=e(c);ca(u,{get sessionDisplayName(){return g(s)},get folderPath(){return g(o)},get startedAt(){return Ae.state.startedAt},get micMuted(){return Ae.state.micMuted},get agentState(){return g(a)},get remoteAudioLevel(){return g(r)}});var d=I(u,2);Lr(e(d),{readOnly:!0}),V(d),pa(I(d,2),{}),V(c),l(t,c),M()}var ga=f(`<div class="bg-warning/10 border-warning/30 text-warning flex items-center gap-2 border-b px-4 py-2 text-sm"><span>This session is owned by another client. Take it over?</span> <button class="bg-warning text-warning-foreground hover:bg-warning/80 ml-auto rounded px-3 py-1 text-xs font-medium">Take Over</button> <button class="border-warning/30 hover:bg-warning/20 rounded border px-3 py-1 text-xs font-medium">Dismiss</button></div>`),_a=f(`<div class="bg-destructive/10 border-destructive/30 text-destructive flex items-center gap-2 border-b px-4 py-2 text-sm"><span>External pi processes detected in this project.</span> <button class="bg-destructive text-primary-foreground hover:bg-destructive/80 ml-auto rounded px-3 py-1 text-xs font-medium">Kill & Continue</button> <button class="border-destructive/30 hover:bg-destructive/20 rounded border px-3 py-1 text-xs font-medium">Dismiss</button></div>`),va=f(`<div class="flex min-h-0 flex-1 flex-col"><div class="hidden md:block"><!></div> <!> <!> <!> <!> <!> <!> <!> <!></div>`),ya=f(`<div class="flex min-h-0 flex-1 flex-col overflow-y-auto"><div class="my-auto flex flex-col items-center p-8"><img src="/pwa/icon-512.png" alt="Pimote" class="mb-6 size-32"/> <h1 class="text-foreground mb-2 text-2xl font-bold">Pimote</h1> <p class="text-muted-foreground mb-8 text-sm">Resume a session from the sidebar, or start a new one.</p> <div class="w-full max-w-md md:hidden"><!></div> <!></div></div>`),ba=f(`<!> <!>`,1);function xa(t,n){E(n,!0);let r=F(()=>Ae.state.phase!==`idle`&&Ae.state.sessionId===G.viewedSessionId);function i(){let e=G.viewedSessionId,t=G.viewed?.conflictingProcesses?.map(e=>e.pid)??[];e&&(W.send({type:`kill_conflicting_processes`,sessionId:e,pids:t}).catch(()=>{}),G.clearConflict(e))}function a(){let e=G.viewedSessionId;e&&G.clearConflict(e)}var o=ba(),s=w(o);Zi(s,{});var c=I(s,2),f=t=>{var n=u(),o=w(n),s=e=>{ha(e,{})},c=t=>{var n=va(),r=e(n);Fi(e(r),{}),V(r);var o=I(r,2);Ri(o,{});var s=I(o,2),c=t=>{var n=ga(),r=I(e(n),2),i=I(r,2);V(n),H(`click`,r,()=>Ze(G.viewedSessionId)),H(`click`,i,()=>Je(G.viewedSessionId)),l(t,n)};d(s,e=>{G.viewed?.pendingTakeover&&e(c)});var u=I(s,2),f=t=>{var n=_a(),r=I(e(n),2),o=I(r,2);V(n),H(`click`,r,i),H(`click`,o,a),l(t,n)};d(u,e=>{G.viewed?.conflictingProcesses?.length&&e(f)});var p=I(u,2);Lr(p,{});var m=I(p,2);qr(m,{});var h=I(m,2);Xr(h,{});var g=I(h,2);Ji(g,{}),fi(I(g,2),{}),V(n),l(t,n)};d(o,e=>{g(r)?e(s):e(c,-1)}),l(t,n)},p=t=>{var n=ya(),r=e(n),i=I(e(r),6);ne(e(i),{}),V(i),Ji(I(i,2),{}),V(r),V(n),l(t,n)};d(c,e=>{G.viewedSessionId?e(f):e(p,-1)}),l(t,o),M()}m([`click`]);export{xa as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1781914284156"}
|
package/client/build/index.html
CHANGED
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
<link rel="icon" type="image/png" sizes="192x192" href="/pwa/icon-192.png" />
|
|
13
13
|
<link rel="icon" type="image/png" sizes="512x512" href="/pwa/icon-512.png" />
|
|
14
14
|
<link rel="apple-touch-icon" href="/pwa/icon-192.png" />
|
|
15
|
-
<link href="/_app/immutable/entry/start.
|
|
16
|
-
<link href="/_app/immutable/chunks/
|
|
17
|
-
<link href="/_app/immutable/chunks/
|
|
15
|
+
<link href="/_app/immutable/entry/start.NVZAE6Px.js" rel="modulepreload">
|
|
16
|
+
<link href="/_app/immutable/chunks/b9CWRTHL.js" rel="modulepreload">
|
|
17
|
+
<link href="/_app/immutable/chunks/S8e8sMop.js" rel="modulepreload">
|
|
18
18
|
<link href="/_app/immutable/chunks/B8lQCytv.js" rel="modulepreload">
|
|
19
19
|
<link href="/_app/immutable/chunks/5FogVG_p.js" rel="modulepreload">
|
|
20
|
-
<link href="/_app/immutable/entry/app.
|
|
20
|
+
<link href="/_app/immutable/entry/app.agj-hcVA.js" rel="modulepreload">
|
|
21
21
|
<link href="/_app/immutable/chunks/CHncfsjL.js" rel="modulepreload">
|
|
22
22
|
<link href="/_app/immutable/chunks/D1hYfEew.js" rel="modulepreload">
|
|
23
23
|
|
|
@@ -26,15 +26,15 @@
|
|
|
26
26
|
<div style="display: contents">
|
|
27
27
|
<script>
|
|
28
28
|
{
|
|
29
|
-
|
|
29
|
+
__sveltekit_8sdy3e = {
|
|
30
30
|
base: ""
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
const element = document.currentScript.parentElement;
|
|
34
34
|
|
|
35
35
|
Promise.all([
|
|
36
|
-
import("/_app/immutable/entry/start.
|
|
37
|
-
import("/_app/immutable/entry/app.
|
|
36
|
+
import("/_app/immutable/entry/start.NVZAE6Px.js"),
|
|
37
|
+
import("/_app/immutable/entry/app.agj-hcVA.js")
|
|
38
38
|
]).then(([kit, app]) => {
|
|
39
39
|
kit.start(app, element);
|
|
40
40
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pimote/pimote",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Web client and embedded server for pi with multi-session browser access, streaming, and extension UI support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"typescript-eslint": "^8.58.0"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
76
|
+
"@earendil-works/pi-coding-agent": "^0.79.1",
|
|
77
77
|
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
78
78
|
"@streamparser/json": "^0.0.22",
|
|
79
79
|
"patch-package": "^8.0.1",
|
package/server/dist/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
1
|
+
import { readFile, writeFile, mkdir, rename } from 'node:fs/promises';
|
|
2
2
|
import { dirname } from 'node:path';
|
|
3
3
|
import { PIMOTE_CONFIG_PATH } from './paths.js';
|
|
4
4
|
export const CONFIG_PATH = PIMOTE_CONFIG_PATH;
|
|
@@ -93,6 +93,9 @@ export async function ensureVapidKeys(config) {
|
|
|
93
93
|
existing.vapidPublicKey = keys.publicKey;
|
|
94
94
|
existing.vapidPrivateKey = keys.privateKey;
|
|
95
95
|
await mkdir(dirname(CONFIG_PATH), { recursive: true });
|
|
96
|
-
|
|
96
|
+
// Atomic write (tmp + rename) so a crash mid-write can't corrupt the config.
|
|
97
|
+
const tmpPath = CONFIG_PATH + '.tmp';
|
|
98
|
+
await writeFile(tmpPath, JSON.stringify(existing, null, 2) + '\n', 'utf-8');
|
|
99
|
+
await rename(tmpPath, CONFIG_PATH);
|
|
97
100
|
return config;
|
|
98
101
|
}
|
|
@@ -70,7 +70,7 @@ export class EventBuffer {
|
|
|
70
70
|
case 'agent_start':
|
|
71
71
|
return { ...base, type: 'agent_start' };
|
|
72
72
|
case 'agent_end':
|
|
73
|
-
return { ...base, type: 'agent_end', ...(sdkEvent.error ? { error: sdkEvent.error } : {}) };
|
|
73
|
+
return { ...base, type: 'agent_end', ...(sdkEvent.error ? { error: sdkEvent.error } : {}), ...(sdkEvent.willRetry ? { willRetry: true } : {}) };
|
|
74
74
|
case 'turn_start':
|
|
75
75
|
return { ...base, type: 'turn_start' };
|
|
76
76
|
case 'turn_end':
|
|
@@ -192,6 +192,15 @@ export class EventBuffer {
|
|
|
192
192
|
error: sdkEvent.error ?? '',
|
|
193
193
|
...(sdkEvent.extensionName ? { extensionName: sdkEvent.extensionName } : {}),
|
|
194
194
|
};
|
|
195
|
+
case 'tree_navigation_start':
|
|
196
|
+
return {
|
|
197
|
+
...base,
|
|
198
|
+
type: 'tree_navigation_start',
|
|
199
|
+
targetId: sdkEvent.targetId ?? '',
|
|
200
|
+
summarizing: sdkEvent.summarizing ?? false,
|
|
201
|
+
};
|
|
202
|
+
case 'tree_navigation_end':
|
|
203
|
+
return { ...base, type: 'tree_navigation_end' };
|
|
195
204
|
default:
|
|
196
205
|
// Unknown event type — pass through as agent_start (shouldn't happen)
|
|
197
206
|
return { ...base, type: 'agent_start' };
|
|
@@ -51,28 +51,44 @@ export function createExtensionUIBridge(slot, pushNotificationService, options)
|
|
|
51
51
|
async function dialogWithTimeout(requestId, requestEvent, opts, fallback) {
|
|
52
52
|
const responsePromise = waitForSlotUiResponse(slot, requestId, requestEvent);
|
|
53
53
|
const racers = [responsePromise];
|
|
54
|
+
let timeoutHandle;
|
|
55
|
+
let abortListener;
|
|
56
|
+
const signal = opts?.signal;
|
|
54
57
|
if (opts?.timeout) {
|
|
55
|
-
racers.push(new Promise((resolve) =>
|
|
58
|
+
racers.push(new Promise((resolve) => {
|
|
59
|
+
timeoutHandle = setTimeout(() => resolve(fallback), opts.timeout);
|
|
60
|
+
}));
|
|
56
61
|
}
|
|
57
|
-
if (
|
|
58
|
-
if (
|
|
62
|
+
if (signal) {
|
|
63
|
+
if (signal.aborted) {
|
|
59
64
|
// Remove the pending entry we just created — no one will respond to it
|
|
60
65
|
slot.sessionState.pendingUiResponses.delete(requestId);
|
|
61
66
|
return fallback;
|
|
62
67
|
}
|
|
63
68
|
racers.push(new Promise((resolve) => {
|
|
64
|
-
|
|
69
|
+
abortListener = () => resolve(fallback);
|
|
70
|
+
signal.addEventListener('abort', abortListener, { once: true });
|
|
65
71
|
}));
|
|
66
72
|
}
|
|
67
73
|
if (racers.length === 1)
|
|
68
74
|
return responsePromise;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
slot.sessionState.pendingUiResponses.
|
|
75
|
+
try {
|
|
76
|
+
const result = await Promise.race(racers);
|
|
77
|
+
// If timeout or abort won the race, the pending entry is stale — the server
|
|
78
|
+
// has already moved on. Remove it so it won't be replayed on reconnect.
|
|
79
|
+
if (slot.sessionState.pendingUiResponses.has(requestId)) {
|
|
80
|
+
slot.sessionState.pendingUiResponses.delete(requestId);
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
// Clear the timeout timer (keeps the event loop from staying alive / firing
|
|
86
|
+
// pointlessly) and detach the abort listener if the response won the race.
|
|
87
|
+
if (timeoutHandle !== undefined)
|
|
88
|
+
clearTimeout(timeoutHandle);
|
|
89
|
+
if (signal && abortListener)
|
|
90
|
+
signal.removeEventListener('abort', abortListener);
|
|
74
91
|
}
|
|
75
|
-
return result;
|
|
76
92
|
}
|
|
77
93
|
const ui = {
|
|
78
94
|
// ---- Dialog methods (send + wait for response) ----
|