@pimote/pimote 0.1.1 → 0.2.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 +3 -1
- package/client/build/_app/immutable/assets/0.DBrr7n4n.css +2 -0
- package/client/build/_app/immutable/assets/2.DE6k3bQj.css +1 -0
- package/client/build/_app/immutable/chunks/5vSSf6qG.js +5 -0
- package/client/build/_app/immutable/chunks/{BTSGQ0LP.js → B8lQCytv.js} +1 -1
- package/client/build/_app/immutable/chunks/{BEKHoMUP.js → CT6ckxpD.js} +1 -1
- package/client/build/_app/immutable/chunks/DlJOVoUQ.js +1 -0
- package/client/build/_app/immutable/chunks/YxmLwfhj.js +1 -0
- package/client/build/_app/immutable/chunks/{L5t1qIFa.js → uZO1iyJZ.js} +2 -2
- package/client/build/_app/immutable/chunks/yWVx3W2o.js +1 -0
- package/client/build/_app/immutable/entry/app.CNzpBgAg.js +2 -0
- package/client/build/_app/immutable/entry/start.DYkTAHh1.js +1 -0
- package/client/build/_app/immutable/nodes/0.DNlQhEb_.js +10 -0
- package/client/build/_app/immutable/nodes/1.B8zmHMre.js +1 -0
- package/client/build/_app/immutable/nodes/2.W9yV4-x2.js +54 -0
- package/client/build/_app/version.json +1 -1
- package/client/build/index.html +8 -8
- package/package.json +3 -3
- package/patches/{@mariozechner+pi-coding-agent+0.65.0.patch → @mariozechner+pi-coding-agent+0.67.6.patch} +4 -4
- package/server/dist/folder-index.js +8 -4
- package/server/dist/git-branch.js +32 -0
- package/server/dist/message-mapper.js +65 -2
- package/server/dist/server.js +3 -0
- package/server/dist/session-manager.js +35 -4
- package/server/dist/ws-handler.js +232 -31
- package/client/build/_app/immutable/assets/0.Cj7UL9cq.css +0 -2
- package/client/build/_app/immutable/assets/2.CIRqqeIr.css +0 -1
- package/client/build/_app/immutable/chunks/CfQ6Egqh.js +0 -1
- package/client/build/_app/immutable/chunks/DQ-KfPq0.js +0 -1
- package/client/build/_app/immutable/chunks/DfA0ecbz.js +0 -1
- package/client/build/_app/immutable/chunks/Dnh9Emns.js +0 -5
- package/client/build/_app/immutable/entry/app.j0V4R67V.js +0 -2
- package/client/build/_app/immutable/entry/start.wkfo4Ebw.js +0 -1
- package/client/build/_app/immutable/nodes/0.CUipL_P7.js +0 -5
- package/client/build/_app/immutable/nodes/1.ex7ejMby.js +0 -1
- package/client/build/_app/immutable/nodes/2.165oQG9Z.js +0 -49
|
@@ -0,0 +1,54 @@
|
|
|
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 ee,s as N,st as P,tt as F,u as te,vt as I,w as L,y as R,yt as z,z as B}from"../chunks/B8lQCytv.js";import"../chunks/D1hYfEew.js";import{A as ne,B as V,C as re,D as ie,E as ae,I as oe,J as se,M as H,N as ce,O as le,P as ue,R as de,S as fe,T as pe,X as me,_ as he,a as ge,c as _e,d as ve,f as ye,g as be,h as xe,i as Se,j as Ce,k as we,m as Te,n as Ee,o as De,p as Oe,r as ke,s as Ae,t as je,u as Me,v as Ne,w as Pe,y as Fe,z as Ie}from"../chunks/5vSSf6qG.js";import{a as Le,c as Re,d as U,f as ze,i as Be,m as Ve,n as He,r as Ue,s as W,u as We}from"../chunks/yWVx3W2o.js";import{n as Ge}from"../chunks/BgJ-X-tf.js";var Ke=Ie({component:`separator`,parts:[`root`]}),qe=class e{static create(t){return new e(t)}opts;attachment;constructor(e){this.opts=e,this.attachment=V(e.ref)}#e=P(()=>({id:this.opts.id.current,role:this.opts.decorative.current?`none`:`separator`,"aria-orientation":this.opts.orientation.current,"aria-hidden":de(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[Ke.root]:``,...this.attachment}));get props(){return g(this.#e)}set props(e){T(this.#e,e)}},Je=f(`<div><!></div>`);function Ye(t,n){let r=o();E(n,!0);let i=y(n,`id`,19,()=>oe(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=qe.create({ref:me(()=>a(),e=>a(e)),id:me(()=>i()),decorative:me(()=>s()),orientation:me(()=>c())}),m=P(()=>se(f,p.props));var h=u(),_=w(h),v=e=>{var t=u();L(w(t),()=>n.child,()=>({props:g(m)})),l(e,t)},b=t=>{var r=Je();C(r,()=>({...g(m)})),L(e(r),()=>n.children??x),z(r),l(t,r)};d(_,e=>{n.child?e(v):e(b,-1)}),l(t,h),M()}function Xe(e,t){return e.trim().length>0&&typeof t==`string`&&t.length>0}function Ze(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 Qe={Href:1,Src:2,Lang:4,Checked:8,Start:16};function $e(e){switch(e){case 1:return`href`;case 2:return`src`;case 4:return`class`;case 8:return`checked`;case 16:return`start`}}var et=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}},tt=24;function nt(e){let t=new Uint32Array(tt);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(tt),indent:``,indent_len:0,table_state:0}}function rt(e){e.pending.length>0&&J(e,`
|
|
4
|
+
`)}function G(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 K(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 q(e,t){(e.tokens[e.len]===24||e.tokens[e.len]===23)&&t!==25&&K(e),e.len+=1,e.tokens[e.len]=t,e.token=t,e.renderer.add_token(e.renderer.data,t)}function it(e,t,n){for(;n<=e.len;){if(e.tokens[n]===t)return n;n+=1}return-1}function at(e,t){for(e.fence_start=0;e.len>t;)K(e)}function ot(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;)K(e);return t}function st(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?(at(e,e.blockquote_idx),q(e,t),!0):(at(e,n),!1):(at(e,r),q(e,t),!0)}function ct(e,t){q(e,25),e.spaces[e.len]=e.indent_len+t,lt(e),e.token=103}function lt(e){e.indent=``,e.indent_len=0,e.pending=``}function ut(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 dt(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 ft(e){return ut(e)||dt(e)}function pt(e){return ut(e)||e>=65&&e<=90||e>=97&&e<=122}function J(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=ot(e,e.indent_len);e.indent_len=0,e.token=e.tokens[e.len],t>0&&J(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){K(e),lt(e),e.pending=n;continue}at(e,e.blockquote_idx),lt(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` `:ot(e,e.indent_len),q(e,et(e.pending.length)),lt(e);continue}break;case`>`:{let t=it(e,20,e.blockquote_idx+1);t===-1?(at(e,e.blockquote_idx),e.blockquote_idx+=1,e.fence_start=0,q(e,20)):e.blockquote_idx=t,lt(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;ot(e,e.indent_len),e.renderer.add_token(e.renderer.data,22),e.renderer.end_token(e.renderer.data),lt(e),e.hr_chars=0;continue}e.hr_chars=0}if(e.pending[0]!==`_`&&e.pending[1]===` `){st(e,23),ct(e,2),J(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):(q(e,2),lt(e),e.fence_start=0,J(e,t));continue;case`
|
|
7
|
+
`:ot(e,e.indent_len),q(e,10),e.pending.length>e.fence_start&&e.renderer.set_attr(e.renderer.data,4,e.pending.slice(e.fence_start)),lt(e),e.token=101;continue;default:e.pending=t;continue}case`+`:if(n!==` `)break;st(e,23),ct(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;st(e,24)&&e.pending!==`1.`&&e.renderer.set_attr(e.renderer.data,16,e.pending.slice(0,-1)),ct(e,e.pending.length+1);continue}else{let r=n.charCodeAt(0);if(r===46||ut(r)){e.pending=t;continue}}break;case`|`:at(e,e.blockquote_idx),q(e,27),q(e,28),e.pending=``,J(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,q(e,9)}else q(e,2);lt(e),J(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:K(e),e.table_state=0;break}else switch(e.pending){case`|`:q(e,28),e.pending=``,J(e,n);continue;case`
|
|
9
|
+
`:K(e),e.pending=``,e.table_state=0,J(e,n);continue}break;case 28:switch(e.pending){case``:break;case`|`:q(e,29),K(e),e.pending=``,J(e,n);continue;case`
|
|
10
|
+
`:K(e),e.table_state=Math.min(e.table_state+1,2),e.pending=``,J(e,n);continue;default:q(e,29),J(e,n);continue}break;case 29:if(e.pending===`|`){G(e),K(e),e.pending=``,J(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:(G(e),K(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){G(e),K(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]===` `)?(G(e),K(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,G(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=``,J(e,t);continue;case 14:case 15:{let t=`*`,r=12;if(e.token===15&&(t=`_`,r=13),t===e.pending){if(G(e),t===n){K(e),e.pending=``;continue}q(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:(G(e),q(e,i),e.pending=``);else{if(r===`_`&&pt(n.charCodeAt(0)))break;G(e),K(e),e.pending=n}continue;case r+r:let a=e.token;G(e),K(e),K(e),r===n?e.pending=``:(q(e,a),e.pending=n);continue}break}case 16:if(t===`~~`){G(e),K(e),e.pending=``;continue}break;case 105:n===`
|
|
24
|
+
`?(G(e),q(e,30),e.pending=``):(e.token=e.tokens[e.len],e.pending[0]===`\\`?e.text+=`[`:e.text+=`$$`,e.pending=``,J(e,n));continue;case 30:if(t===`\\]`||t===`$$`){G(e),K(e),e.pending=``;continue}break;case 31:if(t===`\\)`||e.pending[0]===`$`){G(e),K(e),n===`)`?e.pending=``:e.pending=n;continue}break;case 102:t===`http://`||t===`https://`?(G(e),q(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],J(e,n));continue;case 17:case 19:if(e.pending===`]`){G(e),n===`(`?e.pending=t:(K(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),K(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),G(e),K(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===`>`){G(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),J(e,n);continue}switch(e.pending[0]){case`\\`:if(e.token===19||e.token===30||e.token===31)break;switch(n){case`(`:G(e),q(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+=ut(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:G(e),at(e,e.blockquote_idx),e.blockquote_idx=0,e.pending=n;continue;default:G(e),e.pending=n,e.token=21,e.blockquote_idx=0;continue}break;case`<`:if(e.token!==19&&e.token!==30&&e.token!==31){G(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,G(e),q(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&&pt(e.text.charCodeAt(e.text.length-1))&&pt(n.charCodeAt(0)))break;if(n!==` `&&n!==`
|
|
29
|
+
`){G(e),q(e,r),e.pending=n;continue}}else{if(a===n){G(e),q(e,i),q(e,r),e.pending=``;continue}if(a===`_`&&e.text.length>0&&pt(e.text.charCodeAt(e.text.length-1))&&pt(n.charCodeAt(0)))break;if(n!==` `&&n!==`
|
|
30
|
+
`){G(e),q(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
|
+
`){G(e),q(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(ft(n.charCodeAt(0)))break;else{G(e),q(e,31),e.pending=n;continue}break;case`[`:if(e.token!==19&&e.token!==17&&e.token!==30&&e.token!==31&&n!==`]`){G(e),q(e,17),e.pending=n;continue}break;case`!`:if(e.token!==19&&n===`[`){G(e),q(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}G(e)}function mt(e){return{add_token:ht,end_token:gt,add_text:_t,set_attr:vt,data:{nodes:[e,,,,,],index:0}}}function ht(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 gt(e){--e.index}function _t(e,t){e.nodes[e.index].appendChild(document.createTextNode(t))}function vt(e,t,n){e.nodes[e.index].setAttribute($e(t),n)}var yt=/^(?:https?|mailto):/i;function bt(e){return{...mt(e),set_attr(e,t,n){(t===Qe.Href||t===Qe.Src)&&!yt.test(n.trim())||vt(e,t,n)},end_token(e){let t=e.nodes[e.index];if(t?.tagName===`CODE`&&t.parentElement?.tagName===`PRE`)try{Ge.highlightElement(t)}catch{}gt(e)}}}var xt=f(`<div class="text-block markdown-content svelte-8p0cc8"></div>`);function St(e,t){E(t,!0);let n=y(t,`streaming`,3,!1),r;_(()=>{if(!r)return;let e=nt(bt(r)),i=0,a=!1;return _(()=>{a||(t.text.length>i&&(J(e,t.text.slice(i)),i=t.text.length),n()||(rt(e),a=!0))}),()=>{a||rt(e),r.innerHTML=``}});var i=xt();S(i,e=>r=e,()=>r),l(e,i),M()}function Ct(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`}]];H(e,N({name:`brain-circuit`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var wt=f(`<span class="thinking-preview svelte-1mu9o59"> </span>`),Tt=f(`<span class="thinking-word-count svelte-1mu9o59"> </span>`),Et=f(`<span class="streaming-dot svelte-1mu9o59"></span>`),Dt=f(`<div class="thinking-content svelte-1mu9o59"><pre class="thinking-text svelte-1mu9o59"> </pre></div>`),Ot=f(`<div class="thinking-block svelte-1mu9o59"><button class="thinking-header svelte-1mu9o59"><!> <!> <span class="thinking-label svelte-1mu9o59"> </span> <!> <!> <!></button> <!></div>`);function kt(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=P(()=>r.text?r.text.trim().split(/\s+/).slice(0,8).join(` `):``),c=P(()=>r.text?r.text.trim().split(/\s+/).filter(e=>e.length>0).length:0);var u=Ot(),f=e(u),p=e(f);{let e=P(()=>g(a)?`rotate-90`:``);Ne(p,{get class(){return`shrink-0 transition-transform duration-150 ${g(e)??``}`},size:14})}var m=F(p,2);Ct(m,{size:14,class:`shrink-0`});var h=F(m,2),b=e(h,!0);z(h);var x=F(h,2),C=n=>{var r=wt(),i=e(r,!0);z(r),v(()=>t(i,g(s))),l(n,r)};d(x,e=>{g(s)&&e(C)});var w=F(x,2),D=n=>{var r=Tt(),i=e(r);z(r),v(e=>t(i,`${e??``} words`),[()=>g(c).toLocaleString()]),l(n,r)};d(w,e=>{g(c)>0&&e(D)});var O=F(w,2),k=e=>{l(e,Et())};d(O,e=>{i()&&e(k)}),z(f);var j=F(f,2),ee=n=>{var i=Dt(),a=e(i),s=e(a,!0);z(a),z(i),S(i,e=>T(o,e),()=>g(o)),v(()=>t(s,r.text)),l(n,i)};d(j,e=>{g(a)&&e(ee)}),z(u),v(()=>t(b,i()?`Thinking…`:`Thought process`)),B(`click`,f,()=>T(a,!g(a))),l(n,u),M()}m([`click`]);var At=f(`<button class="collapsible-toggle svelte-tetllc"> </button>`),jt=f(`<div><pre> </pre> <!></div>`);function Mt(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=A(!1),c=A(void 0),u=P(()=>r.text.split(`
|
|
32
|
+
`)),f=P(()=>g(u).length),p=P(()=>g(f)>a()),m=P(()=>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=jt();let b;var x=e(h);let C;var w=e(x,!0);z(x),S(x,e=>T(c,e),()=>g(c));var D=F(x,2),O=n=>{var r=At(),i=e(r,!0);z(r),v(()=>t(i,g(s)?`Show less`:`Show more… (${g(f)} lines)`)),B(`click`,r,()=>T(s,!g(s))),l(n,r)};d(D,e=>{g(p)&&e(O)}),z(h),v(()=>{b=R(h,1,`streaming-collapsible svelte-tetllc`,null,b,{"accent-purple":o()===`purple`}),C=R(x,1,`collapsible-text svelte-tetllc`,null,C,{scrollable:g(s)&&g(p)}),t(w,g(m))}),l(n,h),M()}m([`click`]);var Y;(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`})(Y||={});var Nt={[Y.QUOTATION_MARK]:Y.QUOTATION_MARK,[Y.REVERSE_SOLIDUS]:Y.REVERSE_SOLIDUS,[Y.SOLIDUS]:Y.SOLIDUS,[Y.LATIN_SMALL_LETTER_B]:Y.BACKSPACE,[Y.LATIN_SMALL_LETTER_F]:Y.FORM_FEED,[Y.LATIN_SMALL_LETTER_N]:Y.NEWLINE,[Y.LATIN_SMALL_LETTER_R]:Y.CARRIAGE_RETURN,[Y.LATIN_SMALL_LETTER_T]:Y.TAB},Pt=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(``)}},Ft=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}},It;(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`})(It||={});var X=It,Z;(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`})(Z||={});function Lt(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 Rt={stringBufferSize:0,numberBufferSize:0,separator:void 0,emitPartialTokens:!1},zt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}},Bt=class{constructor(e){this.state=Z.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({},Rt),e),this.emitPartialTokens=e.emitPartialTokens===!0,this.bufferedString=e.stringBufferSize&&e.stringBufferSize>4?new Ft(e.stringBufferSize):new Pt,this.bufferedNumber=e.numberBufferSize&&e.numberBufferSize>0?new Ft(e.numberBufferSize):new Pt,this.separator=e.separator,this.separatorBytes=e.separator?this.encoder.encode(e.separator):void 0}get isEnded(){return this.state===Z.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 Z.BOM_OR_START:if(e instanceof Uint8Array&&r===239){this.bom=[239,187,191],this.bomIndex+=1,this.state=Z.BOM;continue}if(e instanceof Uint16Array){if(r===254){this.bom=[254,255],this.bomIndex+=1,this.state=Z.BOM;continue}if(r===255){this.bom=[255,254],this.bomIndex+=1,this.state=Z.BOM;continue}}if(e instanceof Uint32Array){if(r===0){this.bom=[0,0,254,255],this.bomIndex+=1,this.state=Z.BOM;continue}if(r===255){this.bom=[255,254,0,0],this.bomIndex+=1,this.state=Z.BOM;continue}}case Z.START:if(this.offset+=1,this.separatorBytes&&r===this.separatorBytes[0]){if(this.separatorBytes.length===1){this.state=Z.START,this.onToken({token:X.SEPARATOR,value:this.separator,offset:this.offset+this.separatorBytes.length-1});continue}this.state=Z.SEPARATOR;continue}if(r===Y.SPACE||r===Y.NEWLINE||r===Y.CARRIAGE_RETURN||r===Y.TAB)continue;if(r===Y.LEFT_CURLY_BRACKET){this.onToken({token:X.LEFT_BRACE,value:`{`,offset:this.offset});continue}if(r===Y.RIGHT_CURLY_BRACKET){this.onToken({token:X.RIGHT_BRACE,value:`}`,offset:this.offset});continue}if(r===Y.LEFT_SQUARE_BRACKET){this.onToken({token:X.LEFT_BRACKET,value:`[`,offset:this.offset});continue}if(r===Y.RIGHT_SQUARE_BRACKET){this.onToken({token:X.RIGHT_BRACKET,value:`]`,offset:this.offset});continue}if(r===Y.COLON){this.onToken({token:X.COLON,value:`:`,offset:this.offset});continue}if(r===Y.COMMA){this.onToken({token:X.COMMA,value:`,`,offset:this.offset});continue}if(r===Y.LATIN_SMALL_LETTER_T){this.state=Z.TRUE1;continue}if(r===Y.LATIN_SMALL_LETTER_F){this.state=Z.FALSE1;continue}if(r===Y.LATIN_SMALL_LETTER_N){this.state=Z.NULL1;continue}if(r===Y.QUOTATION_MARK){this.bufferedString.reset(),this.escapedCharsByteLength=0,this.state=Z.STRING_DEFAULT;continue}if(r>=Y.DIGIT_ONE&&r<=Y.DIGIT_NINE){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_INITIAL_NON_ZERO;continue}if(r===Y.DIGIT_ZERO){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_INITIAL_ZERO;continue}if(r===Y.HYPHEN_MINUS){this.bufferedNumber.reset(),this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_INITIAL_MINUS;continue}break;case Z.STRING_DEFAULT:if(r===Y.QUOTATION_MARK){let e=this.bufferedString.toString();this.state=Z.START,this.onToken({token:X.STRING,value:e,offset:this.offset}),this.offset+=this.escapedCharsByteLength+this.bufferedString.byteLength+1;continue}if(r===Y.REVERSE_SOLIDUS){this.state=Z.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=Z.STRING_INCOMPLETE_CHAR;continue}if(r>=Y.SPACE){this.bufferedString.appendChar(r);continue}break;case Z.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=Z.STRING_DEFAULT;continue;case Z.STRING_AFTER_BACKSLASH:let i=Nt[r];if(i){this.bufferedString.appendChar(i),this.escapedCharsByteLength+=1,this.state=Z.STRING_DEFAULT;continue}if(r===Y.LATIN_SMALL_LETTER_U){this.unicode=``,this.state=Z.STRING_UNICODE_DIGIT_1;continue}break;case Z.STRING_UNICODE_DIGIT_1:case Z.STRING_UNICODE_DIGIT_2:case Z.STRING_UNICODE_DIGIT_3:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE||r>=Y.LATIN_CAPITAL_LETTER_A&&r<=Y.LATIN_CAPITAL_LETTER_F||r>=Y.LATIN_SMALL_LETTER_A&&r<=Y.LATIN_SMALL_LETTER_F){this.unicode+=String.fromCharCode(r),this.state+=1;continue}break;case Z.STRING_UNICODE_DIGIT_4:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE||r>=Y.LATIN_CAPITAL_LETTER_A&&r<=Y.LATIN_CAPITAL_LETTER_F||r>=Y.LATIN_SMALL_LETTER_A&&r<=Y.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=Z.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=Z.STRING_DEFAULT;continue}break;case Z.NUMBER_AFTER_INITIAL_MINUS:if(r===Y.DIGIT_ZERO){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_INITIAL_ZERO;continue}if(r>=Y.DIGIT_ONE&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_INITIAL_NON_ZERO;continue}break;case Z.NUMBER_AFTER_INITIAL_ZERO:if(r===Y.FULL_STOP){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_FULL_STOP;continue}if(r===Y.LATIN_SMALL_LETTER_E||r===Y.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_E;continue}--n,this.state=Z.START,this.emitNumber();continue;case Z.NUMBER_AFTER_INITIAL_NON_ZERO:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}if(r===Y.FULL_STOP){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_FULL_STOP;continue}if(r===Y.LATIN_SMALL_LETTER_E||r===Y.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_E;continue}--n,this.state=Z.START,this.emitNumber();continue;case Z.NUMBER_AFTER_FULL_STOP:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_DECIMAL;continue}break;case Z.NUMBER_AFTER_DECIMAL:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}if(r===Y.LATIN_SMALL_LETTER_E||r===Y.LATIN_CAPITAL_LETTER_E){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_E;continue}--n,this.state=Z.START,this.emitNumber();continue;case Z.NUMBER_AFTER_E:if(r===Y.PLUS_SIGN||r===Y.HYPHEN_MINUS){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_E_AND_SIGN;continue}case Z.NUMBER_AFTER_E_AND_SIGN:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r),this.state=Z.NUMBER_AFTER_E_AND_DIGIT;continue}break;case Z.NUMBER_AFTER_E_AND_DIGIT:if(r>=Y.DIGIT_ZERO&&r<=Y.DIGIT_NINE){this.bufferedNumber.appendChar(r);continue}--n,this.state=Z.START,this.emitNumber();continue;case Z.TRUE1:if(r===Y.LATIN_SMALL_LETTER_R){this.state=Z.TRUE2;continue}break;case Z.TRUE2:if(r===Y.LATIN_SMALL_LETTER_U){this.state=Z.TRUE3;continue}break;case Z.TRUE3:if(r===Y.LATIN_SMALL_LETTER_E){this.state=Z.START,this.onToken({token:X.TRUE,value:!0,offset:this.offset}),this.offset+=3;continue}break;case Z.FALSE1:if(r===Y.LATIN_SMALL_LETTER_A){this.state=Z.FALSE2;continue}break;case Z.FALSE2:if(r===Y.LATIN_SMALL_LETTER_L){this.state=Z.FALSE3;continue}break;case Z.FALSE3:if(r===Y.LATIN_SMALL_LETTER_S){this.state=Z.FALSE4;continue}break;case Z.FALSE4:if(r===Y.LATIN_SMALL_LETTER_E){this.state=Z.START,this.onToken({token:X.FALSE,value:!1,offset:this.offset}),this.offset+=4;continue}break;case Z.NULL1:if(r===Y.LATIN_SMALL_LETTER_U){this.state=Z.NULL2;continue}break;case Z.NULL2:if(r===Y.LATIN_SMALL_LETTER_L){this.state=Z.NULL3;continue}break;case Z.NULL3:if(r===Y.LATIN_SMALL_LETTER_L){this.state=Z.START,this.onToken({token:X.NULL,value:null,offset:this.offset}),this.offset+=3;continue}break;case Z.SEPARATOR:if(this.separatorIndex+=1,!this.separatorBytes||r!==this.separatorBytes[this.separatorIndex])break;this.separatorIndex===this.separatorBytes.length-1&&(this.state=Z.START,this.onToken({token:X.SEPARATOR,value:this.separator,offset:this.offset+this.separatorIndex}),this.separatorIndex=0);continue;case Z.BOM:if(r===this.bom[this.bomIndex]){if(this.bomIndex===this.bom.length-1){this.state=Z.START,this.bom=void 0,this.bomIndex=0;continue}this.bomIndex+=1;continue}break;case Z.ENDED:if(r===Y.SPACE||r===Y.NEWLINE||r===Y.CARRIAGE_RETURN||r===Y.TAB)continue}throw new zt(`Unexpected "${String.fromCharCode(r)}" at position "${n}" in state ${Lt(this.state)}`)}if(this.emitPartialTokens)switch(this.state){case Z.TRUE1:case Z.TRUE2:case Z.TRUE3:this.onToken({token:X.TRUE,value:!0,offset:this.offset,partial:!0});break;case Z.FALSE1:case Z.FALSE2:case Z.FALSE3:case Z.FALSE4:this.onToken({token:X.FALSE,value:!1,offset:this.offset,partial:!0});break;case Z.NULL1:case Z.NULL2:case Z.NULL3:this.onToken({token:X.NULL,value:null,offset:this.offset,partial:!0});break;case Z.STRING_DEFAULT:{let e=this.bufferedString.toString();this.onToken({token:X.STRING,value:e,offset:this.offset,partial:!0});break}case Z.NUMBER_AFTER_INITIAL_ZERO:case Z.NUMBER_AFTER_INITIAL_NON_ZERO:case Z.NUMBER_AFTER_DECIMAL:case Z.NUMBER_AFTER_E_AND_DIGIT:try{this.onToken({token:X.NUMBER,value:this.parseNumber(this.bufferedNumber.toString()),offset:this.offset,partial:!0})}catch{}}}catch(e){this.error(e)}}emitNumber(){this.onToken({token:X.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!==Z.ENDED&&(this.state=Z.ERROR),this.onError(e)}end(){switch(this.state){case Z.NUMBER_AFTER_INITIAL_ZERO:case Z.NUMBER_AFTER_INITIAL_NON_ZERO:case Z.NUMBER_AFTER_DECIMAL:case Z.NUMBER_AFTER_E_AND_DIGIT:this.state=Z.ENDED,this.emitNumber(),this.onEnd();break;case Z.BOM_OR_START:case Z.START:case Z.ERROR:case Z.SEPARATOR:this.state=Z.ENDED,this.onEnd();break;default:this.error(new zt(`Tokenizer ended in the middle of a token (state: ${Lt(this.state)}). Either not all the data was received or the data was invalid.`))}}onToken(e){throw new zt(`Can't emit tokens before the "onToken" callback has been set up.`)}onError(e){throw e}onEnd(){}},Q;(function(e){e[e.OBJECT=0]=`OBJECT`,e[e.ARRAY=1]=`ARRAY`})(Q||={});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 Vt(e){return[`VALUE`,`KEY`,`COLON`,`COMMA`,`ENDED`,`ERROR`,`SEPARATOR`][e]}var Ht={paths:void 0,keepStack:!0,separator:void 0,emitPartialValues:!1},Ut=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}},Wt=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({},Ht),e),e.paths&&(this.paths=e.paths.map(e=>{if(e===void 0||e===`$*`)return;if(!e.startsWith(`$`))throw new Ut(`Invalid selector "${e}". Should start with "$".`);let t=e.split(`.`).slice(1);if(t.includes(``))throw new Ut(`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===X.STRING||e===X.NUMBER||e===X.TRUE||e===X.FALSE||e===X.NULL){this.mode===Q.OBJECT?(this.value[this.key]=t,this.state=$.COMMA):this.mode===Q.ARRAY&&(this.value.push(t),this.state=$.COMMA),this.emit(t,this.shouldEmit());return}if(e===X.LEFT_BRACE){if(this.push(),this.mode===Q.OBJECT)this.value=this.value[this.key]={};else if(this.mode===Q.ARRAY){let e={};this.value.push(e),this.value=e}else this.value={};this.mode=Q.OBJECT,this.state=$.KEY,this.key=void 0,this.emitPartial();return}if(e===X.LEFT_BRACKET){if(this.push(),this.mode===Q.OBJECT)this.value=this.value[this.key]=[];else if(this.mode===Q.ARRAY){let e=[];this.value.push(e),this.value=e}else this.value=[];this.mode=Q.ARRAY,this.state=$.VALUE,this.key=0,this.emitPartial();return}if(this.mode===Q.ARRAY&&e===X.RIGHT_BRACKET&&this.value.length===0){this.pop();return}}if(this.state===$.KEY){if(e===X.STRING){this.key=t,this.state=$.COLON,this.emitPartial();return}if(e===X.RIGHT_BRACE&&Object.keys(this.value).length===0){this.pop();return}}if(this.state===$.COLON&&e===X.COLON){this.state=$.VALUE;return}if(this.state===$.COMMA){if(e===X.COMMA){if(this.mode===Q.ARRAY){this.state=$.VALUE,this.key+=1;return}if(this.mode===Q.OBJECT){this.state=$.KEY;return}}if(e===X.RIGHT_BRACE&&this.mode===Q.OBJECT||e===X.RIGHT_BRACKET&&this.mode===Q.ARRAY){this.pop();return}}if(this.state===$.SEPARATOR&&e===X.SEPARATOR&&t===this.separator){this.state=$.VALUE;return}if(e===X.SEPARATOR&&this.state!==$.SEPARATOR&&Array.from(t).map(e=>e.charCodeAt(0)).every(e=>e===Y.SPACE||e===Y.NEWLINE||e===Y.CARRIAGE_RETURN||e===Y.TAB))return;throw new Ut(`Unexpected ${X[e]} (${JSON.stringify(t)}) in state ${Vt(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: ${Vt(this.state)}). Either not all the data was received or the data was invalid.`)):(this.state=$.ENDED,this.onEnd())}onValue(e){throw new Ut(`Can't emit data before the "onValue" callback has been set up.`)}onError(e){throw e}onEnd(){}},Gt=class{constructor(e={}){this.tokenizer=new Bt(e),this.tokenParser=new Wt(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 Kt(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 qt(){let e=[],t=!1,n=!1,r=t=>{for(;e.length<=t;)e.push({oldText:``,newText:``});return e[t]},i=null;try{i=new Gt({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 Jt=f(`<div class="edit-diff-gap svelte-1i84oek"></div>`),Yt=f(`<span> </span> `,1),Xt=f(`<!> <pre class="edit-diff svelte-1i84oek"><code class="hljs language-diff svelte-1i84oek"></code></pre>`,1);function Zt(n,r){E(r,!0);var a=u();h(w(a),17,()=>r.entries,i,(n,r,a)=>{let o=P(()=>Kt(g(r)));var s=Xt(),c=w(s),u=e=>{l(e,Jt())};d(c,e=>{a>0&&e(u)});var f=F(c,2),p=e(f);h(p,21,()=>g(o),i,(n,r,i)=>{var a=Yt(),s=w(a),c=e(s,!0);z(s);var u=F(s,1,!0);v(()=>{R(s,1,`hljs-${g(r).kind}`,`svelte-1i84oek`),t(c,g(r).text),t(u,i<g(o).length-1?`
|
|
36
|
+
`:``)}),l(n,a)}),z(p),z(f),l(n,s)}),l(n,a),M()}function Qt(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`}]];H(e,N({name:`wrench`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function $t(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`}]];H(e,N({name:`circle-check`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function en(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`}]];H(e,N({name:`circle-x`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var tn=f(`<span class="tool-detail svelte-1j1om46"> </span>`),nn=f(`<span class="tool-status svelte-1j1om46">running…</span>`),rn=f(`<span class="tool-status svelte-1j1om46">completed</span>`),an=f(`<div class="tool-section svelte-1j1om46"><!></div>`),on=f(`<div class="tool-section svelte-1j1om46"><div class="tool-section-label svelte-1j1om46">Arguments</div> <!></div>`),sn=f(`<div class="tool-section svelte-1j1om46"><div class="tool-section-label svelte-1j1om46"> </div> <!></div>`),cn=f(`<div class="tool-content svelte-1j1om46"><!> <!></div>`),ln=f(`<div><button class="tool-header svelte-1j1om46"><!> <!> <span class="tool-name svelte-1j1om46"> </span> <!> <!></button> <!></div>`);function un(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=P(()=>r.content.toolName??`unknown`),p=P(()=>r.content.type===`tool_result`),m=P(()=>g(p)||s()!==void 0),h=P(()=>g(f)===`edit`),b=A(void 0),x=0,S=A(O([]));_(()=>{if(!g(h))return;if(!i()){g(b)&&(g(b).dispose(),T(b,void 0),x=0);return}let e=r.content.text??``;e&&(g(b)||(T(b,qt(),!0),x=0),e.length>x&&(g(b).write(e.slice(x)),x=e.length),T(S,g(b).entries.map(e=>({oldText:e.oldText,newText:e.newText})),!0))}),_(()=>{g(h)&&(i()||a()?T(u,!0):T(u,!1))});let C=P(()=>g(h)&&r.content.args?r.content.args.edits??[]:void 0),w=P(()=>g(h)?g(C)??g(S):[]);function D(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 k=P(()=>{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`?D(t.path,W.viewed?.folderPath??``):n===`bash`&&typeof t.command==`string`?t.command.replace(/[\n\r]+/g,` `).replace(/\s+/g,` `).trim():``});function j(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}let ee=P(()=>i()&&!r.content.args?r.content.text??``:j(r.content.args)),N=P(()=>g(p)?j(r.content.result):s()===void 0?o():j(s()));var te=ln();let I;var L=e(te),ne=e(L);{let e=P(()=>g(u)?`rotate-90`:``);Ne(ne,{get class(){return`shrink-0 transition-transform duration-150 ${g(e)??``}`},size:14})}var V=F(ne,2),re=e=>{he(e,{size:14,class:`shrink-0 animate-spin`})},ie=e=>{en(e,{size:14,class:`tool-icon-error shrink-0`})},ae=e=>{$t(e,{size:14,class:`shrink-0`})},oe=e=>{Qt(e,{size:14,class:`shrink-0`})};d(V,e=>{a()?e(re):g(m)&&c()?e(ie,1):g(m)?e(ae,2):e(oe,-1)});var se=F(V,2),H=e(se,!0);z(se);var ce=F(se,2),le=n=>{var r=tn(),i=e(r,!0);z(r),v(()=>t(i,g(k))),l(n,r)};d(ce,e=>{g(k)&&e(le)});var ue=F(ce,2),de=e=>{l(e,nn())},fe=e=>{l(e,rn())};d(ue,e=>{a()?e(de):g(m)&&e(fe,1)}),z(L);var pe=F(L,2),me=n=>{var r=cn(),o=e(r),s=t=>{var n=an();Zt(e(n),{get entries(){return g(w)}}),z(n),l(t,n)},c=t=>{var n=on(),r=F(e(n),2);{let e=P(()=>i()&&!g(m));Mt(r,{get text(){return g(ee)},get streaming(){return g(e)}})}z(n),l(t,n)};d(o,e=>{g(h)&&g(w).length>0?e(s):g(ee)&&e(c,1)});var u=F(o,2),f=n=>{var r=sn(),i=e(r),o=e(i,!0);z(i),Mt(F(i,2),{get text(){return g(N)},get streaming(){return a()}}),z(r),v(()=>t(o,a()?`Output (streaming)`:`Result`)),l(n,r)};d(u,e=>{g(N)&&e(f)}),z(r),l(n,r)};d(pe,e=>{g(u)&&e(me)}),z(te),v(()=>{I=R(te,1,`tool-block svelte-1j1om46`,null,I,{"tool-result":g(p),"tool-completed":g(m),"tool-error":c(),"in-progress":a()}),t(H,g(f))}),B(`click`,L,()=>T(u,!g(u))),l(n,te),M()}m([`click`]);function dn(e){let t=e;return t=t.replace(/^```(\w*)\n([\s\S]*?)^```/gm,(e,t,n)=>{let r=n?n.replace(/\n$/,``).split(`
|
|
37
|
+
`):[],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(`
|
|
38
|
+
`).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(`
|
|
39
|
+
`)+`
|
|
40
|
+
`}),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,`
|
|
41
|
+
|
|
42
|
+
`),t=t.trim(),/^\s*$/.test(t)?``:t}var fn=O({playingKey:null}),pn=0;function mn(e,t){speechSynthesis.cancel(),pn++,fn.playingKey=null;let n=e.split(`
|
|
43
|
+
|
|
44
|
+
`).map(e=>e.trim()).filter(e=>e.length>0);if(n.length===0)return;fn.playingKey=t;let r=pn,i=n.length;for(let e=0;e<i;e++){let t=new SpeechSynthesisUtterance(n[e]);t.onend=()=>{r===pn&&e===i-1&&(fn.playingKey=null)},t.onerror=()=>{r===pn&&hn()},speechSynthesis.speak(t)}}function hn(){speechSynthesis.cancel(),pn++,fn.playingKey=null}function gn(e,t){if(fn.playingKey===e)hn();else{let n=dn(t);n&&mn(n,e)}}function _n(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`}]];H(e,N({name:`volume-2`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(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`}]];H(e,N({name:`volume-off`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var yn=f(`<button class="tool-btn svelte-4obvr9"><!></button>`);function bn(t,n){E(n,!0);let r=P(()=>fn.playingKey===n.messageKey);var i=yn(),a=e(i),o=e=>{vn(e,{size:14})},s=e=>{_n(e,{size:14})};d(a,e=>{g(r)?e(o):e(s,-1)}),z(i),v(()=>j(i,`title`,g(r)?`Stop audio`:`Read aloud`)),B(`click`,i,()=>gn(n.messageKey,n.textContent)),l(t,i),M()}m([`click`]);function xn(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`}]];H(e,N({name:`user`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(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=[[`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`}]];H(e,N({name:`bot`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(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:`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`}]];H(e,N({name:`git-fork`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var wn=f(`<div class="tool-menu svelte-1uqoiy7"><button class="fork-btn svelte-1uqoiy7" title="Fork from this message"><!></button></div>`),Tn=f(`<div class="user-icon-col svelte-1uqoiy7"><button class="message-icon user-icon svelte-1uqoiy7"><!></button> <!></div>`),En=f(`<div class="message-icon user-icon svelte-1uqoiy7"><!></div>`),Dn=f(`<span class="skill-line-count svelte-1uqoiy7"> </span>`),On=f(`<button class="skill-toggle svelte-1uqoiy7">Show more…</button>`),kn=f(`<button class="skill-toggle svelte-1uqoiy7">Show less</button>`),An=f(`<div class="user-body skill-after svelte-1uqoiy7"><div class="user-text svelte-1uqoiy7"> </div></div>`),jn=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),Mn=f(`<div class="user-body svelte-1uqoiy7"><div class="user-text svelte-1uqoiy7"> </div></div>`),Nn=f(`<div class="message user-message svelte-1uqoiy7"><!> <div class="message-body svelte-1uqoiy7"><!></div></div>`),Pn=f(`<div class="tool-menu svelte-1uqoiy7"><!></div>`),Fn=f(`<button class="message-icon assistant-icon svelte-1uqoiy7"><!></button> <!>`,1),In=f(`<div class="message-icon assistant-icon svelte-1uqoiy7"><!></div>`),Ln=f(`<div class="message assistant-message svelte-1uqoiy7"><div class="assistant-icon-col svelte-1uqoiy7"><!></div> <div class="message-body svelte-1uqoiy7"></div></div>`),Rn=f(`<div class="custom-header svelte-1uqoiy7"><span class="custom-label svelte-1uqoiy7">[custom]</span></div> <div class="custom-content svelte-1uqoiy7"><!></div>`,1),zn=f(`<span class="custom-line-count svelte-1uqoiy7"> </span>`),Bn=f(`<button class="custom-toggle svelte-1uqoiy7">Show more…</button>`),Vn=f(`<button class="custom-toggle svelte-1uqoiy7">Show less</button>`),Hn=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),Un=f(`<div class="message custom-message svelte-1uqoiy7"><div class="custom-body svelte-1uqoiy7"><!></div></div>`),Wn=f(`<div class="message system-message svelte-1uqoiy7"><div class="message-body svelte-1uqoiy7"><div class="system-text svelte-1uqoiy7"> </div></div></div>`);function Gn(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=P(()=>r.message.role===`assistant`&&!a()&&r.message.content.some(e=>e.type===`text`&&e.text)),_=P(()=>r.message.content.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
|
|
45
|
+
|
|
46
|
+
`));function b(e){return e.content.filter(e=>e.type===`text`&&e.text).map(e=>e.text).join(`
|
|
47
|
+
`)}function x(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 S=P(()=>`entryId`in r.message&&typeof r.message.entryId==`string`?r.message.entryId:void 0),C=P(()=>b(r.message)),D=P(()=>r.message.role===`user`?x(g(C)):null),O=P(()=>g(D)?g(D).body.split(`
|
|
48
|
+
`):[]),k=P(()=>g(O).length>3),j=P(()=>b(r.message)),ee=P(()=>g(j).split(`
|
|
49
|
+
`)),N=P(()=>g(ee).length>10);var te=u(),I=w(te),L=e=>{},ne=n=>{var i=Nn(),a=e(i),o=t=>{var n=Tn(),i=e(n);xn(e(i),{size:16}),z(i);var a=F(i,2),o=t=>{var n=wn(),i=e(n);Cn(e(i),{size:16}),z(i),z(n),B(`click`,i,()=>{r.onfork?.(g(S)),T(s,!1)}),l(t,n)};d(a,e=>{g(s)&&e(o)}),z(n),B(`click`,i,()=>T(s,!g(s))),l(t,n)},c=t=>{var n=En();xn(e(n),{size:16}),z(n),l(t,n)};d(a,e=>{g(S)?e(o):e(c,-1)});var p=F(a,2),m=e(p),h=n=>{var r=jn(),i=w(r),a=e(i),o=e(a),s=e=>{var t=u(),n=w(t),r=e=>{De(e,{size:14})},i=e=>{Ne(e,{size:14})};d(n,e=>{g(f)?e(r):e(i,-1)}),l(e,t)};d(o,e=>{g(k)&&e(s)});var c=F(o,2),p=e(c);z(c);var m=F(c,2),h=n=>{var r=Dn(),i=e(r);z(r),v(()=>t(i,`${g(O).length??``} lines`)),l(n,r)};d(m,e=>{g(k)&&e(h)}),z(a);var _=F(a,2),y=e(_);let b;St(e(y),{get text(){return g(D).body}}),z(y);var x=F(y,2),S=e=>{var t=On();B(`click`,t,()=>T(f,!0)),l(e,t)},C=e=>{var t=kn();B(`click`,t,()=>T(f,!1)),l(e,t)};d(x,e=>{g(k)&&!g(f)?e(S):g(k)&&g(f)&&e(C,1)}),z(_),z(i);var E=F(i,2),A=n=>{var r=An(),i=e(r),a=e(i,!0);z(i),z(r),v(()=>t(a,g(D).after)),l(n,r)};d(E,e=>{g(D).after&&e(A)}),v(()=>{t(p,`[skill: ${g(D).name??``}]`),b=R(y,1,`skill-text-container svelte-1uqoiy7`,null,b,{"skill-text-collapsed":g(k)&&!g(f),"skill-text-expanded":g(k)&&g(f)})}),B(`click`,a,()=>T(f,!g(f))),l(n,r)},_=n=>{var r=Mn(),i=e(r),a=e(i,!0);z(i),z(r),v(()=>t(a,g(C))),l(n,r)};d(m,e=>{g(D)?e(h):e(_,-1)}),z(p),z(i),l(n,i)},V=t=>{let n=P(()=>W.viewed?.toolExecutions??{});var a=Ln(),s=e(a),c=e(s),f=t=>{var n=Fn(),r=w(n);Sn(e(r),{size:16}),z(r);var i=F(r,2),a=t=>{var n=Pn();bn(e(n),{get messageKey(){return o()},get textContent(){return g(_)}}),z(n),l(t,n)};d(i,e=>{g(p)&&e(a)}),B(`click`,r,()=>T(p,!g(p))),l(t,n)},v=t=>{var n=In();Sn(e(n),{size:16}),z(n),l(t,n)};d(c,e=>{g(m)?e(f):e(v,-1)}),z(s);var y=F(s,2);h(y,21,()=>r.message.content,i,(e,t)=>{let r=P(()=>g(t).streaming??!1);var i=u(),a=w(i),o=e=>{{let n=P(()=>g(t).text??``);St(e,{get text(){return g(n)},get streaming(){return g(r)}})}},s=e=>{{let n=P(()=>g(t).text??``);kt(e,{get text(){return g(n)},get streaming(){return g(r)}})}},c=e=>{let i=P(()=>g(t).toolCallId?g(n)[g(t).toolCallId]:void 0);{let n=P(()=>g(i)?.status===`running`),a=P(()=>g(i)?.partialResult??``),o=P(()=>g(i)?.status===`completed`?g(i).result:void 0),s=P(()=>g(i)?.isError);un(e,{get content(){return g(t)},get streaming(){return g(r)},get inProgress(){return g(n)},get partialResult(){return g(a)},get result(){return g(o)},get isError(){return g(s)}})}},f=e=>{un(e,{get content(){return g(t)}})};d(a,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,i)}),z(y),z(a),l(t,a)},re=n=>{var i=Un(),o=e(i),s=e(o),f=t=>{var n=Rn(),r=F(w(n),2);Mt(e(r),{get text(){return g(j)},get streaming(){return a()},accent:`purple`}),z(r),l(t,n)},p=n=>{var i=Hn(),a=w(i),o=e(a),s=e=>{var t=u(),n=w(t),r=e=>{De(e,{size:14})},i=e=>{Ne(e,{size:14})};d(n,e=>{g(c)?e(r):e(i,-1)}),l(e,t)};d(o,e=>{g(N)&&e(s)});var f=F(o,2),p=e(f);z(f);var m=F(f,2),h=n=>{var r=zn(),i=e(r);z(r),v(()=>t(i,`${g(ee).length??``} lines`)),l(n,r)};d(m,e=>{g(N)&&e(h)}),z(a);var _=F(a,2),y=e(_);let b;St(e(y),{get text(){return g(j)}}),z(y);var x=F(y,2),S=e=>{var t=Bn();B(`click`,t,()=>T(c,!0)),l(e,t)},C=e=>{var t=Vn();B(`click`,t,()=>T(c,!1)),l(e,t)};d(x,e=>{g(N)&&!g(c)?e(S):g(N)&&g(c)&&e(C,1)}),z(_),v(()=>{t(p,`[${(`customType`in r.message?r.message.customType??`custom`:`custom`)??``}]`),b=R(y,1,`custom-text-container svelte-1uqoiy7`,null,b,{"custom-text-collapsed":g(N)&&!g(c),"custom-text-expanded":g(N)&&g(c)})}),B(`click`,a,()=>T(c,!g(c))),l(n,i)};d(s,e=>{a()?e(f):e(p,-1)}),z(o),z(i),l(n,i)},ie=n=>{var i=Wn(),a=e(i),o=e(a),s=e(o,!0);z(o),z(a),z(i),v(e=>t(s,e),[()=>b(r.message)]),l(n,i)};d(I,e=>{r.message.role===`toolResult`?e(L):r.message.role===`user`?e(ne,1):r.message.role===`assistant`?e(V,2):r.message.role===`custom`?e(re,3):e(ie,-1)}),l(n,te),M()}m([`click`]);var Kn=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 qn(e){l(e,Kn())}function Jn(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`}]];H(e,N({name:`arrow-down`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(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=[[`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`}]];H(e,N({name:`octagon-x`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Xn=f(`<div class="empty-state svelte-qha2j"><p>No messages yet</p></div>`),Zn=f(`<div class="streaming-indicator-row svelte-qha2j"><!></div>`),Qn=f(`<div class="last-activity svelte-qha2j"> </div>`),$n=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>`),er=f(`<!> <!>`,1),tr=f(`<!> <!> <!> <!>`,1),nr=f(`<!> <!>`,1),rr=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 class="message-list-inner svelte-qha2j"><!> <!> <!> <!></div></div> <!> <!> <!></div>`);function ar(i,o){E(o,!0);let s=A(!1),f=A(null);function p(){return new Promise(e=>{T(f,e,!0),T(s,!0)})}function m(e){g(f)?.(e),T(f,null),T(s,!1)}async function y(e){let t=W.viewed;if(!t?.sessionId)return;let n;try{n=await U.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=W.viewedSessionId;if(!i)return;let a=W.viewed?.draftText??``,o=r.selectedText;if(Xe(a,o)){let e=Ze(a,o,await p());e!==null&&Me(i,e)}else o&&Me(i,o)}async function b(){let e=W.viewed;if(e?.sessionId){try{await U.send({type:`abort`,sessionId:e.sessionId})}catch(e){console.error(`Failed to send abort:`,e)}if(e.pendingSteeringMessages.length>0){try{let t=await U.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&&Me(e.sessionId,i.join(`
|
|
50
|
+
`))}}catch(e){console.error(`Failed to dequeue steering messages after abort:`,e)}e.pendingSteeringMessages=[]}}}let x=A(void 0),C=A(!1),k=A(!0);function j(){if(!g(x))return;let{scrollTop:e,scrollHeight:t,clientHeight:n}=g(x),r=t-e-n<80;T(C,!r),T(k,r)}let ee=P(()=>{let e=W.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}),N=P(()=>{let e=W.viewed;return e?.isStreaming?!e.streamingMessage||e.streamingMessage.content.length===0:!1});_(()=>{g(ee).length;let e=W.viewed?.streamingMessage;e&&e.content.length>0&&(e.content.length,e.content[e.content.length-1].text),g(k)&&g(x)&&a().then(()=>{g(x)&&g(k)&&(g(x).scrollTop=g(x).scrollHeight)})});function te(){g(x)&&(T(k,!0),g(x).scrollTop=g(x).scrollHeight)}let L=A(O(Date.now())),R=setInterval(()=>{T(L,Date.now(),!0)},15e3);D(()=>clearInterval(R));let ne=P(()=>{g(L);let e=W.viewed;return!e?.lastBotActivityTimestamp||e.isStreaming?null:ce(e.lastBotActivityTimestamp)});var V=ir(),oe=e(V),se=e(oe),H=e(se),ue=e=>{l(e,Xn())};d(H,e=>{g(ee).length===0&&!W.viewed?.isStreaming&&e(ue)});var de=F(H,2);h(de,17,()=>g(ee),e=>e.key,(e,t)=>{Gn(e,{get message(){return g(t).message},get streaming(){return g(t).streaming},get messageKey(){return g(t).key},onfork:y})});var me=F(de,2),he=t=>{var n=Zn();qn(e(n),{}),z(n),l(t,n)};d(me,e=>{g(N)&&e(he)});var ge=F(me,2),_e=n=>{var r=Qn(),i=e(r,!0);z(r),v(()=>t(i,g(ne))),l(n,r)};d(ge,e=>{g(ne)&&e(_e)}),z(se),z(oe),S(oe,e=>T(x,e),()=>g(x));var ve=F(oe,2),ye=t=>{var n=$n();Yn(e(n),{class:`size-5`}),z(n),B(`pointerdown`,n,e=>e.preventDefault()),B(`click`,n,b),l(t,n)};d(ve,e=>{W.viewed?.isStreaming&&e(ye)});var be=F(ve,2);r(be,()=>we,(e,t)=>{t(e,{get open(){return g(s)},onOpenChange:e=>{e||m(`ignore`)},children:(e,t)=>{var n=u();r(w(n),()=>re,(e,t)=>{t(e,{showCloseButton:!1,children:(e,t)=>{var n=nr(),i=w(n);r(i,()=>pe,(e,t)=>{t(e,{children:(e,t)=>{var n=er(),i=w(n);r(i,()=>le,(e,t)=>{t(e,{children:(e,t)=>{I(),l(e,c(`Draft conflict`))},$$slots:{default:!0}})}),r(F(i,2),()=>fe,(e,t)=>{t(e,{children:(e,t)=>{I(),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(F(i,2),()=>ae,(e,t)=>{t(e,{children:(e,t)=>{var n=tr(),r=w(n);ie(r,{variant:`outline`,onclick:()=>m(`ignore`),children:(e,t)=>{I(),l(e,c(`Ignore`))},$$slots:{default:!0}});var i=F(r,2);ie(i,{variant:`outline`,onclick:()=>m(`prepend`),children:(e,t)=>{I(),l(e,c(`Prepend`))},$$slots:{default:!0}});var a=F(i,2);ie(a,{variant:`outline`,onclick:()=>m(`append`),children:(e,t)=>{I(),l(e,c(`Append`))},$$slots:{default:!0}}),ie(F(a,2),{onclick:()=>m(`replace`),children:(e,t)=>{I(),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 xe=F(be,2),Se=t=>{var n=rr();Jn(e(n),{size:18}),z(n),B(`click`,n,te),l(t,n)};d(xe,e=>{g(C)&&e(Se)}),z(V),n(`scroll`,oe,j),l(i,V),M()}m([`pointerdown`,`click`]);var or=f(`<div class="panel-description svelte-j9tcnn"> </div>`),sr=f(`<span class="option-desc svelte-j9tcnn"> </span>`),cr=f(`<button><span class="option-number svelte-j9tcnn"> </span> <span class="option-body svelte-j9tcnn"><span class="option-label svelte-j9tcnn"> </span> <!></span></button>`),lr=f(`<div class="inline-select-panel svelte-j9tcnn" tabindex="0" role="listbox"><div class="panel-header svelte-j9tcnn"><span class="panel-title svelte-j9tcnn"> </span> <button class="panel-cancel svelte-j9tcnn">Esc to cancel</button></div> <!> <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></div>`),ur=f(`<div class="panel-description svelte-j9tcnn"> </div>`),dr=f(`<div class="inline-select-panel svelte-j9tcnn" tabindex="0" role="dialog"><div class="panel-header svelte-j9tcnn"><span class="panel-title svelte-j9tcnn"> </span> <button class="panel-cancel svelte-j9tcnn">Esc to cancel</button></div> <!> <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></div>`);function fr(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=Te(),s=A(-1),f=A(void 0),p=P(()=>{let e=W.viewedSessionId;return o.all.find(t=>Oe.has(t.method)&&t.sessionId===e)??null});_(()=>{g(p)&&T(s,-1)}),_(()=>{g(p)&&g(f)&&g(f).focus()});function m(e){g(p)&&o.sendResponse(g(p).requestId,g(p).sessionId,e)}function y(e){m({value:e})}function b(e){m({confirmed:e})}function x(){m({cancelled:!0})}function C(e,t){if(g(p)?.method===`select`){if(e.key>=`1`&&e.key<=`9`){let n=parseInt(e.key)-1;if(n<t.length){e.preventDefault(),y(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(),y(t[g(s)].value);return}}if(g(p)?.method===`confirm`){if(e.key===`y`||e.key===`Y`){e.preventDefault(),b(!0);return}if(e.key===`n`||e.key===`N`){e.preventDefault(),b(!1);return}}e.key===`Escape`&&(e.preventDefault(),x())}var D=u(),O=w(D),k=r=>{var i=u(),o=w(i),m=r=>{let i=P(()=>g(p).options??[]),o=P(()=>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=lr(),u=e(c),m=e(u),_=e(m,!0);z(m);var b=F(m,2);z(u);var w=F(u,2),E=n=>{var r=or(),i=e(r,!0);z(r),v(()=>t(i,g(p).message)),l(n,r)};d(w,e=>{g(p).message&&e(E)});var D=F(w,2);h(D,23,()=>g(o),e=>e.value,(r,i,a)=>{let o=P(()=>g(i).parsed);var c=cr();let u;var f=e(c),p=e(f,!0);z(f);var m=F(f,2),h=e(m),_=e(h,!0);z(h);var b=F(h,2),x=n=>{var r=sr(),i=e(r,!0);z(r),v(()=>t(i,g(o).description)),l(n,r)};d(b,e=>{g(o).description&&e(x)}),z(m),z(c),v(()=>{u=R(c,1,`select-option svelte-j9tcnn`,null,u,{highlighted:g(a)===g(s)}),t(p,g(a)+1),t(_,g(o).label)}),B(`click`,c,()=>y(g(i).value)),n(`mouseenter`,c,()=>T(s,g(a),!0)),l(r,c)}),z(D);var O=F(D,2),k=e(O),A=F(e(k),2),j=e(A,!0);z(A),I(),z(k),I(12),z(O),z(c),S(c,e=>T(f,e),()=>g(f)),v(()=>{t(_,g(p).title??`Select`),t(j,g(o).length)}),B(`keydown`,c,e=>C(e,g(o))),B(`click`,b,x),l(r,c)},_=n=>{var r=dr(),i=e(r),a=e(i),o=e(a,!0);z(a);var s=F(a,2);z(i);var u=F(i,2),m=n=>{var r=ur(),i=e(r,!0);z(r),v(()=>t(i,g(p).message)),l(n,r)};d(u,e=>{g(p).message&&e(m)});var h=F(u,2),_=e(h);ie(_,{variant:`outline`,onclick:()=>b(!1),children:(e,t)=>{I(),l(e,c(`No`))},$$slots:{default:!0}}),ie(F(_,2),{onclick:()=>b(!0),children:(e,t)=>{I(),l(e,c(`Yes`))},$$slots:{default:!0}}),z(h),I(2),z(r),S(r,e=>T(f,e),()=>g(f)),v(()=>t(o,g(p).title??`Confirm`)),B(`keydown`,r,e=>C(e,[])),B(`click`,s,x),l(n,r)};d(o,e=>{g(p).method===`select`?e(m):g(p).method===`confirm`&&e(_,1)}),l(r,i)};d(O,e=>{g(p)&&e(k)}),l(r,D),M()}m([`keydown`,`click`]);var pr=f(`<p class="text-muted-foreground truncate text-left text-xs"> </p>`),mr=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 hr(n,r){E(r,!0);let a=A(!1),o=P(()=>W.viewed?.pendingSteeringMessages??[]);async function s(){let e=W.viewed;if(!(!e||g(a))){T(a,!0);try{let t=await U.send({type:`dequeue_steering`,sessionId:e.sessionId});if(t.success&&t.data){let{steering:n}=t.data;n.length>0&&Me(e.sessionId,n.join(`
|
|
51
|
+
`)),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=mr(),c=e(r),u=e(c);ne(u,{class:`text-muted-foreground mt-0.5 size-3.5 shrink-0`});var d=F(u,2);h(d,21,()=>g(o),i,(n,r)=>{var i=pr(),a=e(i,!0);z(i),v(()=>t(a,g(r))),l(n,i)}),z(d),I(2),z(c),z(r),v(()=>r.disabled=g(a)),B(`click`,r,s),l(n,r)};d(f,e=>{g(o).length>0&&e(p)}),l(n,c),M()}m([`click`]);function gr(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 _r(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=gr(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 vr=f(`<span class="text-muted-foreground truncate text-xs"> </span>`),yr=f(`<button><span class="shrink-0 font-medium"> </span> <!></button>`),br=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 xr(n,r){E(r,!0);let i=P(()=>r.mode===`command`?_r(r.items,r.query,e=>e.name).slice(0,10):[]),a=A(O([])),o,s=0;_(()=>{if(r.mode!==`args`||!r.visible)return;let e=r.query,t=r.commandName,n=r.sessionId;return clearTimeout(o),o=setTimeout(async()=>{let r=++s;try{let i=await U.send({type:`complete_args`,sessionId:n,commandName:t,prefix:e});if(r!==s)return;if(i.success&&i.data){let e=i.data.items;T(a,e??[],!0)}else T(a,[],!0)}catch{if(r!==s)return;T(a,[],!0)}},200),()=>clearTimeout(o)});let c=P(()=>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=br();h(r,23,()=>g(c),(e,t)=>e.name+`-`+t,(n,r,i)=>{var a=yr(),o=e(a),s=e(o,!0);z(o);var c=F(o,2),u=n=>{var i=vr(),a=e(i,!0);z(i),v(()=>t(a,g(r).description)),l(n,i)};d(c,e=>{g(r).description&&e(u)}),z(a),v(()=>{R(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)}),B(`pointerdown`,a,e=>e.preventDefault()),B(`click`,a,()=>{T(f,g(i),!0),b()}),l(n,a)}),z(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 Sr(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`}]];H(e,N({name:`send`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Cr(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`}]];H(e,N({name:`message-square`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var wr=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>`),Tr=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>`),Er=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>`),Dr=f(`<div class="mb-1 flex flex-wrap gap-1.5"></div>`),Or=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 kr(t,r){E(r,!0);let o=A(``),c=A(void 0),u=A(void 0),f=A(O([])),m=A(!1),y=P(()=>W.viewedSessionId===null),b=P(()=>W.viewedSessionId?.startsWith(`pending-`)??!1),x=P(()=>!g(y)&&!g(b)&&U.ready),C=P(()=>g(o).trim().length>0||g(f).length>0),w=A(!1),D=A(`command`),k=A(null),ee=P(()=>We.getCommands(W.viewedSessionId??``)),N=P(()=>{if(!g(w))return``;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)});_(()=>{W.viewedSessionId,T(o,s(()=>W.viewed?.draftText??``),!0),T(f,[],!0),a().then(()=>V())});let L=0;_(()=>{let{sessionId:e,text:t,seq:n}=_e;n!==L&&(L=n,e===W.viewedSessionId&&(T(o,t,!0),a().then(()=>V())))});let ne=0;_(()=>{let{images:e,seq:t}=ve;t!==ne&&(ne=t,e.length>0&&T(f,[...g(f),...e],!0))});function V(){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 re(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 ie(e){T(f,g(f).filter((t,n)=>n!==e),!0)}function ae(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&&(re(n),e.clipboardData?.types.includes(`text/plain`)||e.preventDefault())}function oe(e){if(e.preventDefault(),T(m,!1),!g(x))return;let t=e.dataTransfer?.files;t&&re(Array.from(t))}function se(e){e.preventDefault(),g(x)&&T(m,!0)}function H(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(o).startsWith(`/`)||!g(c)){T(w,!1),T(k,null);return}let e=g(c).selectionStart,t=g(o).slice(1),n=t.indexOf(` `);e<=(n===-1?t.length:n)+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)),W.viewed&&(W.viewed.draftText=g(o)),a().then(()=>{g(c).selectionStart=g(c).selectionEnd=1}))}W.viewed&&(W.viewed.draftText=g(o)),ce(),V()}async function ue(){let e=g(o).trim();if(!g(x))return;let t=!1;if(W.viewed?.isStreaming){if(!e)return;W.viewed.pendingSteeringMessages.push(e);try{await U.send({type:`steer`,sessionId:W.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 U.send({type:`prompt`,sessionId:W.viewed.sessionId,message:e,...g(f).length>0?{images:g(f)}:{}});t=!0;let r=n.data;r?.tree?Ae.openDialog(W.viewed.sessionId,r.tree,r.currentLeafId??null):W.addOptimisticUserMessage(W.viewed.sessionId,e)}catch(e){console.error(`Failed to send prompt:`,e)}}t&&(T(o,``),T(w,!1),T(k,null),T(f,[],!0),W.viewed&&(W.viewed.draftText=``),g(c)&&(g(c).style.height=`auto`))}async function de(){let e=W.viewed;if(e?.sessionId){try{await U.send({type:`abort`,sessionId:e.sessionId})}catch(e){console.error(`Failed to send abort:`,e)}if(e.pendingSteeringMessages.length>0){try{let t=await U.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&&Me(e.sessionId,i.join(`
|
|
52
|
+
`))}}catch(e){console.error(`Failed to dequeue steering messages after abort:`,e)}e.pendingSteeringMessages=[]}}}function fe(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(ee).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{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)})}W.viewed&&(W.viewed.draftText=g(o)),V()}function pe(){T(w,!1),T(k,null)}function me(){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;W.viewed&&(W.viewed.draftText=g(o)),le(),V(),g(c).focus(),a().then(()=>{g(c).selectionStart=g(c).selectionEnd=i})}function he(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`&&W.viewed?.isStreaming){e.preventDefault(),de();return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),ue())}var ge=Or(),ye=e(ge),be=e(ye),xe=t=>{var n=wr();Yn(e(n),{class:`size-4`}),I(2),z(n),B(`pointerdown`,n,e=>e.preventDefault()),B(`click`,n,de),l(t,n)};d(be,e=>{W.viewed?.isStreaming&&e(xe)});var Se=F(be,2),Ce=e=>{var t=Tr();B(`pointerdown`,t,e=>e.preventDefault()),B(`click`,t,me),l(e,t)},we=P(()=>!g(y)&&!g(o).startsWith(`/`));d(Se,e=>{g(we)&&e(Ce)});var Te=F(Se,2),Ee=e(Te);{let e=P(()=>W.viewedSessionId??``),t=P(()=>g(k)?.name??``);S(xr(Ee,{get items(){return g(ee)},get query(){return g(N)},get visible(){return g(w)},get mode(){return g(D)},get sessionId(){return g(e)},get commandName(){return g(t)},onselect:fe,ondismiss:pe}),e=>T(u,e,!0),()=>g(u))}var De=F(Ee,2),Oe=t=>{var n=Dr();h(n,21,()=>g(f),i,(t,n,r)=>{var i=Er(),a=e(i),o=F(a,2);Pe(e(o),{class:`size-3`}),z(o),z(i),v(()=>j(a,`src`,g(n))),B(`click`,o,()=>ie(r)),l(t,i)}),z(n),l(t,n)};d(De,e=>{g(f).length>0&&e(Oe)});var ke=F(De,2);p(ke),j(ke,`rows`,1),S(ke,e=>T(c,e),()=>g(c));var je=F(ke,2),Ne=e(je),Fe=e=>{Cr(e,{class:`size-5`})},Ie=e=>{Sr(e,{class:`size-5`})};d(Ne,e=>{W.viewed?.isStreaming?e(Fe):e(Ie,-1)}),z(je),z(Te),z(ye),z(ge),v((e,t)=>{ke.disabled=g(y)||g(b),j(ke,`placeholder`,g(y)?`Open a session to start…`:g(b)?`Starting session…`:W.viewed?.isStreaming?`Steer the conversation…`:`Send a message…`),R(ke,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
|
|
53
|
+
${g(m)?`ring-ring ring-2`:``}`),R(je,1,`absolute right-1.5 bottom-1.5 flex items-center justify-center rounded-lg p-1.5 text-sm font-medium transition-colors
|
|
54
|
+
${e??``}`),je.disabled=t,j(je,`title`,W.viewed?.isStreaming?`Steer`:`Send`)},[()=>!g(x)||(W.viewed?.isStreaming?!g(o).trim():!g(C))?`text-muted-foreground cursor-not-allowed opacity-50`:W.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)||(W.viewed?.isStreaming?!g(o).trim():!g(C))]),n(`dragover`,Te,se),n(`dragleave`,Te,H),n(`drop`,Te,oe),B(`input`,ke,le),B(`keydown`,ke,he),B(`click`,ke,ce),n(`paste`,ke,ae),te(ke,()=>g(o),e=>T(o,e)),B(`pointerdown`,je,e=>e.preventDefault()),B(`click`,je,ue),l(t,ge),M()}m([`pointerdown`,`click`,`input`,`keydown`]);function Ar(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=P(()=>ue(`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,()=>Ye,(t,r)=>{r(t,N({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 jr(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 Mr(e){return e?`flex-1 md:hidden`:`flex-1`}function Nr(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`}]];H(e,N({name:`bell`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}function Pr(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`}]];H(e,N({name:`git-branch`},()=>n,{get iconNode(){return r},children:(e,n)=>{var r=u();L(w(r),()=>t.children??x),l(e,r)},$$slots:{default:!0}})),M()}var Fr=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>`),Ir=f(`<!> <div class="hidden min-w-0 flex-1 md:flex"><!></div>`,1),Lr=f(`<span title="Context window usage"> </span>`),Rr=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),zr=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),Br=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),Vr=f(`<span></span>`),Hr=f(`<button type="button" class="text-muted-foreground hover:text-foreground min-w-0 flex-1 truncate text-left transition-colors select-none"> </button>`),Ur=f(`<span class="text-muted-foreground flex shrink-0 items-center gap-1" title="Git branch"><!> <span class="max-w-[6rem] truncate"> </span></span>`),Wr=f(`<span title="Context window usage"> </span>`),Gr=f(`<div class="border-border/50 flex h-7 items-center gap-2 border-t px-2 md:hidden"><!> <!> <!></div>`),Kr=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 qr(n,r){E(r,!0);let i=P(()=>W.viewed?.isRestoring?jr(W.viewed.restoreMode):null),a=P(()=>g(i)??U.phaseLabel),o=P(()=>U.phase===`ready`?`bg-emerald-500`:U.phase===`syncing`?`bg-blue-500`:U.phase===`backoff`||U.phase===`connecting`?`bg-amber-500`:`bg-red-500`),s=P(()=>W.viewed?.contextUsage?.percent),c=P(()=>je(W.viewed)),u=P(()=>Ee(g(s))===`critical`?`text-red-400`:Ee(g(s))===`warning`?`text-amber-400`:`text-muted-foreground`),f=P(()=>ke(W.viewed));var p=Kr(),m=e(p),h=e(m);ge(h,{});var _=F(h,2);Ar(_,{orientation:`vertical`,class:`mx-0.5 h-4`});var y=F(_,2);Se(y,{});var x=F(y,2),S=F(x,2),C=n=>{var r=Ir(),i=w(r);Ar(i,{orientation:`vertical`,class:`mx-0.5 hidden h-4 md:block`});var a=F(i,2),o=e(a);{let n=(n,r)=>{let i=()=>r?.().openRenameDialog;var a=Fr(),o=e(a,!0);z(a),v(()=>{j(a,`title`,`Rename session: ${g(f)}`),t(o,g(f))}),B(`click`,a,function(...e){i()?.apply(this,e)}),l(n,a)},r=P(()=>W.viewed?.sessionId),i=P(()=>W.viewed?.folderPath),a=P(()=>W.viewed?.sessionName);Fe(o,{get sessionId(){return g(r)},get folderPath(){return g(i)},get sessionName(){return g(a)},get displayName(){return g(f)},children:n,$$slots:{default:!0}})}z(a),l(n,r)};d(S,e=>{g(f)&&e(C)});var T=F(S,2),D=n=>{var r=Lr(),i=e(r,!0);z(r),v(()=>{R(r,1,`hidden items-center gap-1 md:flex ${g(u)??``}`),t(i,g(c))}),l(n,r)};d(T,e=>{g(c)&&e(D)});var O=F(T,2),k=n=>{var r=Rr(),i=w(r),a=e(i);Pr(a,{class:`size-3`});var o=F(a,2),s=e(o,!0);z(o),z(i),Ar(F(i,2),{orientation:`vertical`,class:`mx-0.5 hidden h-4 md:block`}),v(()=>t(s,W.viewed.gitBranch)),l(n,r)};d(O,e=>{W.viewed?.gitBranch&&e(k)});var A=F(O,2),ee=e=>{ye(e,{variant:`secondary`,class:`gap-1.5 text-xs`,children:(e,t)=>{var n=zr();I(),l(e,n)},$$slots:{default:!0}})};d(A,e=>{W.viewed?.isStreaming&&e(ee)});var N=F(A,2),te=e=>{ye(e,{variant:`secondary`,class:`gap-1 text-xs`,children:(e,t)=>{var n=Br();I(),l(e,n)},$$slots:{default:!0}})};d(N,e=>{W.viewed?.isCompacting&&e(te)});var L=F(N,2),ne=e(L),V=e(ne),re=e=>{var t=Vr();v(()=>R(t,1,`absolute inline-flex size-full animate-ping rounded-full ${g(o)??``} opacity-75`)),l(e,t)};d(V,e=>{(U.phase===`syncing`||U.phase===`connecting`)&&e(re)});var ie=F(V,2);z(ne);var ae=F(ne,2),oe=e(ae,!0);z(ae),z(L),z(m);var se=F(m,2),H=n=>{var r=Gr(),i=e(r),a=n=>{{let r=(n,r)=>{let i=()=>r?.().openRenameDialog;var a=Hr(),o=e(a,!0);z(a),v(()=>{j(a,`title`,`Rename session: ${g(f)}`),t(o,g(f))}),B(`click`,a,function(...e){i()?.apply(this,e)}),l(n,a)},i=P(()=>W.viewed?.sessionId),a=P(()=>W.viewed?.folderPath),o=P(()=>W.viewed?.sessionName);Fe(n,{get sessionId(){return g(i)},get folderPath(){return g(a)},get sessionName(){return g(o)},get displayName(){return g(f)},children:r,$$slots:{default:!0}})}};d(i,e=>{g(f)&&e(a)});var o=F(i,2),s=n=>{var r=Ur(),i=e(r);Pr(i,{class:`size-3`});var a=F(i,2),o=e(a,!0);z(a),z(r),v(()=>t(o,W.viewed.gitBranch)),l(n,r)};d(o,e=>{W.viewed?.gitBranch&&e(s)});var p=F(o,2),m=n=>{var r=Wr(),i=e(r,!0);z(r),v(()=>{R(r,1,`flex shrink-0 items-center gap-1 ${g(u)??``}`),t(i,g(c))}),l(n,r)};d(p,e=>{g(c)&&e(m)}),z(r),l(n,r)};d(se,e=>{(g(f)||W.viewed?.gitBranch||g(c))&&e(H)}),z(p),v(e=>{R(x,1,e),j(L,`title`,g(a)),R(ie,1,`relative inline-flex size-2 rounded-full ${g(o)??``}`),t(oe,g(a))},[()=>b(Mr(!!g(f)))]),l(n,p),M()}m([`click`]);var Jr=f(`<span> </span>`),Yr=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 Xr(n,r){E(r,!0);let i=P(()=>{let e=[],t=W.viewed;if(t?.isCompacting&&e.push({label:`Compacting…`,className:`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`}),U.phase===`syncing`&&t?.isRestoring){let n=jr(t.restoreMode);n&&e.push({label:n,className:`border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400`})}else U.phase===`connecting`||U.phase===`backoff`?e.push({label:U.phaseLabel,className:`border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400`}):U.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=Yr();h(r,21,()=>g(i),e=>e.label,(n,r)=>{var i=Jr(),a=e(i,!0);z(i),v(()=>{R(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)}),z(r),l(n,r)};d(o,e=>{g(i).length>0&&e(s)}),l(n,a),M()}function Zr(e,t,n=16){return t<-n&&Math.abs(t)>Math.abs(e)}var Qr=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>`),$r=f(`<span class="relative inline-flex size-2 rounded-full bg-orange-500 svelte-1s9sawt"></span>`),ei=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),ti=f(`<span class="relative inline-flex size-2 rounded-full bg-orange-500 svelte-1s9sawt"></span>`),ni=f(`<span class="relative inline-flex size-2 rounded-full bg-gray-400 svelte-1s9sawt"></span>`),ri=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>`),ii=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>`),ai=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 oi(r,i){E(i,!0);let a=Te(),o=A(null),s=A(null),c=A(null),f=null,p=0,m=0,y=0,b=0,x=null,S=null,C=ze();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,Ve(!0))}function N(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 te(e,t){if(f!==e||t.touches.length!==1)return;let n=t.touches[0];y=n.clientX-p,b=n.clientY-m}function L(e){if(f===e){if(Zr(y,b)){k(),O(e);return}D()}}function ne(e){if(g(s)===e){T(s,null);return}if(g(o)===e){T(o,null);return}T(o,null),Re(e)}async function V(e){let t=W.sessions[e];if(t)try{await U.send({type:`archive_session`,folderPath:t.folderPath,sessionIds:[e],archived:!0}),T(o,null),He(e)}catch(e){console.error(`Failed to archive session:`,e)}}function re(e){T(o,null),He(e)}ee(()=>{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||W.activeSessions.length===0||typeof window>`u`||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=W.viewedSessionId??W.activeSessions[0]?.sessionId;e&&(x&&clearTimeout(x),S&&clearTimeout(S),x=setTimeout(()=>{T(c,e,!0),S=setTimeout(()=>{T(c,null)},900)},900))});var ie=u(),ae=w(ie),oe=r=>{var i=ai(),s=e(i),u=n=>{let r=P(()=>W.sessions[g(o)]);var i=Qr(),a=e(i),s=e(a),c=e(s,!0);z(s),I(2),z(a);var u=F(a,2);Ce(e(u),{class:`size-3`}),I(2),z(u);var d=F(u,2);Pe(e(d),{class:`size-3`}),I(2),z(d),z(i),v(()=>t(c,g(r).projectName)),B(`click`,u,()=>void V(g(r).sessionId)),B(`click`,d,()=>re(g(r).sessionId)),l(n,i)};d(s,e=>{g(o)&&W.sessions[g(o)]&&e(u)});var f=F(s,2),p=e(f);h(p,17,()=>W.activeSessions,e=>e.sessionId,(r,i)=>{let o=P(()=>W.viewedSessionId===g(i).sessionId),s=P(()=>a.hasRequestForSession(g(i).sessionId));var u=ri(),f=e(u),p=e(f),m=e=>{l(e,$r())},h=e=>{var t=ei();I(2),l(e,t)},_=e=>{l(e,ti())},y=e=>{l(e,ni())};d(p,e=>{g(s)?e(m):g(i).status===`working`?e(h,1):g(i).needsAttention?e(_,2):e(y,-1)}),z(f);var b=F(f,2),x=e(b,!0);z(b);var S=F(b,2);Pe(e(S),{class:`size-3`}),z(S),z(u),v(()=>{R(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),R(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`)}),B(`click`,u,()=>ne(g(i).sessionId)),n(`auxclick`,u,e=>{e.button===1&&(e.preventDefault(),He(g(i).sessionId))}),B(`touchstart`,u,e=>N(g(i).sessionId,e),void 0,!0),B(`touchmove`,u,e=>te(g(i).sessionId,e),void 0,!0),B(`touchend`,u,()=>L(g(i).sessionId)),n(`touchcancel`,u,D),B(`click`,S,e=>{e.stopPropagation(),He(g(i).sessionId)}),B(`keydown`,S,e=>{e.key===`Enter`&&(e.stopPropagation(),He(g(i).sessionId))}),l(r,u)});var m=F(p,2),_=t=>{var n=ii();be(e(n),{class:`size-3`}),I(2),z(n),v(()=>{j(n,`title`,`New session in ${W.viewed?.projectName??``}`),n.disabled=!!W.pendingNewSession}),B(`click`,n,()=>Le(W.viewedSessionId)),l(t,n)};d(m,e=>{W.viewedSessionId&&e(_)}),z(f),z(i),n(`scroll`,f,()=>T(o,null)),l(r,i)};d(ae,e=>{W.activeSessions.length>0&&e(oe)}),l(r,ie),M()}m([`click`,`touchstart`,`touchmove`,`touchend`,`keydown`]);var si=f(`<div class="text-destructive px-4 pb-3 text-xs"> </div>`),ci=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 li(n,r){E(r,!0);let i=A(!1),a=A(``),o=A(!1);ee(()=>{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 U.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=ci(),i=e(r),u=e(i);Nr(u,{class:`text-muted-foreground size-4 shrink-0`});var f=F(u,4),p=e(f,!0);z(f);var m=F(f,2);Pe(e(m),{class:`size-4`}),z(m),z(i);var h=F(i,2),_=n=>{var r=si(),i=e(r,!0);z(r),v(()=>t(i,g(a))),l(n,r)};d(h,e=>{g(a)&&e(_)}),z(r),v(()=>{f.disabled=g(o),t(p,g(o)?`Enabling…`:`Enable`)}),B(`click`,f,s),B(`click`,m,c),l(n,r)};d(m,e=>{g(i)&&e(h)}),l(n,p),M()}m([`click`]);var ui=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>`),di=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>`),fi=f(`<div class="flex min-h-0 flex-1 flex-col"><div class="hidden md:block"><!></div> <!> <!> <!> <!> <!> <!> <!> <!></div>`),pi=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>`),mi=f(`<!> <!>`,1);function hi(t,n){E(n,!0);function r(){let e=W.viewedSessionId,t=W.viewed?.conflictingProcesses?.map(e=>e.pid)??[];e&&(U.send({type:`kill_conflicting_processes`,sessionId:e,pids:t}).catch(()=>{}),W.clearConflict(e))}function i(){let e=W.viewedSessionId;e&&W.clearConflict(e)}var a=mi(),o=w(a);li(o,{});var s=F(o,2),c=t=>{var n=fi(),a=e(n);qr(e(a),{}),z(a);var o=F(a,2);Xr(o,{});var s=F(o,2),c=t=>{var n=ui(),r=F(e(n),2),i=F(r,2);z(n),B(`click`,r,()=>Ue(W.viewedSessionId)),B(`click`,i,()=>Be(W.viewedSessionId)),l(t,n)};d(s,e=>{W.viewed?.pendingTakeover&&e(c)});var u=F(s,2),f=t=>{var n=di(),a=F(e(n),2),o=F(a,2);z(n),B(`click`,a,r),B(`click`,o,i),l(t,n)};d(u,e=>{W.viewed?.conflictingProcesses?.length&&e(f)});var p=F(u,2);ar(p,{});var m=F(p,2);fr(m,{});var h=F(m,2);hr(h,{});var g=F(h,2);oi(g,{}),kr(F(g,2),{}),z(n),l(t,n)},u=t=>{var n=pi(),r=e(n),i=F(e(r),6);xe(e(i),{}),z(i),oi(F(i,2),{}),z(r),z(n),l(t,n)};d(s,e=>{W.viewedSessionId?e(c):e(u,-1)}),l(t,a),M()}m([`click`]);export{hi as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"1776467251793"}
|
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/
|
|
18
|
-
<link href="/_app/immutable/chunks/
|
|
15
|
+
<link href="/_app/immutable/entry/start.DYkTAHh1.js" rel="modulepreload">
|
|
16
|
+
<link href="/_app/immutable/chunks/CT6ckxpD.js" rel="modulepreload">
|
|
17
|
+
<link href="/_app/immutable/chunks/DlJOVoUQ.js" rel="modulepreload">
|
|
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.CNzpBgAg.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_brd6po = {
|
|
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.DYkTAHh1.js"),
|
|
37
|
+
import("/_app/immutable/entry/app.CNzpBgAg.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.2.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",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"client/build/**",
|
|
31
31
|
"server/dist/**/*.js",
|
|
32
32
|
"scripts/postinstall-patches.mjs",
|
|
33
|
-
"patches/@mariozechner+pi-coding-agent+0.
|
|
33
|
+
"patches/@mariozechner+pi-coding-agent+0.67.6.patch",
|
|
34
34
|
"README.md",
|
|
35
35
|
"LICENSE"
|
|
36
36
|
],
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
75
|
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
76
|
-
"@mariozechner/pi-coding-agent": "0.
|
|
76
|
+
"@mariozechner/pi-coding-agent": "0.67.6",
|
|
77
77
|
"patch-package": "^8.0.1",
|
|
78
78
|
"web-push": "^3.6.7",
|
|
79
79
|
"ws": "^8.20.0"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
diff --git a/node_modules/@mariozechner/pi-coding-agent/dist/core/agent-session-runtime.js b/node_modules/@mariozechner/pi-coding-agent/dist/core/agent-session-runtime.js
|
|
2
|
-
index
|
|
2
|
+
index fcb3466..20ee304 100644
|
|
3
3
|
--- a/node_modules/@mariozechner/pi-coding-agent/dist/core/agent-session-runtime.js
|
|
4
4
|
+++ b/node_modules/@mariozechner/pi-coding-agent/dist/core/agent-session-runtime.js
|
|
5
|
-
@@ -
|
|
5
|
+
@@ -75,9 +75,6 @@ export class AgentSessionRuntime {
|
|
6
6
|
this.session.dispose();
|
|
7
7
|
}
|
|
8
8
|
apply(result) {
|
|
@@ -12,9 +12,9 @@ index 9ab786e..6f89829 100644
|
|
|
12
12
|
this._session = result.session;
|
|
13
13
|
this._services = result.services;
|
|
14
14
|
this._diagnostics = result.diagnostics;
|
|
15
|
-
@@ -
|
|
16
|
-
*/
|
|
15
|
+
@@ -227,9 +224,6 @@ export class AgentSessionRuntime {
|
|
17
16
|
export async function createAgentSessionRuntime(createRuntime, options) {
|
|
17
|
+
assertSessionCwdExists(options.sessionManager, options.cwd);
|
|
18
18
|
const result = await createRuntime(options);
|
|
19
19
|
- if (process.cwd() !== result.services.cwd) {
|
|
20
20
|
- process.chdir(result.services.cwd);
|
|
@@ -7,9 +7,13 @@ const PROJECT_MARKERS = ['.git', 'package.json'];
|
|
|
7
7
|
* Scans configured root directories for project folders and lists their sessions.
|
|
8
8
|
*/
|
|
9
9
|
export class FolderIndex {
|
|
10
|
-
|
|
11
|
-
constructor(
|
|
12
|
-
this.
|
|
10
|
+
_roots;
|
|
11
|
+
constructor(_roots) {
|
|
12
|
+
this._roots = _roots;
|
|
13
|
+
}
|
|
14
|
+
/** Returns the configured root directories. */
|
|
15
|
+
get roots() {
|
|
16
|
+
return this._roots;
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Scan all roots one level deep for project directories.
|
|
@@ -17,7 +21,7 @@ export class FolderIndex {
|
|
|
17
21
|
*/
|
|
18
22
|
async scan() {
|
|
19
23
|
const folders = [];
|
|
20
|
-
for (const root of this.
|
|
24
|
+
for (const root of this._roots) {
|
|
21
25
|
let entries;
|
|
22
26
|
try {
|
|
23
27
|
entries = await readdir(root);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
/** Resolve the current git branch for a directory. Returns null if not a git repo or detached. */
|
|
3
|
+
export function getGitBranch(cwd) {
|
|
4
|
+
// Guard against inherited Git env vars forcing resolution to another repo.
|
|
5
|
+
const env = { ...process.env };
|
|
6
|
+
delete env.GIT_DIR;
|
|
7
|
+
delete env.GIT_WORK_TREE;
|
|
8
|
+
const runGit = (args) => {
|
|
9
|
+
try {
|
|
10
|
+
const value = execFileSync('git', args, {
|
|
11
|
+
cwd,
|
|
12
|
+
env,
|
|
13
|
+
encoding: 'utf-8',
|
|
14
|
+
timeout: 2000,
|
|
15
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
16
|
+
}).trim();
|
|
17
|
+
return value || null;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
// Best signal for the checked-out branch (works with linked worktrees).
|
|
24
|
+
const current = runGit(['branch', '--show-current']);
|
|
25
|
+
if (current)
|
|
26
|
+
return current;
|
|
27
|
+
// Fallback for older Git versions / unusual setups.
|
|
28
|
+
const abbrevRef = runGit(['rev-parse', '--abbrev-ref', 'HEAD']);
|
|
29
|
+
if (!abbrevRef || abbrevRef === 'HEAD')
|
|
30
|
+
return null;
|
|
31
|
+
return abbrevRef;
|
|
32
|
+
}
|
|
@@ -6,6 +6,64 @@
|
|
|
6
6
|
export function mapAgentMessages(messages) {
|
|
7
7
|
return messages.map(mapAgentMessage);
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Extract entry IDs from branch entries in the same order that
|
|
11
|
+
* buildSessionContext produces messages. This mirrors the SDK's
|
|
12
|
+
* compaction/branch-summary logic so IDs can be zipped 1:1 with
|
|
13
|
+
* the mapped PimoteAgentMessage array.
|
|
14
|
+
*/
|
|
15
|
+
export function extractMessageEntryIds(branch) {
|
|
16
|
+
// Find the last compaction entry on the path
|
|
17
|
+
let compaction = null;
|
|
18
|
+
for (const entry of branch) {
|
|
19
|
+
if (entry.type === 'compaction')
|
|
20
|
+
compaction = entry;
|
|
21
|
+
}
|
|
22
|
+
const ids = [];
|
|
23
|
+
const appendId = (entry) => {
|
|
24
|
+
if (entry.type === 'message') {
|
|
25
|
+
ids.push(entry.id);
|
|
26
|
+
}
|
|
27
|
+
else if (entry.type === 'custom_message') {
|
|
28
|
+
ids.push(entry.id);
|
|
29
|
+
}
|
|
30
|
+
else if (entry.type === 'branch_summary' && entry.summary) {
|
|
31
|
+
ids.push(entry.id);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
if (compaction) {
|
|
35
|
+
// Compaction summary message maps to the compaction entry
|
|
36
|
+
ids.push(compaction.id);
|
|
37
|
+
const compactionIdx = branch.findIndex((e) => e.type === 'compaction' && e.id === compaction.id);
|
|
38
|
+
// Kept messages before the compaction entry
|
|
39
|
+
let foundFirstKept = false;
|
|
40
|
+
for (let i = 0; i < compactionIdx; i++) {
|
|
41
|
+
if (branch[i].id === compaction.firstKeptEntryId)
|
|
42
|
+
foundFirstKept = true;
|
|
43
|
+
if (foundFirstKept)
|
|
44
|
+
appendId(branch[i]);
|
|
45
|
+
}
|
|
46
|
+
// Messages after the compaction entry
|
|
47
|
+
for (let i = compactionIdx + 1; i < branch.length; i++) {
|
|
48
|
+
appendId(branch[i]);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
for (const entry of branch) {
|
|
53
|
+
appendId(entry);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return ids;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Apply entry IDs from the session manager onto mapped messages.
|
|
60
|
+
* Zips by index — both arrays must correspond 1:1.
|
|
61
|
+
*/
|
|
62
|
+
export function applyEntryIds(messages, entryIds) {
|
|
63
|
+
for (let i = 0; i < messages.length && i < entryIds.length; i++) {
|
|
64
|
+
messages[i].entryId = entryIds[i];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
9
67
|
export function mapAgentMessage(msg) {
|
|
10
68
|
const role = msg.role ?? 'unknown';
|
|
11
69
|
const content = [];
|
|
@@ -52,7 +110,7 @@ export function mapAgentMessage(msg) {
|
|
|
52
110
|
}
|
|
53
111
|
// Handle custom messages — preserve customType and display flag for the client
|
|
54
112
|
if (role === 'custom') {
|
|
55
|
-
return { role, content, customType: msg.customType, display: msg.display ?? true };
|
|
113
|
+
return { role, content, entryId: msg.id, customType: msg.customType, display: msg.display ?? true };
|
|
56
114
|
}
|
|
57
115
|
// Handle tool result messages
|
|
58
116
|
if (role === 'toolResult') {
|
|
@@ -72,9 +130,14 @@ export function mapAgentMessage(msg) {
|
|
|
72
130
|
toolCallId: msg.toolCallId,
|
|
73
131
|
toolName: msg.toolName,
|
|
74
132
|
result: resultContent.length > 0 ? resultContent[0].text : undefined,
|
|
133
|
+
isError: msg.isError || undefined,
|
|
75
134
|
},
|
|
76
135
|
],
|
|
136
|
+
entryId: msg.id,
|
|
77
137
|
};
|
|
78
138
|
}
|
|
79
|
-
|
|
139
|
+
// Note: msg.id is typically undefined for standard SDK messages (UserMessage,
|
|
140
|
+
// AssistantMessage, ToolResultMessage). Entry IDs are applied separately via
|
|
141
|
+
// applyEntryIds() using the session manager's branch entries.
|
|
142
|
+
return { role, content, ...(msg.id ? { entryId: msg.id } : {}) };
|
|
80
143
|
}
|
package/server/dist/server.js
CHANGED
|
@@ -121,6 +121,9 @@ export async function createServer(config, sessionManager, folderIndex, pushNoti
|
|
|
121
121
|
sessionManager.onSessionClosed = (sessionId, folderPath) => {
|
|
122
122
|
WsHandler.broadcastSidebarUpdate(sessionId, folderPath, sessionManager, clientRegistry);
|
|
123
123
|
};
|
|
124
|
+
sessionManager.onGitBranchChange = (sessionId, folderPath) => {
|
|
125
|
+
WsHandler.broadcastSidebarUpdate(sessionId, folderPath, sessionManager, clientRegistry);
|
|
126
|
+
};
|
|
124
127
|
const wss = new WebSocketServer({ noServer: true });
|
|
125
128
|
const clientRegistry = new Map();
|
|
126
129
|
httpServer.on('upgrade', (req, socket, head) => {
|