@a-fig/accordion 0.1.1 → 0.1.2

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.
@@ -1,106 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CmEYqMe3.js","./DhEqZVGG.js","./D5WXxLoC.js","./DVFVkhSS.js"])))=>i.map(i=>d[i]);
2
- var yn=Object.defineProperty;var Xe=n=>{throw TypeError(n)};var vn=(n,t,e)=>t in n?yn(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var $=(n,t,e)=>vn(n,typeof t!="symbol"?t+"":t,e),Tn=(n,t,e)=>t.has(n)||Xe("Cannot "+e);var S=(n,t,e)=>(Tn(n,t,"read from private field"),e?e.call(n):t.get(n)),R=(n,t,e)=>t.has(n)?Xe("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(n):t.set(n,e);import{q as B,I as pt,_ as dt,m as de,E as Ne,C as Ns,h as O,G as wn,ab as Sn,H as Qe,J as Lt,v as ft,at as Be,aB as xn,ak as Ze,o as En,n as he,aJ as In,x as Cn,aK as Fs,X as $n,aL as _n,aA as We,aM as On,a7 as ts,aN as Rn,aO as Mn,aF as Ln,aP as tt,Q as An,j as Ds,l as Ps,aQ as xe,a8 as js,aR as Nn,aS as Fn,ay as Dn,w as Pn,k as jn,av as pe,t as Fe,g as Gn,aT as Bn,aC as Wn,aw as Hn,Z as Un,aU as zn,aV as Kn,aW as qn,aX as es,aY as Vn,aZ as Jn,a_ as Yn,a$ as Gs,b0 as Xn,b1 as Qn,b2 as Zn,b3 as to,aI as U,M as H,N as M,i as Z,c as ss,s as eo,r as ns}from"./VcM4J_n8.js";import{_ as Ft,p as ie,i as so}from"./BMYqN1jH.js";import{b as Ee,a as os,d as Bs}from"./4w40b9u5.js";import{s as no}from"./CGLlrrjc.js";function Bi(n,t){return t}function oo(n,t,e){for(var s=[],o=t.length,r,i=t.length,l=0;l<o;l++){let d=t[l];Ps(d,()=>{if(r){if(r.pending.delete(d),r.done.add(d),r.pending.size===0){var f=n.outrogroups;De(n,We(r.done)),f.delete(r),f.size===0&&(n.outrogroups=null)}}else i-=1},!1)}if(i===0){var c=s.length===0&&e!==null;if(c){var a=e,u=a.parentNode;Dn(u),u.append(a),n.items.clear()}De(n,t,!c)}else r={pending:new Set(t),done:new Set},(n.outrogroups??(n.outrogroups=new Set)).add(r)}function De(n,t,e=!0){var s;if(n.pending.size>0){s=new Set;for(const i of n.pending.values())for(const l of i)s.add(n.items.get(l).e)}for(var o=0;o<t.length;o++){var r=t[o];if(s!=null&&s.has(r)){r.f|=tt;const i=document.createDocumentFragment();Pn(r,i)}else jn(t[o],e)}}var rs;function Wi(n,t,e,s,o,r=null){var i=n,l=new Map,c=(t&Fs)!==0;if(c){var a=n;i=B?pt(dt(a)):a.appendChild(de())}B&&Ne();var u=null,d=$n(()=>{var y=e();return _n(y)?y:y==null?[]:We(y)}),f,h=new Map,m=!0;function g(y){(b.effect.f&An)===0&&(b.pending.delete(y),b.fallback=u,ro(b,f,i,t,s),u!==null&&(f.length===0?(u.f&tt)===0?Ds(u):(u.f^=tt,_t(u,null,i)):Ps(u,()=>{u=null})))}function p(y){b.pending.delete(y)}var k=Ns(()=>{f=O(d);var y=f.length;let w=!1;if(B){var I=wn(i)===Sn;I!==(y===0)&&(i=Qe(),pt(i),Lt(!1),w=!0)}for(var C=new Set,x=En,D=Cn(),A=0;A<y;A+=1){B&&ft.nodeType===Be&&ft.data===xn&&(i=ft,w=!0,Lt(!1));var W=f[A],L=s(W,A),N=m?null:l.get(L);N?(N.v&&Ze(N.v,W),N.i&&Ze(N.i,A),D&&x.unskip_effect(N.e)):(N=io(l,m?i:rs??(rs=de()),W,L,A,o,t,e),m||(N.e.f|=tt),l.set(L,N)),C.add(L)}if(y===0&&r&&!u&&(m?u=he(()=>r(i)):(u=he(()=>r(rs??(rs=de()))),u.f|=tt)),y>C.size&&In(),B&&y>0&&pt(Qe()),!m)if(h.set(x,C),D){for(const[Y,X]of l)C.has(Y)||x.skip_effect(X.e);x.oncommit(g),x.ondiscard(p)}else g(x);w&&Lt(!0),O(d)}),b={effect:k,items:l,pending:h,outrogroups:null,fallback:u};m=!1,B&&(i=ft)}function $t(n){for(;n!==null&&(n.f&Nn)===0;)n=n.next;return n}function ro(n,t,e,s,o){var W,L,N,Y,X,Q,Et,It,Ct;var r=(s&Fn)!==0,i=t.length,l=n.items,c=$t(n.effect.first),a,u=null,d,f=[],h=[],m,g,p,k;if(r)for(k=0;k<i;k+=1)m=t[k],g=o(m,k),p=l.get(g).e,(p.f&tt)===0&&((L=(W=p.nodes)==null?void 0:W.a)==null||L.measure(),(d??(d=new Set)).add(p));for(k=0;k<i;k+=1){if(m=t[k],g=o(m,k),p=l.get(g).e,n.outrogroups!==null)for(const v of n.outrogroups)v.pending.delete(p),v.done.delete(p);if((p.f&xe)!==0&&(Ds(p),r&&((Y=(N=p.nodes)==null?void 0:N.a)==null||Y.unfix(),(d??(d=new Set)).delete(p))),(p.f&tt)!==0)if(p.f^=tt,p===c)_t(p,null,e);else{var b=u?u.next:c;p===n.effect.last&&(n.effect.last=p.prev),p.prev&&(p.prev.next=p.next),p.next&&(p.next.prev=p.prev),it(n,u,p),it(n,p,b),_t(p,b,e),u=p,f=[],h=[],c=$t(u.next);continue}if(p!==c){if(a!==void 0&&a.has(p)){if(f.length<h.length){var y=h[0],w;u=y.prev;var I=f[0],C=f[f.length-1];for(w=0;w<f.length;w+=1)_t(f[w],y,e);for(w=0;w<h.length;w+=1)a.delete(h[w]);it(n,I.prev,C.next),it(n,u,I),it(n,C,y),c=y,u=C,k-=1,f=[],h=[]}else a.delete(p),_t(p,c,e),it(n,p.prev,p.next),it(n,p,u===null?n.effect.first:u.next),it(n,u,p),u=p;continue}for(f=[],h=[];c!==null&&c!==p;)(a??(a=new Set)).add(c),h.push(c),c=$t(c.next);if(c===null)continue}(p.f&tt)===0&&f.push(p),u=p,c=$t(p.next)}if(n.outrogroups!==null){for(const v of n.outrogroups)v.pending.size===0&&(De(n,We(v.done)),(X=n.outrogroups)==null||X.delete(v));n.outrogroups.size===0&&(n.outrogroups=null)}if(c!==null||a!==void 0){var x=[];if(a!==void 0)for(p of a)(p.f&xe)===0&&x.push(p);for(;c!==null;)(c.f&xe)===0&&c!==n.fallback&&x.push(c),c=$t(c.next);var D=x.length;if(D>0){var A=(s&Fs)!==0&&i===0?e:null;if(r){for(k=0;k<D;k+=1)(Et=(Q=x[k].nodes)==null?void 0:Q.a)==null||Et.measure();for(k=0;k<D;k+=1)(Ct=(It=x[k].nodes)==null?void 0:It.a)==null||Ct.fix()}oo(n,x,A)}}r&&js(()=>{var v,_;if(d!==void 0)for(p of d)(_=(v=p.nodes)==null?void 0:v.a)==null||_.apply()})}function io(n,t,e,s,o,r,i,l){var c=(i&Rn)!==0?(i&Mn)===0?Ln(e,!1,!1):ts(e):null,a=(i&On)!==0?ts(o):null;return{v:c,i:a,e:he(()=>(r(t,c??e,a??o,l),()=>{n.delete(s)}))}}function _t(n,t,e){if(n.nodes)for(var s=n.nodes.start,o=n.nodes.end,r=t&&(t.f&tt)===0?t.nodes.start:e;s!==null;){var i=pe(s);if(r.before(s),s===o)return;s=i}}function it(n,t,e){t===null?n.effect.first=e:t.next=e,e===null?n.effect.last=t:e.prev=t}function lo(n,t,e=!1,s=!1,o=!1,r=!1){var i=n,l="";if(e){var c=n;B&&(i=pt(dt(c)))}Fe(()=>{var a=Gn;if(l===(l=t()??"")){B&&Ne();return}if(e&&!B){a.nodes=null,c.innerHTML=l,l!==""&&Ee(dt(c),c.lastChild);return}if(a.nodes!==null&&(Bn(a.nodes.start,a.nodes.end),a.nodes=null),l!==""){if(B){ft.data;for(var u=Ne(),d=u;u!==null&&(u.nodeType!==Be||u.data!=="");)d=u,u=pe(u);if(u===null)throw Wn(),Hn;Ee(ft,d),i=pt(u);return}var f=s?zn:o?Kn:void 0,h=Un(s?"svg":o?"math":"template",f);h.innerHTML=l;var m=s||o?h:h.content;if(Ee(dt(m),m.lastChild),s||o)for(;dt(m);)i.before(dt(m));else i.before(m)}})}function Hi(n,t){let e=null,s=B;var o;if(B){e=ft;for(var r=dt(document.head);r!==null&&(r.nodeType!==Be||r.data!==n);)r=pe(r);if(r===null)Lt(!1);else{var i=pe(r);r.remove(),pt(i)}}B||(o=document.head.appendChild(de()));try{Ns(()=>{var l=he(()=>t(o));l.f|=qn})}finally{s&&(Lt(!0),pt(e))}}function Ws(n){var t,e,s="";if(typeof n=="string"||typeof n=="number")s+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(t=0;t<o;t++)n[t]&&(e=Ws(n[t]))&&(s&&(s+=" "),s+=e)}else for(e in n)n[e]&&(s&&(s+=" "),s+=e);return s}function co(){for(var n,t,e=0,s="",o=arguments.length;e<o;e++)(n=arguments[e])&&(t=Ws(n))&&(s&&(s+=" "),s+=t);return s}function Ui(n){return typeof n=="object"?co(n):n??""}const is=[...`
3
- \r\f \v\uFEFF`];function ao(n,t,e){var s=n==null?"":""+n;if(t&&(s=s?s+" "+t:t),e){for(var o of Object.keys(e))if(e[o])s=s?s+" "+o:o;else if(s.length)for(var r=o.length,i=0;(i=s.indexOf(o,i))>=0;){var l=i+r;(i===0||is.includes(s[i-1]))&&(l===s.length||is.includes(s[l]))?s=(i===0?"":s.substring(0,i))+s.substring(l+1):i=l}}return s===""?null:s}function ls(n,t=!1){var e=t?" !important;":";",s="";for(var o of Object.keys(n)){var r=n[o];r!=null&&r!==""&&(s+=" "+o+": "+r+e)}return s}function Ie(n){return n[0]!=="-"||n[1]!=="-"?n.toLowerCase():n}function zi(n,t){if(t){var e="",s,o;if(Array.isArray(t)?(s=t[0],o=t[1]):s=t,n){n=String(n).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var r=!1,i=0,l=!1,c=[];s&&c.push(...Object.keys(s).map(Ie)),o&&c.push(...Object.keys(o).map(Ie));var a=0,u=-1;const g=n.length;for(var d=0;d<g;d++){var f=n[d];if(l?f==="/"&&n[d-1]==="*"&&(l=!1):r?r===f&&(r=!1):f==="/"&&n[d+1]==="*"?l=!0:f==='"'||f==="'"?r=f:f==="("?i++:f===")"&&i--,!l&&r===!1&&i===0){if(f===":"&&u===-1)u=d;else if(f===";"||d===g-1){if(u!==-1){var h=Ie(n.substring(a,u).trim());if(!c.includes(h)){f!==";"&&d++;var m=n.substring(a,d).trim();e+=" "+m+";"}}a=d+1,u=-1}}}}return s&&(e+=ls(s)),o&&(e+=ls(o,!0)),e=e.trim(),e===""?null:e}return n==null?null:String(n)}function uo(n,t,e,s,o,r){var i=n[es];if(B||i!==e||i===void 0){var l=ao(e,s,r);(!B||l!==n.getAttribute("class"))&&(l==null?n.removeAttribute("class"):t?n.className=l:n.setAttribute("class",l)),n[es]=e}else if(r&&o!==r)for(var c in r){var a=!!r[c];(o==null||a!==!!o[c])&&n.classList.toggle(c,a)}return r}const fo=Symbol("is custom element"),ho=Symbol("is html"),po=Gs?"link":"LINK",mo=Gs?"progress":"PROGRESS";function Ki(n){if(B){var t=!1,e=()=>{if(!t){if(t=!0,n.hasAttribute("value")){var s=n.value;st(n,"value",null),n.value=s}if(n.hasAttribute("checked")){var o=n.checked;st(n,"checked",null),n.checked=o}}};n[Zn]=e,js(e),to()}}function qi(n,t){var e=Hs(n);e.value===(e.value=t??void 0)||n.value===t&&(t!==0||n.nodeName!==mo)||(n.value=t??"")}function st(n,t,e,s){var o=Hs(n);B&&(o[t]=n.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&n.nodeName===po)||o[t]!==(o[t]=e)&&(t==="loading"&&(n[Vn]=e),e==null?n.removeAttribute(t):typeof e!="string"&&go(n).includes(t)?n[t]=e:n.setAttribute(t,e))}function Hs(n){var t;return n[t=Jn]??(n[t]={[fo]:n.nodeName.includes("-"),[ho]:n.namespaceURI===Yn})}var cs=new Map;function go(n){var t=n.getAttribute("is")||n.nodeName,e=cs.get(t);if(e)return e;cs.set(t,e=[]);for(var s,o=n,r=Element.prototype;r!==o;){s=Qn(o);for(var i in s)s[i].set&&i!=="innerHTML"&&i!=="textContent"&&i!=="innerText"&&e.push(i);o=Xn(o)}return e}const ko=4,Tt=4;function nt(n){return n?Math.ceil(n.length/ko):0}function Ot(n,t){const e=Math.max(1,t),s=n.replace(/\s+/g," ").trim();return s.length<=e?s:s.slice(0,e-1).trimEnd()+"…"}function me(n,t=100){const e=(n.split(`
4
- `).find(s=>s.trim())??"").trim();return Ot(e,t)}function bo(n){const t=[];for(const e of n.split(`
5
- `)){const s=e.trim();if(s)try{t.push(JSON.parse(s))}catch{}}return t}function yo(n){var t;if(!n.length)return"unknown";if(((t=n[0])==null?void 0:t.type)==="session")return"pi";for(const e of n.slice(0,12))if(e!=null&&e.uuid&&(e.type==="user"||e.type==="assistant"))return"claude";return"unknown"}const At=n=>typeof n=="string"?n:Array.isArray(n)?n.filter(t=>t&&t.type==="text"&&typeof t.text=="string").map(t=>t.text).join(`
6
- `):"";class Us{constructor(){$(this,"blocks",[]);$(this,"order",0);$(this,"turn",0)}push(t,e,s,o={}){!s&&e!=="tool_result"||this.blocks.push({id:t,kind:e,turn:this.turn,order:this.order++,text:s,tokens:nt(s)+Tt,override:null,autoFolded:!1,by:null,...o})}}function vo(n){const t={format:"pi",title:"",cwd:"",model:""},e=new Us;let s=0,o=0;for(const r of n){const i=r.id||`__e${o++}`;switch(r.type){case"session":t.cwd=r.cwd||"",t.title=r.title||"";break;case"message":{const l=r.message||{};if(l.role==="user")e.turn+=1,e.push(`${i}:u`,"user",At(l.content));else if(l.role==="assistant"){l.model&&(t.model=l.model);const c=Array.isArray(l.content)?l.content:[];let a=0;for(const u of c)(u==null?void 0:u.type)==="thinking"?e.push(`${i}:${a}`,"thinking",u.thinking||"",{model:l.model}):(u==null?void 0:u.type)==="text"?e.push(`${i}:${a}`,"text",u.text||"",{model:l.model}):(u==null?void 0:u.type)==="toolCall"?e.push(`${i}:${a}`,"tool_call",`${u.name} ${JSON.stringify(u.arguments??{})}`,{toolName:u.name,callId:u.id,model:l.model}):s++,a++}else l.role==="toolResult"?e.push(`${i}:r`,"tool_result",At(l.content),{toolName:l.toolName||"tool",callId:l.toolCallId,isError:!!l.isError}):s++;break}case"compaction":e.push(`${i}:c`,"tool_result","⤺ native compaction: "+(r.summary||"").slice(0,400),{toolName:"compaction"});break;default:s++}}return t.title||(t.title="pi session"),{meta:t,blocks:e.blocks,lineCount:n.length,skipped:s}}function To(n){var i;const t={format:"claude",title:"",cwd:"",model:""},e=new Us,s={};let o=0,r=0;for(const l of n){const c=l.uuid||`__e${r++}`;if(l.cwd&&!t.cwd&&(t.cwd=l.cwd),l.type==="ai-title"||l.type==="custom-title"){t.title=l.aiTitle||l.customTitle||t.title;continue}if(l.type==="assistant"){const a=l.message||{};a.model&&(t.model=a.model);let u=0;for(const d of a.content||[])(d==null?void 0:d.type)==="thinking"?e.push(`${c}:${u}`,"thinking",d.thinking||"",{model:a.model}):(d==null?void 0:d.type)==="text"?e.push(`${c}:${u}`,"text",d.text||"",{model:a.model}):(d==null?void 0:d.type)==="tool_use"?(d.id&&(s[d.id]=d.name),e.push(`${c}:${u}`,"tool_call",`${d.name} ${JSON.stringify(d.input??{})}`,{toolName:d.name,callId:d.id,model:a.model})):o++,u++}else if(l.type==="user"){const a=(i=l.message)==null?void 0:i.content,u=Array.isArray(a)?a.filter(d=>d&&d.type==="tool_result"):[];if(u.length){let d=0;for(const h of u){const m=typeof h.content=="string"?h.content:At(h.content);e.push(`${c}:${d++}`,"tool_result",m,{toolName:s[h.tool_use_id]||"tool",callId:h.tool_use_id,isError:!!h.is_error})}const f=At(a);f.trim()&&(e.turn+=1,e.push(`${c}:u`,"user",f))}else{const d=At(a);d.trim()?(e.turn+=1,e.push(`${c}:u`,"user",d)):o++}}else o++}return t.title||(t.title="Claude Code session"),{meta:t,blocks:e.blocks,lineCount:n.length,skipped:o}}function zs(n){const t=bo(n),e=yo(t);if(e==="pi")return vo(t);if(e==="claude")return To(t);throw new Error("Unrecognized session format (expected pi or Claude Code JSONL).")}const Ks=new Set(["text","thinking","tool_result"]);function ht(n){return Ks.has(n.kind)}function Dt(n){let t=2166136261;for(let e=0;e<n.length;e++)t^=n.charCodeAt(e),t=Math.imul(t,16777619);return(t>>>0).toString(36).padStart(6,"0").slice(-6)}function He(n){return`{#${Dt(n)} FOLDED}`}const as=new WeakMap,us=new WeakMap;function ge(n){const t=as.get(n);if(t!==void 0)return t;const e=wo(n),s=Ks.has(n.kind)?`${He(n.id)} ${e}`:e;return as.set(n,s),s}function wo(n){switch(n.kind){case"user":return"“"+Ot(n.text,100)+"”";case"text":return Ot(n.text,120);case"thinking":{const t=nt(n.text),e=me(n.text,80);return`thought · ~${t} tok${e?" · "+e:""}`}case"tool_call":return`${n.toolName??"tool"}(${Ot(n.text.replace(/^\S+\s*/,""),70)})`;case"tool_result":{const t=n.toolName??"result";if(!n.text.trim())return`${t} → ${n.isError?"error":"empty"}`;const e=n.text.split(`
7
- `).filter(r=>r.trim()).length,s=n.isError?"error":`${e} line${e===1?"":"s"}`,o=me(n.text,60);return`${t} → ${s}, ~${n.tokens} tok${o?" · "+o:""}`}default:return Ot(n.text,80)}}function ds(n){const t=us.get(n);if(t!==void 0)return t;const e=nt(ge(n))+Tt;return us.set(n,e),e}function So(n){return nt(n)+Tt}const xo={user:["ask","asks"],text:["reply","replies"],thinking:["thought","thoughts"],tool_call:["call","calls"],tool_result:["result","results"]},Eo=["tool_result","thinking","text","tool_call","user"];function Io(n){let t=1/0,e=-1/0;for(const o of n)o.turn<t&&(t=o.turn),o.turn>e&&(e=o.turn);if(!isFinite(t))return"";const s=o=>o>0?`turn ${o}`:"preamble";return t===e?s(t):t>0?`turns ${t}–${e}`:`preamble–turn ${e}`}function qs(n,t){const e=He(n.id);if(!t.length)return`${e} group · empty`;const s=new Map;let o=0,r="";for(const d of t)s.set(d.kind,(s.get(d.kind)??0)+1),o+=d.tokens,d.kind==="user"&&!r&&(r=me(d.text,70));const i=Eo.filter(d=>s.get(d)).map(d=>{const f=s.get(d),[h,m]=xo[d];return`${f} ${f===1?h:m}`}).join(", "),l=Io(t),c=`${e} group · ${t.length} block${t.length===1?"":"s"}${l?" · "+l:""} · ~${o} tok`,a=i?` · ${i}`:"",u=r?` · “${r}”`:"";return c+a+u}function fs(n,t){return nt(qs(n,t))+Tt}const Co=["human-steering","agent-unfold","tail-size"];function Ce(n,t){return!!n&&n.includes(t)}function Vi(n){return!!n&&n.length>0}const $e=3;function $o(n){if(!n||typeof n!="object")return!1;const t=n.type;return t==="conductor/hello"||t==="conductor/commands"||t==="cap/request"||t==="conductor/status"}const wt={tool_result:0,thinking:1,text:2,tool_call:3,user:4};class Vs{constructor(){this.id="builtin",this.label="Built-in"}conduct(t){let e=t.liveTokens;if(e<=t.budget)return[];const s=t.blocks.filter(r=>!r.held&&!r.protected&&!r.grouped&&r.foldedTokens<r.tokens).sort((r,i)=>wt[r.kind]-wt[i.kind]||r.order-i.order),o=[];for(const r of s){if(e<=t.budget)break;o.push(r.id),e+=r.foldedTokens-r.tokens}return o.length?[{kind:"fold",ids:o}]:[]}}const gt=new Set(["text","thinking","tool_result"]),ke={priors:{tool_result:0,thinking:8,text:16,tool_call:24,user:32},decay:{tool_result:.9,thinking:.7,text:.5},pairWarmthBonus:4,recallFloorTurns:1};function _o(n,t){const e=ke.decay[n.kind]??.6,s=ke.recallFloorTurns,o=t.currentTurn,i=[n.turn,...t.recalls.get(n.id)??[]].filter(c=>c<=o);i.length||i.push(n.turn<=o?n.turn:o);let l=0;for(const c of i){const a=Math.max(o-c,s);l+=Math.pow(a,-e)}return l<=0?-10:Math.log(l)}function Pe(n,t){const e=ke.priors[n.kind]??24,s=_o(n,t),o=n.callId&&t.tailCallIds.has(n.callId)?ke.pairWarmthBonus:0;return e+s+o}function Nt(n,t){return[...n].sort((e,s)=>{const o=Pe(e,t),r=Pe(s,t);return o!==r?o-r:e.order-s.order})}const _e=new Set(["true","false","null","undefined","return","const","import","export","async","await","function","string","number","boolean","object","array","void","never","type","interface","class","extends","implements","this","self","super","new","throw","catch","error","from","with"]),Oo=4,hs=3,Ro=80,Mo=200;function we(n){const t=new Map,e=/`([^`]{3,80})`|"([^"\n]{3,80})"|'([^'\n]{3,80})'/g;let s;for(;(s=e.exec(n))!==null;){const l=(s[1]??s[2]??s[3]).trim();l.length>=hs&&l.length<=Ro&&!_e.has(l.toLowerCase())&&t.set(l,l.length)}const o=/(?:[A-Za-z]:[\\/]|\.\.?[\\/]|[\\/])?[\w@.-]+(?:[\\/][\w.@-]+)+/g;for(;(s=o.exec(n))!==null;){const l=s[0].replace(/^[^\w@./\\A-Z]+|[^)\w/\\]+$/g,"").replace(/[.,;:'"`)]+$/,"");l.length>=hs&&!_e.has(l.toLowerCase())&&t.set(l,l.length)}const r=/\b[A-Za-z_$][\w$]{3,}\b/g;for(;(s=r.exec(n))!==null;){const l=s[0];if(l.length<Oo||_e.has(l.toLowerCase()))continue;const c=l.slice(1);/[A-Z_$0-9]/.test(c)&&t.set(l,l.length)}const i=[...t.entries()].sort((l,c)=>c[1]-l[1]);return new Set(i.slice(0,Mo).map(([l])=>l))}function be(n,t){if(!n.size||!t.length)return new Map;const e=Math.max(3,Math.floor(t.length*.25)),s=new Map;for(const r of n){const i=[];for(const l of t)l.text!==void 0&&l.text.includes(r)&&i.push(l.id);i.length>0&&i.length<=e&&s.set(r,i)}const o=new Map;for(const[r,i]of s)for(const l of i)o.has(l)||o.set(l,r);return o}const ps={unfoldCooldownTurns:5,maxLexicalUnfoldsPerPass:4},Lo=32e3;class Ao{constructor(){this.id="cold-score",this.label="Cold-score",this.recalls=new Map,this.coolUntil=new Map}recordRecall(t,e){const s=this.recalls.get(t);if(!s){this.recalls.set(t,[e]);return}s.includes(e)||s.push(e)}conduct(t){const e=new Set(t.blocks.map(b=>b.id));for(const b of this.recalls.keys())e.has(b)||this.recalls.delete(b);for(const b of this.coolUntil.keys())e.has(b)||this.coolUntil.delete(b);if(t.liveTokens<=t.budget)return[];const s=ze(t.blocks),o=new Set;for(const b of t.blocks)b.protected&&b.callId&&o.add(b.callId);const r={currentTurn:s,recalls:this.recalls,tailCallIds:o},i=t.blocks.filter(b=>!b.held&&!b.protected&&!b.grouped&&b.foldedTokens<b.tokens&&gt.has(b.kind));let l=t.liveTokens;const c=new Set,a=new Map;for(const b of i)a.set(b.id,b);const u=b=>{c.has(b.id)||(c.add(b.id),l+=b.foldedTokens-b.tokens)},d=b=>{c.has(b.id)&&(c.delete(b.id),l-=b.foldedTokens-b.tokens)},f=Nt(i,r);for(const b of f){if(l<=t.budget)break;u(b)}const h=new Set,m=Ue(t.blocks),g=we(m),p=i.filter(b=>c.has(b.id));if(g.size>0&&p.length>0){const y=[...be(g,p).entries()].sort((I,C)=>C[1].length-I[1].length);let w=0;for(const[I]of y){if(w>=ps.maxLexicalUnfoldsPerPass)break;const C=a.get(I);!C||!c.has(I)||(this.coolUntil.get(I)??0)>s||(d(C),h.add(I),w++)}}if(l>t.budget){const b=Nt(i.filter(y=>!c.has(y.id)&&!h.has(y.id)&&(this.coolUntil.get(y.id)??0)<=s),r);for(const y of b){if(l<=t.budget)break;u(y)}}if(l>t.budget){const b=Nt(i.filter(y=>!c.has(y.id)),r);for(const y of b){if(l<=t.budget)break;u(y)}}for(const b of h)c.has(b)||(this.coolUntil.set(b,s+ps.unfoldCooldownTurns),this.recordRecall(b,s));const k=[...c];return k.length?[{kind:"fold",ids:k}]:[]}}function Ue(n){let t="";for(let e=n.length-1;e>=0&&t.length<Lo;e--){const s=n[e];if(!s.protected)break;s.text!==void 0&&(t=s.text+`
8
- `+t)}return t}function ze(n){let t=0;for(const e of n)e.turn>t&&(t=e.turn);return t}const ms={highWater:.9,lowWater:.7},No=5,Fo=4;class Do{constructor(){this.id="cold-epoch",this.label="Cold epoch",this.foldSet=new Set,this.recalls=new Map,this.warmthCoolUntil=new Map}conduct(t){const e=new Map(t.blocks.map(g=>[g.id,g]));for(const g of[...this.foldSet])e.has(g)||this.foldSet.delete(g);for(const g of[...this.recalls.keys()])e.has(g)||this.recalls.delete(g);for(const g of[...this.warmthCoolUntil.keys()])e.has(g)||this.warmthCoolUntil.delete(g);for(const g of[...this.foldSet]){const p=e.get(g);(p.held||p.protected||p.grouped||p.foldedTokens>=p.tokens)&&this.foldSet.delete(g)}const s=ze(t.blocks),o=Ue(t.blocks),r=we(o);if(r.size>0){const g=t.blocks.filter(k=>gt.has(k.kind)&&!k.held&&!k.protected&&!k.grouped);let p=0;for(const k of be(r,g).keys()){if(p>=Fo)break;if((this.warmthCoolUntil.get(k)??0)>s)continue;const b=this.recalls.get(k);b?b.includes(s)||b.push(s):this.recalls.set(k,[s]),this.warmthCoolUntil.set(k,s+No),p++}}const i=Po(t,this.foldSet),l=Math.min(t.budget,t.contextWindow??1/0),c=ms.highWater*l;if(i<=c)return this.foldSet.size>0?[{kind:"fold",ids:[...this.foldSet]}]:[];const a=ms.lowWater*l,u=new Set;for(const g of t.blocks)g.protected&&g.callId&&u.add(g.callId);const d={currentTurn:s,recalls:this.recalls,tailCallIds:u},f=t.blocks.filter(g=>!this.foldSet.has(g.id)&&gt.has(g.kind)&&!g.held&&!g.protected&&!g.grouped&&g.foldedTokens<g.tokens),h=new Set;if(r.size>0&&f.length>0)for(const g of be(r,f).keys())h.add(g);let m=i;for(const g of Nt(f.filter(p=>!h.has(p.id)),d)){if(m<=a)break;this.foldSet.add(g.id),m+=g.foldedTokens-g.tokens}if(m>a)for(const g of Nt(f.filter(p=>!this.foldSet.has(p.id)),d)){if(m<=a)break;this.foldSet.add(g.id),m+=g.foldedTokens-g.tokens}return this.foldSet.size>0?[{kind:"fold",ids:[...this.foldSet]}]:[]}}function Po(n,t){let e=n.liveTokens;for(const s of n.blocks)t.has(s.id)&&!s.folded&&(e+=s.foldedTokens-s.tokens);return e}const jo=.9,Go=.7;class Bo{constructor(){this.id="sliding-window",this.label="Sliding window",this.locks=["human-steering","agent-unfold"],this.dropped=new Set}conduct(t){if(t.budget<=0||t.blocks.length===0)return this.dropped.clear(),[];const e=new Set(t.blocks.map(i=>i.id));for(const i of this.dropped)e.has(i)||this.dropped.delete(i);const s=t.blocks.slice(0,t.protectedFromIndex);let o=0;for(const i of s)this.dropped.has(i.id)&&(o+=i.tokens);const r=t.liveTokens-o;if(r>t.budget*jo){const i=r-t.budget*Go;let l=0;for(const c of s)if(c.kind!=="user"&&!this.dropped.has(c.id)&&(this.dropped.add(c.id),l+=c.tokens,l>=i))break}return this.emitRuns(s)}emitRuns(t){const e=[];let s=-1,o=-1;const r=()=>{s!==-1&&(e.push({kind:"group",ids:[t[s].id,t[o].id],digest:null}),s=-1,o=-1)};for(let i=0;i<t.length;i++)this.dropped.has(t[i].id)?(s===-1&&(s=i),o=i):r();return r(),e}}function Wo(n){const t=n.indexOf(":");return t<0?n:n.slice(0,t)}function Js(n){const t=new Map;for(const l of n)t.set(l.id,new Set);const e=(l,c)=>{var a,u;l!==c&&((a=t.get(l))==null||a.add(c),(u=t.get(c))==null||u.add(l))},s=new Map;for(const l of n){if(!l.callId)continue;const c=s.get(l.callId);c?c.push(l.id):s.set(l.callId,[l.id])}for(const l of s.values())for(let c=1;c<l.length;c++)e(l[c-1],l[c]);const o=new Map;for(const l of n){const c=Wo(l.id),a=o.get(c);a?a.push(l.id):o.set(c,[l.id])}for(const l of o.values())for(let c=1;c<l.length;c++)e(l[c-1],l[c]);const r=Math.max(3,Math.floor(n.length*.25)),i=new Map;for(const l of n)if(l.text!==void 0)for(const c of we(l.text)){const a=i.get(c);a?a.push(l.id):i.set(c,[l.id])}for(const l of i.values())if(!(l.length<=1||l.length>r))for(let c=1;c<l.length;c++)e(l[c-1],l[c]);return{adj:t}}function Ys(n,t){const e=new Set,s=[];for(const o of t)s.push(o);for(;s.length;){const o=s.pop();if(e.has(o))continue;e.add(o);const r=n.adj.get(o);if(r)for(const i of r)e.has(i)||s.push(i)}return e}class Ho{constructor(){this.id="garbage-collector",this.label="Garbage collector"}conduct(t){if(t.liveTokens<=t.budget)return[];const e=[];let s=!1;for(const a of t.blocks){const u=!s&&a.kind==="user";u&&(s=!0),(a.protected||a.held||u)&&e.push(a.id)}const o=Ys(Js(t.blocks),e),i=t.blocks.filter(a=>!a.held&&!a.protected&&!a.grouped&&a.foldedTokens<a.tokens&&gt.has(a.kind)).sort((a,u)=>(o.has(a.id)?1:0)-(o.has(u.id)?1:0)||wt[a.kind]-wt[u.kind]||a.order-u.order);let l=t.liveTokens;const c=[];for(const a of i){if(l<=t.budget)break;c.push(a.id),l+=a.foldedTokens-a.tokens}return c.length?[{kind:"fold",ids:c}]:[]}}const Uo=.9,zo=8e3,Xs=`You are a context-compaction assistant. Your task is to read a segment of an AI assistant's conversation history and produce a compact, structured briefing that the assistant can use to continue working effectively without seeing the original messages.
9
-
10
- Do NOT continue the conversation. Do NOT respond to any questions in the conversation. ONLY output the structured summary.
11
-
12
- USER MESSAGES ARE SACRED. Reproduce EVERY user message VERBATIM, in order, exactly as originally written, in the "## User messages" section. Do not paraphrase, abbreviate, summarize, or omit a single user message — the human's intent and instructions must survive compaction intact. (Assistant text, thinking, tool calls, and tool results ARE summarized; only user messages are preserved word-for-word.)
13
-
14
- Produce your output in EXACTLY this structure — no prose outside the sections. Keep every section even when empty; write "(none)" where nothing applies:
15
-
16
- ## User messages
17
- Every user message from the summarized segment, reproduced verbatim, in order, each clearly separated. If there are no user messages, write "(none)".
18
-
19
- ## Goal
20
- One sentence: what is the overall task or objective being pursued?
21
-
22
- ## Progress
23
- Bullet list of what has been accomplished so far. Be specific: files changed, commands run, decisions made, errors encountered and resolved.
24
-
25
- ## Key decisions
26
- Bullet list of the important choices made (architecture, approach, libraries, workarounds). Include the reasoning where it matters for future steps.
27
-
28
- ## Next steps
29
- Bullet list of what is expected to happen next, in the order the work is heading.
30
-
31
- ## Critical context
32
- Any facts, invariants, or constraints the assistant MUST remember: API keys pattern (never actual values), file paths, environment quirks, non-obvious rules from the human's instructions, hard constraints on scope. Err on the side of including something here if it would be surprising to lose it.
33
-
34
- ## Relevant files
35
- - {file path}: why it matters. List files that were read, written, or are central to the task. Write "(none)" if none.
36
-
37
- Be terse everywhere EXCEPT the verbatim user messages, which must be complete. Omit pleasantries, meta-commentary, and filler. The output will be placed directly into the agent's context window.`;class Ko{constructor(){this.id="compaction-naive",this.label="Naive compaction",this.locks=["human-steering","agent-unfold"],this.host=null,this.summary=null,this.compactedIds=new Set,this.inflight=null,this.lastAttemptKey=""}attach(t){this.inflight&&(this.inflight.abort(),this.inflight=null),this.summary=null,this.compactedIds=new Set,this.lastAttemptKey="",this.host=t}detach(){var t;this.inflight&&(this.inflight.abort(),this.inflight=null),(t=this.host)==null||t.setStatus(null),this.host=null}conduct(t){if(!this.host)return null;const e=this.agedRegion(t);if(t.budget<=0||t.blocks.length===0)return this.summary!==null?this.emitSummaryGroup(t):[];if(this.inflight!==null)return this.emitSummaryGroup(t);const s=e.filter(u=>this.compactedIds.has(u.id)),o=this.summary!==null?Math.max(0,Qs(s)-this.summaryTokenCost()):0,r=t.liveTokens-o,i=r>=t.budget*Uo,l=e.filter(u=>!this.compactedIds.has(u.id));if(e.length===0&&this.summary===null)return this.host.setStatus(null),[];if(!(i&&l.length>0))return this.host.setStatus(null),this.summary!==null?this.emitSummaryGroup(t):[];if(!this.host.can("complete"))return this.host.setStatus("Naive compaction unavailable — waiting for live model link",{aged:e.length,fullness:Math.round(r/t.budget*100)}),this.summary!==null?this.emitSummaryGroup(t):[];this.host.setStatus(null);const a=l.map(u=>u.id).sort().join("\0");return a===this.lastAttemptKey?this.summary!==null?this.emitSummaryGroup(t):[]:(this.launchCompletion(e,l,a),this.emitSummaryGroup(t))}agedRegion(t){const e=[];for(let s=0;s<t.protectedFromIndex&&s<t.blocks.length;s++){const o=t.blocks[s];!o.held&&!o.grouped&&e.push(o)}return e}emitSummaryGroup(t){if(this.summary===null)return null;const e=[];let s=-1,o=-1,r=0;const i=()=>{s!==-1&&(e.push({kind:"group",ids:[t.blocks[s].id,t.blocks[o].id],digest:this.summary}),s=-1,o=-1)},l=Math.min(t.protectedFromIndex,t.blocks.length);for(let c=0;c<l;c++){const a=t.blocks[c];this.compactedIds.has(a.id)&&!a.held&&!a.grouped?(r++,s===-1&&(s=c),o=c):i()}return i(),r===0?[]:e}summaryTokenCost(){return this.summary===null?0:this.host&&this.host.can("countTokens")?this.host.countTokens(this.summary):Math.ceil(this.summary.length/4)}launchCompletion(t,e,s){if(this.inflight!==null)return;const o=new Set(t.map(c=>c.id)),r=t.length,i=this.buildPrompt(e);this.lastAttemptKey=s;const l=new AbortController;this.inflight=l,this.host.complete({system:Xs,prompt:i,maxOutputTokens:zo,signal:l.signal}).then(c=>{var u,d;if(this.inflight!==l)return;const a=c.text.trim();if(!a){this.inflight=null,(u=this.host)==null||u.setStatus("Naive compaction failed — model returned an empty summary",{aged:r});return}this.inflight=null,this.summary=`[Compacted summary of ${r} earlier message${r===1?"":"s"}]
38
-
39
- `+a,this.compactedIds=o,(d=this.host)==null||d.requestRerun()},c=>{this.inflight===l&&(this.inflight=null)})}buildPrompt(t){const e=t.map(s=>{const o=Ke(s),r=(s.text??"").trim();return r?`[${o}]
40
- ${r}`:`[${o}]`}).join(`
41
-
42
- `);return this.summary!==null?["<previous-summary>",this.summary,"</previous-summary>","","<conversation>",e,"</conversation>","",'Update the summary in <previous-summary> using the new conversation history in <conversation>. PRESERVE all still-relevant details from the previous summary; remove stale ones; merge in new facts. Move completed work into "Progress" and revise "Next Steps" accordingly. Preserve exact file paths, function names, and error messages when known. Carry forward every verbatim user message from the previous summary and append the new user messages from the conversation — all still reproduced word-for-word in "## User messages".'].join(`
43
- `):["<conversation>",e,"</conversation>","","Create a structured summary from the conversation history above."].join(`
44
- `)}}function Qs(n){let t=0;for(const e of n)t+=e.tokens;return t}function Ke(n){switch(n.kind){case"user":return"user";case"text":return"assistant";case"thinking":return"assistant thinking";case"tool_call":return n.toolName?`tool call: ${n.toolName}`:"tool call";case"tool_result":return n.toolName?`tool result: ${n.toolName}`:"tool result";default:{const t=n.kind;return String(t)}}}const qo=.9,Vo=400,Jo=8,Yo=2,Xo=8e3;class Qo{constructor(){this.id="bear2-hybrid",this.label="Bear-2 hybrid",this.locks=["human-steering","agent-unfold"],this.host=null,this.summary=null,this.compactedIds=new Set,this.inflight=null,this.lastAttemptKey="",this.bear2Cache=new Map,this.bear2InFlight=new Set,this.bear2Retries=new Map,this.failed=!1}attach(t){this.inflight&&(this.inflight.abort(),this.inflight=null),this.summary=null,this.compactedIds=new Set,this.lastAttemptKey="",this.bear2Cache=new Map,this.bear2InFlight=new Set,this.bear2Retries=new Map,this.failed=!1,this.host=t}detach(){var t;this.inflight&&(this.inflight.abort(),this.inflight=null),(t=this.host)==null||t.setStatus(null),this.host=null}conduct(t){if(!this.host)return null;if(this.failed)return this.host.setStatus("⛔ Bear-2 FAILED — conductor halted"),null;if(!this.host.can("compress"))return this.host.setStatus("Bear-2 needs an API key — set it in Settings"),[];if(t.budget<=0||t.blocks.length===0)return this.host.setStatus(null),this.emitState(t);const e=new Set(t.blocks.map(u=>u.id));for(const u of this.bear2Cache.keys())e.has(u)||this.bear2Cache.delete(u);for(const u of this.bear2Retries.keys())e.has(u)||this.bear2Retries.delete(u);const s=this.agedRegion(t),{olderIds:o,newerHalf:r}=this.splitAged(s),i=this.summarySaving(s),l=this.bear2Saving(r),a=t.liveTokens-i-l>=t.budget*qo;return a&&this.launchBear2(r),this.driveSummary(t,o,a),this.reportMetrics(r,s,a),this.emitState(t,r)}agedRegion(t){const e=[],s=Math.min(t.protectedFromIndex,t.blocks.length);for(let o=0;o<s;o++){const r=t.blocks[o];!r.held&&!r.grouped&&e.push(r)}return e}splitAged(t){const s=Qs(t)/2,o=new Set,r=[];let i=0;for(const l of t){if(this.compactedIds.has(l.id)){o.add(l.id),i+=l.tokens;continue}i<s?(o.add(l.id),i+=l.tokens):r.push(l)}return{olderIds:o,newerHalf:r}}bear2Eligible(t){return t.tokens<Vo?!1:t.kind==="text"||t.kind==="thinking"||t.kind==="tool_result"}summarySaving(t){if(this.summary===null)return 0;let e=0;for(const s of t)this.compactedIds.has(s.id)&&(e+=s.tokens);return Math.max(0,e-this.summaryTokenCost())}bear2Delta(t,e){return e.length===0?0:this.tokenLen(t)-this.tokenLen(e)}bear2Saving(t){let e=0;for(const s of t){const o=this.bear2Cache.get(s.id);if(o===void 0)continue;const r=this.bear2Delta((s.text??"").trim(),o);r>0&&(e+=r)}return e}tokenLen(t){return this.host&&this.host.can("countTokens")?this.host.countTokens(t):Math.ceil(t.length/4)}summaryTokenCost(){return this.summary===null?0:this.tokenLen(this.summary)}launchBear2(t){const e=this.host;if(e)for(const s of t){if(this.bear2InFlight.size>=Jo)break;if(!this.bear2Eligible(s)||this.bear2Cache.has(s.id)||this.bear2InFlight.has(s.id))continue;const o=(s.text??"").trim();if(!o)continue;const r=s.id;this.bear2InFlight.add(r),e.compress(o).then(i=>{if(this.host!==e)return;if(this.failed){this.bear2InFlight.delete(r);return}this.bear2InFlight.delete(r);const l=i??"";this.bear2Delta(o,l)>0?this.bear2Cache.set(r,l):this.bear2Cache.set(r,o),this.bear2Retries.delete(r),e.requestRerun()},i=>{if(this.host!==e)return;if(this.failed){this.bear2InFlight.delete(r);return}this.bear2InFlight.delete(r);const l=(this.bear2Retries.get(r)??0)+1;this.bear2Retries.set(r,l),l>=Yo&&(this.failed=!0,e.setStatus("⛔ Bear-2 FAILED — conductor halted")),e.requestRerun()})}}driveSummary(t,e,s){const o=this.host;if(!o||this.inflight!==null)return;const r=t.blocks.filter(c=>e.has(c.id)&&!this.compactedIds.has(c.id));if(!s||r.length===0||!o.can("complete"))return;const i=r.map(c=>c.id).sort().join("\0");if(i===this.lastAttemptKey)return;const l=t.blocks.filter(c=>e.has(c.id));this.launchCompletion(l,r,i)}launchCompletion(t,e,s){const o=this.host;if(!o||this.inflight!==null)return;const r=new Set(t.map(a=>a.id)),i=t.length,l=this.buildPrompt(e);this.lastAttemptKey=s;const c=new AbortController;this.inflight=c,o.complete({system:Xs,prompt:l,maxOutputTokens:Xo,signal:c.signal}).then(a=>{var d,f;if(this.inflight!==c)return;if(this.failed){this.inflight=null;return}const u=a.text.trim();if(!u){this.inflight=null,(d=this.host)==null||d.setStatus("Naive compaction failed — model returned an empty summary",{older:i});return}this.inflight=null,this.summary=`[Compacted summary of ${i} earlier message${i===1?"":"s"}]
45
-
46
- `+u,this.compactedIds=r;for(const h of r)this.bear2Cache.delete(h),this.bear2Retries.delete(h);(f=this.host)==null||f.requestRerun()},a=>{this.inflight===c&&(this.inflight=null)})}buildPrompt(t){const e=t.map(s=>{const o=Ke(s),r=(s.text??"").trim();return r?`[${o}]
47
- ${r}`:`[${o}]`}).join(`
48
-
49
- `);return this.summary!==null?["<previous-summary>",this.summary,"</previous-summary>","","<conversation>",e,"</conversation>","",'Update the summary in <previous-summary> using the new conversation history in <conversation>. PRESERVE all still-relevant details from the previous summary; remove stale ones; merge in new facts. Move completed work into "Progress" and revise "Next Steps" accordingly. Preserve exact file paths, function names, and error messages when known. Carry forward every verbatim user message from the previous summary and append the new user messages from the conversation — all still reproduced word-for-word in "## User messages".'].join(`
50
- `):["<conversation>",e,"</conversation>","","Create a structured summary from the conversation history above."].join(`
51
- `)}emitState(t,e){const s=[];if(e)for(const o of e){const r=this.bear2Cache.get(o.id);if(r===void 0)continue;const i=(o.text??"").trim();this.bear2Delta(i,r)<=0||s.push({kind:"replace",id:o.id,content:r})}for(const o of this.emitSummaryGroup(t))s.push(o);return s}emitSummaryGroup(t){if(this.summary===null)return[];const e=[];let s=-1,o=-1,r=0;const i=()=>{s!==-1&&(e.push({kind:"group",ids:[t.blocks[s].id,t.blocks[o].id],digest:this.summary}),s=-1,o=-1)},l=Math.min(t.protectedFromIndex,t.blocks.length);for(let c=0;c<l;c++){const a=t.blocks[c];this.compactedIds.has(a.id)&&!a.held&&!a.grouped?(r++,s===-1&&(s=c),o=c):i()}return i(),r===0?[]:e}reportMetrics(t,e,s){const o=this.host;if(!o)return;let r=0,i=0,l=0;for(const f of t){const h=this.bear2Cache.get(f.id);if(h===void 0)continue;const m=this.bear2Delta((f.text??"").trim(),h);m<=0||(r+=1,i+=f.tokens,l+=m)}let c=0;for(const f of e)this.compactedIds.has(f.id)&&(c+=1);const a=this.summarySaving(e);if(r===0&&c===0&&!s){o.setStatus(null);return}const u=i>0?Math.round(l/i*100):0,d=`Bear-2: ${r} block${r===1?"":"s"} · ${gs(l)} saved (${u}%) | Summary: ${c} block${c===1?"":"s"} · ${gs(a)} saved`;o.setStatus(d,{bear2Blocks:r,bear2Saved:l,summaryBlocks:c,summarySaved:a})}}function gs(n){return n<1e3?String(n):`${(n/1e3).toFixed(1)}k`}const Zo=new Set(["read","view","cat","readfile","read_file","open"]),tr=new Set(["bash","shell","sh","exec_command","run_command","execute","powershell","pwsh"]),ks=new Set(["ts","tsx","mts","cts","js","jsx","mjs","cjs","svelte","vue","py","pyi","rs","go","java","kt","kts","c","h","cpp","cc","hpp","cxx","rb","php","swift","sql","css","scss","less","sh","bash"]),er=new Set(["md","markdown","txt","rst","json","yaml","yml","toml","lock","csv","log","html","xml","svg","png","jpg","jpeg","gif","webp","pdf"]),sr=new Set(["css","scss","less"]),nr=["function ","class ","def ","import ","export ","const ","fn ","struct ","impl ","interface ","public ","async ","return ","package ","#include"];function Zs(n,t){if(n.kind!=="tool_result"||n.isError)return null;const e=n.text;if(typeof e!="string"||e.length===0)return null;const s=n.callId?t.get(n.callId):void 0,o=s==null?void 0:s.text,r=ir(o),i=rr(n.toolName,o);if(!i)return null;let l;if(Zo.has(i))l=bs(r.file_path)??bs(r.path);else if(tr.has(i)){const f=lr(r.command);if(f===void 0||(l=cr(f),l===void 0))return null}else return null;if(l!==void 0){const f=ys(l);if(f!==void 0&&(er.has(f)||!ks.has(f)))return null}const c=dr(e);if(c.length===0)return null;const a=l!==void 0?ys(l):void 0,u=a!==void 0&&sr.has(a),d=a!==void 0&&ks.has(a);return!mr(c,u)||!d&&!u&&(!tn(c)||gr(c))?null:{path:l,source:c}}function or(n){if(typeof n!="string")return;const t=n.trimStart();if(t.length===0)return;const e=t.match(/^([^\s{]+)/);if(e)return e[1].toLowerCase()}function rr(n,t){const e=typeof n=="string"?n.trim().toLowerCase():"";return e!==""&&e!=="tool"?e:or(t)}function ir(n){if(typeof n!="string")return{};const t=n.indexOf("{");if(t<0)return{};const e=n.slice(t);try{const s=JSON.parse(e);if(s&&typeof s=="object"&&!Array.isArray(s))return s}catch{}return{}}function lr(n){return typeof n=="string"?n:void 0}function bs(n){if(typeof n!="string")return;const t=n.trim();return t.length>0?t:void 0}function ys(n){const t=n.trim().replace(/^["']|["']$/g,""),e=t.split(/[\\/]/).pop()??t,s=e.lastIndexOf(".");if(!(s<=0||s===e.length-1))return e.slice(s+1).toLowerCase()}function cr(n){const t=n.trim();if(t.length===0||/[|]/.test(t)||/&&|\|\||;/.test(t)||/[<>]/.test(t)||/`|\$\(/.test(t)||/(^|\s)(-f|-F|--follow(=\S*)?|-Wait)(\s|$)/.test(t)||/\b(grep|rg|egrep|fgrep|ag|ack|find|fd|ls|dir|get-childitem|gci|tree)\b/i.test(t)||/\bgit\s+\w/i.test(t))return;const e=ur(t);if(e.length===0)return;let s=0;const o=e[0].toLowerCase();if((o==="type"||o==="cat"||o==="bat")&&e.length>2){const l=e[1].toLowerCase();(vs.has(l)||l==="get-content"||l==="gc")&&(s=1)}const r=e[s].toLowerCase();let i=e.slice(s+1);if(r==="sed"){if(!i.some(c=>c==="-n"))return;const l=i.filter(c=>!c.startsWith("-")&&!ar(c));return Oe(l)}if(r==="get-content"||r==="gc"||vs.has(r))return Oe(Ts(i))}const vs=new Set(["cat","head","tail","type"]);function ar(n){const t=n.replace(/^["']|["']$/g,"");return/^[$\d][\d,]*[a-z]?$/i.test(t)||/p$/.test(t)}function Oe(n){const t=n.map(s=>s.replace(/^["']|["']$/g,"")).filter(s=>s.length>0);if(t.length!==1)return;const e=t[0];if(!(e.includes("*")||e.includes("?"))&&!/[\\/]$/.test(e))return e}function Ts(n){const t=[];for(let e=0;e<n.length;e++){const s=n[e];if(s.startsWith("-")){const o=n[e+1];o!==void 0&&/^\d+$/.test(o.replace(/^["']|["']$/g,""))&&e++;continue}t.push(s)}return t}function ur(n){const t=[];let e="",s=null;for(let o=0;o<n.length;o++){const r=n[o];if(s){e+=r,r===s&&(s=null);continue}if(r==='"'||r==="'"){s=r,e+=r;continue}if(/\s/.test(r)){e.length>0&&(t.push(e),e="");continue}e+=r}return e.length>0&&t.push(e),t}function dr(n){let t=fr(n);return t=hr(t),t=pr(t),t}function fr(n){const t=n.split(`
52
- `),e=Math.min(t.length,12);let s=-1;for(let i=0;i<e;i++)if(t[i].trim()==="Output:"){s=i;break}if(s<0)return n;const o=/^(Wall time:|Chunk ID:|Original token count:|Process exited with code\b)/i;let r=0;for(let i=0;i<s;i++)o.test(t[i].trim())&&r++;return r===0?n:t.slice(s+1).join(`
53
- `)}function hr(n){const t=n.split(`
54
- `),e=/^\s*(\d+)\t/;let s=0,o=0,r=-1/0,i=!0;for(const l of t){if(l.trim()==="")continue;s++;const c=e.exec(l);if(c){o++;const a=Number(c[1]);a<r&&(i=!1),r=a}}return s===0||o/s<=.6||!i?n:t.map(l=>e.test(l)?l.replace(e,""):l).join(`
55
- `)}function pr(n){return n.replace(/[\s.…]*[([]?\s*truncated\s*[)\]]?\s*$/i,"")}function mr(n,t){const e=n.slice(0,4096);if(t)return e.includes("{")&&e.includes("}");let s=0;tn(e)&&s++;const o=(e.match(/[{}()\[\];:]/g)??[]).length;o>=6&&o/e.length>=.012&&s++;const r=e.split(`
56
- `);let i=0;for(const l of r)/^(\t| {2,})\S/.test(l)&&i++;return i>=2&&s++,s>=2}function tn(n){const t=n.slice(0,4096);return nr.some(e=>t.includes(e))}function gr(n){const t=n.trim();if(t.length===0)return!1;const e=t[0];if(e!=="{"&&e!=="[")return!1;try{const s=JSON.parse(t);return s!==null&&typeof s=="object"}catch{return!1}}const J="…",kr={ts:"ts",tsx:"ts",mts:"ts",cts:"ts",js:"js",jsx:"js",mjs:"js",cjs:"js",svelte:"svelte",py:"python",pyi:"python",rs:"rust",go:"go",java:"java",kt:"java",kts:"java",c:"c",h:"c",cpp:"c",cc:"c",hpp:"c",cxx:"c",css:"css",scss:"css",less:"css",json:"json"};function br(n){const t=Math.max(n.lastIndexOf("/"),n.lastIndexOf("\\")),e=t>=0?n.slice(t+1):n,s=e.lastIndexOf(".");return s<=0?"":e.slice(s+1).toLowerCase()}function en(n,t){if(n){const e=br(n),s=kr[e];if(s)return s}return yr(t??"")}function yr(n){const t=n.slice(0,4e3);if(/^#!.*\bpython[0-9.]*\b/m.test(t))return"python";const e=/^[ \t]*(?:async[ \t]+)?def[ \t]+\w+\s*\(/m.test(t),s=/^[ \t]*class[ \t]+\w+\s*[(:]/m.test(t);return(e||s)&&/:\s*$/m.test(t)?"python":/\bfn\s+\w+\s*\(/.test(t)&&/\{/.test(t)&&/\blet\s+mut\b/.test(t)?"rust":/^\s*package\s+\w+/m.test(t)&&/\bfunc\s+/.test(t)?"go":/\bfunction\b/.test(t)||/=>/.test(t)||/\bconst\b/.test(t)||/\bimport\b[\s\S]*\bfrom\b/.test(t)?"ts":"generic"}const St={ts:{slash:!0,backtick:!0},js:{slash:!0,backtick:!0},svelte:{slash:!0,backtick:!0},rust:{slash:!0},go:{slash:!0,backtick:!0},java:{slash:!0},c:{slash:!0},css:{slash:!0},json:{},python:{hash:!0,triple:!0},generic:{slash:!0,hash:!0,backtick:!0}};function xt(n,t){const e=n.length,s=new Array(e);let o=0;const r=(l,c)=>{for(let a=l;a<c;a++)s[a]=n[a]===`
57
- `?`
58
- `:" "},i=l=>{s[l]=n[l]};for(;o<e;){const l=n[o],c=o+1<e?n[o+1]:"";if(t.slash&&l==="/"&&c==="/"){let a=o+2;for(;a<e&&n[a]!==`
59
- `;)a++;i(o),i(o+1),r(o+2,a),o=a;continue}if(t.hash&&l==="#"){let a=o+1;for(;a<e&&n[a]!==`
60
- `;)a++;i(o),r(o+1,a),o=a;continue}if(t.slash&&l==="/"&&c==="*"){let a=o+2;for(;a<e&&!(n[a]==="*"&&a+1<e&&n[a+1]==="/");)a++;const u=a<e?a+2:e;i(o),i(o+1),r(o+2,u),o=u;continue}if(t.triple&&(l==='"'||l==="'")&&n[o+1]===l&&n[o+2]===l){const a=l;let u=o+3;for(;u<e&&!(n[u]===a&&n[u+1]===a&&n[u+2]===a);)u++;const d=u<e?u+3:e;i(o),i(o+1),i(o+2),r(o+3,Math.max(o+3,d-3)),d-3>=o+3&&d<=e&&(d-3>=0&&i(d-3),d-2>=0&&d-2<e&&i(d-2),d-1>=0&&d-1<e&&i(d-1)),o=d;continue}if(l==='"'||l==="'"){const a=l;let u=o+1;for(;u<e&&n[u]!==a;)n[u]==="\\"?u+=2:u++;const d=u<e?u+1:e;i(o),r(o+1,Math.max(o+1,d-1)),d-1>=o+1&&d<=e&&n[d-1]===a&&i(d-1),o=d;continue}if(t.backtick&&l==="`"){let a=o+1;for(;a<e&&n[a]!=="`";)n[a]==="\\"?a+=2:a++;const u=a<e?a+1:e;i(o),r(o+1,Math.max(o+1,u-1)),u-1>=o+1&&u<=e&&n[u-1]==="`"&&i(u-1),o=u;continue}i(o),o++}return s.join("")}function K(n){return n.split(`
61
- `).map(t=>t.endsWith("\r")?t.slice(0,-1):t)}function ct(n){let t=0;for(const e of n)e==="{"?t++:e==="}"&&t--;return t}function le(n){let t=0;for(;t<n.length&&(n[t]===" "||n[t]===" ");)t++;return t}function ot(n){return n.trim().length===0}function sn(n,t){if(n.length===0)return{skeleton:"",totalLines:0,keptLines:0,elidedLines:0};const e=K(n).length;let s;switch(t){case"ts":case"js":case"rust":case"go":case"java":case"c":s=on(n,t);break;case"python":s=Er(n);break;case"svelte":s=Ir(n);break;case"css":s=Cr(n);break;case"json":s=$r(n);break;case"generic":default:s=rn(n);break}return{...s,totalLines:e}}const nn=/\b(class|interface|struct|enum|trait|impl|namespace|module)\b/;function vr(n){const t=n.trim();return!t||t.length>2e3?!1:/\bfunction\b/.test(t)||/\bfn\s+\w+/.test(t)||/\bfunc\b/.test(t)||/\b(get|set)\s+\w+\s*\(/.test(t)||/=>\s*\{?\s*$/.test(t)&&/[([]/.test(t)?!0:/[A-Za-z_$][\w$]*\s*\([^;]*\)\s*(?::[^={]*)?\{?\s*$/.test(t)?!(nn.test(t)||/^(if|for|while|switch|catch|do|else|return|with|match)\b/.test(t)):!1}function Tr(n){const t=n.trim();return!(!t||!nn.test(t)||/^\s*(import|export)\b/.test(t)&&!/\b(class|interface|enum|namespace|module|struct|trait|impl)\b/.test(t))}function wr(n){const t=n.trim();return/^(export\s+)?(declare\s+)?(interface|type)\b/.test(t)}function on(n,t){const e=K(n),s=K(xt(n,St[t])),o=[];let r=0,i=0;const l=[];let c=0,a=!1,u=0,d=0,f="";for(let h=0;h<e.length;h++){const m=e[h],g=s[h];if(a){if(c+=ct(g),c<=u){const y=h-d,w=g.indexOf("}"),I=w>=0?m.slice(w+1).trimEnd():"";o.push(`${f} ${Re(y)} }${I}`),i+=y,r+=1,a=!1,f="";continue}i+=1;continue}g.trim();const p=ct(g);if(ot(m)){o.push(m),r+=1,c+=p;continue}if(wr(g)&&(c===0||l.length&&l[l.length-1].kind==="container")){const y=c;if(o.push(m),r+=1,c+=p,c>y)for(h++;h<e.length&&(o.push(e[h]),r+=1,c+=ct(s[h]),!(c<=y));h++);continue}const k=Tr(g)&&p>0,b=!k&&vr(g);if(k){o.push(m),r+=1,l.push({kind:"container",depthAtOpen:c}),c+=p,ws(l,c);continue}if(b){let y=h,w=g.includes("{");for(;!w&&y+1<e.length&&!/[;{]\s*$/.test(s[y].trimEnd())&&!s[y].includes(";")&&(o.push(e[y]),r+=1,y++,w=s[y].includes("{"),!w););const I=e[y],C=s[y],x=ct(C);if(!C.includes("{")){o.push(I),r+=1,c+=x,h=y;continue}const D=c+x,A=c;if(D<=A){o.push(I),r+=1,c=D,h=y;continue}const W=je(C,A),L=(W>=0?I.slice(0,W+1):I).trimEnd();c=D,u=A;const N=W>=0?" ".repeat(W+1)+C.slice(W+1):"",Y=N?ct(N):0;if(N&&c+Y<=u){const X=N.indexOf("}"),Q=X>=0?I.slice(X+1).trimEnd():"";o.push(`${L} ${J} }${Q}`),r+=1,c+=Y,h=y;continue}f=L,a=!0,d=y+1,h=y;continue}if(p>0&&Sr(g)){const y=c;let w=h,I=c;for(I+=p;I>y&&w+1<e.length;)w++,I+=ct(s[w]);if(w-h>6){const x=g.includes("{")?"{":"[",D=x==="{"?"}":"]",A=je(g,y,x),W=A>=0?m.slice(0,A+1):m,L=w-h-1;o.push(`${W} ${Re(L)} ${D}${xr(e[w],s[w],D)}`),r+=1,i+=L+1,c=y,h=w;continue}}o.push(m),r+=1,c+=p,ws(l,c)}return a&&(o.push(`${f} ${Re(e.length-d)} }`),r+=1,a=!1,f=""),{skeleton:o.join(`
62
- `),totalLines:e.length,keptLines:r,elidedLines:i}}function ws(n,t){for(;n.length&&t<=n[n.length-1].depthAtOpen;)n.pop()}function Re(n){return n>0?`/* ${J} ${n} ${n===1?"line":"lines"} */`:`/* ${J} */`}function Sr(n){const t=n.trim();return/=\s*[{[]\s*$/.test(t)||/[:=]\s*[{[]\s*$/.test(t)}function je(n,t,e="{"){let s=t;const o=e==="{"?"}":"]";for(let r=0;r<n.length;r++){const i=n[r];if(i===e){if(s===t)return r;s++}else i===o?s--:i==="{"?s++:i==="}"&&s--}return-1}function xr(n,t,e){const s=t.lastIndexOf(e);return s<0?"":n.slice(s+1).trimEnd()}function Er(n){const t=K(n),e=K(xt(n,St.python)),s=[];let o=0,r=0,i=0;for(;i<t.length;){const l=t[i],c=e[i];if(ot(l)){s.push(l),o+=1,i++;continue}const a=c.trim();if(/^(async\s+)?def\s+\w+/.test(a)){const d=le(l);let f=i,h=0;for(;f<t.length;f++){s.push(t[f]),o+=1;for(const x of e[f])x==="("||x==="["||x==="{"?h++:(x===")"||x==="]"||x==="}")&&h--;const C=e[f].replace(/\s+$/,"");if(h<=0&&C.endsWith(":")||h<=0&&/:\s*\S/.test(e[f])&&f===i)break}let g=f+1;for(;g<t.length&&ot(t[g]);)g++;if(g>=t.length||le(t[g])<=d){i=f+1;continue}const p=t[g].slice(0,le(t[g]));let k=g,b=!1;const y=e[k].trim();if(y.startsWith('"""')||y.startsWith("'''")||/^[rbRBuU]?["']/.test(t[k].trim())){const C=y.startsWith('"""')?'"""':y.startsWith("'''")?"'''":"";if(C){let x=k;if(t[k].trim().slice(3).includes(C))s.push(t[k]),o+=1,b=!0,x=k;else{for(x=k;x<t.length&&(s.push(t[x]),o+=1,!(x>k&&t[x].includes(C)));x++);b=!0}k=x+1}else s.push(t[k]),o+=1,b=!0,k=k+1}let w=k;for(;w<t.length;){if(ot(t[w])){w++;continue}if(le(t[w])<=d)break;w++}const I=qe(t,k,w);I>0?(s.push(`${p}... # ${J} ${I} ${I===1?"line":"lines"}`),o+=1,r+=I):b||(s.push(`${p}...`),o+=1),i=w;continue}s.push(l),o+=1,i++}return{skeleton:s.join(`
63
- `),totalLines:t.length,keptLines:o,elidedLines:r}}function qe(n,t,e){let s=0;for(let o=t;o<e;o++)ot(n[o])||s++;return s}function Ir(n){const e=K(n).length,s=xt(n,St.svelte),o=n.toLowerCase(),r=[];for(const d of["script","style"]){let f=0;for(;;){const h=o.indexOf(`<${d}`,f);if(h<0)break;const m=o.indexOf(">",h);if(m<0)break;const g=o.indexOf(`</${d}`,m);if(g<0)break;const p=o.indexOf(">",g);if(p<0)break;r.push({kind:d,openStart:h,openEnd:m+1,closeStart:g,closeEnd:p+1}),f=p+1}}r.sort((d,f)=>d.openStart-f.openStart);const i=[];let l=0,c=0;const a=(d,f)=>{const h=n.slice(d,f),m=s.slice(d,f),g=K(h).filter(k=>!ot(k));if(g.length===0)return;let p=0;for(let k=0;k<m.length;k++)m[k]==="<"&&/[A-Za-z/!]/.test(m[k+1]??"")&&p++;i.push(`<!-- template · ${g.length} ${g.length===1?"line":"lines"} · ${p} ${p===1?"element":"elements"} -->`),l+=g.length};for(const d of r){d.openStart>c&&a(c,d.openStart);const f=n.slice(d.openStart,d.openEnd),h=n.slice(d.openEnd,d.closeStart),m=n.slice(d.closeStart,d.closeEnd);if(d.kind==="script"){i.push(f.trim());const g=on(h,"ts");g.skeleton.trim().length&&i.push(g.skeleton.replace(/^\n+|\n+$/g,"")),l+=g.elidedLines,i.push(m.trim())}else{const g=K(h).filter(p=>!ot(p)).length;i.push(`${f.trim()}/* ${J} ${g} ${g===1?"line":"lines"} */${m.trim()}`),l+=g}c=d.closeEnd}c<n.length&&a(c,n.length);const u=Math.max(0,e-l);return{skeleton:i.join(`
64
- `),totalLines:e,keptLines:u,elidedLines:l}}function Cr(n){const t=K(n),e=K(xt(n,St.css)),s=[];let o=0,r=0,i=0,l=0;for(;l<t.length;){const c=t[l],a=e[l];if(ot(c)){s.push(c),o+=1,l++;continue}const u=ct(a);if(u>0){const d=i,f=je(a,d,"{"),h=f>=0?c.slice(0,f).trimEnd():c.trimEnd();let m=l,g=d+u;for(a.slice(f+1);g>d&&m+1<t.length;)m++,g+=ct(e[m]);const p=qe(t,l+1,m),k=l===m;k?s.push(`${h} { ${J} }`):s.push(`${h} { ${J} }`),o+=1,r+=p+(k?0:1),i=d,l=m+1;continue}s.push(c),o+=1,i+=u,l++}return{skeleton:s.join(`
65
- `),totalLines:t.length,keptLines:o,elidedLines:r}}function $r(n){const t=K(n);try{const e=JSON.parse(n),s=_r(e),o=K(s).length;return{skeleton:s,totalLines:t.length,keptLines:o,elidedLines:Math.max(0,t.length-o)}}catch{return rn(n)}}function _r(n){if(n===null||typeof n!="object")return JSON.stringify(n)??"null";if(Array.isArray(n))return n.length===0?"[]":`[ ${J} ${n.length} ${n.length===1?"item":"items"} ]`;const t=n,e=Object.keys(t);return e.length===0?"{}":`{
66
- ${e.map(o=>` ${JSON.stringify(o)}: ${Or(t[o])}`).join(`,
67
- `)}
68
- }`}function Or(n){if(n===null||typeof n!="object")return JSON.stringify(n)??"null";if(Array.isArray(n))return n.length===0?"[]":`[ ${J} ${n.length} ${n.length===1?"item":"items"} ]`;const t=Object.keys(n);return t.length===0?"{}":`{ ${J} ${t.length} ${t.length===1?"key":"keys"} }`}const Ss=24,xs=8;function rn(n){const t=K(n),e=t.length,s=[];for(let a=0;a<t.length;a++)ot(t[a])||s.push(a);if(s.length<=Ss+xs)return{skeleton:t.join(`
69
- `),totalLines:e,keptLines:t.length,elidedLines:0};const o=s[Ss-1],r=s[s.length-xs],i=[];let l=0;for(let a=0;a<=o;a++)i.push(t[a]),l++;const c=qe(t,o+1,r);i.push(`${J} ⟨${c} lines elided — unfold for full source⟩ ${J}`),l++;for(let a=r;a<t.length;a++)i.push(t[a]),l++;return{skeleton:i.join(`
70
- `),totalLines:e,keptLines:l,elidedLines:c}}const Rr=1500,Mr=.6,Lr=10;class Ar{constructor(){this.id="code-skeleton",this.label="Code skeleton",this.host=null,this.cache=new Map}attach(t){this.host=t,this.cache.clear()}detach(){var t;(t=this.host)==null||t.setStatus(null),this.host=null,this.cache.clear()}conduct(t){var u;if(t.liveTokens<=t.budget)return(u=this.host)==null||u.setStatus(null),[];const e=new Map;for(const d of t.blocks)d.kind==="tool_call"&&d.callId&&e.set(d.callId,d);const s=t.blocks.filter(d=>!d.held&&!d.protected&&!d.grouped&&d.foldedTokens<d.tokens);let o=t.liveTokens;const r=new Map,i=new Map,l=s.filter(d=>d.kind==="tool_result"&&d.tokens>=Rr).sort((d,f)=>d.order-f.order);for(const d of l){if(o<=t.budget)break;const f=this.skeletonFor(d,e);f&&(r.set(d.id,{kind:"replace",id:d.id,content:f.content,recoverable:!0}),i.set(d.id,f.skeletonTokens),o-=f.saved)}const c=[];if(o>t.budget){const d=s.filter(f=>!r.has(f.id)).sort((f,h)=>wt[f.kind]-wt[h.kind]||f.order-h.order);for(const f of d){if(o<=t.budget)break;c.push(f.id),o+=f.foldedTokens-f.tokens}}if(o>t.budget)for(const d of s){if(o<=t.budget)break;r.has(d.id)&&(r.delete(d.id),c.push(d.id),o-=i.get(d.id)-d.foldedTokens)}const a=[...r.values()];return c.length&&a.push({kind:"fold",ids:c}),this.publishStatus(r.size,c.length,o,t),a}skeletonFor(t,e){const s=this.cache.get(t.id);if(s!==void 0)return s;const o=this.compute(t,e);return this.cache.set(t.id,o),o}compute(t,e){const s=Zs(t,e);if(!s)return null;const o=en(s.path,s.source),r=sn(s.source,o);if(r.elidedLines===0)return null;const l=`${`⟨code skeleton · ${s.path??"file"} · ${r.totalLines}L → ${r.keptLines}L · ${r.elidedLines} elided · call unfold for full source⟩`}
71
- ${r.skeleton}`,c=this.countTokens(l)+Lr,a=t.tokens-c;return a<=0||c>t.tokens*Mr?null:{content:l,skeletonTokens:c,saved:a}}countTokens(t){var e;return(e=this.host)!=null&&e.can("countTokens")?this.host.countTokens(t):Math.ceil(t.length/4)}publishStatus(t,e,s,o){if(!this.host)return;const r=o.liveTokens-s,i=s>o.budget,l=[];t&&l.push(`${t} skeleton${t===1?"":"s"}`),e&&l.push(`${e} fold${e===1?"":"s"}`);const c=l.length?l.join(" + "):"no foldable blocks",a=r>=1e3?`${(r/1e3).toFixed(1)}k`:`${Math.max(0,r)}`;this.host.setStatus(`${c} · saved ~${a} tok${i?" · still over budget":""}`,{skeletons:t,generic_folds:e,tokens_saved:r,live_tokens:s,budget:o.budget})}}function Nr(n){const t=new Set;for(const e of n)e.kind==="user"&&t.add(e.id),(e.protected||e.held)&&t.add(e.id);return t}const Es=["exact_values","decisions","commands","errors","paths"],Fr=["exact_values","decisions","commands","paths"],Dr=new Set(["the","and","for","this","that","with","from","true","false","null","const","let","var","type","return","import","export","function"]),Pr=3;function ln(n){const t={paths:[],commands:[],errors:[],exact_values:[],decisions:[]};if(typeof n!="string"||n.length===0)return t;const e=new Set,s=(o,r)=>{const i=r.trim().slice(0,80);!i||e.has(i)||o.length>=Pr||(e.add(i),o.push(i))};for(const o of n.matchAll(/\b[\w.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|json|md|css|svelte|rs|py|go|java|rb|yml|yaml|toml|sh|env|log|conf|cfg|txt|sql|proto|lock)\b/g))s(t.paths,o[0]);for(const o of n.matchAll(/(?:^|\s)((?:\.{1,2}|src|lib|app|dist|build|test|scripts?)\/[\w./-]+)/gm))s(t.paths,o[1]);for(const o of n.matchAll(/^\s*\$\s+(.+)/gm))s(t.commands,o[1].slice(0,80));for(const o of n.matchAll(/\b(?:npm|npx|pnpm|yarn|bun|node|git|docker|kubectl|make|cargo|go|python3?|pytest|deno|uv|gh)\s+\S[^\n.!?;]{0,60}/g))s(t.commands,o[0].trim());for(const o of n.matchAll(/\b(?:Error|FAIL|FAILED|error|exception|panic|ENOENT|ECONNREFUSED)[: ]+[^\n]{0,60}/g))s(t.errors,o[0].slice(0,60));/\s+at\s+\S+\s*\(/.test(n)&&s(t.errors,"stack trace");for(const o of n.matchAll(/\b(\w[\w.-]*)[ \t]*[:=][ \t]*(\S+)/g)){const r=o[1],i=o[2];!Dr.has(r.toLowerCase())&&i.length>2&&i.length<60&&s(t.exact_values,`${r}=${i}`)}for(const o of n.matchAll(/[^.!?\n]{0,200}\b(?:decided|chose|standardized on|going with|will use|selected|picked)\b[^.!?\n]{0,200}/gi))s(t.decisions,o[0].trim().slice(0,80));return t}function cn(n){const t=ln(n);return Fr.filter(e=>t[e].length>0)}function jr(n,t=24){const e=new Set,s={exact_values:[],decisions:[],commands:[],errors:[],paths:[]};for(const r of n){if(r.text===void 0)continue;const i=ln(r.text);for(const l of Es)for(const c of i[l]){const a=`${l}:${c.toLowerCase()}`;e.has(a)||(e.add(a),s[l].push({category:l,value:c,turn:r.turn,sourceId:r.id}))}}const o=[];for(const r of Es)for(const i of s[r]){if(o.length>=t)return o;o.push(i)}return o}function Gr(n,t,e){const s=Ys(Js(n),t),r=n.filter(i=>!t.has(i.id)&&!i.held&&!i.protected&&!i.grouped&&i.foldedTokens<i.tokens&&gt.has(i.kind)).map(i=>({block:i,reachable:s.has(i.id),riskCount:i.text!==void 0?cn(i.text).length:0,cold:Pe(i,e)}));return r.sort((i,l)=>i.reachable!==l.reachable?i.reachable?1:-1:i.riskCount!==l.riskCount?i.riskCount-l.riskCount:i.cold!==l.cold?i.cold-l.cold:i.block.order-l.block.order),r}const Br=1500,Wr=.6,Ve=10,Hr=600,Ur=.25,zr=.6,ce="…";function Kr(n,t,e){if(n.kind!=="tool_result"||n.tokens<Br)return null;const s=Zs(n,t);if(!s)return null;const o=en(s.path,s.source),r=sn(s.source,o);if(r.elidedLines===0)return null;const i=`⟨code skeleton · ${s.path??"file"} · ${r.totalLines}L → ${r.keptLines}L · ${r.elidedLines} elided · call unfold for full source⟩`,l=`${i}
72
- ${r.skeleton}`,c=e(l)+Ve;if(n.tokens-c<=0||c>n.tokens*Wr)return null;const u=xt(r.skeleton,St[o]);return{command:{kind:"replace",id:n.id,content:l,recoverable:!0},tokens:c,skeletonMeta:{skeletonText:r.skeleton,skeletonMask:u,lang:o,headerPrefix:i}}}const an=.3,un=150;function qr(n,t,e,s){if(s==="python")return t[e]==="#"?n.slice(e+1).replace(/^\s+/,"").startsWith("…"):!1;if(t[e]==="/"&&t[e+1]==="*"){const o=n.indexOf("*/",e+2);if(o===-1)return!1;const r=n.slice(e+2,o).trim();return r==="…"||/^…\s+\d+\s+lines?$/.test(r)}return!1}function dn(n,t,e){if(t==="json"||t==="generic")return n.length>0?[{kind:"code",text:n}]:[];const s=n.length,o=e&&e.length===s?e:xt(n,St[t]),r=[];let i=0,l=0;const c=u=>{u>l&&r.push({kind:"code",text:n.slice(l,u)})};let a=0;for(;i<s;){if(n[i]===`
73
- `){a=i+1,i++;continue}if(qr(n,o,i,t)){if(t==="python"){const u=n.indexOf(`
74
- `,i);i=u===-1?s:u}else{const u=n.indexOf("*/",i+2);i=u===-1?s:u+2}continue}if(t==="python"){if(o[i]==='"'&&o[i+1]==='"'&&o[i+2]==='"'||o[i]==="'"&&o[i+1]==="'"&&o[i+2]==="'"){if(o.slice(a,i).trim().length===0){const g=n.slice(i,i+3),p=n.indexOf(g,i+3);if(p===-1)break;const k=p+3;c(i),r.push({kind:"comment",text:n.slice(i,k)}),l=k,i=k;continue}const f=n.slice(i,i+3),h=n.indexOf(f,i+3),m=h===-1?s:h+3;for(let g=i;g<m;g++)n[g]===`
75
- `&&(a=g+1);i=m;continue}if(o[i]==="#"){const u=n.indexOf(`
76
- `,i),d=u===-1?s:u+1;c(i),r.push({kind:"comment",text:n.slice(i,d)}),l=d,u!==-1&&(a=d),i=d;continue}}else{if(t!=="css"&&o[i]==="/"&&o[i+1]==="/"){const u=n.indexOf(`
77
- `,i),d=u===-1?s:u+1;c(i),r.push({kind:"comment",text:n.slice(i,d)}),l=d,u!==-1&&(a=d),i=d;continue}if(o[i]==="/"&&o[i+1]==="*"){const u=n.indexOf("*/",i+2);if(u===-1)break;const d=u+2,f=d<s&&n[d]===`
78
- `?d+1:d;c(i),r.push({kind:"comment",text:n.slice(i,f)}),l=f,f>d&&(a=f),i=f;continue}}i++}return c(s),r}function Vr(n,t){return n.map(e=>e.kind==="code"?e.text:t.get(e.text)??e.text).join("")}function Jr(n,t,e,s,o,r,i){const l=o(t);if(l===0)return null;const c=dn(t,e,i);let a=0;for(const p of c)p.kind==="comment"&&(a+=o(p.text));if(a<un||a/l<an)return null;let u=!1,d=!1;for(const p of c){if(p.kind!=="comment")continue;const k=s.get(p.text);k!==void 0&&(u=!0,o(k)<o(p.text)&&(d=!0))}if(!u||!d)return null;const f=Vr(c,s),h=`${r}
79
- ${f}`,m=o(h)+Ve;return m>=n.tokens?null:{command:{kind:"replace",id:n.command.kind==="replace"?n.command.id:"",content:h,recoverable:!0},tokens:m}}function Yr(n,t){if(n.text===void 0||n.tokens<Hr)return null;const e=Xr(n.text,n.turn),s=t(e)+Ve;return n.tokens-s<=0||s>n.tokens*zr?null:{command:{kind:"replace",id:n.id,content:e,recoverable:!0},tokens:s}}function Xr(n,t){const e=n.split(`
80
- `),s=e.length,o=Math.max(240,Math.floor(n.length*Ur));if(s<=4){const m=n.length>o?n.slice(0,o-1).trimEnd()+ce:n;return`⟦trim t${t}⟧ ${m}`}const r=new Set;let i=0;const l=m=>{if(m<0||m>=s||r.has(m))return;const g=e[m].length+1;r.size>0&&i+g>o||(r.add(m),i+=g)};for(let m=0;m<s;m++)e[m].length>0&&cn(e[m]).length>0&&l(m);l(0),l(1),l(s-1),l(s-2);const c=e.map((m,g)=>({i:g,len:m.length})).sort((m,g)=>g.len-m.len||m.i-g.i);for(const{i:m}of c){if(i>=o)break;l(m)}const a=[...r].sort((m,g)=>m-g),u=[];let d=-1;for(const m of a)d>=0&&m>d+1&&u.push(`⟪${ce} ${m-d-1} more ${ce}⟫`),u.push(e[m]),d=m;d>=0&&d<s-1&&u.push(`⟪${ce}⟫`);const f=u.join(`
81
- `),h=f.length>o?f.slice(0,o-3).trimEnd()+"...":f;return`⟦trim t${t}⟧ ${h}`}function Qr(n){return{command:{kind:"fold",ids:[n.id]},tokens:n.foldedTokens}}const Is={high:.9,low:.7};function Cs(n,t){return Math.min(n,t??n)}function Zr(n){let t=0,e=1/0,s=-1/0,o=!1;const r=new Set;for(const l of n)t+=l.tokens,l.turn<e&&(e=l.turn),l.turn>s&&(s=l.turn),r.add(l.kind),l.kind==="user"&&(o=!0);let i=64;return i+=String(n.length).length,i+=String(Math.max(0,t)).length,i+=String(Math.max(0,isFinite(s)?s:0)).length*2,i+=r.size*24,o&&(i+=80),Math.ceil(i/4)+8}function ti(n,t,e,s,o,r,i){const l=[],c=[],a=[],u=[],d=[],f=new Set,h=new Set,m=p=>h.has(p.id)?p.foldedTokens:s.get(p.id)??p.tokens,g=p=>f.has(p);for(;!(e<=t);){let p=null,k=0;for(const b of n){if(f.has(b.id)||h.has(b.id)||r.has(b.id)||!i(b))continue;const y=m(b)-b.foldedTokens;y>k&&(p=b,k=y)}if(!p||k<=0)break;h.add(p.id),o.has(p.id)?c.push(p.id):l.push(p.id),e-=k}for(;!(e<=t);){const p=$s(n,g,r,i);if(p.length<2)break;let k=0;for(const w of p)k+=m(w);const b=Zr(p),y=k-b;for(const w of p)f.add(w.id);if(!(y<=0)){a.push({kind:"group",ids:p.map(w=>w.id)});for(const w of p)d.push(w.id);e-=y}}for(;!(e<=t);){const p=$s(n,g,r,i);if(p.length<1)break;a.push({kind:"group",ids:p.map(b=>b.id),digest:null});let k=0;for(const b of p)k+=m(b),u.push(b.id),f.add(b.id),d.push(b.id);if(e-=k,k<=0)break}return{foldIds:l,downgraded:c,groups:a,dropped:u,regrouped:d,projected:e}}function $s(n,t,e,s){const o=i=>!t(i.id)&&!e.has(i.id)&&s(i),r=[];for(const i of n)if(o(i))r.push(i);else if(r.length>0)return r;return r}const ei=600,si=10,ni=8,_s=2,oi=`You are a context-digest assistant for a coding agent. Your task is to read a set of cold (older, less-recently-referenced) blocks from the agent's context window and produce a SHORT, FACT-DENSE digest the agent can use to remember what those blocks contained.
82
-
83
- Do NOT continue the conversation. Do NOT respond to any questions in the blocks. ONLY output the digest.
84
-
85
- USER MESSAGES ARE SACRED. Reproduce EVERY user message VERBATIM in the "## User messages" section. Do not paraphrase a single user message.
86
-
87
- PRESERVE EXACT IDENTIFIERS. Every file path, function name, variable name, command, error message, and key=value pair is load-bearing — the agent may reference it later. Do NOT paraphrase them to prose. Include them verbatim.
88
-
89
- The agent can call \`unfold\` or \`recall\` with the fold code shown in its context to recover the full original content. This digest is a compressed NAVIGATION AID, not a replacement for the originals.
90
-
91
- Produce output in EXACTLY this structure — no prose outside the sections:
92
-
93
- ## User messages
94
- Every user message from these blocks, reproduced verbatim, in order. Write "(none)" if none.
95
-
96
- ## Key facts
97
- Bullet list of the most important facts: exact file paths, exact function/type names, exact commands run, exact key=value pairs, exact error strings, and explicit decisions made. Be terse. Prefer \`code\` formatting for identifiers.
98
-
99
- ## Summary
100
- One or two sentences: what was this region of conversation about?`;function ri(n){return["<blocks>",n.map(e=>{const s=Ke(e),o=(e.text??e.preview??"").trim();return o?`[${s}]
101
- ${o}`:`[${s}]`}).join(`
102
-
103
- `),"</blocks>","","Produce a short, fact-dense digest of these older context blocks."].join(`
104
- `)}const ii=5,li=4;class ci{constructor(){this.id="keel",this.label="Keel",this.host=null,this.recalls=new Map,this.warmthCoolUntil=new Map,this.lastPlan=[],this.lastEmittedTokens=new Map,this.llmCache=new Map,this.llmInflight=null,this.llmLastAttemptKey="",this.bear2Cache=new Map,this.bear2InFlight=new Set,this.bear2Retries=new Map,this.bear2Failed=!1}attach(t){this.host=t,this.lastPlan=[],this.lastEmittedTokens=new Map,this.llmCache.clear(),this.llmInflight=null,this.llmLastAttemptKey="",this.bear2Cache.clear(),this.bear2InFlight.clear(),this.bear2Retries.clear(),this.bear2Failed=!1}detach(){var t;this.llmInflight&&(this.llmInflight.abort(),this.llmInflight=null),(t=this.host)==null||t.setStatus(null),this.host=null,this.recalls.clear(),this.warmthCoolUntil.clear(),this.lastPlan=[],this.lastEmittedTokens=new Map,this.llmCache.clear(),this.llmLastAttemptKey="",this.bear2Cache.clear(),this.bear2InFlight.clear(),this.bear2Retries.clear(),this.bear2Failed=!1}conduct(t){var Et,It,Ct;const e=t.blocks,s=new Map(e.map(v=>[v.id,v]));for(const v of[...this.recalls.keys()])s.has(v)||this.recalls.delete(v);for(const v of[...this.warmthCoolUntil.keys()])s.has(v)||this.warmthCoolUntil.delete(v);const o=ze(e);if(this.updateWarmth(e,o),t.liveTokens<=t.budget)return this.lastPlan=[],(Et=this.host)==null||Et.setStatus(null),[];const r=Nr(e),i=new Set;for(const v of e)v.protected&&v.callId&&i.add(v.callId);const l={currentTurn:o,recalls:this.recalls,tailCallIds:i},c=Gr(e,r,l),a=Cs(t.budget,t.contextWindow),u=Is.high*a,d=Is.low*a;let f=t.liveTokens,h=0;for(const[v,_]of this.lastEmittedTokens){const P=s.get(v);!P||P.folded||P.held||P.protected||P.grouped||(f+=_-P.tokens,h++)}if(h>0&&f<=u&&f<=t.budget&&this.lastPlan.length>0)return this.publishStatus(e,h,0,[],f,t,!0),this.lastPlan;const m=Math.min(d,t.budget),g=new Map;for(const v of e)v.kind==="tool_call"&&v.callId&&g.set(v.callId,v);const p=v=>{var _;return(_=this.host)!=null&&_.can("countTokens")?this.host.countTokens(v):Math.ceil(v.length/4)};let k=t.liveTokens;const b=new Map,y=[],w=new Set,I=new Map,C=new Map,x=[];for(const v of c){if(k<=m)break;const _=v.block,P=this.route(_,g,p);P&&(P.command.kind==="replace"?(b.set(_.id,P.command),w.add(_.id)):(y.push(_.id),x.push(_)),I.set(_.id,P.tokens),C.set(_.id,P.tokens),k-=_.tokens-P.tokens)}const D=[],A=new Set;if((It=this.host)!=null&&It.can("complete")&&x.length>0){const v=x.map(P=>P.id).sort().join("\0"),_=(Ct=this.llmCache.get(v))==null?void 0:Ct.trim();if(_){const P=Math.ceil(_.length/4)+si;for(const rt of ai(x)){let Ye=0;for(const kt of rt)Ye+=kt.foldedTokens;if(P>=Ye)continue;const bn=rt.map(kt=>kt.id);D.push({kind:"group",ids:bn,digest:_});for(const kt of rt)A.add(kt.id),k-=kt.foldedTokens;k+=P}if(A.size>0)for(let rt=y.length-1;rt>=0;rt--)A.has(y[rt])&&y.splice(rt,1)}else v!==this.llmLastAttemptKey&&this.llmInflight===null&&this.launchDeepDigest(x,v)}const L=ti(e,a,k,I,w,r,v=>!v.held&&!v.protected&&!v.grouped&&!A.has(v.id)&&v.foldedTokens<v.tokens&&gt.has(v.kind));for(const v of L.foldIds){y.push(v);const _=s.get(v);_&&C.set(v,_.foldedTokens)}for(const v of L.downgraded){b.delete(v),w.delete(v),y.push(v);const _=s.get(v);_&&C.set(v,_.foldedTokens)}k=L.projected;const N=new Set(L.regrouped),Y=y.filter(v=>!N.has(v));for(const v of N)b.delete(v);const X=[...b.values()],Q=[...X];Y.length&&Q.push({kind:"fold",ids:Y});for(const v of D)Q.push(v);for(const v of L.groups)Q.push(v);return this.lastEmittedTokens=L.groups.length===0&&D.length===0?C:new Map,this.lastPlan=Q,this.publishStatus(e,Y.length,X.length,L.dropped,k,t,!1),Q}route(t,e,s){var i;const o=Kr(t,e,s);if(o){const l=o.skeletonMeta;if(l&&!this.bear2Failed&&((i=this.host)!=null&&i.can("compress"))&&typeof this.host.compress=="function"){const c=Jr(o,l.skeletonText,l.lang,this.bear2Cache,s,l.headerPrefix,l.skeletonMask);if(c)return c;const a=dn(l.skeletonText,l.lang,l.skeletonMask),u=s(l.skeletonText);let d=0;for(const h of a)h.kind==="comment"&&(d+=s(h.text));d>=un&&u>0&&d/u>=an&&this.launchBear2Spans(a.filter(h=>h.kind==="comment").map(h=>h.text))}return o}const r=Yr(t,s);return r||Qr(t)}launchBear2Spans(t){const e=this.host;if(e!=null&&e.compress)for(const s of t){if(this.bear2InFlight.size>=ni)break;this.bear2Cache.has(s)||this.bear2InFlight.has(s)||(this.bear2Retries.get(s)??0)>=_s||(this.bear2InFlight.add(s),e.compress(s).then(o=>{if(this.host!==e)return;this.bear2InFlight.delete(s);const r=(o??"").trim(),i=Math.ceil(s.length/4),l=Math.ceil(r.length/4);r.length>0&&l<i?this.bear2Cache.set(s,r):this.bear2Cache.set(s,s),this.bear2Retries.delete(s),e.requestRerun()},o=>{if(this.host!==e)return;this.bear2InFlight.delete(s);const r=(this.bear2Retries.get(s)??0)+1;this.bear2Retries.set(s,r),r>=_s&&(this.bear2Cache.set(s,s),this.bear2Failed=!0),e.requestRerun()}))}}launchDeepDigest(t,e){if(this.llmInflight!==null||!this.host)return;this.llmLastAttemptKey=e;const s=ri(t),o=new AbortController;this.llmInflight=o,this.host.complete({system:oi,prompt:s,maxOutputTokens:ei,signal:o.signal}).then(r=>{var l,c;if(this.llmInflight!==o)return;this.llmInflight=null;const i=r.text.trim();if(!i){(l=this.host)==null||l.setStatus("Keel deep digest: model returned an empty summary",{deep_zone_blocks:t.length});return}this.llmCache.set(e,i),this.lastPlan=[],(c=this.host)==null||c.requestRerun()},r=>{this.llmInflight===o&&(this.llmInflight=null,this.lastPlan=[])})}updateWarmth(t,e){const s=Ue(t),o=we(s);if(o.size===0)return;const r=t.filter(l=>gt.has(l.kind)&&!l.held&&!l.protected&&!l.grouped);let i=0;for(const l of be(o,r).keys()){if(i>=li)break;if((this.warmthCoolUntil.get(l)??0)>e)continue;const c=this.recalls.get(l);c?c.includes(e)||c.push(e):this.recalls.set(l,[e]),this.warmthCoolUntil.set(l,e+ii),i++}}publishStatus(t,e,s,o,r,i,l){if(!this.host)return;const c=i.liveTokens-r,a=Cs(i.budget,i.contextWindow),u=r>a,d=this.irreducibleFloor(t),f=[];l&&f.push("hold"),s&&f.push(`${s} skeleton/trim`),e&&f.push(`${e} fold`),o.length&&f.push(`${o.length} DROPPED`);const h=f.length?f.join(" + "):"raw",m=c>=1e3?`${(c/1e3).toFixed(1)}k`:`${Math.max(0,c)}`,g=u?d>a?" · OVER BUDGET: protected tail/roots exceed cap":" · still over budget":"";this.host.setStatus(`${h} · saved ~${m} tok${g}${o.length?" · irreversible drop announced":""}`,{folds:e,substitutions:s,dropped:o.length,tokens_saved:c,live_tokens:r,budget:i.budget,cap:a,irreducible_floor:d,over_budget:u},{factLedger:jr(t).map(p=>({category:p.category,value:p.value,turn:p.turn??null,sourceId:p.sourceId??null}))})}irreducibleFloor(t){let e=0;for(const s of t)(s.kind==="user"||s.protected||s.held)&&(e+=s.tokens);return e}}function ai(n){const t=[...n].sort((o,r)=>o.order-r.order),e=[];let s=[];for(const o of t)s.length===0||o.order===s[s.length-1].order+1?s.push(o):(e.push(s),s=[o]);return s.length&&e.push(s),e}const ui=[{id:"builtin",label:"Built-in",create:()=>new Vs},{id:"cold-score",label:"Cold-score",create:()=>new Ao},{id:"cold-epoch",label:"Cold epoch",create:()=>new Do},{id:"sliding-window",label:"Sliding window",locks:["human-steering","agent-unfold"],create:()=>new Bo},{id:"garbage-collector",label:"Garbage collector",create:()=>new Ho},{id:"compaction-naive",label:"Naive compaction",locks:["human-steering","agent-unfold"],create:()=>new Ko},{id:"bear2-hybrid",label:"Bear-2 hybrid",locks:["human-steering","agent-unfold"],create:()=>new Qo},{id:"code-skeleton",label:"Code skeleton",create:()=>new Ar},{id:"keel",label:"Keel",create:()=>new ci}];function di(n){return ui.find(t=>t.id===n)??null}const fi=1.25,hi=/^\s*\{#[0-9a-z]{6} FOLDED\}\s*/;function ut(n){const t=n.match(/^(.*):p(?:\d+|\?)$/);if(t)return t[1];const e=n.match(/^(.+):\d+$/);return e&&!/^[a-z]:\d+$/.test(n)?e[1]:n}var Pt,jt,Gt,Bt,Wt,Ht,Ut,zt,Kt,qt,Vt,Jt,Yt,Xt,Qt,Zt,te,ee,se,ne,oe,re;class ye{constructor(t){$(this,"meta");R(this,Pt,U(H([])));R(this,jt,U(7e4));R(this,Gt,U(null));R(this,Bt,U(2e4));R(this,Wt,U(H([])));$(this,"logN",0);R(this,Ht,U(H([])));$(this,"decisionN",0);R(this,Ut,U(0));R(this,zt,U(H([])));$(this,"index",new Map);R(this,Kt,U(H(new Vs)));$(this,"lastCmds",[]);$(this,"conducting",!1);$(this,"conductorEpoch",0);$(this,"conductorRerunQueuedFor",null);R(this,qt,U(H([])));$(this,"onHumanOverride",null);R(this,Vt,U(H({text:"",metrics:{},details:void 0})));$(this,"completer",null);$(this,"compressor",null);R(this,Jt,U(H([])));R(this,Yt,U(0));R(this,Xt,Z(()=>{let t=0;for(const e of this.blocks)t+=this.effTokens(e);return t}));R(this,Qt,Z(()=>{let t=0;for(const e of this.blocks)t+=e.tokens;return t}));R(this,Zt,Z(()=>this.fullTokens-this.liveTokens));R(this,te,Z(()=>{let t=0;for(const e of this.blocks)this.isFolded(e)&&t++;return t}));R(this,ee,Z(()=>this.liveTokens>this.budget));R(this,se,Z(()=>{const t=new Map;for(const e of this.groups)for(const s of e.memberIds)t.set(s,e);return t}));R(this,ne,Z(()=>{const t=new Map;for(const e of this.groups){if(!e.folded)continue;const s=this.classifyGroup(e);let o=0;s.carrier&&(this.isDropGroup(e)?o=0:typeof e.digest=="string"?o=nt(e.digest)+Tt:o=fs(e,s.collapsedMembers));for(const r of s.members)s.collapsed.has(r.id)?t.set(r.id,{tokens:r.id===s.carrier?o:0,collapsed:!0}):t.set(r.id,{tokens:r.tokens,collapsed:!1})}return t}));R(this,oe,Z(()=>{if(!this.blocks.length)return 0;const t=this.isLocked("tail-size")?this.activeTailTokens:this.protectTokens;if(t===0)return this.blocks.length;const e=t*fi;let s=this.blocks[this.blocks.length-1].tokens;if(s>=t)return this.blocks.length-1;for(let o=this.blocks.length-2;o>=0;o--){const r=s+this.blocks[o].tokens;if(r>e)return o+1;if(s=r,s>=t)return o}return 0}));R(this,re,Z(()=>{let t=0;for(let e=this.protectedFromIndex;e<this.blocks.length;e++)t+=this.blocks[e].tokens;return t}));this.meta=t.meta,this.blocks=t.blocks,this.reindex(),this.attachConductorHost(this.conductor),this.refold()}get blocks(){return O(S(this,Pt))}set blocks(t){M(S(this,Pt),t,!0)}get budget(){return O(S(this,jt))}set budget(t){M(S(this,jt),t,!0)}get contextWindow(){return O(S(this,Gt))}set contextWindow(t){M(S(this,Gt),t,!0)}get protectTokens(){return O(S(this,Bt))}set protectTokens(t){M(S(this,Bt),t,!0)}get log(){return O(S(this,Wt))}set log(t){M(S(this,Wt),t,!0)}get decisionJournal(){return O(S(this,Ht))}set decisionJournal(t){M(S(this,Ht),t,!0)}get version(){return O(S(this,Ut))}set version(t){M(S(this,Ut),t,!0)}get groups(){return O(S(this,zt))}set groups(t){M(S(this,zt),t,!0)}get conductor(){return O(S(this,Kt))}set conductor(t){M(S(this,Kt),t,!0)}get lastReports(){return O(S(this,qt))}set lastReports(t){M(S(this,qt),t,!0)}get conductorStatus(){return O(S(this,Vt))}set conductorStatus(t){M(S(this,Vt),t,!0)}get activeLocks(){return O(S(this,Jt))}set activeLocks(t){M(S(this,Jt),t,!0)}get activeTailTokens(){return O(S(this,Yt))}set activeTailTokens(t){M(S(this,Yt),t,!0)}syncLocks(){var e,s;this.activeLocks=((e=this.conductor)==null?void 0:e.locks)??[];const t=(s=this.conductor)==null?void 0:s.tailTokens;this.activeTailTokens=Number.isFinite(t)?Math.max(0,Math.round(t)):0}isLocked(t){return Ce(this.activeLocks,t)}get lockingConductorLabel(){var t;return this.activeLocks.length?((t=this.conductor)==null?void 0:t.label)??null:null}get locks(){return this.activeLocks}humanLocked(t){return t==="you"&&this.isLocked("human-steering")}attach(t){this.detachConductorHost(this.conductor),this.conductorEpoch++,this.conductorRerunQueuedFor=null,this.clearConductorStatus(),this.conductor=t,this.syncLocks(),this.lastCmds=[],this.lastReports=[],this.releaseLockedDomains((t==null?void 0:t.locks)??[]),this.attachConductorHost(t),this.refold()}detach(){if(this.conductor===null)return;const t=this.conductor;this.freezeForDetach(),this.detachConductorHost(t),this.conductorEpoch++,this.conductorRerunQueuedFor=null,this.clearConductorStatus(),this.conductor=null,this.syncLocks(),this.lastCmds=[],this.lastReports=[],this.refold()}dispose(){this.detachConductorHost(this.conductor),this.conductor=null}releaseLockedDomains(t){const e=Ce(t,"human-steering"),s=Ce(t,"agent-unfold");if(!(!e&&!s)){for(const o of this.blocks){const r=o.by==="you"&&(o.override==="pinned"||o.override==="folded"||o.override==="unfolded"),i=o.by==="agent"&&o.override==="unfolded";(e&&r||s&&i)&&(o.override=null,o.by=null,o.subst=void 0)}if(e&&this.groups.length){const o=this.groups.filter(r=>r.by==="auto"||r.by==="conductor");o.length!==this.groups.length&&(this.groups=o)}}}reconcileLocks(){var t;this.syncLocks(),this.releaseLockedDomains(((t=this.conductor)==null?void 0:t.locks)??[]),this.refold()}freezeForDetach(){this.isLocked("tail-size")&&(this.protectTokens=this.activeTailTokens);for(const s of this.blocks)s.override===null&&this.isFolded(s)&&(this.inFoldedGroup(s.id)||(s.override="folded",s.by="you",s.autoFolded=!1));let t=!1;const e=this.groups.map(s=>s.folded&&(s.by==="auto"||s.by==="conductor")?(t=!0,{...s,by:"you"}):s);t&&(this.groups=e)}reindex(){this.index.clear();for(let t=0;t<this.blocks.length;t++)this.index.set(this.blocks[t].id,t)}clearConductorStatus(){this.conductorStatus.text="",this.conductorStatus.metrics={},this.conductorStatus.details=void 0}buildHost(t,e){const s=this;return{can(o){return o==="complete"?s.conductor===t&&s.conductorEpoch===e&&s.completer!=null:o==="compress"?s.conductor===t&&s.conductorEpoch===e&&s.compressor!=null:o==="countTokens"||o==="digest"},complete(o){return s.conductor!==t||s.conductorEpoch!==e?Promise.reject(new Error("stale conductor host")):s.completer?s.completer(o):Promise.reject(new Error("completion capability unavailable"))},compress(o){return s.conductor!==t||s.conductorEpoch!==e?Promise.reject(new Error("stale conductor host")):s.compressor?s.compressor(o):Promise.reject(new Error("compress capability unavailable"))},countTokens(o){return nt(o)},digestOf(o){const r=s.get(o);return r?ge(r):null},setStatus(o,r={},i){s.conductor!==t||s.conductorEpoch!==e||(s.conductorStatus.text=o??"",s.conductorStatus.metrics=o?r:{},s.conductorStatus.details=o?i:void 0)},requestRerun:()=>s.requestConductorRerun(t,e)}}attachConductorHost(t){if(!(t!=null&&t.attach))return;const e=this.conductorEpoch;try{t.attach(this.buildHost(t,e))}catch(s){this.emit("conductor","conductor attach error",s instanceof Error?s.message:String(s))}}detachConductorHost(t){if(t!=null&&t.detach)try{t.detach()}catch(e){this.emit("conductor","conductor detach error",e instanceof Error?e.message:String(e))}}requestConductorRerun(t,e){if(this.conductor!==t||this.conductorEpoch!==e||this.conductorRerunQueuedFor)return;const s={conductor:t,epoch:e};this.conductorRerunQueuedFor=s,(typeof queueMicrotask=="function"?queueMicrotask:r=>Promise.resolve().then(r))(()=>{this.conductorRerunQueuedFor===s&&(this.conductorRerunQueuedFor=null,!(this.conductor!==t||this.conductorEpoch!==e)&&this.refold())})}isFolded(t){const e=this.groupWire.get(t.id);return e?e.collapsed:t.override==="folded"?!0:t.override==="pinned"||t.override==="unfolded"?!1:t.autoFolded}effTokens(t){const e=this.groupWire.get(t.id);return e?e.tokens:this.isFolded(t)?t.subst!==void 0?So(t.subst):ds(t):t.tokens}digestOf(t){return t.subst??ge(t)}get liveTokens(){return O(S(this,Xt))}set liveTokens(t){M(S(this,Xt),t)}get fullTokens(){return O(S(this,Qt))}set fullTokens(t){M(S(this,Qt),t)}get savedTokens(){return O(S(this,Zt))}set savedTokens(t){M(S(this,Zt),t)}get foldedCount(){return O(S(this,te))}set foldedCount(t){M(S(this,te),t)}get overBudget(){return O(S(this,ee))}set overBudget(t){M(S(this,ee),t)}get groupAt(){return O(S(this,se))}set groupAt(t){M(S(this,se),t)}get groupWire(){return O(S(this,ne))}set groupWire(t){M(S(this,ne),t)}classifyGroup(t){var d;const e=[];for(const f of t.memberIds){const h=this.get(f);h&&e.push(h)}const s=new Set,o=new Set;for(const f of e)f.callId&&(f.kind==="tool_call"?s.add(f.callId):f.kind==="tool_result"&&o.add(f.callId));const r=f=>f.kind==="tool_call"?!f.callId||o.has(f.callId):f.kind==="tool_result"?!f.callId||s.has(f.callId):!0,i=new Map;for(const f of e){const h=ut(f.id),m=i.get(h);m?m.push(f):i.set(h,[f])}const l=new Set;for(const[f,h]of i)h.every(r)&&l.add(f);const c=new Set,a=new Set,u=[];for(const f of e)l.has(ut(f.id))?(c.add(f.id),u.push(f)):a.add(f.id);return{members:e,collapsedMembers:u,collapsed:c,stragglers:a,carrier:((d=u[0])==null?void 0:d.id)??null}}get protectedFromIndex(){return O(S(this,oe))}set protectedFromIndex(t){M(S(this,oe),t)}isProtected(t){return(this.index.get(t.id)??-1)>=this.protectedFromIndex}get protectedTokens(){return O(S(this,re))}set protectedTokens(t){M(S(this,re),t)}pruneProtectedGroups(){if(!this.groups.length)return;const t=this.protectedFromIndex,e=this.groups.filter(s=>{const o=s.memberIds.some(r=>(this.index.get(r)??1/0)>=t);return o&&this.emit("auto","ungrouped (protected)",`${s.memberIds.length} blocks`),!o});e.length!==this.groups.length&&(this.groups=e)}refold(){this.runConductor()}runConductor(){if(!this.conducting){this.conducting=!0;try{const t=this.snapshotFoldState(),e=this.snapshotFoldedConductorGroups();this.pruneProtectedGroups();const s=this.protectedFromIndex;this.healProtected(s),this.clearConductorState(),this.version++;let o;try{o=this.conductor?this.conductor.conduct(this.buildView(s)):[]}catch(c){o=null,this.emit("conductor","conductor error",c instanceof Error?c.message:String(c))}const r=o===null?this.lastCmds:o,i="auto",l=this.applyCommands(r,i);this.lastReports=l,o!==null&&(this.lastCmds=r);for(const c of l)c.reason!=="noop"&&(this.emit(i,`clamped · ${c.reason}`,c.detail),this.recordDecision(i,"clamp",c.ids,c.detail,c.reason));this.recordConductorTransitions(t,e)}finally{this.conducting=!1}}}healProtected(t){this.blocks.forEach((e,s)=>{s>=t&&e.override==="folded"&&(this.emit(e.by??"auto","unfolded (protected)",G(e)),e.override=null,e.by=null)})}clearConductorState(){for(const e of this.blocks)e.override===null&&(e.autoFolded=!1,e.subst=void 0,(e.by==="auto"||e.by==="conductor")&&(e.by=null));const t=this.groups.filter(e=>e.by!=="auto"&&e.by!=="conductor");t.length!==this.groups.length&&(this.groups=t)}buildView(t){return{blocks:this.blocks.map((s,o)=>({id:s.id,messageKey:ut(s.id),kind:s.kind,turn:s.turn,order:s.order,tokens:s.tokens,foldedTokens:ht(s)?ds(s):s.tokens,toolName:s.toolName,callId:s.callId,isError:s.isError,held:s.override!==null,folded:this.isFolded(s),protected:o>=t,grouped:this.groupWire.has(s.id),text:s.text})),budget:this.budget,contextWindow:this.contextWindow,liveTokens:this.liveTokens,protectedFromIndex:t,protectTokens:this.isLocked("tail-size")?this.activeTailTokens:this.protectTokens}}applyCommands(t,e){const s=[];for(const o of t)switch(o.kind){case"fold":for(const r of o.ids)this.substOne(r,o.digest,e,"fold",s);break;case"replace":this.substOne(o.id,o.content,e,"replace",s,o.recoverable??!1);break;case"restore":case"pin":for(const r of o.ids)this.liveOne(r,e,o.kind,s);break;case"group":this.groupCmd(o.ids,e,s,o.digest);break}return s}substOne(t,e,s,o,r,i=!1){const l=this.get(t);if(!l)return void r.push(q(o,[t],"unknown-id",`no block ${t}`));if(l.override!==null)return void r.push(q(o,[t],"human-override",`${G(l)} is held by the human`));if(this.groupWire.has(t))return void r.push(q(o,[t],"grouped",`${G(l)} is inside a folded group`));if(this.isProtected(l))return void r.push(q(o,[t],"protected",`${G(l)} is in the protected working tail`));if(!ht(l))return void r.push(q(o,[t],"not-foldable",`${G(l)} is a ${l.kind}; only text/thinking/tool_result fold on the wire`));l.autoFolded=!0,e===""||e===void 0?l.subst=void 0:i?l.subst=`${He(t)} ${e.replace(hi,"")}`:l.subst=e,l.by=s}liveOne(t,e,s,o){const r=this.get(t);if(!r)return void o.push(q(s,[t],"unknown-id",`no block ${t}`));if(r.override!==null)return void o.push(q(s,[t],"human-override",`${G(r)} is held by the human`));if(this.groupWire.has(t))return void o.push(q(s,[t],"grouped",`${G(r)} is inside a folded group`));if(!r.autoFolded&&r.subst===void 0)return void o.push(q(s,[t],"noop",`${G(r)} is already live`));r.autoFolded=!1,r.subst=void 0,(r.by==="auto"||r.by==="conductor")&&(r.by=null)}groupCmd(t,e,s,o){if(t.length<1)return void s.push(q("group",t,"invalid-group","a group needs ≥1 block"));const r=this.snappedRange(t[0],t[t.length-1]);if(r){const l=r.filter(c=>{var a;return((a=this.get(c))==null?void 0:a.override)!=null});if(l.length)return void s.push(q("group",t,"human-override",`would collapse ${l.length} human-held block(s)`))}this.createGroup(t[0],t[t.length-1],e,o)||s.push(q("group",t,"invalid-group","not a valid contiguous, ungrouped run older than the protected tail"))}setBudget(t){this.budget=Math.max(1e3,Math.round(t)),this.refold()}setContextWindow(t){this.contextWindow=t}appendBlocks(t){if(!t.length)return;const e=[];for(const s of t)this.index.has(s.id)||(this.index.set(s.id,this.blocks.length+e.length),e.push(s));e.length&&(this.blocks.push(...e),this.refold())}setProtect(t){this.isLocked("tail-size")||(this.protectTokens=Math.max(0,Math.round(t)),this.refold())}emit(t,e,s){this.log.unshift({by:t,action:e,detail:s,n:this.logN++}),this.log.length>80&&this.log.pop()}recordDecision(t,e,s,o,r){const i=s.length?this.get(s[0]):void 0;this.prependDecisionEvents([{n:this.decisionN++,at:Date.now(),by:t,action:e,ids:s,detail:o,turn:i==null?void 0:i.turn,kind:i==null?void 0:i.kind,reason:r}])}recordGroupDecision(t,e,s,o){var r;this.prependDecisionEvents([{n:this.decisionN++,at:Date.now(),by:t,action:e,ids:[s.id,...s.memberIds],detail:o,turn:(r=this.get(s.memberIds[0]))==null?void 0:r.turn,kind:"group"}])}prependDecisionEvents(t){t.length&&(this.decisionJournal=[...t,...this.decisionJournal].slice(0,500))}snapshotFoldState(){const t=new Map;for(const e of this.blocks){const s=this.isFolded(e);t.set(e.id,{folded:s,digest:s?this.digestOf(e):"",grouped:this.groupWire.has(e.id)})}return t}snapshotFoldedConductorGroups(){const t=new Map;for(const e of this.groups)!e.folded||e.by!=="auto"&&e.by!=="conductor"||t.set(e.id,{memberIds:[...e.memberIds],digest:e.digest});return t}sameGroupSnapshot(t,e){return!!t&&t.digest===e.digest&&t.memberIds.length===e.memberIds.length&&t.memberIds.every((s,o)=>s===e.memberIds[o])}recordConductorTransitions(t,e){var l,c;const s=[],o={fold:0,replace:0,restore:0,group:0,ungroup:0},r=this.snapshotFoldedConductorGroups();for(const a of this.groups)!a.folded||a.by!=="auto"&&a.by!=="conductor"||this.sameGroupSnapshot(e.get(a.id),a)||(s.push({n:this.decisionN++,at:Date.now(),by:"auto",action:"group",ids:[a.id],detail:`${a.memberIds.length} blocks`,turn:(l=this.get(a.memberIds[0]))==null?void 0:l.turn,kind:"group"}),o.group++);for(const[a,u]of e)r.has(a)||(s.push({n:this.decisionN++,at:Date.now(),by:"auto",action:"ungroup",ids:[a],detail:`${u.memberIds.length} blocks`,turn:(c=this.get(u.memberIds[0]))==null?void 0:c.turn,kind:"group"}),o.ungroup++);for(const a of this.blocks){const u=t.get(a.id),d=this.isFolded(a),f=d?this.digestOf(a):"";if(!u||u.grouped||this.groupWire.has(a.id)||u.folded===d&&u.digest===f)continue;let h;!u.folded&&d?h="fold":u.folded&&!d?h="restore":h="replace",h==="fold"?o.fold++:h==="restore"?o.restore++:h==="replace"&&o.replace++,s.push({n:this.decisionN++,at:Date.now(),by:"auto",action:h,ids:[a.id],detail:G(a),turn:a.turn,kind:a.kind})}if(!s.length)return;this.prependDecisionEvents(s.reverse());const i=[];o.fold&&i.push(`folded ${o.fold} block${o.fold===1?"":"s"}`),o.replace&&i.push(`updated ${o.replace} block${o.replace===1?"":"s"}`),o.restore&&i.push(`restored ${o.restore} block${o.restore===1?"":"s"}`),o.group&&i.push(`grouped ${o.group} group${o.group===1?"":"s"}`),o.ungroup&&i.push(`ungrouped ${o.ungroup} group${o.ungroup===1?"":"s"}`),this.emit("auto","conductor update",i.join(" · "))}inFoldedGroup(t){var e;return((e=this.groupAt.get(t))==null?void 0:e.folded)??!1}canFold(t){return ht(t)&&!this.isProtected(t)&&!this.inFoldedGroup(t.id)&&t.override!=="pinned"}fold(t,e="you"){var o;if(this.humanLocked(e))return;const s=this.get(t);!s||s.override==="pinned"||this.inFoldedGroup(t)||this.isProtected(s)||ht(s)&&(s.override="folded",s.by=e,s.subst=void 0,this.emit(e,"folded",G(s)),this.recordDecision(e,"fold",[t],G(s)),this.refold(),e==="you"&&((o=this.onHumanOverride)==null||o.call(this,[t],"folded")))}unfold(t,e="you"){var o;if(this.humanLocked(e)||e==="agent"&&this.isLocked("agent-unfold"))return;const s=this.get(t);!s||this.inFoldedGroup(t)||(s.override="unfolded",s.by=e,s.subst=void 0,this.emit(e,"unfolded",G(s)),this.recordDecision(e,"unfold",[t],G(s)),this.refold(),e==="you"&&((o=this.onHumanOverride)==null||o.call(this,[t],"unfolded")))}toggle(t,e="you"){if(this.humanLocked(e))return;const s=this.get(t);s&&(this.isFolded(s)?this.unfold(t,e):this.fold(t,e))}pin(t){var s;if(this.humanLocked("you"))return;const e=this.get(t);!e||this.inFoldedGroup(t)||(e.override="pinned",e.by="you",e.subst=void 0,this.emit("you","pinned",G(e)),this.recordDecision("you","pin",[t],G(e)),this.refold(),(s=this.onHumanOverride)==null||s.call(this,[t],"pinned"))}unpin(t){var s;if(this.humanLocked("you"))return;const e=this.get(t);!e||e.override!=="pinned"||(e.override=null,e.by="you",this.emit("you","unpinned",G(e)),this.recordDecision("you","unpin",[t],G(e)),this.refold(),(s=this.onHumanOverride)==null||s.call(this,[t],"unpinned"))}auto(t){if(this.humanLocked("you"))return;const e=this.get(t);!e||this.inFoldedGroup(t)||(e.override=null,e.by=null,this.refold())}resetAll(){var t;if(!this.isLocked("human-steering")){for(const e of this.blocks)e.override=null,e.by=null;this.groups.length&&(this.groups=[]),this.emit("you","reset","all blocks to auto"),this.recordDecision("you","reset",[],"all blocks to auto"),this.refold(),(t=this.onHumanOverride)==null||t.call(this,[],"reset")}}groupOf(t){return this.groupAt.get(t.id)}groupById(t){return this.groups.find(e=>e.id===t)}groupMembers(t){const e=[];for(const s of t.memberIds){const o=this.get(s);o&&e.push(o)}return e}isDropGroup(t){return t.digest===null||t.digest===""}groupSummary(t){if(this.isDropGroup(t))return"";if(typeof t.digest=="string"&&t.digest)return t.digest;const e=this.classifyGroup(t);return qs(t,e.collapsedMembers.length?e.collapsedMembers:e.members)}groupFullTokens(t){let e=0;for(const s of this.groupMembers(t))e+=s.tokens;return e}groupLiveTokens(t){var r;if(!t.folded){let i=0;for(const l of this.groupMembers(t))i+=this.effTokens(l);return i}const e=this.classifyGroup(t);let s=0;e.carrier&&(this.isDropGroup(t)?s=0:typeof t.digest=="string"&&t.digest?s=nt(t.digest)+Tt:s=fs(t,e.collapsedMembers));let o=s;for(const i of e.stragglers)o+=((r=this.get(i))==null?void 0:r.tokens)??0;return o}groupSavedTokens(t){return this.groupFullTokens(t)-this.groupLiveTokens(t)}groupStragglerCount(t){return t.folded?this.classifyGroup(t).stragglers.size:0}snappedRange(t,e){const s=this.index.get(t),o=this.index.get(e);if(s===void 0||o===void 0)return null;let r=Math.min(s,o),i=Math.max(s,o);const l=ut(this.blocks[r].id);for(;r>0&&ut(this.blocks[r-1].id)===l;)r--;const c=ut(this.blocks[i].id);for(;i<this.blocks.length-1&&ut(this.blocks[i+1].id)===c;)i++;const a=[];for(let u=r;u<=i;u++)a.push(this.blocks[u].id);return a}createGroup(t,e,s="you",o){if(this.humanLocked(s))return null;const r=this.snappedRange(t,e);if(!r||(this.index.get(r[r.length-1])??1/0)>=this.protectedFromIndex)return null;for(const l of r)if(this.groupAt.get(l))return null;if(r.length<1)return null;const i={id:`g:${r[0]}`,memberIds:r,folded:!0,by:s,digest:o};return this.classifyGroup(i).carrier===null?null:(this.groups=[...this.groups,i],s==="you"&&(this.emit(s,"grouped",`${r.length} blocks`),this.recordGroupDecision(s,"group",i,`${r.length} blocks`)),this.refold(),i)}deleteGroup(t,e="you"){if(this.humanLocked(e))return;const s=this.groupById(t);s&&(this.groups=this.groups.filter(o=>o.id!==t),this.emit(e,"ungrouped",`${s.memberIds.length} blocks`),this.recordGroupDecision(e,"ungroup",s,`${s.memberIds.length} blocks`),this.refold())}foldGroup(t,e="you"){if(this.humanLocked(e))return;const s=this.groupById(t);!s||s.folded||(s.folded=!0,this.groups=[...this.groups],this.emit(e,"group folded",`${s.memberIds.length} blocks`),this.recordGroupDecision(e,"fold-group",s,`${s.memberIds.length} blocks`),this.refold())}unfoldGroup(t,e="you"){if(this.humanLocked(e)||e==="agent"&&this.isLocked("agent-unfold"))return;const s=this.groupById(t);!s||!s.folded||(s.folded=!1,this.groups=[...this.groups],this.emit(e,"group unfolded",`${s.memberIds.length} blocks`),this.recordGroupDecision(e,"unfold-group",s,`${s.memberIds.length} blocks`),this.refold())}toggleGroup(t,e="you"){if(this.humanLocked(e))return;const s=this.groupById(t);s&&(s.folded?this.unfoldGroup(t,e):this.foldGroup(t,e))}get(t){const e=this.index.get(t);return e===void 0?void 0:this.blocks[e]}}Pt=new WeakMap,jt=new WeakMap,Gt=new WeakMap,Bt=new WeakMap,Wt=new WeakMap,Ht=new WeakMap,Ut=new WeakMap,zt=new WeakMap,Kt=new WeakMap,qt=new WeakMap,Vt=new WeakMap,Jt=new WeakMap,Yt=new WeakMap,Xt=new WeakMap,Qt=new WeakMap,Zt=new WeakMap,te=new WeakMap,ee=new WeakMap,se=new WeakMap,ne=new WeakMap,oe=new WeakMap,re=new WeakMap;function G(n){const t=n.turn>0?`turn ${n.turn}`:"preamble";return n.toolName?`${n.kind} ${n.toolName} · ${t}`:`${n.kind} · ${t}`}function q(n,t,e,s){return{command:n,ids:t,reason:e,detail:s}}const T=H({store:null,filePath:null,error:"",readOnly:!1});let fe=null,fn=-1,at=0;function Je(){at++}const Ji=typeof window<"u"&&"__TAURI_INTERNALS__"in window;async function Yi(){var t;Je();const n=at;ve(),T.error="";try{const e=await fetch("/sample-session.jsonl");if(!e.ok)throw new Error(`fetch failed (${e.status})`);const s=await e.text();if(n!==at)return;(t=T.store)==null||t.dispose(),T.store=new ye(zs(s)),T.filePath=null,T.readOnly=!1,mn()}catch(e){T.error=e instanceof Error?e.message:String(e)}}async function pi(){try{const[{homeDir:n,join:t},{exists:e}]=await Promise.all([Ft(()=>import("./CmEYqMe3.js"),__vite__mapDeps([0,1]),import.meta.url),Ft(()=>import("./D5WXxLoC.js"),__vite__mapDeps([2,0,1]),import.meta.url)]),s=await n(),o=[await t(s,".pi","agent","sessions"),await t(s,".claude","projects")];for(const r of o)try{if(await e(r))return r}catch{}return s}catch{return}}async function Xi(){T.error="";try{const[{open:n},{readTextFile:t}]=await Promise.all([Ft(()=>import("./DVFVkhSS.js"),__vite__mapDeps([3,1]),import.meta.url),Ft(()=>import("./D5WXxLoC.js"),__vite__mapDeps([2,0,1]),import.meta.url)]),e=await n({title:"Open session file",defaultPath:await pi(),filters:[{name:"JSONL",extensions:["jsonl"]}]});if(!e||typeof e!="string")return;await pn(e,t)}catch(n){T.error=n instanceof Error?n.message:String(n)}}async function mi(n){const{invoke:t}=await Ft(async()=>{const{invoke:e}=await import("./DhEqZVGG.js");return{invoke:e}},[],import.meta.url);return await t("read_claude_session",{path:n})}async function Qi(n){T.error="";try{await pn(n,mi)}catch(t){T.error=t instanceof Error?t.message:String(t)}}async function hn(n,t,e){var i,l,c;const s=await t(n);if(e!==at)return;const o=(i=T.store)==null?void 0:i.budget,r=(l=T.store)==null?void 0:l.protectTokens;(c=T.store)==null||c.dispose(),T.store=new ye(zs(s)),o!==void 0&&T.store.setBudget(o),r!==void 0&&T.store.setProtect(r),T.filePath=n,T.error="",fn=s.length,mn()}async function pn(n,t){Je(),ve();const e=at;await hn(n,t,e),e===at&&(T.readOnly=!0,gi(n,t,e))}function gi(n,t,e){ve(),fe=setInterval(async()=>{try{const s=await t(n);if(e!==at)return;s.length!==fn&&await hn(n,t,e)}catch{e===at&&ve()}},1500)}function ve(){fe!==null&&(clearInterval(fe),fe=null)}function mn(){typeof window<"u"&&(window.__store=T.store)}function Se(n){return n.startsWith("u:")||n.startsWith("a:")||n.startsWith("r:")||n.startsWith("s:")}function ki(n){return{id:n.id,kind:n.kind,turn:n.turn,order:n.order,text:n.text,tokens:n.tokens,toolName:n.toolName,callId:n.callId,model:n.model,isError:n.isError,override:null,autoFolded:!1,by:null}}function bi(n){var e;const t=[];for(const s of n.blocks){if(!n.isFolded(s)||(e=n.groupOf(s))!=null&&e.folded||!ht(s)||!Se(s.id))continue;const o=n.digestOf(s);o&&t.push({id:s.id,digestText:o})}return t}function yi(n){const t=[];for(const e of n.groups){if(!e.folded)continue;const s=e.memberIds.filter(Se);if(!s.length)continue;const r=n.isDropGroup(e)?null:n.groupSummary(e);r!==null&&!r.trim()||t.push({id:e.id,memberIds:s,summaryText:r})}return t}function gn(n){const t=n.turn>0?`turn ${n.turn}`:"preamble";return n.toolName?`${n.kind} ${n.toolName} · ${t}`:`${n.kind} · ${t}`}function vi(n,t){var o;const e=[],s=[];for(const r of t){let i=!1;for(const c of n.groups)c.folded&&Dt(c.id)===r&&(n.unfoldGroup(c.id,"agent"),(o=n.groupById(c.id))!=null&&o.folded||(e.push({code:r,kind:"text",label:`group · ${c.memberIds.length} blocks`,ids:c.memberIds}),i=!0));const l=n.blocks.filter(c=>n.isFolded(c)&&ht(c)&&Se(c.id)&&Dt(c.id)===r);for(const c of l){const a=n.groupOf(c),u=(a==null?void 0:a.folded)??!1;u?n.unfoldGroup(a.id,"agent"):n.unfold(c.id,"agent"),!(u?a.folded??!1:n.isFolded(c))&&(e.push({code:r,kind:c.kind,label:gn(c),ids:u?a.memberIds:[c.id]}),i=!0)}i||s.push(r)}return{restored:e,missing:s}}function Ti(n,t){var o,r;const e=[],s=[];for(const i of t){let l=!1;for(const a of n.groups)if(a.folded&&Dt(a.id)===i){const u=a.memberIds.map(d=>{var f;return((f=n.get(d))==null?void 0:f.text)??""}).filter(d=>d.length>0).join(`
105
-
106
- `);e.push({code:i,label:`group · ${a.memberIds.length} blocks`,text:u,ids:a.memberIds}),l=!0}const c=n.blocks.filter(a=>n.isFolded(a)&&ht(a)&&Se(a.id)&&Dt(a.id)===i);for(const a of c)(o=n.groupOf(a))!=null&&o.folded||(e.push({code:i,label:gn(a),text:((r=n.get(a.id))==null?void 0:r.text)??a.text,ids:[a.id]}),l=!0);l||s.push(i)}return{restored:e,missing:s}}const Te=H({enabled:!1});function Zi(n){Te.enabled=n}const tl="builtin",ae="none",z=H({status:"idle",detail:""}),bt=H({text:"",metrics:{},details:void 0});function Os(){bt.text="",bt.metrics={},bt.details=void 0}const wi=H({tick:0});class Si{constructor(t,e){$(this,"id");$(this,"label");$(this,"locks");$(this,"ws",null);$(this,"manualClose",!1);$(this,"host",null);$(this,"_dead",!1);$(this,"desired",null);$(this,"wants","full");$(this,"rev",0);$(this,"lastRev",0);$(this,"suppressUpdate",!1);$(this,"greeted",!1);this.entry=t,this.store=e,this.id=t.id,this.label=t.label}get isDead(){return this._dead}conduct(t){return this.suppressUpdate?this.suppressUpdate=!1:this.greeted&&this.pushContext(t),this.desired}attach(t){this.host=t}detach(){this.host=null}connect(){if(typeof WebSocket>"u")return;this.manualClose=!1,z.status="connecting",z.detail=this.entry.url;let t;try{t=new WebSocket(this.entry.url)}catch(e){z.status="error",z.detail=e instanceof Error?e.message:String(e);return}this.ws=t,t.onopen=()=>{if(this.ws!==t)return;const e={type:"host/hello",conductorProtocol:$e,session:{title:this.store.meta.title,model:this.store.meta.model,cwd:this.store.meta.cwd},budget:this.store.budget,contextWindow:this.store.contextWindow};this.send(e),z.status="connected",z.detail=this.entry.label},t.onmessage=e=>{if(this.ws!==t)return;let s;try{s=JSON.parse(typeof e.data=="string"?e.data:"")}catch{return}this.handle(s)},t.onerror=()=>{this.ws===t&&(z.status="error",z.detail=`cannot reach ${this.entry.url}`)},t.onclose=()=>{this.ws===t&&(this.ws=null,this.manualClose||(this.desired=[],this._dead=!0,Os(),this.store.refold(),z.status!=="error"&&(z.status="error",z.detail=`disconnected from ${this.entry.label}`),this.greeted&&wi.tick++))}}close(t,e){this.manualClose=!0;const s=this.ws;this.ws=null,Os(),z.status=t??"idle",z.detail=e??"";try{s==null||s.close()}catch{}}handle(t){var s;if(!$o(t))return;const e=t;switch(e.type){case"conductor/hello":if(e.conductorProtocol!==$e){const o=`protocol mismatch — conductor v${e.conductorProtocol}, app v${$e}`;this.close("error",o);return}(s=e.wants)!=null&&s.content&&(this.wants=e.wants.content);{const r=(Array.isArray(e.locks)?e.locks:[]).filter(i=>Co.includes(i));this.locks=r.length>0?Object.freeze(r):void 0}this.greeted=!0,this.store.reconcileLocks();break;case"conductor/commands":{if(!this.greeted||e.rev!==void 0&&e.rev<this.rev)break;this.desired=Array.isArray(e.commands)?e.commands:[],this.lastRev=e.rev??this.rev,this.suppressUpdate=!0,this.store.refold(),this.send({type:"host/commandResult",rev:this.lastRev,reports:this.store.lastReports});break}case"cap/request":this.serveCapability(e);break;case"conductor/status":bt.text=e.text??"",bt.metrics=e.metrics??{},bt.details=e.details;break}}serveCapability(t){var l;if(t.capability==="complete"){(async()=>{var a,u,d;if(!this.host||!this.host.can("complete")){this.send({type:"cap/result",reqId:t.reqId,ok:!1,error:"completion unavailable"});return}const c=(a=t.completion)==null?void 0:a.prompt;if(typeof c!="string"||!c){this.send({type:"cap/result",reqId:t.reqId,ok:!1,error:"missing completion.prompt"});return}try{const f=await this.host.complete({system:(u=t.completion)==null?void 0:u.system,prompt:c,maxOutputTokens:(d=t.completion)==null?void 0:d.maxOutputTokens});this.send({type:"cap/result",reqId:t.reqId,ok:!0,value:f.text,model:f.model,inputTokens:f.inputTokens,outputTokens:f.outputTokens})}catch(f){this.send({type:"cap/result",reqId:t.reqId,ok:!1,error:String((f==null?void 0:f.message)??f)})}})();return}const e=(l=t.ids)==null?void 0:l[0],s=e?this.store.get(e):void 0;let o,r=!0,i;switch(t.capability){case"countTokens":o=nt(t.text??"");break;case"getContent":s?o=s.text:(r=!1,i=`no block ${e}`);break;case"getDigest":s?o=ge(s):(r=!1,i=`no block ${e}`);break;default:r=!1,i=`unknown capability ${t.capability}`}this.send({type:"cap/result",reqId:t.reqId,ok:r,value:o,error:i})}notifyEvent(t,e,s){this.send({type:"host/event",event:t,ids:e,detail:s})}pushContext(t){const e=this.wants==="full"?t.blocks:t.blocks.map(o=>{const{text:r,...i}=o;return{...i,preview:me(o.text??"",100)}}),s={type:"context/update",rev:++this.rev,budget:t.budget,contextWindow:t.contextWindow,liveTokens:t.liveTokens,protectedFromIndex:t.protectedFromIndex,protectTokens:t.protectTokens,blocks:e};this.send(s)}send(t){const e=this.ws;if(!(!e||e.readyState!==WebSocket.OPEN))try{e.send(JSON.stringify(t))}catch{}}}let et=null,Rs=null,Ms=null,Me=!1;function xi(){return et}function el(n,t,e){const s=t??ae,o=s===ae?null:di(s),r=s!==ae&&!o,i=r?e.find(a=>a.id===s):void 0;if(n===Rs&&s===Ms&&(r?(et==null?void 0:et.id)===s&&!et.isDead||Me&&!i:!0))return;if(et&&(et.close(),et=null),n.onHumanOverride=null,Rs=n,Ms=s,Me=!1,s===ae){n.detach();return}if(o){n.attach(o.create());return}if(!i){n.attach(null),Me=!0;return}const c=new Si(i,n);et=c,n.onHumanOverride=(a,u)=>c.notifyEvent("humanOverride",a,u),n.attach(c),c.connect()}const Ls=5,Ei=4317;function Ii(n){if(!n||typeof n!="object"||!("type"in n))return!1;const t=n.type;return t==="hello"||t==="sync"||t==="stream"||t==="unfoldRequest"||t==="recallRequest"||t==="completeResult"}const yt=H([]);function Ci(n,t){const e=yt.findIndex(s=>s.contentIndex===t);e>=0?yt[e]={contentIndex:t,kind:n}:yt.push({contentIndex:t,kind:n})}function $i(n){const t=yt.findIndex(e=>e.contentIndex===n);t>=0&&yt.splice(t,1)}function Rt(){yt.length=0}let mt=null,Ge=!1,Mt=!1;const _i=12e4,vt=new Map;let Oi=0;const F=H({status:"idle",detail:"",sessionId:null});function Ri(){return!Te.enabled||!T.store?{ops:[],groups:[]}:{ops:bi(T.store),groups:yi(T.store)}}function kn(n){for(const{reject:t,timer:e}of vt.values())clearTimeout(e),t(new Error(n));vt.clear()}async function As(n){var o;const t=mt;if(!t||t.readyState!==WebSocket.OPEN)throw new Error("not connected");if((o=n.signal)!=null&&o.aborted)throw new DOMException("aborted","AbortError");const e=++Oi,s={type:"completeRequest",reqId:e,system:n.system,prompt:n.prompt,maxOutputTokens:n.maxOutputTokens};return new Promise((r,i)=>{let l=null,c;const a=u=>{clearTimeout(c),l&&n.signal&&(n.signal.removeEventListener("abort",l),l=null),vt.delete(e),u()};c=setTimeout(()=>{vt.has(e)&&a(()=>i(new Error("completion timed out")))},_i),vt.set(e,{resolve:u=>a(()=>r(u)),reject:u=>a(()=>i(u)),timer:c}),n.signal&&(l=()=>{a(()=>i(new DOMException("aborted","AbortError")))},n.signal.addEventListener("abort",l,{once:!0}));try{t.send(JSON.stringify(s))}catch(u){a(()=>i(new Error(u instanceof Error?u.message:"send failed")))}})}function sl(n=Ei){if(typeof window>"u"||typeof WebSocket>"u")return;Je(),Mi(),Ge=!1,F.status="connecting",F.detail=`ws://127.0.0.1:${n}`,F.sessionId=null,T.error="";let t;try{t=new WebSocket(`ws://127.0.0.1:${n}`)}catch(e){F.status="error",F.detail=e instanceof Error?e.message:String(e);return}mt=t,t.onmessage=e=>{var r,i;let s;try{s=JSON.parse(typeof e.data=="string"?e.data:"")}catch{return}if(!Ii(s))return;const o=s;if(o.type==="hello"){if(o.protocolVersion!==Ls){F.status="error",F.detail=`protocol mismatch - extension v${o.protocolVersion}, app v${Ls}; update both to the same version`,F.sessionId=null;try{t.close()}catch{}return}F.status="connected",F.sessionId=typeof o.sessionId=="string"?o.sessionId:null,T.error="",T.filePath=null,T.readOnly=!1,Te.enabled=!1,Rt(),Mt=!1,(r=T.store)==null||r.dispose(),T.store=new ye({meta:{format:"pi",title:o.meta.title||"live pi session",cwd:o.meta.cwd||"",model:o.meta.model||""},blocks:[],lineCount:0,skipped:0}),T.store.completer=As,typeof o.meta.contextWindow=="number"&&o.meta.contextWindow>0&&(T.store.setContextWindow(o.meta.contextWindow),T.store.setBudget(o.meta.contextWindow),Mt=!0)}else if(o.type==="sync"){if(!T.store)return;if(o.full){Rt();const u=T.store.contextWindow,d=T.store.budget,f=T.store.protectTokens;T.store.dispose(),T.store=new ye({meta:T.store.meta,blocks:[],lineCount:0,skipped:0}),u!==null&&T.store.setContextWindow(u),T.store.setBudget(d),T.store.setProtect(f),T.store.completer=As}const l=o.contextWindow;if(typeof l=="number"&&l>0){const u=T.store.contextWindow;T.store.setContextWindow(l),(!Mt||u!==null&&u!==l)&&(T.store.setBudget(l),Mt=!0)}T.store.appendBlocks(o.blocks.map(ki));const c=Ri(),a={type:"plan",reqId:o.reqId,ops:c.ops,groups:c.groups};try{t.send(JSON.stringify(a))}catch{}}else if(o.type==="unfoldRequest"){const l=Array.isArray(o.codes)?o.codes:[],{restored:c,missing:a}=Te.enabled&&T.store?vi(T.store,l):{restored:[],missing:l};if(c.length){const d=[...new Set(c.flatMap(f=>f.ids))];(i=xi())==null||i.notifyEvent("agentUnfold",d,`agent unfolded ${c.length} block(s)`)}const u={type:"unfoldResult",reqId:o.reqId,restored:c,missing:a};try{t.send(JSON.stringify(u))}catch{}}else if(o.type==="recallRequest"){const l=Array.isArray(o.codes)?o.codes:[],{restored:c,missing:a}=T.store?Ti(T.store,l):{restored:[],missing:l},u={type:"recallResult",reqId:o.reqId,restored:c,missing:a};try{t.send(JSON.stringify(u))}catch{}}else if(o.type==="stream")o.phase==="start"?Ci(o.kind,o.contentIndex):o.phase==="end"||o.phase==="abort"&&(o.contentIndex<0?Rt():$i(o.contentIndex));else if(o.type==="completeResult"){if(typeof o.reqId!="number")return;const l=vt.get(o.reqId);l&&(o.ok?l.resolve({text:o.text??"",model:o.model??"",inputTokens:o.inputTokens,outputTokens:o.outputTokens}):l.reject(new Error(o.error??"completion failed")))}},t.onerror=()=>{F.status="error",F.detail=`could not reach pi on :${n} — is a pi session running with the accordion extension?`,F.sessionId=null},t.onclose=()=>{Rt(),mt===t&&(mt=null,F.sessionId=null,T.store&&(T.store.completer=null),kn("disconnected"),!Ge&&F.status!=="error"&&(F.status="idle",F.detail="disconnected"))}}function Mi(){if(Ge=!0,Mt=!1,Rt(),T.store&&(T.store.completer=null),kn("disconnected"),mt){try{mt.close()}catch{}mt=null}F.status!=="error"&&(F.status="idle"),F.sessionId=null}var Li=Bs("<title> </title>"),Ai=Bs('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><!><!></svg>');function nl(n,t){const e={"chevron-left":'<polyline points="15 18 9 12 15 6"/>',"chevron-right":'<polyline points="9 18 15 12 9 6"/>',"chevron-down":'<polyline points="6 9 12 15 18 9"/>',"chevron-up":'<polyline points="18 15 12 9 6 15"/>',"chevrons-left":'<polyline points="11 17 6 12 11 7"/><polyline points="18 17 13 12 18 7"/>',"chevrons-right":'<polyline points="13 17 18 12 13 7"/><polyline points="6 17 11 12 6 7"/>',x:'<path stroke-width="2" d="M6 6l12 12M18 6L6 18"/>',check:'<path stroke-width="2" d="M5 12.5l4 4 10-10"/>',pin:'<line x1="12" y1="17" x2="12" y2="22"/><path d="M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17z"/>',"pin-off":'<line x1="2" y1="2" x2="22" y2="22"/><line x1="12" y1="17" x2="12" y2="22"/><path d="M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12"/><path d="M15 9.34V6h1a2 2 0 0 0 0-4H7.89"/>',lock:'<rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',eye:'<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/>',"eye-off":'<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/>',"rotate-ccw":'<polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 .49-4.98"/>',plus:'<path stroke-width="2" d="M12 5v14M5 12h14"/>',minus:'<line x1="5" y1="12" x2="19" y2="12"/>',"layout-grid":'<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/>',layers:'<path stroke-width="2" d="M12 4l8 4-8 4-8-4 8-4Z"/><path stroke-width="2" d="M4 12l8 4 8-4"/><path stroke-width="2" d="M4 16l8 4 8-4"/>',"git-merge":'<circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M6 21V9a9 9 0 0 0 9 9"/>',"trash-2":'<polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/>',"chevrons-down-up":'<polyline points="7 20 12 15 17 20"/><polyline points="7 4 12 9 17 4"/>',"chevrons-up-down":'<polyline points="7 15 12 20 17 15"/><polyline points="7 9 12 4 17 9"/>',"corner-down-right":'<polyline points="15 10 20 15 15 20"/><path d="M4 4v7a4 4 0 0 0 4 4h12"/>',target:'<circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/>',search:'<circle stroke-width="2" cx="11" cy="11" r="6"/><path stroke-width="2" d="M20 20l-4.2-4.2"/>',folder:'<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>',"file-text":'<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/>',circle:'<circle cx="12" cy="12" r="10"/>',dot:'<circle cx="12" cy="12" r="4" fill="currentColor" stroke="none"/>',terminal:'<polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/>',"message-square":'<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>',"sliders-horizontal":'<line x1="21" y1="6" x2="3" y2="6"/><line x1="21" y1="12" x2="3" y2="12"/><line x1="21" y1="18" x2="3" y2="18"/><circle cx="9" cy="6" r="2" fill="none"/><circle cx="15" cy="12" r="2" fill="none"/><circle cx="9" cy="18" r="2" fill="none"/>',activity:'<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>',play:'<polygon points="5 3 19 12 5 21 5 3"/>',square:'<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>',fold:'<path stroke-width="2" d="M8 5l4 3 4-3"/><path stroke-width="2" d="M4 12h16"/><path stroke-width="2" d="M8 19l4-3 4 3"/>',accordion:'<rect x="4" y="3" width="16" height="18" rx="2.5"/><polyline points="4 8 8 6 12 8 16 6 20 8"/><polyline points="4 13 8 11 12 13 16 11 20 13"/><polyline points="4 18 8 16 12 18 16 16 20 18"/>'};let s=ie(t,"size",3,16),o=ie(t,"stroke",3,1.5),r=ie(t,"class",3,""),i=ie(t,"title",3,"");const l=Z(()=>e[t.name]??"");var c=Ai(),a=ss(c);{var u=f=>{var h=Li(),m=ss(h,!0);ns(h),Fe(()=>no(m,i())),os(f,h)};so(a,f=>{i()&&f(u)})}var d=eo(a);lo(d,()=>O(l),void 0,!0),ns(c),Fe(()=>{uo(c,0,`icon ${r()??""}`,"svelte-jf3o41"),st(c,"width",s()),st(c,"height",s()),st(c,"stroke-width",o()),st(c,"role",i()?"img":void 0),st(c,"aria-label",i()||void 0),st(c,"aria-hidden",i()?void 0:"true"),st(c,"focusable",i()?void 0:"false")}),os(n,c)}function V(n){return n&&typeof n=="object"&&!Array.isArray(n)?n:null}function E(n){return typeof n=="number"&&Number.isFinite(n)?n:void 0}function j(n){return typeof n=="string"?n:void 0}function lt(n){return Array.isArray(n)?n:[]}function Ni(n,t){const e=t>0?n/t:0;return e<.7?"comfortable":e<.85?"normal":"tight"}function ol(n){if(n==null||!Number.isFinite(n))return"n/a";const t=Math.round(n);if(t>=1e6){const e=t/1e6;return`${Number.isInteger(e)?e:e.toFixed(1)}M`}return t>=1e3?`${(t/1e3).toFixed(t>=1e4?0:1)}k`:`${t}`}function rl(n){return n==null||!Number.isFinite(n)?"n/a":Math.round(n).toLocaleString()}function il(n){const t=V(n);if(!t)return{};const e=V(t.health),s=V(t.caches),o=V(t.summary),r={};if(e){const f=V(e.foldTargetBand);r.health={foldTargetCalibrated:E(e.foldTargetCalibrated),foldTargetThisTurn:E(e.foldTargetThisTurn),foldTargetBand:f&&E(f.min)!==void 0&&E(f.max)!==void 0?{min:E(f.min),max:E(f.max)}:void 0,assembledTokens:E(e.assembledTokens),budgetTokens:E(e.budgetTokens),contextWindow:e.contextWindow===null?null:E(e.contextWindow),pressure:j(e.pressure)}}const i=lt(t.unitTrace).map(f=>{const h=V(f);return!h||!j(h.id)?null:{id:j(h.id),blockIds:lt(h.blockIds).filter(m=>typeof m=="string"),kindWeight:E(h.kindWeight),overlap:E(h.overlap),recency:E(h.recency),score:E(h.score),stage:typeof h.stage=="number"||typeof h.stage=="string"?h.stage:void 0,threshold:E(h.threshold),fullTokens:E(h.fullTokens),foldedTokens:E(h.foldedTokens),trimTokens:E(h.trimTokens),trimEligible:typeof h.trimEligible=="boolean"?h.trimEligible:void 0,level:E(h.level),fromLevel:E(h.fromLevel),eligible:typeof h.eligible=="boolean"?h.eligible:void 0,reason:j(h.reason)}}).filter(f=>!!f);i.length&&(r.unitTrace=i);const l=[];for(const f of lt(t.factLedger)){const h=V(f);if(!h)continue;const m=j(h.category)??j(h.cat),g=j(h.value)??j(h.label);!m||!g||l.push({category:m,value:g,turn:E(h.turn),sourceId:j(h.sourceId)})}l.length&&(r.factLedger=l);const c=[];for(const f of lt(t.relevanceTOC)){const h=V(f),m=h?E(h.turn):void 0;!h||m===void 0||c.push({turn:m,score:E(h.score),label:j(h.label)??"",blockIds:lt(h.blockIds).filter(g=>typeof g=="string")})}c.length&&(r.relevanceTOC=c);const a=[];for(const f of lt(t.proactiveUnfolds)){if(typeof f=="string"){a.push({blockId:f});continue}const h=V(f);h&&a.push({id:j(h.id),blockId:j(h.blockId),blockIds:lt(h.blockIds).filter(m=>typeof m=="string"),turn:E(h.turn),reason:j(h.reason)})}a.length&&(r.proactiveUnfolds=a);const u=V(t.calibration);if(u){const f=[];for(const h of lt(u.events)){const m=V(h),g=m?E(m.turn):void 0,p=m?E(m.from):void 0,k=m?E(m.to):void 0;!m||g===void 0||p===void 0||k===void 0||f.push({turn:g,from:p,to:k,corrections:E(m.corrections),reason:j(m.reason)??"hold"})}r.calibration={needed:E(u.needed),harmless:E(u.harmless),neededRate:E(u.neededRate),events:f}}const d={};return s?(d.summary=ue(s.summary),d.embedding=ue(s.embedding),d.rerank=ue(s.rerank),d.latestProviderError=j(s.latestProviderError)):o&&(d.summary=ue(o)),(d.summary||d.embedding||d.rerank||d.latestProviderError)&&(r.caches=d),r}function ue(n){const t=V(n);if(t)return{size:E(t.size)??E(t.cached),pending:E(t.pending),provider:j(t.provider),calls:E(t.calls),errors:E(t.errors),latestError:j(t.latestError)??j(t.lastError)}}function ll(n,t,e,s){const o=(n==null?void 0:n.assembledTokens)??t,r=s&&s>0?Math.min(e,s):e,i=(n==null?void 0:n.budgetTokens)??r;return{...n,assembledTokens:o,budgetTokens:i,contextWindow:(n==null?void 0:n.contextWindow)??s,pressure:(n==null?void 0:n.pressure)??Ni(o,i)}}function Le(n){return n.filter(t=>t&&!t.startsWith("g:")).map(t=>`b:${t}`)}function Ae(n){return n.find(e=>e==null?void 0:e.startsWith("g:"))??null}function cl(n,t){const e=new Map;let s=0,o=0;const r=(a,u)=>{e.has(a)||e.set(a,{turn:u})},i=(a,u)=>{e.has(a)&&(e.delete(a),u==="needed"?s++:o++)};for(const a of[...n].reverse()){if(a.by==="auto"&&(a.action==="fold"||a.action==="replace")){for(const u of Le(a.ids))r(u,a.turn);continue}if(a.by==="auto"&&a.action==="group"){const u=Ae(a.ids);u&&r(u,a.turn);continue}if(a.by==="auto"&&a.action==="restore"){for(const u of Le(a.ids))i(u,"harmless");continue}if(a.by==="auto"&&a.action==="ungroup"){const u=Ae(a.ids);u&&i(u,"harmless");continue}if(a.by!=="auto"&&(a.action==="unfold"||a.action==="restore")){for(const u of Le(a.ids))i(u,"needed");continue}if(a.by!=="auto"&&(a.action==="ungroup"||a.action==="unfold-group")){const u=Ae(a.ids);u&&i(u,"needed")}}let l=0;for(const a of e.values())t!==void 0&&a.turn!==void 0&&a.turn<t?o++:l++;const c=s+o;return{needed:s,harmless:o,pending:l,resolved:c,neededRate:c>0?s/c:null}}function al(n,t,e){let s=0,o=0;for(const l of n){if(!l.eligible)continue;const c=l.fullTokens??0;s+=c,(l.level??0)>0&&(o+=c)}const r=s>0?o/s:null,i=(t.assembledTokens??0)<=(t.budgetTokens??Number.POSITIVE_INFINITY);return!i||r!==null&&r<.5&&t.pressure==="tight"?{level:"red",foldCoverage:r,withinBudget:i,neededRate:e.neededRate}:e.neededRate!==null&&e.neededRate>.5?{level:"yellow",foldCoverage:r,withinBudget:i,neededRate:e.neededRate}:{level:"green",foldCoverage:r,withinBudget:i,neededRate:e.neededRate}}function ul(n){return n===1?"trim":n===2?"digest":n===3?"group":"full"}function dl(n){return n===2||n==="embed"?"embed":n===3||n==="rerank"?"rerank":n===1||n==="keyword"?"keyword":""}export{di as A,tl as B,$e as C,Vi as D,z as E,ui as F,Zi as G,yt as H,nl as I,Ei as J,wi as K,Co as L,el as M,ae as N,sl as O,Qi as P,Yi as Q,Xi as R,T as a,st as b,ll as c,al as d,cl as e,ol as f,bt as g,Hi as h,Wi as i,Bi as j,dl as k,F as l,ul as m,il as n,rl as o,Ji as p,Mi as q,bi as r,uo as s,zi as t,Ui as u,Ki as v,ht as w,qi as x,Te as y,Ce as z};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/Cho1IevM.js";export{o as load_css,r as start};