@x-otto/tui 0.0.1-alpha.5 → 0.0.1-alpha.6-debug

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{$ as e,$t as t,A as n,At as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as l,Et as u,F as d,Ft as f,G as p,Gt as m,H as h,Ht as g,I as _,It as v,J as y,Jt as b,K as x,Kt as S,L as C,Lt as w,M as T,Mt as E,N as D,Nt as O,O as k,Ot as ee,P as te,Q as A,Qt as ne,R as j,Rt as M,S as re,T as N,Tt as ie,U as P,Ut as ae,V as oe,Vt as se,W as ce,Wt as le,X as ue,Xt as de,Y as fe,Yt as pe,Z as me,Zt as he,_ as ge,_n as _e,_t as ve,a as ye,an as be,at as xe,b as Se,c as Ce,cn as we,ct as Te,d as F,dn as Ee,dt as De,en as Oe,et as ke,f as Ae,fn as je,ft as Me,g as Ne,gn as Pe,gt as Fe,h as Ie,hn as I,ht as Le,i as Re,in as ze,it as Be,j as Ve,jt as He,k as Ue,kt as We,l as Ge,ln as Ke,lt as qe,m as Je,mn as Ye,mt as Xe,n as Ze,nn as Qe,nt as $e,o as et,on as tt,ot as nt,p as rt,pn as it,pt as at,q as ot,qt as L,r as st,rn as R,rt as ct,s as lt,sn as ut,st as dt,t as ft,tn as pt,tt as mt,u as z,un as ht,ut as gt,v as _t,w as vt,wt as yt,x as bt,y as xt,yt as St,z as Ct,zt as B}from"./WizardDialog-BpgjE4WV.js";import{i as wt,n as V,r as Tt,t as Et}from"./i18n-DNqS4Y9x.js";import{CommandRegistry as Dt,createBuiltinCommands as Ot,showCommandPalette as kt}from"./compat.js";import{createRequire as At}from"node:module";import jt from"wrap-ansi";import H,{createContext as Mt,createElement as U,useCallback as Nt,useContext as Pt,useEffect as W,useMemo as Ft,useRef as G,useState as K}from"react";import{Fragment as It,jsx as q,jsxs as J}from"react/jsx-runtime";import*as Lt from"ink";import{Box as Y,Static as Rt,Text as X,render as zt,useBoxMetrics as Bt,useInput as Vt,usePaste as Ht,useStdin as Ut,useStdout as Wt}from"ink";import{I18nextProvider as Gt}from"react-i18next";import{createStore as Kt}from"zustand/vanilla";import{useStore as qt}from"zustand";import{LARGE_FILE_BYTE_THRESHOLD as Jt,matchSubsequence as Yt,matchesGlobPattern as Xt,positionsToHighlightRanges as Zt,rankCandidates as Qt,rankLabeledItems as $t,rankNamedItems as en,readFileCapped as tn,scoreSubsequence as nn}from"@x-otto/shared";import{readdirSync as rn,statSync as an}from"node:fs";import{adjustDismissedSigil as on,applySigilCompletion as sn,applySigilReplacement as cn,evaluateSigilTrigger as ln,extractSigilPrefix as un}from"@x-otto/interchange";import{basename as dn,dirname as fn,join as pn,resolve as mn}from"node:path";import{execSync as hn,spawn as gn}from"node:child_process";import _n from"chalk";import{DEFAULT_DELEGATION_TOOLS as vn,SESSION_MAX_PER_SESSION_BYTES as yn,SESSION_RESUME_WINDOW_MESSAGES as bn}from"@x-otto/session-contract";import{marked as xn}from"marked";import{PassThrough as Sn}from"node:stream";const Cn=[`trust`,`readonly`,`exit`];function wn({root:e,onChoice:n}){let r=[{key:`trust`,label:V.t(`trust.optTrust`),color:I.success},{key:`readonly`,label:V.t(`trust.optReadonly`),color:I.accent},{key:`exit`,label:V.t(`trust.optExit`),color:I.inactive}];return J(M,{header:q(w,{color:I.warning,children:V.t(`trust.title`)}),footer:q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`1/2/3`,V.t(`hint.quick`)],[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.exit`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{wrap:`truncate-end`,children:V.t(`trust.body`,{path:e})})}),q(Y,{marginTop:t.tight,children:q(ve.Root,{id:`trust-prompt-dialog`,onPick:e=>n(Cn[e]??`exit`),escapeIndex:Cn.indexOf(`exit`),children:r.map(e=>q(ve.Item,{label:e.label,color:e.color},e.key))})})]})}function Tn(e){return Tt(e.language===`zh`?`zh`:e.language===`en`?`en`:Et()),new Promise(t=>{let n=!1,r=zt(H.createElement(wn,{root:e.root,onChoice:e=>{n||(n=!0,r.clear(),r.unmount(),le(),t(e))}}),{exitOnCtrlC:!1})})}const En=[`use_parent`,`create_new`,`exit`];function Dn({parentRoot:e,currentRoot:n,onChoice:r}){let i=[{key:`use_parent`,label:V.t(`parent.optUseParent`),color:I.success},{key:`create_new`,label:V.t(`parent.optCreateNew`),color:I.accent},{key:`exit`,label:V.t(`parent.optExit`),color:I.inactive}];return J(M,{header:q(w,{color:I.warning,children:V.t(`parent.title`)}),footer:q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`1/2/3`,V.t(`hint.quick`)],[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.exit`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{wrap:`truncate-end`,children:V.t(`parent.body`,{parentRoot:e,currentRoot:n})})}),q(Y,{marginTop:t.tight,children:q(ve.Root,{id:`parent-workspace-dialog`,onPick:e=>r(En[e]??`exit`),escapeIndex:En.indexOf(`exit`),children:i.map(e=>q(ve.Item,{label:e.label,color:e.color},e.key))})})]})}function On(e){return Tt(e.language===`zh`?`zh`:e.language===`en`?`en`:Et()),new Promise(t=>{let n=!1,r=zt(H.createElement(Dn,{parentRoot:e.parentRoot,currentRoot:e.currentRoot,onChoice:e=>{n||(n=!0,r.clear(),r.unmount(),le(),t(e))}}),{exitOnCtrlC:!1})})}const kn={five_hour:`5h`,seven_day:`7d`,seven_day_opus:`7d-opus`,seven_day_sonnet:`7d-sonnet`,seven_day_overage_included:`7d`},An={five_hour:`5-hour`,seven_day:`7-day`,seven_day_opus:`7-day (Opus)`,seven_day_sonnet:`7-day (Sonnet)`,seven_day_overage_included:`7-day`};function jn(e){return An[e]??e}function Mn(e,t){let n=Math.max(0,Math.round(e-t/1e3)),r=Math.floor(n/3600),i=Math.floor(n%3600/60);return r>0?`${r}h${i>0?`${i}m`:``}`:i>0?`${i}m`:`<1m`}function Nn(e,t){return e===`rejected`&&(t===`allowed`||t===`allowed_warning`)}function Pn(e,t){let n=e.limitType?kn[e.limitType]??e.limitType:``,r=e.usedPercent===void 0?``:` ${Math.round(e.usedPercent)}%`,i=!!(n||r);if(Nn(e.status,e.overageStatus)&&e.overageResetsAt!==void 0)return`${n}${r} +${Mn(e.overageResetsAt,t)}`.trim();let a=i?` → `:``;return`${n}${r}${e.resetsAt===void 0?``:`${a}${Mn(e.resetsAt,t)}`}`.trim()}const Fn={five_hour:300*60,seven_day:10080*60,seven_day_opus:10080*60,seven_day_sonnet:10080*60,seven_day_overage_included:10080*60};function In(e,t,n,r){if(!e||t===void 0||n===void 0)return null;let i=Fn[e];if(!i)return null;let a=r/1e3,o=n-i,s=Math.max(0,Math.min(100,Math.round((a-o)/i*100)));return(e===`five_hour`?[[90,72]]:[[75,60],[50,35],[25,15]]).some(([e,n])=>t>=e&&s<=n)?{usedPct:t,timePct:s}:null}function Ln(e,t,n,r,i,a){return Nn(e,a)||e===`allowed_warning`||e===`allowed`&&i!==void 0&&In(t,n,r,i)?`warning`:`inactive`}function Z(e,t){return qt(e.zustand,t)}function Rn(e){let t=Kt()(()=>e);return{getState:()=>t.getState(),setState:e=>{let n=t.getState(),r=typeof e==`function`?e(n):e,i=!1;for(let e of Object.keys(r))if(!Object.is(n[e],r[e])){i=!0;break}i&&t.setState(r)},subscribe:e=>t.subscribe(()=>e()),zustand:t}}var zn=class{buffer=``;active=!1;timer=null;timeoutMs;onEmptyPaste;constructor(e={}){this.timeoutMs=e.timeoutMs??100,this.onEmptyPaste=e.onEmptyPaste}get isPasting(){return this.active}get currentBuffer(){return this.active?this.buffer:``}feed(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\x1B[200~`,n),i=e.indexOf(`\x1B[201~`,n),a=r>=0&&i>=0&&i<r;if(this.active){if(r>=0&&!a){this.buffer+=e.slice(n,r),this.clearTimer(),t.push(this.flushPasteEnd()),n=r+6,this.active=!0,this.resetTimer(),t.push({type:`paste_start`});continue}if(i>=0){this.buffer+=e.slice(n,i),this.clearTimer(),t.push(this.flushPasteEnd()),n=i+6;continue}this.buffer+=e.slice(n),this.resetTimer();break}if(r>=0){this.active=!0,this.resetTimer(),t.push({type:`paste_start`}),n=r+6;continue}if(i>=0){n=i+6;continue}break}return t}forceEnd(){if(!this.active)return null;this.clearTimer();let e=this.buffer;return this.buffer=``,this.active=!1,{type:`paste_timeout`,partialText:e}}reset(){this.clearTimer(),this.buffer=``,this.active=!1}destroy(){this.reset()}resetTimer(){this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.forceEnd(),this.timeoutMs)}clearTimer(){this.timer&&=(clearTimeout(this.timer),null)}flushPasteEnd(){let e=this.buffer,t=e.length===0;return this.buffer=``,this.active=!1,t&&this.onEmptyPaste?.(),{type:`paste_end`,text:e,isEmpty:t}}};const Bn=/^\x1b\[(\d+)(?:;(\d+))?u$/,Vn=/^\x1b\[27;(\d+);(\d+)~$/,Hn=/^\x1b\[(\d+)~$/;function Un(e){if(!e.startsWith(`\x1B[`)&&!e.startsWith(`\x1BO`))return null;let t=e.match(Bn);if(t){let n=parseInt(t[1],10),r=t[2]?parseInt(t[2],10):1,i=r>0?r-1:0;return{name:Wn(n),ctrl:!!(i&4),alt:!!(i&2),shift:!!(i&1),meta:!!(i&8),sequence:e}}let n=e.match(Vn);if(n){let t=parseInt(n[1],10),r=parseInt(n[2],10),i=!!(t&8);return{name:Wn(r),ctrl:!!(t&4),alt:i,shift:!!(t&2),meta:i,sequence:e}}if(e.startsWith(`\x1BO`)){let t=e[2],n={A:`up`,B:`down`,C:`right`,D:`left`,H:`home`,F:`end`,P:`f1`,Q:`f2`,R:`f3`,S:`f4`};return t&&t in n?{name:n[t],shift:!1,alt:!1,ctrl:!1,meta:!1,sequence:e}:null}let r=e.match(/^\x1b\[(?:\d+;)?(\d+)?([ABCD])$/);if(r){let t={A:`up`,B:`down`,C:`right`,D:`left`},n=r[1]?parseInt(r[1],10):1;return{name:t[r[2]],ctrl:!!(n&4),alt:!!(n&8),shift:!!(n&2),meta:!!(n&8),sequence:e}}let i=e.match(Hn);return i?{name:Gn(parseInt(i[1],10)),shift:!1,alt:!1,ctrl:!1,meta:!1,sequence:e}:null}function Wn(e){return e>=97&&e<=122?String.fromCharCode(e):e>=65&&e<=90?String.fromCharCode(e+32):e===13?`return`:e===9?`tab`:e===27?`escape`:e===32?`space`:e===127||e===8?`backspace`:String.fromCharCode(e)}function Gn(e){switch(e){case 1:case 7:return`home`;case 2:return`insert`;case 3:return`delete`;case 4:case 8:return`end`;case 5:return`pageup`;case 6:return`pagedown`;case 11:return`f1`;case 12:return`f2`;case 13:return`f3`;case 14:return`f4`;case 15:return`f5`;case 17:return`f6`;case 18:return`f7`;case 19:return`f8`;case 20:return`f9`;case 21:return`f10`;case 23:return`f11`;case 24:return`f12`;default:return`f${e}`}}function Kn(e){if(!process.stdout.isTTY)return;let t=qn(e);t&&process.stdout.write(`\x1b]0;${t}\x07`)}function qn(e){let t=e.replace(/[\x00-\x1f\x7f-\x9f]/g,``).replace(/[\u200b\u200c\u200e\u200f\u202a-\u202e\u2060-\u206f\ufeff]/g,``).replace(/\s+/g,` `).trim();return t.length>240?t.slice(0,240):t}function Jn(e,t,n){return t?`\x1b]8;${n?`id=${encodeURIComponent(n)}`:``};${encodeURIComponent(t)}\x1b\\${e}\x1b]8;;\x1b\\`:e}function Yn(e,t,n,r){let i=t.startsWith(`file://`)?t:`file://${t}`;return n!==void 0&&(i+=`#L${n}`),r!==void 0&&(i+=`:${r}`),Jn(e,i)}function Xn(e,t=`c`){let n=Buffer.from(e,`utf-8`).toString(`base64`);process.stdout.write(`\x1b]52;${t};${n}\x07`)}function Zn(e=`c`){return`\x1b]52;${e};?\x07`}function Qn(){process.stdout.write(`\x1BP=1s\x1B\\`)}function $n(){process.stdout.write(`\x1BP=2s\x1B\\`)}function er(e){Qn();try{return e()}finally{$n()}}const tr=RegExp(`\x1B\\[\\?2026[hl]`,`g`);function nr(e){return e.includes(`\x1B[?2026`)?e.replace(tr,``):e}function rr(e){return new Proxy(e,{get(e,t){if(t===`write`)return(t,...n)=>e.write(typeof t==`string`?nr(t):t,...n);let n=Reflect.get(e,t);return typeof n==`function`?n.bind(e):n}})}function ir(e=process.env){return!!e.TMUX&&e.OTTO_TUI_SYNC!==`1`}const ar=RegExp(`\x1B\\[3J`,`g`);function or(e){return e.includes(`\x1B[3J`)?e.replace(ar,``):e}function sr(e){return new Proxy(e,{get(e,t){if(t===`write`)return(t,...n)=>e.write(typeof t==`string`?or(t):t,...n);let n=Reflect.get(e,t);return typeof n==`function`?n.bind(e):n}})}function cr(e=50){let t=[],n=0;return{snapshot(r){let i=Date.now();if(i-n<1e3)return;n=i;let a=t[t.length-1];a&&a.text===r.text&&a.offset===r.offset||(t.push({text:r.text,offset:r.offset,timestamp:i}),t.length>e&&t.splice(0,t.length-e))},undo(){return t.length===0?null:(n=0,t.pop())},get depth(){return t.length},reset(){t.length=0,n=0}}}function lr(e,t){if(!e)return[];let n=[];for(let r=t.length-1;r>=0;r--){let i=t[r],a=Yt(e,i);a&&n.push({entry:i,index:r,score:a.score,highlightRanges:Zt(a.positions)})}return n.sort((e,t)=>t.score-e.score||t.index-e.index),n.map(({entry:e,highlightRanges:t})=>{let n=t[0],r=t.at(-1);return{entry:e,matchStart:n?.start??0,matchEnd:r?.end??0,highlightRanges:t}})}function ur(e={}){let t=e.maxSize??100,n=e.initialEntries?[...e.initialEntries]:[];n.length>t&&n.splice(0,n.length-t);let r=-1,i=``,a=!1,o=[],s=``;return{push(e){e.length!==0&&(n.length>0&&n[n.length-1]===e||(n.push(e),n.length>t&&n.shift()))},navigateUp(e){return n.length===0?null:r===-1?(i=e,r=n.length-1,n[r]):r<=0?null:(r--,n[r])},navigateDown(){return r===-1?null:(r++,r>=n.length?(r=-1,i):n[r])},resetNavigation(){r=-1,i=``},beginSearch(e){s=e,a=!0,o=[],r===-1&&(i=e)},search(e){return!a||!e?[]:(o=lr(e,n),o)},acceptSearch(e){if(e<0||e>=o.length)return null;let t=o[e].entry;return a=!1,r=n.indexOf(t),t},cancelSearch(){return a=!1,o=[],s},get size(){return n.length},get navState(){return r===-1?null:{position:n.length-r,total:n.length}},getAll(){return n},clear(){n.length=0,r=-1,i=``,a=!1,o=[]}}}function dr(e,t){let n=process.env[e];if(!n)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>0?r:t}const fr=dr(`OTTO_PASTE_STORE_MAX_ENTRIES`,64),pr=dr(`OTTO_PASTE_STORE_MAX_BYTES`,33554432),mr=dr(`OTTO_PASTE_STORE_PERSIST_MAX_BYTES`,8388608),hr={healthy:1,warning:2,critical:4},gr=/\[@paste:#(\d+)(?:\s+\+(\d+)\s+lines)?\]/g;function _r(e){let t=[];gr.lastIndex=0;let n;for(;(n=gr.exec(e))!==null;)t.push({start:n.index,end:n.index+n[0].length,id:Number.parseInt(n[1],10)});return t}function vr(e){return Buffer.byteLength(e,`utf-8`)}function yr(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return Math.floor(e)}function br(e={}){let{residencyGovernor:t}=e,n=new Map,r=1,i=0,a=0;function o(){return t?.currentLevel??`healthy`}function s(){return Math.max(1,Math.floor(fr/hr[o()]))}function c(){return Math.max(1,Math.floor(pr/hr[o()]))}function l(e){let t=s(),r=c();for(;n.size>0&&(n.size>=t||i+e>r);){let e=n.keys().next().value;if(e===void 0)break;let t=n.get(e);t&&(i-=t.byteLength),n.delete(e),a++}}return{foldIfLarge(e){let t=e.split(`
1
+ import{$ as e,$t as t,A as n,At as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as l,Et as u,F as d,Ft as f,G as p,Gt as m,H as h,Ht as g,I as _,It as v,J as y,Jt as b,K as x,Kt as S,L as C,Lt as w,M as T,Mt as E,N as D,Nt as O,O as k,Ot as ee,P as te,Q as A,Qt as ne,R as j,Rt as M,S as re,T as N,Tt as ie,U as P,Ut as ae,V as oe,Vt as se,W as ce,Wt as le,X as ue,Xt as de,Y as fe,Yt as pe,Z as me,Zt as he,_ as ge,_n as _e,_t as ve,a as ye,an as be,at as xe,b as Se,c as Ce,cn as we,ct as Te,d as F,dn as Ee,dt as De,en as Oe,et as ke,f as Ae,fn as je,ft as Me,g as Ne,gn as Pe,gt as Fe,h as Ie,hn as I,ht as Le,i as Re,in as ze,it as Be,j as Ve,jt as He,k as Ue,kt as We,l as Ge,ln as Ke,lt as qe,m as Je,mn as Ye,mt as Xe,n as Ze,nn as Qe,nt as $e,o as et,on as tt,ot as nt,p as rt,pn as it,pt as at,q as ot,qt as L,r as st,rn as R,rt as ct,s as lt,sn as ut,st as dt,t as ft,tn as pt,tt as mt,u as z,un as ht,ut as gt,v as _t,w as vt,wt as yt,x as bt,y as xt,yt as St,z as Ct,zt as B}from"./WizardDialog-DTypQTfU.js";import{i as wt,n as V,r as Tt,t as Et}from"./i18n-BREWHEWk.js";import{CommandRegistry as Dt,createBuiltinCommands as Ot,showCommandPalette as kt}from"./compat.js";import{createRequire as At}from"node:module";import jt from"wrap-ansi";import H,{createContext as Mt,createElement as U,useCallback as Nt,useContext as Pt,useEffect as W,useMemo as Ft,useRef as G,useState as K}from"react";import{Fragment as It,jsx as q,jsxs as J}from"react/jsx-runtime";import*as Lt from"ink";import{Box as Y,Static as Rt,Text as X,render as zt,useBoxMetrics as Bt,useInput as Vt,usePaste as Ht,useStdin as Ut,useStdout as Wt}from"ink";import{I18nextProvider as Gt}from"react-i18next";import{createStore as Kt}from"zustand/vanilla";import{useStore as qt}from"zustand";import{LARGE_FILE_BYTE_THRESHOLD as Jt,matchSubsequence as Yt,matchesGlobPattern as Xt,positionsToHighlightRanges as Zt,rankCandidates as Qt,rankLabeledItems as $t,rankNamedItems as en,readFileCapped as tn,scoreSubsequence as nn}from"@x-otto/shared";import{readdirSync as rn,statSync as an}from"node:fs";import{adjustDismissedSigil as on,applySigilCompletion as sn,applySigilReplacement as cn,evaluateSigilTrigger as ln,extractSigilPrefix as un}from"@x-otto/interchange";import{basename as dn,dirname as fn,join as pn,resolve as mn}from"node:path";import{execSync as hn,spawn as gn}from"node:child_process";import _n from"chalk";import{DEFAULT_DELEGATION_TOOLS as vn,SESSION_MAX_PER_SESSION_BYTES as yn,SESSION_RESUME_WINDOW_MESSAGES as bn}from"@x-otto/session-contract";import{marked as xn}from"marked";import{PassThrough as Sn}from"node:stream";const Cn=[`trust`,`readonly`,`exit`];function wn({root:e,onChoice:n}){let r=[{key:`trust`,label:V.t(`trust.optTrust`),color:I.success},{key:`readonly`,label:V.t(`trust.optReadonly`),color:I.accent},{key:`exit`,label:V.t(`trust.optExit`),color:I.inactive}];return J(M,{header:q(w,{color:I.warning,children:V.t(`trust.title`)}),footer:q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`1/2/3`,V.t(`hint.quick`)],[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.exit`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{wrap:`truncate-end`,children:V.t(`trust.body`,{path:e})})}),q(Y,{marginTop:t.tight,children:q(ve.Root,{id:`trust-prompt-dialog`,onPick:e=>n(Cn[e]??`exit`),escapeIndex:Cn.indexOf(`exit`),children:r.map(e=>q(ve.Item,{label:e.label,color:e.color},e.key))})})]})}function Tn(e){return Tt(e.language===`zh`?`zh`:e.language===`en`?`en`:Et()),new Promise(t=>{let n=!1,r=zt(H.createElement(wn,{root:e.root,onChoice:e=>{n||(n=!0,r.clear(),r.unmount(),le(),t(e))}}),{exitOnCtrlC:!1})})}const En=[`use_parent`,`create_new`,`exit`];function Dn({parentRoot:e,currentRoot:n,onChoice:r}){let i=[{key:`use_parent`,label:V.t(`parent.optUseParent`),color:I.success},{key:`create_new`,label:V.t(`parent.optCreateNew`),color:I.accent},{key:`exit`,label:V.t(`parent.optExit`),color:I.inactive}];return J(M,{header:q(w,{color:I.warning,children:V.t(`parent.title`)}),footer:q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`1/2/3`,V.t(`hint.quick`)],[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.exit`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{wrap:`truncate-end`,children:V.t(`parent.body`,{parentRoot:e,currentRoot:n})})}),q(Y,{marginTop:t.tight,children:q(ve.Root,{id:`parent-workspace-dialog`,onPick:e=>r(En[e]??`exit`),escapeIndex:En.indexOf(`exit`),children:i.map(e=>q(ve.Item,{label:e.label,color:e.color},e.key))})})]})}function On(e){return Tt(e.language===`zh`?`zh`:e.language===`en`?`en`:Et()),new Promise(t=>{let n=!1,r=zt(H.createElement(Dn,{parentRoot:e.parentRoot,currentRoot:e.currentRoot,onChoice:e=>{n||(n=!0,r.clear(),r.unmount(),le(),t(e))}}),{exitOnCtrlC:!1})})}const kn={five_hour:`5h`,seven_day:`7d`,seven_day_opus:`7d-opus`,seven_day_sonnet:`7d-sonnet`,seven_day_overage_included:`7d`},An={five_hour:`5-hour`,seven_day:`7-day`,seven_day_opus:`7-day (Opus)`,seven_day_sonnet:`7-day (Sonnet)`,seven_day_overage_included:`7-day`};function jn(e){return An[e]??e}function Mn(e,t){let n=Math.max(0,Math.round(e-t/1e3)),r=Math.floor(n/3600),i=Math.floor(n%3600/60);return r>0?`${r}h${i>0?`${i}m`:``}`:i>0?`${i}m`:`<1m`}function Nn(e,t){return e===`rejected`&&(t===`allowed`||t===`allowed_warning`)}function Pn(e,t){let n=e.limitType?kn[e.limitType]??e.limitType:``,r=e.usedPercent===void 0?``:` ${Math.round(e.usedPercent)}%`,i=!!(n||r);if(Nn(e.status,e.overageStatus)&&e.overageResetsAt!==void 0)return`${n}${r} +${Mn(e.overageResetsAt,t)}`.trim();let a=i?` → `:``;return`${n}${r}${e.resetsAt===void 0?``:`${a}${Mn(e.resetsAt,t)}`}`.trim()}const Fn={five_hour:300*60,seven_day:10080*60,seven_day_opus:10080*60,seven_day_sonnet:10080*60,seven_day_overage_included:10080*60};function In(e,t,n,r){if(!e||t===void 0||n===void 0)return null;let i=Fn[e];if(!i)return null;let a=r/1e3,o=n-i,s=Math.max(0,Math.min(100,Math.round((a-o)/i*100)));return(e===`five_hour`?[[90,72]]:[[75,60],[50,35],[25,15]]).some(([e,n])=>t>=e&&s<=n)?{usedPct:t,timePct:s}:null}function Ln(e,t,n,r,i,a){return Nn(e,a)||e===`allowed_warning`||e===`allowed`&&i!==void 0&&In(t,n,r,i)?`warning`:`inactive`}function Z(e,t){return qt(e.zustand,t)}function Rn(e){let t=Kt()(()=>e);return{getState:()=>t.getState(),setState:e=>{let n=t.getState(),r=typeof e==`function`?e(n):e,i=!1;for(let e of Object.keys(r))if(!Object.is(n[e],r[e])){i=!0;break}i&&t.setState(r)},subscribe:e=>t.subscribe(()=>e()),zustand:t}}var zn=class{buffer=``;active=!1;timer=null;timeoutMs;onEmptyPaste;constructor(e={}){this.timeoutMs=e.timeoutMs??100,this.onEmptyPaste=e.onEmptyPaste}get isPasting(){return this.active}get currentBuffer(){return this.active?this.buffer:``}feed(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\x1B[200~`,n),i=e.indexOf(`\x1B[201~`,n),a=r>=0&&i>=0&&i<r;if(this.active){if(r>=0&&!a){this.buffer+=e.slice(n,r),this.clearTimer(),t.push(this.flushPasteEnd()),n=r+6,this.active=!0,this.resetTimer(),t.push({type:`paste_start`});continue}if(i>=0){this.buffer+=e.slice(n,i),this.clearTimer(),t.push(this.flushPasteEnd()),n=i+6;continue}this.buffer+=e.slice(n),this.resetTimer();break}if(r>=0){this.active=!0,this.resetTimer(),t.push({type:`paste_start`}),n=r+6;continue}if(i>=0){n=i+6;continue}break}return t}forceEnd(){if(!this.active)return null;this.clearTimer();let e=this.buffer;return this.buffer=``,this.active=!1,{type:`paste_timeout`,partialText:e}}reset(){this.clearTimer(),this.buffer=``,this.active=!1}destroy(){this.reset()}resetTimer(){this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.forceEnd(),this.timeoutMs)}clearTimer(){this.timer&&=(clearTimeout(this.timer),null)}flushPasteEnd(){let e=this.buffer,t=e.length===0;return this.buffer=``,this.active=!1,t&&this.onEmptyPaste?.(),{type:`paste_end`,text:e,isEmpty:t}}};const Bn=/^\x1b\[(\d+)(?:;(\d+))?u$/,Vn=/^\x1b\[27;(\d+);(\d+)~$/,Hn=/^\x1b\[(\d+)~$/;function Un(e){if(!e.startsWith(`\x1B[`)&&!e.startsWith(`\x1BO`))return null;let t=e.match(Bn);if(t){let n=parseInt(t[1],10),r=t[2]?parseInt(t[2],10):1,i=r>0?r-1:0;return{name:Wn(n),ctrl:!!(i&4),alt:!!(i&2),shift:!!(i&1),meta:!!(i&8),sequence:e}}let n=e.match(Vn);if(n){let t=parseInt(n[1],10),r=parseInt(n[2],10),i=!!(t&8);return{name:Wn(r),ctrl:!!(t&4),alt:i,shift:!!(t&2),meta:i,sequence:e}}if(e.startsWith(`\x1BO`)){let t=e[2],n={A:`up`,B:`down`,C:`right`,D:`left`,H:`home`,F:`end`,P:`f1`,Q:`f2`,R:`f3`,S:`f4`};return t&&t in n?{name:n[t],shift:!1,alt:!1,ctrl:!1,meta:!1,sequence:e}:null}let r=e.match(/^\x1b\[(?:\d+;)?(\d+)?([ABCD])$/);if(r){let t={A:`up`,B:`down`,C:`right`,D:`left`},n=r[1]?parseInt(r[1],10):1;return{name:t[r[2]],ctrl:!!(n&4),alt:!!(n&8),shift:!!(n&2),meta:!!(n&8),sequence:e}}let i=e.match(Hn);return i?{name:Gn(parseInt(i[1],10)),shift:!1,alt:!1,ctrl:!1,meta:!1,sequence:e}:null}function Wn(e){return e>=97&&e<=122?String.fromCharCode(e):e>=65&&e<=90?String.fromCharCode(e+32):e===13?`return`:e===9?`tab`:e===27?`escape`:e===32?`space`:e===127||e===8?`backspace`:String.fromCharCode(e)}function Gn(e){switch(e){case 1:case 7:return`home`;case 2:return`insert`;case 3:return`delete`;case 4:case 8:return`end`;case 5:return`pageup`;case 6:return`pagedown`;case 11:return`f1`;case 12:return`f2`;case 13:return`f3`;case 14:return`f4`;case 15:return`f5`;case 17:return`f6`;case 18:return`f7`;case 19:return`f8`;case 20:return`f9`;case 21:return`f10`;case 23:return`f11`;case 24:return`f12`;default:return`f${e}`}}function Kn(e){if(!process.stdout.isTTY)return;let t=qn(e);t&&process.stdout.write(`\x1b]0;${t}\x07`)}function qn(e){let t=e.replace(/[\x00-\x1f\x7f-\x9f]/g,``).replace(/[\u200b\u200c\u200e\u200f\u202a-\u202e\u2060-\u206f\ufeff]/g,``).replace(/\s+/g,` `).trim();return t.length>240?t.slice(0,240):t}function Jn(e,t,n){return t?`\x1b]8;${n?`id=${encodeURIComponent(n)}`:``};${encodeURIComponent(t)}\x1b\\${e}\x1b]8;;\x1b\\`:e}function Yn(e,t,n,r){let i=t.startsWith(`file://`)?t:`file://${t}`;return n!==void 0&&(i+=`#L${n}`),r!==void 0&&(i+=`:${r}`),Jn(e,i)}function Xn(e,t=`c`){let n=Buffer.from(e,`utf-8`).toString(`base64`);process.stdout.write(`\x1b]52;${t};${n}\x07`)}function Zn(e=`c`){return`\x1b]52;${e};?\x07`}function Qn(){process.stdout.write(`\x1BP=1s\x1B\\`)}function $n(){process.stdout.write(`\x1BP=2s\x1B\\`)}function er(e){Qn();try{return e()}finally{$n()}}const tr=RegExp(`\x1B\\[\\?2026[hl]`,`g`);function nr(e){return e.includes(`\x1B[?2026`)?e.replace(tr,``):e}function rr(e){return new Proxy(e,{get(e,t){if(t===`write`)return(t,...n)=>e.write(typeof t==`string`?nr(t):t,...n);let n=Reflect.get(e,t);return typeof n==`function`?n.bind(e):n}})}function ir(e=process.env){return!!e.TMUX&&e.OTTO_TUI_SYNC!==`1`}const ar=RegExp(`\x1B\\[3J`,`g`);function or(e){return e.includes(`\x1B[3J`)?e.replace(ar,``):e}function sr(e){return new Proxy(e,{get(e,t){if(t===`write`)return(t,...n)=>e.write(typeof t==`string`?or(t):t,...n);let n=Reflect.get(e,t);return typeof n==`function`?n.bind(e):n}})}function cr(e=50){let t=[],n=0;return{snapshot(r){let i=Date.now();if(i-n<1e3)return;n=i;let a=t[t.length-1];a&&a.text===r.text&&a.offset===r.offset||(t.push({text:r.text,offset:r.offset,timestamp:i}),t.length>e&&t.splice(0,t.length-e))},undo(){return t.length===0?null:(n=0,t.pop())},get depth(){return t.length},reset(){t.length=0,n=0}}}function lr(e,t){if(!e)return[];let n=[];for(let r=t.length-1;r>=0;r--){let i=t[r],a=Yt(e,i);a&&n.push({entry:i,index:r,score:a.score,highlightRanges:Zt(a.positions)})}return n.sort((e,t)=>t.score-e.score||t.index-e.index),n.map(({entry:e,highlightRanges:t})=>{let n=t[0],r=t.at(-1);return{entry:e,matchStart:n?.start??0,matchEnd:r?.end??0,highlightRanges:t}})}function ur(e={}){let t=e.maxSize??100,n=e.initialEntries?[...e.initialEntries]:[];n.length>t&&n.splice(0,n.length-t);let r=-1,i=``,a=!1,o=[],s=``;return{push(e){e.length!==0&&(n.length>0&&n[n.length-1]===e||(n.push(e),n.length>t&&n.shift()))},navigateUp(e){return n.length===0?null:r===-1?(i=e,r=n.length-1,n[r]):r<=0?null:(r--,n[r])},navigateDown(){return r===-1?null:(r++,r>=n.length?(r=-1,i):n[r])},resetNavigation(){r=-1,i=``},beginSearch(e){s=e,a=!0,o=[],r===-1&&(i=e)},search(e){return!a||!e?[]:(o=lr(e,n),o)},acceptSearch(e){if(e<0||e>=o.length)return null;let t=o[e].entry;return a=!1,r=n.indexOf(t),t},cancelSearch(){return a=!1,o=[],s},get size(){return n.length},get navState(){return r===-1?null:{position:n.length-r,total:n.length}},getAll(){return n},clear(){n.length=0,r=-1,i=``,a=!1,o=[]}}}function dr(e,t){let n=process.env[e];if(!n)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)&&r>0?r:t}const fr=dr(`OTTO_PASTE_STORE_MAX_ENTRIES`,64),pr=dr(`OTTO_PASTE_STORE_MAX_BYTES`,33554432),mr=dr(`OTTO_PASTE_STORE_PERSIST_MAX_BYTES`,8388608),hr={healthy:1,warning:2,critical:4},gr=/\[@paste:#(\d+)(?:\s+\+(\d+)\s+lines)?\]/g;function _r(e){let t=[];gr.lastIndex=0;let n;for(;(n=gr.exec(e))!==null;)t.push({start:n.index,end:n.index+n[0].length,id:Number.parseInt(n[1],10)});return t}function vr(e){return Buffer.byteLength(e,`utf-8`)}function yr(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return Math.floor(e)}function br(e={}){let{residencyGovernor:t}=e,n=new Map,r=1,i=0,a=0;function o(){return t?.currentLevel??`healthy`}function s(){return Math.max(1,Math.floor(fr/hr[o()]))}function c(){return Math.max(1,Math.floor(pr/hr[o()]))}function l(e){let t=s(),r=c();for(;n.size>0&&(n.size>=t||i+e>r);){let e=n.keys().next().value;if(e===void 0)break;let t=n.get(e);t&&(i-=t.byteLength),n.delete(e),a++}}return{foldIfLarge(e){let t=e.split(`
2
2
  `);if(e.length<=800&&t.length<=20)return e;let a=vr(e);l(a);let o=r++;return n.set(o,{text:e,byteLength:a}),i+=a,t.length>1?`[@paste:#${o} +${t.length} lines]`:`[@paste:#${o}]`},expandAll(e){let t=_r(e);if(t.length===0)return{text:e,missingIds:[]};let r=[],s=o(),c=[...t].sort((e,t)=>t.start-e.start),l=e;for(let e of c){let t=n.get(e.id);if(t===void 0){r.push(e.id);continue}l=l.slice(0,e.start)+t.text+l.slice(e.end),s===`healthy`?(n.delete(e.id),n.set(e.id,t)):(n.delete(e.id),i-=t.byteLength,a++)}return{text:l,missingIds:r.sort((e,t)=>e-t)}},findMissingIds(e){let t=_r(e),r=[];for(let e of t)n.has(e.id)||r.push(e.id);return[...new Set(r)].sort((e,t)=>e-t)},peek(e){return n.get(e)?.text},truncateIfNeeded(e){return e.length<=1e4?e:e.slice(0,500)+`\n[...Truncated ${e.length-500-500} chars...]\n`+e.slice(e.length-500)},addImageRef(){return`[@paste:image #${r++}]`},afterSubmit(e){if(o()!==`healthy`)for(let t of _r(e)){let e=n.get(t.id);e!==void 0&&(n.delete(t.id),i-=e.byteLength,a++)}},toSnapshot(){let e=[...n.entries()].map(([e,t])=>({id:e,text:t.text,byteLength:t.byteLength})),t=e.reduce((e,t)=>e+t.byteLength,0),i=0;for(;i<e.length&&t>mr;)t-=e[i].byteLength,i++;return{entries:i>0?e.slice(i):e,nextId:r}},hydrate(e){n.clear(),i=0;let t=Math.max(1,Math.floor(yr(e?.nextId)??0));for(let n of e?.entries??[]){let e=yr(n?.id);e!==void 0&&(t=Math.max(t,e+1))}r=Math.max(r,t);for(let t of e?.entries??[]){let e=yr(t?.id);if(e===void 0||typeof t?.text!=`string`||n.has(e))continue;let r=vr(t.text);n.set(e,{text:t.text,byteLength:r}),i+=r}},get size(){return n.size},get bytesUsed(){return i},get evictionCount(){return a},clear(){n.clear(),i=0}}}function xr(e){let t=e?[...e]:[],n=new Map;return{register(e){for(let n of e)t.some(e=>e.name===n.name)||t.push(n);t.sort((e,t)=>(e.sortKey??e.name).localeCompare(t.sortKey??t.name))},search(e,n=50){return Qt(t.map(e=>({text:e.name,aliases:[...e.aliases??[],...e.description?[e.description]:[]],payload:e,sortKey:e.sortKey})),e,{maxResults:n}).map(e=>e.item.payload)},getAll:()=>t,find:e=>t.find(t=>t.name===e),registerArgumentSuggester(e,t){n.set(e,t)},getArgumentSuggester(e){return n.get(e)}}}function Sr(e,t){let n=e.slice(0,t).trimStart();if(!n.startsWith(`/`))return null;let r=n.match(/^\/(.*)$/);return r?r[1]??``:null}function Cr(e,t,n){let r=Sr(e,t);if(r===null)return null;let i=r.indexOf(` `);if(i>0){let e=r.slice(0,i),t=r.slice(i+1),a=n.getArgumentSuggester(e);if(a){let n=en(a(t),t);if(n.length>0)return{suggestions:n,selectedIndex:0,prefix:`/${r}`,panelOpen:!0,argCommand:e}}return null}let a=n.search(r);return a.length===0?null:{suggestions:a,selectedIndex:0,prefix:`/${r}`,panelOpen:!0}}function wr(e,t){switch(t){case`prev`:return{...e,selectedIndex:(e.selectedIndex-1+e.suggestions.length)%e.suggestions.length};case`next`:return{...e,selectedIndex:(e.selectedIndex+1)%e.suggestions.length};case`accept`:return`accept`;case`dismiss`:return`dismiss`}}function Tr(e,t,n){let r=e.slice(0,t),i=r.lastIndexOf(`/`);if(i<0)return{text:e,offset:t};let a=r.slice(i+1),o=a.indexOf(` `),s=o>=0?a.slice(o):` `,c=`/${n.name}${s}`;return{text:e.slice(0,i)+c+e.slice(t),offset:i+c.length}}function Er(e){return{text:e,offset:e.length}}function Dr(e,t,n,r){if(!e)return null;let i=t.slice(0,n),a=i.lastIndexOf(`
3
3
  `)+1;return Fe(i.slice(a)+(t.slice(n).split(`
4
4
  `)[0]??``))+Fe(e)>r?null:e}function Or(e){return e.startsWith(`!!`)?{prefix:`!!`,body:e.slice(2)}:e.startsWith(`!`)?{prefix:`!`,body:e.slice(1)}:{prefix:``,body:e}}function kr(e){return e.startsWith(`!!`)?e.slice(2):e.startsWith(`!`)?e.slice(1):e}function Ar(e,t,n){let{prefix:r,body:i}=Or(e);if(r.length>0){if(i.length===0)return null;let e=i.toLowerCase();for(let a=n.length-1;a>=0;a--){let o=kr(n[a]);if(o.length<=i.length||!o.toLowerCase().startsWith(e))continue;let s=r+o;return{fullText:s,suffix:s.slice(t),kind:`history`}}return null}let a=e.toLowerCase();for(let r=n.length-1;r>=0;r--){let i=n[r];if(!(i.length<=e.length)&&i.toLowerCase().startsWith(a))return{fullText:i,suffix:i.slice(t),kind:`history`}}return null}function jr(e,t,n){let r=Sr(e,t);if(r===null||r.length===0)return null;let i=r.indexOf(` `);if(i>0){let a=r.slice(0,i),o=r.slice(i+1),s=n.getArgumentSuggester(a);if(!s)return null;let c=en(s(o),o,{maxResults:1});if(c.length===0)return null;let l=Nr(e,t,a,c[0].name);return{fullText:l.text,suffix:l.text.slice(t),kind:`slash-arg`}}let a=n.search(r,1);if(a.length===0)return null;let o=Tr(e,t,a[0]);return{fullText:o.text,suffix:o.text.slice(t),kind:`slash-command`}}function Mr(e){let{text:t,offset:n,dismissedPrefix:r,history:i,registry:a}=e;if(n!==t.length||t.length===0||r!==void 0&&r===t)return null;if(a&&t.trimStart().startsWith(`/`)){let e=Sr(t,n);if(e!==null&&e.length===0)return null;let r=jr(t,n,a);if(r)return r}return Ar(t,n,i)}function Nr(e,t,n,r){let i=e.slice(0,t),a=i.lastIndexOf(`/`);if(a<0)return{text:e,offset:t};let o=i.slice(a+1).indexOf(` `);if(o<0)return{text:e,offset:t};let s=a+1+o+1;return{text:e.slice(0,s)+r+e.slice(t),offset:s+r.length}}function Pr(e){return(e.VISUAL||e.EDITOR||``).trim()||(process.platform===`win32`?`notepad`:`vi`)}function Fr(e,t){let n=Pr(t.env),r=null;try{r=t.mkdtempSync(t.join(t.tmpdir(),`otto-edit-`));let i=t.join(r,`prompt.md`);t.writeFileSync(i,e);let a=n.split(/\s+/).filter(Boolean),o=a[0],s=[...a.slice(1),i],c=t.spawnSync(o,s,{stdio:`inherit`});return c.error?{ok:!1,error:`cannot launch editor "${n}": ${c.error.message}`}:c.status!=null&&c.status!==0?{ok:!1,error:`editor exited with code ${c.status}`}:{ok:!0,text:t.readFileSync(i).replace(/\n$/,``)}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}finally{if(r)try{t.rmSync(r,{recursive:!0,force:!0})}catch{}}}function Ir(){let e=_e(`fs`),t=_e(`os`),n=_e(`path`),r=_e(`child_process`);return{env:process.env,tmpdir:()=>t.tmpdir(),join:(...e)=>n.join(...e),mkdtempSync:t=>e.mkdtempSync(t),writeFileSync:(t,n)=>e.writeFileSync(t,n),readFileSync:t=>e.readFileSync(t,`utf8`),rmSync:(t,n)=>e.rmSync(t,n),spawnSync:(e,t,n)=>{let i=r.spawnSync(e,t,n);return{status:i.status,error:i.error}}}}const Lr=`/overlay/toast`,Rr=`/overlay/pause`,zr=`/overlay/retry`,Br=`/overlay/error-retry`,Vr=`/overlay/pulse-survey`,Hr=`/overlay/forced-upgrade`,Ur=`/overlay/paste-confirm`,Wr=`/overlay/services`,Gr=`/overlay/chip-viewer`,Kr=[Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr];function qr(e){return e.startsWith(`/overlay/`)}function Jr(e,t,n){e&&(n?e.ensure(t):e.dismiss(t))}const Yr=[/\bpassword\s*=/i,/\btoken\s*=/i,/export\s+\w*key\w*\s*=/i,/\bsecret\s*=/i];function Xr(e,t=Yr){return t.some(t=>t.test(e))}const Zr=`zsh-histfile`,Qr=/^: (\d+):(\d+);(.*)$/s;function $r(e){let t=[],n;for(let r of e){let e=n===void 0?r:`${n}\n${r}`;if(ei(r)){n=e.slice(0,-1);continue}t.push(e),n=void 0}return n!==void 0&&t.push(n),t}function ei(e){let t=0;for(let n=e.length-1;n>=0&&e[n]===`\\`;n--)t++;return t%2==1}function ti(e,t={}){let{source:n=Zr,sensitivePatterns:r,filterSensitive:i=!0}=t,a=[],o=0;for(let t of $r(e.split(`
@@ -8,7 +8,7 @@ import{$ as e,$t as t,A as n,At as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as
8
8
  `);if((t.length>800||n.length>20)&&S)S(t,{confirm:()=>{let e=ye.foldIfLarge(t);ze(M.slice(0,N)+e+M.slice(N),N+e.length,`paste`)},cancel:()=>{}});else{let e=ye.foldIfLarge(t);ze(M.slice(0,N)+e+M.slice(N),N+e.length,`paste`)}},[M,N,ye,ze,S]),{currentPath:Ge}=ce(),Ke=Ge===`/`||Ge===`/home`,qe=G(null),Je=(Ke||Ge===`/overlay/toast`)&&!r&&P===`send`,Ye=G(0);return Ht(We,{isActive:Ke&&!r}),yt(`prompt-input`,Nt((t,n)=>{if(n.ctrl&&t===`c`){s?.();return}if(n.ctrl&&t===`l`){c?.();return}if(me(ke,`prompt`,t,n,x)===`save-draft`)return M.trim()?(b?.(M),y?.(V.t(`draft.sLabel`),V.t(`draft.saved`)),!0):(y?.(V.t(`draft.sLabel`),V.t(`draft.saveEmpty`)),!0);if(r)return;if(n.tab&&I&&Ie){let e=Er(Ie.fullText);return ze(e.text,e.offset,`completion`),!0}if(n.tab&&oe&&!oe.panelOpen&&oe.suggestions.length>0&&P!==`bash`&&P!==`bash_async`)return se({...oe,panelOpen:!0}),!0;if(n.ctrl&&t===`r`){u?.();return}if(n.ctrl&&t===`x`){try{Se?.(!1)}catch{}let e=Fr(M,Ir());try{Se?.(!0)}catch{}e.ok&&e.text!=null?Ve(e.text,e.text.length):e.error&&y?.(V.t(`toast.editorError`),e.error);return}if(n.ctrl&&(t===`_`||t===``||t===`-`)){let e=_e.undo();e&&(ze(e.text,e.offset,`programmatic`),se(null),Oe(null));return}if(I&&n.escape){Pe(M);return}if(oe&&oe.panelOpen){if(n.escape){se({...oe,panelOpen:!1});return}if(n.upArrow||n.downArrow||n.tab||n.return){let e=wr(oe,n.upArrow?`prev`:n.downArrow?`next`:`accept`);if(e===`accept`){let e=oe.suggestions[oe.selectedIndex];if(e&&!e.disabled){let t=oe.argCommand?Nr(M,N,oe.argCommand,e.name):Tr(M,N,e);return n.return?(Ue(t.text,!1),!0):(ze(t.text,t.offset,`completion`),!0)}return se(null),!0}return e===`dismiss`?(se({...oe,panelOpen:!1}),!0):(se(e),!0)}}let i=P===`bash`||P===`bash_async`;if(n.tab&&i&&ne?.current){let e=ne.current;if(Ee&&Ee.visible){let e=Oi(Ee,`next`);if(e===`accept`){let e=ki(M,N,Ee);return ze(e.text,e.offset,`completion`),Oe(null),!0}return e===`dismiss`?(Oe(null),!0):(Oe(e),!0)}if(Ae.current)return!0;let t=M,n=N;return Ae.current=!0,(async()=>{let r=await e.getCompletions({text:t,cursorOffset:n,cwd:w??process.cwd()});if(Ae.current=!1,je.current!==t||Me.current!==n)return;let i=Si(t,n);if(!i||r.length===0)return;let{word:a,start:o}=i;if(r.length===1){let e=ki(t,n,{completions:r,selectedIndex:0,prefix:a,wordStart:o,visible:!0,commonPrefixApplied:!1});ze(e.text,e.offset,`completion`);return}let s=Di(r);if(s.length>a.length){let e={completions:r,selectedIndex:0,prefix:a,wordStart:o,visible:!0,commonPrefixApplied:!1},n=Ai(t,e);ze(n.text,n.offset,`completion`),Oe({...e,prefix:s,commonPrefixApplied:!0});return}Oe({completions:r,selectedIndex:0,prefix:a,wordStart:o,visible:!0,commonPrefixApplied:!1})})(),!0}if(n.escape&&M.length===0){l?.();return}if(t.length>1&&!n.ctrl&&!n.meta&&!n.return&&!n.escape&&!n.backspace&&!n.delete&&!n.tab&&!n.upArrow&&!n.downArrow&&!n.leftArrow&&!n.rightArrow){let e=Te(t);if(e){let t=ye.foldIfLarge(e);Be(M.slice(0,N)+t+M.slice(N),N+t.length)}return}let a=ue.navState!==null,o=M.trimStart().startsWith(`/`);if(n.downArrow&&o&&oe&&oe.suggestions.length>0&&!a&&!M.includes(`
9
9
  `)){Pe(M),se({...oe,panelOpen:!0});return}let d=De.fromText(M,e,N),f=d.up().offset!==d.offset,p=d.down().offset!==d.offset;if(n.upArrow&&(!f||a)){let e=ue.navigateUp(M);if(e!==null){He(e,e.length);let t=ue.navState;t&&ee?.({...t,entry:e})}return}if(n.downArrow&&(!p||a)){let e=ue.navigateDown();if(e!==null){He(e,e.length);let t=ue.navState;ee?.(t?{...t,entry:e}:null)}return}if(n.upArrow||n.downArrow){let t=De.fromText(M,e,N),r=n.upArrow?t.up():t.down();Be(r.text,r.offset);return}if(n.leftArrow){let t=De.fromText(M,e,N).left();Be(t.text,t.offset);return}if(n.rightArrow||n.end){if(I&&Ie){let e=Er(Ie.fullText);ze(e.text,e.offset,`completion`);return}if(n.end){Be(M,M.length);return}let t=De.fromText(M,e,N).right();Be(t.text,t.offset);return}if(n.return&&Date.now()-Ce.current<50)return;if(n.return){let e=at(M,N);if(e){let t=Xe(e.text);if(t===`paste`){let t=Le(e.text);if(t===void 0)return;let n=ye.peek(t);n!==void 0&&v?v(e.text,n):y&&y(V.t(`paste.titlePasteExpired`),V.t(`paste.expiredToast`,{count:1}));return}if(g){let n={start:e.start,end:e.end};g(t,n,{select:e=>{let t=cn(M,n.start,n.end,e);ze(t.text,t.offset,`completion`)},cancel:()=>{}});return}}}(n.backspace||n.delete)&&(Ye.current=Date.now());let m={name:n.return?`return`:n.escape?`escape`:n.backspace?`backspace`:n.delete?`delete`:n.tab?`tab`:t||`unknown`,ctrl:n.ctrl??!1,shift:n.shift??!1,alt:n.meta??!1,meta:n.meta??!1},h=nt(De.fromText(M,e,N),m);if(h){if(h.action===`submit`){Ue(M,!1);return}if(h.action===`submit_force`){Ue(M,!0);return}if(h.action===`clear_text`){Be(h.cursor.text,h.cursor.offset);return}Be(h.cursor.text,h.cursor.offset)}},[M,N,e,r,oe,Ee,ne,P,w,s,c,l,y,b,x,g,v,ye,ze,Ue,Be,Ve,He,I,Ie]),{isActive:Ke&&!r&&!i}),J(Y,{flexDirection:`column`,children:[oe&&oe.panelOpen&&oe.suggestions.length>0&&(()=>{let e=oe.suggestions.length,n=oe.selectedIndex,r=e<=10?0:Math.min(Math.max(0,n-5),e-10),i=oe.suggestions.slice(r,r+10);return J(Y,{flexDirection:`column`,...pt,borderColor:j.panelBorder,children:[q(Y,{height:1,children:q(_,{hasMore:r>0,count:r})}),i.map((e,t)=>{let i=r+t;return J(X,{color:i===n?j.selection:void 0,dimColor:i!==n||!!e.disabled,bold:i===n,children:[i===n?tt():be(),`/`,e.name,e.aliases?.length?` (${e.aliases.join(`, `)})`:``,e.description?` — ${e.description}`:``]},e.name)}),q(Y,{height:1,children:q(C,{hasMore:r+10<e,count:e-r-10})}),q(Y,{marginTop:t.tight}),q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.close`)]]})]})})(),Ee&&Ee.visible&&Ee.completions.length>0&&(()=>{let e=Ee.completions.length,t=Ee.selectedIndex,n=e<=10?0:Math.min(Math.max(0,t-5),e-10),r=Ee.completions.slice(n,n+10);return J(Y,{flexDirection:`column`,...pt,borderColor:j.panelBorder,children:[q(Y,{height:1,children:q(_,{hasMore:n>0,count:n})}),r.map((e,r)=>{let i=n+r;return J(X,{color:i===t?j.selection:void 0,dimColor:i!==t,bold:i===t,children:[i===t?tt():be(),e]},e)}),q(Y,{height:1,children:q(C,{hasMore:n+10<e,count:e-n-10})})]})})(),r&&q(X,{dimColor:!0,children:n||R.ellipsis}),!r&&q(mt,{value:M,offset:N,columns:e,mode:P,placeholder:i?V.t(`prompt.reviewingPlaceholder`):Ke?n||V.t(`prompt.fallback`):V.t(`prompt.unfocused`),focused:Ke&&!i,ghostSuffix:I,invalidPasteIds:Re,containerRef:qe,physicalCursor:Je,deleteKeyAt:Ye.current})]})}function Fi({items:e}){let t=L();return e.length===0?null:J(Y,{children:[q(X,{color:t.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`queue.label`)}),J(d,{type:`secondary`,children:[` `,e.length]}),J(d,{type:`secondary`,dim:!0,children:[` `,i(`q`)]})]})}function Ii(e){return`'`+e.replace(/'/g,`'\\''`)+`'`}function Li(e,t,n){let r=Object.entries(t).map(([e,t])=>e+`=`+Ii(t)).join(` `);try{return hn(r+` `+e,{timeout:n,maxBuffer:100*1024}).toString(`utf-8`).split(`
10
10
  `).filter(Boolean)}catch{return[]}}var Ri=class{name=`bash`;commandCache=null;async getCommands(e){if(this.commandCache&&e){let t=e.toLowerCase(),n=[];for(let[,e]of this.commandCache)for(let r of e)r.toLowerCase().startsWith(t)&&n.push(r);return n.map(e=>({value:e,type:`command`}))}let t=Li(`bash -c 'compgen -ac'`,{},200),n=new Map;for(let e of t){let t=e.charAt(0).toLowerCase(),r=n.get(t)??[];r.push(e),n.set(t,r)}if(this.commandCache=n,!e)return t.map(e=>({value:e,type:`command`}));let r=e.toLowerCase();return t.filter(e=>e.toLowerCase().startsWith(r)).map(e=>({value:e,type:`command`}))}buildCompreplyScript(){return[`for compfile in /usr/share/bash-completion/bash_completion \\`,` /usr/local/share/bash-completion/bash_completion \\`,` "$HOME/.bash_completion"; do`,` [ -f "$compfile" ] && source "$compfile" 2>/dev/null && break`,`done`,`_init_completion -s 2>/dev/null || true`,`COMP_WORDS=($words)`,`COMP_CWORD=$cword`,`COMPREPLY=()`,`_command_completion 2>/dev/null`,'printf "%s\\n" "${COMPREPLY[@]}"'].join(`
11
- `)}buildCompgenFileScript(e){return`bash -c 'compgen -A file -- `+Ii(e)+` 2>/dev/null; compgen -A directory -- `+Ii(e)+` 2>/dev/null'`}async getCompletions(e){let{words:t,wordIndex:n,cwd:r}=e;if(t.length===0)return[];let i=t[0]?.word??``,a=Li(`bash -c '`+this.buildCompreplyScript()+`'`,{words:t.map(e=>e.word).join(` `),cword:String(n),cmd:i},500);if(a.length>0)return a.map(e=>({value:e,type:`arg`}));let o=t[n]?.word??``,s=Li(this.buildCompgenFileScript(o),{},200);return s.length>0?s.map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`})):Ei(o,r).map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`}))}destroy(){this.commandCache=null}},zi=class{name=`zsh`;commandCache=null;async getCommands(e){if(this.commandCache&&e){let t=e.toLowerCase(),n=[];for(let[,e]of this.commandCache)for(let r of e)r.toLowerCase().startsWith(t)&&n.push(r);return n.map(e=>({value:e,type:`command`}))}let t=Li("zsh -c 'autoload -Uz compinit; compinit -i 2>/dev/null; print -l ${(k)_comps}'",{},300),n=new Map;for(let e of t){let t=e.charAt(0).toLowerCase(),r=n.get(t)??[];r.push(e),n.set(t,r)}if(this.commandCache=n,!e)return t.map(e=>({value:e,type:`command`}));let r=e.toLowerCase();return t.filter(e=>e.toLowerCase().startsWith(r)).map(e=>({value:e,type:`command`}))}async getCompletions(e){let{words:t,wordIndex:n}=e,r=t[0]?.word??``,i=t[n]?.word??``,a=Li("zsh -c 'autoload -Uz compinit; compinit -i 2>/dev/null; _comps[$cmd] $cmd ${(q)prefix}'",{cmd:r,prefix:i},500);if(a.length>0)return a.map(e=>({value:e,type:`arg`}));let o=Li("zsh -c 'print -l ${(k)_commands} 2>/dev/null'",{},200);if(o.length>0){let e=i.toLowerCase();return o.filter(t=>t.toLowerCase().startsWith(e)).map(e=>({value:e,type:`command`}))}return[]}destroy(){this.commandCache=null}},Bi=class{name=`builtin`;async getCommands(e){if(!e)return wi().map(e=>({value:e,type:`command`}));let t=e.toLowerCase();return wi().filter(e=>e.toLowerCase().startsWith(t)).map(e=>({value:e,type:`command`}))}async getCompletions(e){let{words:t,wordIndex:n,cwd:r}=e,i=t[n]?.word??``;return n===0?this.getCommands(i):Ei(i,r).map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`}))}destroy(){}};const Vi={enabled:!0,backend:`auto`,commandTimeoutMs:200,argTimeoutMs:500,maxResults:100};function Hi(){let e=process.env.SHELL??``;return e.includes(`zsh`)?`zsh`:e.includes(`bash`)||e.includes(`sh`)?`bash`:`other`}function Ui(e){let t={...Vi,...e};if(!t.enabled||t.backend===`disabled`)return null;let n=t.backend;switch(n===`auto`&&(n=Hi()===`zsh`?`zsh`:`bash`),n){case`bash`:return new Ri;case`zsh`:return new zi;case`builtin`:return new Bi;default:return new Bi}}const Wi={commandTimeoutMs:200,argTimeoutMs:500,maxResults:100,commandCacheTtlMs:3e4,argCacheTtlMs:3e4,maxCacheEntries:50};function Gi(e){return Date.now()>e.expiresAt}function Ki(e,t){return e.slice(0,t).map(e=>e.value)}function qi(e,t){let n=new Set,r=[];for(let i of[...e,...t])n.has(i)||(n.add(i),r.push(i));return r}var Ji=class{backend;opts;commandCache=null;argCache=new Map;abortController=null;constructor(e,t){this.backend=e,this.opts={...Wi,...t}}cancelPending(){this.abortController&&=(this.abortController.abort(),null)}getCommands(e){if(this.commandCache&&!Gi(this.commandCache)&&e){let t=e.toLowerCase();return Promise.resolve(this.commandCache.data.filter(e=>e.toLowerCase().startsWith(t)))}if(!this.backend){let t=Ti(e);return this.commandCache={data:[...t],expiresAt:Date.now()+this.opts.commandCacheTtlMs},Promise.resolve(t)}return Promise.race([this.backend.getCommands(e).then(t=>{let n=Ki(t,this.opts.maxResults);return this.commandCache={data:[...n],expiresAt:Date.now()+this.opts.commandCacheTtlMs},qi(n,Ti(e))}).catch(()=>Ti(e)),new Promise(t=>{setTimeout(()=>t(Ti(e)),this.opts.commandTimeoutMs)})])}getCompletions(e){let{text:t,cursorOffset:n,cwd:r}=e,i=Si(t,n);if(!i)return Promise.resolve([]);let{word:a,source:o}=i;if(o===`command`)return this.getCommands(a);if(!this.backend)return Promise.resolve(Ei(a,r));let s=t.startsWith(`!!`)?t.slice(2):t.startsWith(`!`)?t.slice(1):t,c=s.split(` `).filter(Boolean),l=n-(t.length-s.length),u=Math.max(0,s.slice(0,l).split(` `).filter(Boolean).length-1),d=c[0]??``,f=r+`|`+d+`|`+a,p=this.argCache.get(f);if(p&&!Gi(p))return Promise.resolve(p.data);let m={text:s,cursorOffset:l,words:c.map(e=>({word:e,offset:0})),wordIndex:u,cwd:r,signal:void 0};return Promise.race([this.backend.getCompletions(m).then(e=>{let t=qi(Ki(e,this.opts.maxResults),Ei(a,r));return this.setArgCache(f,t),t}).catch(()=>Ei(a,r)),new Promise(e=>{setTimeout(()=>e(Ei(a,r)),this.opts.argTimeoutMs)})])}setArgCache(e,t){if(this.argCache.size>=this.opts.maxCacheEntries){let e=[...this.argCache.entries()],t=Math.ceil(this.opts.maxCacheEntries/3);for(let n=0;n<t&&n<e.length;n++)this.argCache.delete(e[n][0])}this.argCache.set(e,{data:t,expiresAt:Date.now()+this.opts.argCacheTtlMs})}makeShellCompletion(e,t,n){return{completions:e,selectedIndex:0,prefix:n,wordStart:t,visible:!0,commonPrefixApplied:!1}}destroy(){this.cancelPending(),this.backend&&=(this.backend.destroy(),null),this.commandCache=null,this.argCache.clear()}};function Yi(e,t){if(t!==`send`)return``;let n=e.trimStart();return n.startsWith(`/`)?(n.slice(1).split(/\s+/)[0]??``).toLowerCase():``}function Xi(e,t){return e?.()??t}function Zi(e,t){return e||t}function Qi(e,t){return e||t}function $i(e,t){return e||t}function ea(e,t,n,r){let i=Yi(e,t);return i&&r.isInterruptCommand?.(i)||i&&r.isImmediateCommand(i)?`command`:r.processing?n||t!==`send`||i?`queue`:`steer`:`send`}let ta=null;function na(){return ta||=Rn({indices:{}}),ta}function ra(e,t){let n=na(),r=Z(n,t=>t.indices[e]??0),i=t>0?Math.min(r,Math.max(0,t-1)):r,a=G(e);a.current=e;let o=G(t);return o.current=t,W(()=>{i!==r&&n.setState(e=>({indices:{...e.indices,[a.current]:i}}))},[i,r,n]),[i,e=>{let t=n.getState().indices[a.current]??0,r=typeof e==`function`?e(t):e,i=Math.max(0,o.current-1),s=o.current>0?Math.min(r,i):r;s!==t&&n.setState(e=>({indices:{...e.indices,[a.current]:s}}))}]}function ia(e,t,n){let r=Math.max(1,Math.floor(t)),i=Math.max(0,e-r),a=Math.min(Math.max(0,Math.floor(n)),i),o=Math.min(e,a+r);return{offset:a,start:a,end:o,above:a,below:Math.max(0,e-o)}}function aa(){let e=Rn({offset:0,totalLines:0}),t=new Set;return{store:e,scrollBy(t){let n=e.getState();if(n.totalLines<=0)return;let r=n.totalLines-1;e.setState({offset:Math.min(r,Math.max(0,n.offset+t))})},page(t,n){let r=Math.max(1,Math.floor(n)-2),i=e.getState();if(i.totalLines<=0)return;let a=i.totalLines-1;e.setState({offset:Math.min(a,Math.max(0,i.offset+t*r))})},toTop(){e.setState({offset:2**53-1})},toBottom(){e.setState({offset:0})},setOffset(t){let n=e.getState();if(n.totalLines<=0)return;let r=n.totalLines-1;e.setState({offset:Math.min(r,Math.max(0,Math.floor(t)))})},setTotalLines(t){e.setState({totalLines:Math.max(0,Math.floor(t))})},registerWheel(e){return t.add(e),()=>{t.delete(e)}},dispatchWheel(e){if(t.size===0)return!1;let n=[...t];return n[n.length-1](e),!0}}}function oa(e,t,n,r){let i=Math.max(0,n-Math.max(1,Math.floor(r)));return Math.min(i,Math.max(0,Math.floor(e)-t*3))}const sa=Mt(void 0),ca=sa.Provider;function la(){return Pt(sa)}function ua(e,t,n){if(e<=t||t<=0)return null;let r=Math.max(1,Math.round(t/e*t)),i=e-t,a=t-r;return{start:Math.round(Math.min(Math.max(0,n),i)/i*a),size:r}}function da(e,t,n){let r=ua(e,t,n),i=[];for(let e=0;e<t;e++)i.push(r&&e>=r.start&&e<r.start+r.size?R.scrollThumb:` `);return i}function fa(e,t){if(t<=0||e.length===0)return``;let n=R.sparkline,r=e.slice(-t),i=r.filter(e=>Number.isFinite(e));if(i.length===0)return n[0].repeat(r.length);let a=Math.min(...i),o=Math.max(...i),s=o-a,c=Math.max(Math.abs(a),Math.abs(o)),l=c===0||s/c<.05;return r.map(e=>Number.isFinite(e)?l?n[3]:n[Math.min(n.length-1,Math.floor((e-a)/s*n.length))]:n[0]).join(``)}function pa(e,t){if(t<=0)return``;let n=Math.round(Math.min(1,Math.max(0,e))*t),r=N(R.gaugeFilled,n);return r+N(R.gaugeRest,Math.max(0,t-ut(r)))}const ma=`\x1B[43m`,ha=`\x1B[49m`,ga=`\x1B[48;5;208m`,_a=`\x1B[49m`;function va(e,t,n){if(t.length===0||e===``)return e;let r=[];for(let e of t){if(!e)continue;let[t,n]=e,i=r[r.length-1];i&&t<=i[1]?i[1]=Math.max(i[1],n):r.push([t,n])}let i;n&&n[0]!==void 0&&n[1]!==void 0&&(i=[n[0],n[1]]);let a=e=>i!==void 0&&e>=i[0]&&e<i[1],o=e=>r.some(([t,n])=>e>=t&&e<n),s=``,c=0,l=!1,u=!1,d=0,f=!1,p=``,m=()=>{let e=a(c),t=o(c);!l&&t?(s+=e?ga:ma,l=!0,u=e):l&&!t?(s+=u?_a:ha,l=!1):l&&t&&e!==u&&(s+=u?_a:ha,s+=e?ga:ma,u=e)};for(let t=0;t<e.length;t++){let n=e.charAt(t);if(n===`\x1B`&&t+1<e.length&&e.charAt(t+1)===`]`){let n=t+2;for(;n<e.length;){if(e.charAt(n)===`\x07`){n++;break}if(e.charAt(n)===`\x1B`&&n+1<e.length&&e.charAt(n+1)===`\\`){n+=2;break}n++}s+=e.slice(t,n),t=n-1;continue}if(n===`\x1B`&&t+1<e.length&&e.charAt(t+1)===`[`&&(d++,f=!1,p=``),!d)m(),s+=n,c++;else{if(m(),s+=n,f)f=!1;else{let e=n.charCodeAt(0);e>=64&&e<=126?(l&&n===`m`&&/^(?:0|0;.*|.*;0(?:;.*)?)$/.test(p)&&(s+=u?ga:ma),d=0,p=``):e>=32&&(p+=n)}n===`\x1B`&&d>0&&(f=!0)}}return l&&(s+=u?_a:ha),s}function ya(e,t,n={}){if(!t)return[];if(n.regex){let r;try{r=new RegExp(t,n.caseSensitive?`g`:`gi`)}catch{return[]}let i=[],a;for(;(a=r.exec(e))!==null;)i.push([a.index,a.index+a[0].length]),a[0].length===0&&r.lastIndex++;return i}if(n.wholeWord){let r;try{let e=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);r=RegExp(`\\b${e}\\b`,n.caseSensitive?`g`:`gi`)}catch{return[]}let i=[],a;for(;(a=r.exec(e))!==null;)i.push([a.index,a.index+a[0].length]);return i}let r=n.caseSensitive?e:e.toLowerCase(),i=n.caseSensitive?t:t.toLowerCase(),a=[],o=0;for(;;){let e=r.indexOf(i,o);if(e===-1)break;a.push([e,e+t.length]),o=e+1}return a}const ba={keyword:`#C678DD`,built_in:`#56B6C2`,type:`#56B6C2`,literal:`#D19A66`,number:`#D19A66`,regexp:`#98C379`,string:`#98C379`,class:`#E5C07B`,function:`#61AFEF`,comment:`#5C6370`,doctag:`#5C6370`,meta:`#5C6370`,tag:`#E06C75`,name:`#E06C75`,attr:`#56B6C2`,addition:`#98C379`,deletion:`#E06C75`};let xa=null;function Sa(){if(!xa)return;let e={};for(let[t,n]of Object.entries(ba))e[t]=xa.hex(n);return e}let Ca=null,wa=null,Ta=null;function Ea(){return Ta||(Ta=Promise.all([import(`cli-highlight`),import(`chalk`)]).then(([e,t])=>{Ca=e.highlight,wa=e.supportsLanguage,xa=t.default}).catch(()=>{}),Ta)}function Da(){return Ca!==null}function Oa(e,t){if(!Ca)return Ea(),null;if(!t||e.length>524288||wa&&!wa(t))return null;try{let n=Sa();return n?Ca(e,{language:t,ignoreIllegals:!0,theme:n}):Ca(e,{language:t,ignoreIllegals:!0})}catch{return null}}const ka=[`∙`,`◦`,`▪`,`-`];function Aa(e){return e.every(e=>ut(e)===1)}function ja(e,t,n){let r=e[t??n];if(typeof r==`string`&&r.length>0)return r;let i=e[n];return typeof i==`string`?i:``}function Ma(e=I,t,n){let r={...t,...n},i=r.listMarkers&&Aa(r.listMarkers)?r.listMarkers:ka,a=r.listIndent===3?3:2;return{heading1:ja(e,r.heading1,`accent`),heading2:ja(e,r.heading2,`secondary`),headingWeak:ja(e,r.headingWeak,`inactive`),listMarkerPrimary:ja(e,r.listMarker,`secondary`),listMarkerMuted:ja(e,r.listMarkerMuted,`inactive`),quoteBar:ja(e,r.quoteBar,`accentDim`),quoteText:ja(e,r.quoteText,`secondary`),link:ja(e,r.link,`accentBright`),inlineCode:ja(e,r.inlineCode,`codeText`),codeFenceDivider:ja(e,r.codeFence,`inactive`),tableHeader:ja(e,r.tableHeader,`secondary`),tableDivider:ja(e,r.tableDivider,`inactive`),listIndent:a,listMarkers:i,codeBlockDivider:r.codeBlockDivider===`none`?`none`:`hr`,h1Divider:e.inactive,hr:e.inactive,codeGutter:e.inactive,codeLabel:e.suggestion,tableBody:e.text,taskChecked:e.success}}let Na;function Pa(e){Na=e}function Fa(){return Na}function Ia(){return Ma(I,void 0,Na)}function La(){return Ia()}function Q(e,t){if(!t||!e)return e;try{if(t.startsWith(`#`))return _n.hex(t)(e);let n=_n[t];return typeof n==`function`?n(e):e}catch{return e}}function Ra(e,t,n){return Jn(_n.underline(Q(e,n.link)),t)}const za=e=>e.replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&#(?:39|x27);/gi,`'`);function Ba(e,t=!1,n=La()){return Va(xn.Lexer.lexInline(e),t,n)}function Va(e,t,n){if(!e)return``;let r=``;for(let i of e)switch(i.type){case`text`:{let e=i;r+=e.tokens?Va(e.tokens,t,n):za(e.text);break}case`escape`:r+=i.text;break;case`codespan`:{let e=za(i.text);r+=t?e:Q(e,n.inlineCode);break}case`strong`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[1m${e}\x1b[22m`;break}case`em`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[3m${e}\x1b[23m`;break}case`del`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[9m${e}\x1b[29m`;break}case`link`:{let e=i,a=Va(e.tokens,t,n);r+=t?a:Ra(a,e.href,n);break}case`image`:r+=i.text||i.href;break;case`br`:r+=`
11
+ `)}buildCompgenFileScript(e){return`bash -c 'compgen -A file -- `+Ii(e)+` 2>/dev/null; compgen -A directory -- `+Ii(e)+` 2>/dev/null'`}async getCompletions(e){let{words:t,wordIndex:n,cwd:r}=e;if(t.length===0)return[];let i=t[0]?.word??``,a=Li(`bash -c '`+this.buildCompreplyScript()+`'`,{words:t.map(e=>e.word).join(` `),cword:String(n),cmd:i},500);if(a.length>0)return a.map(e=>({value:e,type:`arg`}));let o=t[n]?.word??``,s=Li(this.buildCompgenFileScript(o),{},200);return s.length>0?s.map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`})):Ei(o,r).map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`}))}destroy(){this.commandCache=null}},zi=class{name=`zsh`;commandCache=null;async getCommands(e){if(this.commandCache&&e){let t=e.toLowerCase(),n=[];for(let[,e]of this.commandCache)for(let r of e)r.toLowerCase().startsWith(t)&&n.push(r);return n.map(e=>({value:e,type:`command`}))}let t=Li("zsh -c 'autoload -Uz compinit; compinit -i 2>/dev/null; print -l ${(k)_comps}'",{},300),n=new Map;for(let e of t){let t=e.charAt(0).toLowerCase(),r=n.get(t)??[];r.push(e),n.set(t,r)}if(this.commandCache=n,!e)return t.map(e=>({value:e,type:`command`}));let r=e.toLowerCase();return t.filter(e=>e.toLowerCase().startsWith(r)).map(e=>({value:e,type:`command`}))}async getCompletions(e){let{words:t,wordIndex:n}=e,r=t[0]?.word??``,i=t[n]?.word??``,a=Li("zsh -c 'autoload -Uz compinit; compinit -i 2>/dev/null; _comps[$cmd] $cmd ${(q)prefix}'",{cmd:r,prefix:i},500);if(a.length>0)return a.map(e=>({value:e,type:`arg`}));let o=Li("zsh -c 'print -l ${(k)_commands} 2>/dev/null'",{},200);if(o.length>0){let e=i.toLowerCase();return o.filter(t=>t.toLowerCase().startsWith(e)).map(e=>({value:e,type:`command`}))}return[]}destroy(){this.commandCache=null}},Bi=class{name=`builtin`;async getCommands(e){if(!e)return wi().map(e=>({value:e,type:`command`}));let t=e.toLowerCase();return wi().filter(e=>e.toLowerCase().startsWith(t)).map(e=>({value:e,type:`command`}))}async getCompletions(e){let{words:t,wordIndex:n,cwd:r}=e,i=t[n]?.word??``;return n===0?this.getCommands(i):Ei(i,r).map(e=>({value:e,type:e.endsWith(`/`)?`dir`:`file`}))}destroy(){}};const Vi={enabled:!0,backend:`auto`,commandTimeoutMs:200,argTimeoutMs:500,maxResults:100};function Hi(){let e=process.env.SHELL??``;return e.includes(`zsh`)?`zsh`:e.includes(`bash`)||e.includes(`sh`)?`bash`:`other`}function Ui(e){let t={...Vi,...e};if(!t.enabled||t.backend===`disabled`)return null;let n=t.backend;switch(n===`auto`&&(n=Hi()===`zsh`?`zsh`:`bash`),n){case`bash`:return new Ri;case`zsh`:return new zi;case`builtin`:return new Bi;default:return new Bi}}const Wi={commandTimeoutMs:200,argTimeoutMs:500,maxResults:100,commandCacheTtlMs:3e4,argCacheTtlMs:3e4,maxCacheEntries:50};function Gi(e){return Date.now()>e.expiresAt}function Ki(e,t){return e.slice(0,t).map(e=>e.value)}function qi(e,t){let n=new Set,r=[];for(let i of[...e,...t])n.has(i)||(n.add(i),r.push(i));return r}var Ji=class{backend;opts;commandCache=null;argCache=new Map;abortController=null;constructor(e,t){this.backend=e,this.opts={...Wi,...t}}cancelPending(){this.abortController&&=(this.abortController.abort(),null)}getCommands(e){if(this.commandCache&&!Gi(this.commandCache)&&e){let t=e.toLowerCase();return Promise.resolve(this.commandCache.data.filter(e=>e.toLowerCase().startsWith(t)))}if(!this.backend){let t=Ti(e);return this.commandCache={data:[...t],expiresAt:Date.now()+this.opts.commandCacheTtlMs},Promise.resolve(t)}return Promise.race([this.backend.getCommands(e).then(t=>{let n=Ki(t,this.opts.maxResults);return this.commandCache={data:[...n],expiresAt:Date.now()+this.opts.commandCacheTtlMs},qi(n,Ti(e))}).catch(()=>Ti(e)),new Promise(t=>{setTimeout(()=>t(Ti(e)),this.opts.commandTimeoutMs)})])}getCompletions(e){let{text:t,cursorOffset:n,cwd:r}=e,i=Si(t,n);if(!i)return Promise.resolve([]);let{word:a,source:o}=i;if(o===`command`)return this.getCommands(a);if(!this.backend)return Promise.resolve(Ei(a,r));let s=t.startsWith(`!!`)?t.slice(2):t.startsWith(`!`)?t.slice(1):t,c=s.split(` `).filter(Boolean),l=n-(t.length-s.length),u=Math.max(0,s.slice(0,l).split(` `).filter(Boolean).length-1),d=c[0]??``,f=r+`|`+d+`|`+a,p=this.argCache.get(f);if(p&&!Gi(p))return Promise.resolve(p.data);let m={text:s,cursorOffset:l,words:c.map(e=>({word:e,offset:0})),wordIndex:u,cwd:r,signal:void 0};return Promise.race([this.backend.getCompletions(m).then(e=>{let t=qi(Ki(e,this.opts.maxResults),Ei(a,r));return this.setArgCache(f,t),t}).catch(()=>Ei(a,r)),new Promise(e=>{setTimeout(()=>e(Ei(a,r)),this.opts.argTimeoutMs)})])}setArgCache(e,t){if(this.argCache.size>=this.opts.maxCacheEntries){let e=[...this.argCache.entries()],t=Math.ceil(this.opts.maxCacheEntries/3);for(let n=0;n<t&&n<e.length;n++)this.argCache.delete(e[n][0])}this.argCache.set(e,{data:t,expiresAt:Date.now()+this.opts.argCacheTtlMs})}makeShellCompletion(e,t,n){return{completions:e,selectedIndex:0,prefix:n,wordStart:t,visible:!0,commonPrefixApplied:!1}}destroy(){this.cancelPending(),this.backend&&=(this.backend.destroy(),null),this.commandCache=null,this.argCache.clear()}};function Yi(e,t){if(t!==`send`)return``;let n=e.trimStart();return n.startsWith(`/`)?(n.slice(1).split(/\s+/)[0]??``).toLowerCase():``}function Xi(e,t){return e?.()??t}function Zi(e,t){return e||t}function Qi(e,t){return e||t}function $i(e,t){return e||t}function ea(e,t,n,r){let i=Yi(e,t);return i&&r.isInterruptCommand?.(i)||i&&r.isImmediateCommand(i)?`command`:r.processing?n||t!==`send`||i?`queue`:`steer`:`send`}let ta=null;function na(){return ta||=Rn({indices:{}}),ta}function ra(e,t){let n=na(),r=Z(n,t=>t.indices[e]??0),i=t>0?Math.min(r,Math.max(0,t-1)):r,a=G(e);a.current=e;let o=G(t);return o.current=t,W(()=>{i!==r&&n.setState(e=>({indices:{...e.indices,[a.current]:i}}))},[i,r,n]),[i,e=>{let t=n.getState().indices[a.current]??0,r=typeof e==`function`?e(t):e,i=Math.max(0,o.current-1),s=o.current>0?Math.min(r,i):r;s!==t&&n.setState(e=>({indices:{...e.indices,[a.current]:s}}))}]}function ia(e,t,n){let r=Math.max(1,Math.floor(t)),i=Math.max(0,e-r),a=Math.min(Math.max(0,Math.floor(n)),i),o=Math.min(e,a+r);return{offset:a,start:a,end:o,above:a,below:Math.max(0,e-o)}}function aa(){let e=Rn({offset:0,totalLines:0,atTranscriptTop:!1}),t=new Set;return{store:e,scrollBy(t){let n=e.getState();if(n.totalLines<=0)return;let r=n.totalLines-1;e.setState({offset:Math.min(r,Math.max(0,n.offset+t))})},page(t,n){let r=Math.max(1,Math.floor(n)-2),i=e.getState();if(i.totalLines<=0)return;let a=i.totalLines-1;e.setState({offset:Math.min(a,Math.max(0,i.offset+t*r))})},toTop(){e.setState({offset:2**53-1})},toBottom(){e.setState({offset:0})},setOffset(t){let n=e.getState();if(n.totalLines<=0)return;let r=n.totalLines-1;e.setState({offset:Math.min(r,Math.max(0,Math.floor(t)))})},setTotalLines(t){e.setState({totalLines:Math.max(0,Math.floor(t))})},setAtTranscriptTop(t){e.getState().atTranscriptTop!==t&&e.setState({atTranscriptTop:t})},registerWheel(e){return t.add(e),()=>{t.delete(e)}},dispatchWheel(e){if(t.size===0)return!1;let n=[...t];return n[n.length-1](e),!0}}}function oa(e,t,n,r){let i=Math.max(0,n-Math.max(1,Math.floor(r)));return Math.min(i,Math.max(0,Math.floor(e)-t*3))}const sa=Mt(void 0),ca=sa.Provider;function la(){return Pt(sa)}function ua(e,t,n){if(e<=t||t<=0)return null;let r=Math.max(1,Math.round(t/e*t)),i=e-t,a=t-r;return{start:Math.round(Math.min(Math.max(0,n),i)/i*a),size:r}}function da(e,t,n){let r=ua(e,t,n),i=[];for(let e=0;e<t;e++)i.push(r&&e>=r.start&&e<r.start+r.size?R.scrollThumb:` `);return i}function fa(e,t){if(t<=0||e.length===0)return``;let n=R.sparkline,r=e.slice(-t),i=r.filter(e=>Number.isFinite(e));if(i.length===0)return n[0].repeat(r.length);let a=Math.min(...i),o=Math.max(...i),s=o-a,c=Math.max(Math.abs(a),Math.abs(o)),l=c===0||s/c<.05;return r.map(e=>Number.isFinite(e)?l?n[3]:n[Math.min(n.length-1,Math.floor((e-a)/s*n.length))]:n[0]).join(``)}function pa(e,t){if(t<=0)return``;let n=Math.round(Math.min(1,Math.max(0,e))*t),r=N(R.gaugeFilled,n);return r+N(R.gaugeRest,Math.max(0,t-ut(r)))}const ma=`\x1B[43m`,ha=`\x1B[49m`,ga=`\x1B[48;5;208m`,_a=`\x1B[49m`;function va(e,t,n){if(t.length===0||e===``)return e;let r=[];for(let e of t){if(!e)continue;let[t,n]=e,i=r[r.length-1];i&&t<=i[1]?i[1]=Math.max(i[1],n):r.push([t,n])}let i;n&&n[0]!==void 0&&n[1]!==void 0&&(i=[n[0],n[1]]);let a=e=>i!==void 0&&e>=i[0]&&e<i[1],o=e=>r.some(([t,n])=>e>=t&&e<n),s=``,c=0,l=!1,u=!1,d=0,f=!1,p=``,m=()=>{let e=a(c),t=o(c);!l&&t?(s+=e?ga:ma,l=!0,u=e):l&&!t?(s+=u?_a:ha,l=!1):l&&t&&e!==u&&(s+=u?_a:ha,s+=e?ga:ma,u=e)};for(let t=0;t<e.length;t++){let n=e.charAt(t);if(n===`\x1B`&&t+1<e.length&&e.charAt(t+1)===`]`){let n=t+2;for(;n<e.length;){if(e.charAt(n)===`\x07`){n++;break}if(e.charAt(n)===`\x1B`&&n+1<e.length&&e.charAt(n+1)===`\\`){n+=2;break}n++}s+=e.slice(t,n),t=n-1;continue}if(n===`\x1B`&&t+1<e.length&&e.charAt(t+1)===`[`&&(d++,f=!1,p=``),!d)m(),s+=n,c++;else{if(m(),s+=n,f)f=!1;else{let e=n.charCodeAt(0);e>=64&&e<=126?(l&&n===`m`&&/^(?:0|0;.*|.*;0(?:;.*)?)$/.test(p)&&(s+=u?ga:ma),d=0,p=``):e>=32&&(p+=n)}n===`\x1B`&&d>0&&(f=!0)}}return l&&(s+=u?_a:ha),s}function ya(e,t,n={}){if(!t)return[];if(n.regex){let r;try{r=new RegExp(t,n.caseSensitive?`g`:`gi`)}catch{return[]}let i=[],a;for(;(a=r.exec(e))!==null;)i.push([a.index,a.index+a[0].length]),a[0].length===0&&r.lastIndex++;return i}if(n.wholeWord){let r;try{let e=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);r=RegExp(`\\b${e}\\b`,n.caseSensitive?`g`:`gi`)}catch{return[]}let i=[],a;for(;(a=r.exec(e))!==null;)i.push([a.index,a.index+a[0].length]);return i}let r=n.caseSensitive?e:e.toLowerCase(),i=n.caseSensitive?t:t.toLowerCase(),a=[],o=0;for(;;){let e=r.indexOf(i,o);if(e===-1)break;a.push([e,e+t.length]),o=e+1}return a}const ba={keyword:`#C678DD`,built_in:`#56B6C2`,type:`#56B6C2`,literal:`#D19A66`,number:`#D19A66`,regexp:`#98C379`,string:`#98C379`,class:`#E5C07B`,function:`#61AFEF`,comment:`#5C6370`,doctag:`#5C6370`,meta:`#5C6370`,tag:`#E06C75`,name:`#E06C75`,attr:`#56B6C2`,addition:`#98C379`,deletion:`#E06C75`};let xa=null;function Sa(){if(!xa)return;let e={};for(let[t,n]of Object.entries(ba))e[t]=xa.hex(n);return e}let Ca=null,wa=null,Ta=null;function Ea(){return Ta||(Ta=Promise.all([import(`cli-highlight`),import(`chalk`)]).then(([e,t])=>{Ca=e.highlight,wa=e.supportsLanguage,xa=t.default}).catch(()=>{}),Ta)}function Da(){return Ca!==null}function Oa(e,t){if(!Ca)return Ea(),null;if(!t||e.length>524288||wa&&!wa(t))return null;try{let n=Sa();return n?Ca(e,{language:t,ignoreIllegals:!0,theme:n}):Ca(e,{language:t,ignoreIllegals:!0})}catch{return null}}const ka=[`∙`,`◦`,`▪`,`-`];function Aa(e){return e.every(e=>ut(e)===1)}function ja(e,t,n){let r=e[t??n];if(typeof r==`string`&&r.length>0)return r;let i=e[n];return typeof i==`string`?i:``}function Ma(e=I,t,n){let r={...t,...n},i=r.listMarkers&&Aa(r.listMarkers)?r.listMarkers:ka,a=r.listIndent===3?3:2;return{heading1:ja(e,r.heading1,`accent`),heading2:ja(e,r.heading2,`secondary`),headingWeak:ja(e,r.headingWeak,`inactive`),listMarkerPrimary:ja(e,r.listMarker,`secondary`),listMarkerMuted:ja(e,r.listMarkerMuted,`inactive`),quoteBar:ja(e,r.quoteBar,`accentDim`),quoteText:ja(e,r.quoteText,`secondary`),link:ja(e,r.link,`accentBright`),inlineCode:ja(e,r.inlineCode,`codeText`),codeFenceDivider:ja(e,r.codeFence,`inactive`),tableHeader:ja(e,r.tableHeader,`secondary`),tableDivider:ja(e,r.tableDivider,`inactive`),listIndent:a,listMarkers:i,codeBlockDivider:r.codeBlockDivider===`none`?`none`:`hr`,h1Divider:e.inactive,hr:e.inactive,codeGutter:e.inactive,codeLabel:e.suggestion,tableBody:e.text,taskChecked:e.success}}let Na;function Pa(e){Na=e}function Fa(){return Na}function Ia(){return Ma(I,void 0,Na)}function La(){return Ia()}function Q(e,t){if(!t||!e)return e;try{if(t.startsWith(`#`))return _n.hex(t)(e);let n=_n[t];return typeof n==`function`?n(e):e}catch{return e}}function Ra(e,t,n){return Jn(_n.underline(Q(e,n.link)),t)}const za=e=>e.replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&#(?:39|x27);/gi,`'`);function Ba(e,t=!1,n=La()){return Va(xn.Lexer.lexInline(e),t,n)}function Va(e,t,n){if(!e)return``;let r=``;for(let i of e)switch(i.type){case`text`:{let e=i;r+=e.tokens?Va(e.tokens,t,n):za(e.text);break}case`escape`:r+=i.text;break;case`codespan`:{let e=za(i.text);r+=t?e:Q(e,n.inlineCode);break}case`strong`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[1m${e}\x1b[22m`;break}case`em`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[3m${e}\x1b[23m`;break}case`del`:{let e=Va(i.tokens,t,n);r+=t?e:`\x1b[9m${e}\x1b[29m`;break}case`link`:{let e=i,a=Va(e.tokens,t,n);r+=t?a:Ra(a,e.href,n);break}case`image`:r+=i.text||i.href;break;case`br`:r+=`
12
12
  `;break;default:r+=za(i.text??``)}return r}function Ha(e,t,n=``){let r=jt(e,Math.max(1,t),{hard:!1,trim:!1}),i=r.length===0?[``]:r.split(`
13
13
  `);return n?i.map((e,t)=>t===0?e:n+e):i}const Ua=/\b(const|let|var|function|return|if|else|for|while|class|interface|type|export|import|from|async|await|try|catch|throw|new|this|super|extends|implements|static|public|private|readonly|enum|switch|case|break|default|continue|do|in|of|instanceof|typeof|void|delete)\b/g,Wa=/(\b\d+\b)/g,Ga=/("[^"]*"|'[^']*'|`[^`]*`)/g,Ka=/(\/\/.*)/g;function qa(e){let t=[],n=(n,r)=>{n.lastIndex=0;let i;for(;(i=n.exec(e))!==null;)t.push([i.index,i.index+i[0].length,r])};if(n(Wa,I.warning),n(Ua,I.codeText),n(Ga,I.success),n(Ka,I.inactive),t.length===0)return e;t.sort((e,t)=>e[0]-t[0]||t[1]-e[1]);let r=[];for(let e of t){if(r.length===0){r.push(e);continue}let t=r[r.length-1];e[0]<t[1]?r[r.length-1]=e:r.push(e)}let i=``,a=0;for(let[t,n,o]of r)t>a&&(i+=e.slice(a,t)),i+=Q(e.slice(t,n),o),a=n;return a<e.length&&(i+=e.slice(a)),i}function Ja(e,t,n,r){let i=Oa(e,t),a=(i??e).split(`
14
14
  `),o=String(a.length).length,s=[];t&&(s.push(Q(` ${t}`,r.codeLabel)),r.codeBlockDivider!==`none`&&s.push(Q(N(R.hr,Math.min(40,Math.max(3,n))),r.codeFenceDivider)));for(let e=0;e<a.length;e++){let t=Q(String(e+1).padStart(o)+` `,r.codeGutter),n=`\x1b]9;cw=${o+1}\x07`,c=i?a[e]??``:qa(a[e]);s.push(n+t+(c||` `))}return s}function Ya(e,t){if(ut(e)<=t)return[e];let n=jt(e,Math.max(1,t),{hard:!0,trim:!1});return n?n.split(`
@@ -39,7 +39,7 @@ import{$ as e,$t as t,A as n,At as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as
39
39
  `)})})}const zc=H.memo(Rc),Bc=new Set([`tool`,`tool_result`,`compact_boundary`,`prune_boundary`,`history_capped`,`write_lease_denied`,`write_lease_restored`,`run_paused`,`run_resumed`,`run_pause_cancelled`,`model_switch`,`effort_switch`,`model_fallback`,`command_echo`]);function Vc(e,t){return t?!1:!Bc.has(e)}function Hc(e,t){let n=``,r=t;for(let{role:t,lines:i}of e){if(i.length===0)continue;let e=!r;r=!0,n+=(Vc(t,e)?`
40
40
  `:``)+i.join(`
41
41
  `)+`
42
- `}return{text:n,hasHistory:r}}const Uc=aa();function Wc(e){return`… ${e} 行更早历史(回看加载)`}const Gc=H.memo(function({content:e}){return q(X,{wrap:`truncate-end`,children:e===``?` `:e})}),Kc=new WeakMap;function qc(e,t){let n=e,r=V.language??``;if(typeof n==`object`&&n){let i=Kc.get(n);if(i&&i.columns===t&&i.lang===r)return i.lines;let a=rc(e,t);return Kc.set(n,{columns:t,lang:r,lines:a}),a}return rc(e,t)}function Jc(e,t,n=2e4,r=!1){let i=Math.max(1,t),a=[],o=r;for(let t of e){let e=qc(t,i);e.length!==0&&(Vc(String(t.role??`unknown`),!o)&&a.push(``),a.push(...e),o=!0)}if(a.length<=n)return{lines:a,folded:0};let s=a.length-n,c=a.slice(s);return c[0]=Wc(s),{lines:c,folded:s}}function Yc({messages:e,columns:t,rows:n,scroll:r=0,scrollStore:i,frozenNewCount:a=0,earlierLoading:o=!1,earlierEnded:s=!1,onNeedEarlier:c,onPrepend:l,findQuery:u,findActiveMatch:d,onFindNavigateTo:f,onFindCountChange:p,onReviewHintChange:m,renderReviewHint:h=!0,maxLines:g}){let _=H.useRef(null),v=H.useRef(0),y=H.useMemo(()=>{let n=_.current,r=g??2e4;if(n&&n.columns===t&&e.length>=n.len&&(n.len===0||e[n.len-1]===n.lastMsg)){let i=Jc(e.slice(n.len),t,1/0,n.lines.length>0),a=[...n.lines,...i.lines],o=a.length>r?a.length-r:0;if(o>0){let r=a.slice(o),i=n.folded+o-1;return r[0]=Wc(i),_.current={len:e.length,columns:t,lines:r,lastMsg:e[e.length-1],firstMsg:e[0],folded:i},{lines:r,folded:i}}return _.current={len:e.length,columns:t,lines:a,lastMsg:e[e.length-1],firstMsg:e[0],folded:n.folded},{lines:a,folded:n.folded}}let i=Jc(e,t,1/0),a=0,o=i.lines;return i.lines.length>r&&(a=i.lines.length-r,o=[Wc(a),...i.lines.slice(a)]),n!==null&&n.firstMsg!==void 0&&e[0]!==n.firstMsg&&e.length>n.len&&(v.current=Math.max(0,i.lines.length-n.lines.length)),_.current={len:e.length,columns:t,lines:o,lastMsg:e[e.length-1],firstMsg:e[0],folded:a},{lines:o,folded:a}},[e,t,g,l]),b=Z((i??Uc).store,e=>e.offset),x=i?b:r,S=Math.max(1,Math.floor(n)-((u?1:0)+(x>0?1:0)+(h?1:0))),C=Fo(y.lines.length,S,x),w=y.lines.slice(C.start,C.end);y.folded>0&&C.start===0&&w.length>0&&(s?w=w.slice(1):o&&(w=[V.t(`transcript.loadingEarlier`),...w.slice(1)]));let T=C.above===0&&x>0;H.useEffect(()=>{T&&!o&&!s&&c&&c()},[T,o,s,c]),H.useEffect(()=>{i?.setTotalLines(y.lines.length)},[y.lines.length,i]);let E=s&&C.above===0&&x>0,D=C.above>0&&x>0;H.useEffect(()=>{if(v.current>0&&l){let e=v.current;v.current=0,l(e)}},[y,l]);let O=H.useMemo(()=>{if(!u)return{byLine:new Map,flat:[]};let e=new Map,t=[];for(let n=0;n<y.lines.length;n++){let r=ya(ks(y.lines[n]),u);if(r.length>0){e.set(n,r);for(let e of r)t.push({line:n,range:e})}}return{byLine:e,flat:t}},[u,y]);H.useEffect(()=>{p?.(O.flat.length)},[O,p]),H.useEffect(()=>{if(!f||d==null||d<0)return;let e=O.flat[d];if(!e)return;let t=Math.max(1,Math.floor(n)),r=Math.max(0,y.lines.length-t);f(Math.min(r,Math.max(0,y.lines.length-e.line-Math.floor(t/2))))},[d,O]);let k=y.folded>0&&C.start===0&&w.length>0&&(s||o),ee=w.map((e,t)=>{let n=k&&s?C.start+t+1:C.start+t;if(k&&o&&t===0)return e;let r=O.byLine.get(n);if(!r||r.length===0)return e;let i;if(d!=null&&d>=0){let e=O.flat[d];e&&e.line===n&&(i=e.range)}return va(e,r,i)}),te=x>0||C.above>0||a>0,A=a>0?C.below>0?`⏸ ${a} ${V.t(`transcript.frozenNew`)} · ↓ ${C.below} ${V.t(`transcript.escToLive`)}`:`⏸ ${a} ${V.t(`transcript.frozenNew`)} · ${V.t(`transcript.escToLive`)}`:C.below>0?`↓ ${C.below} · ${V.t(`transcript.escToLive`)}`:null;return H.useEffect(()=>{m?.(te&&A?A:null)},[te,A,m]),J(Y,{flexDirection:`column`,children:[u&&q(X,{bold:!0,children:V.t(`transcript.findBar`,{query:u,count:O.flat.length})}),D&&q(X,{dimColor:!0,children:`↑ ${C.above}`}),E&&q(X,{dimColor:!0,children:V.t(`transcript.emptyEarlier`)}),ee.map((e,t)=>q(Gc,{content:e},C.start+t)),h&&te&&A&&q(X,{dimColor:!0,children:A})]})}function Xc(e,t){let n=Math.max(1,t);if(ut(e)<=n)return e;let r=n-ut(R.ellipsis),i=``,a=0;for(;a<e.length&&r>0;){if(e.charCodeAt(a)===27&&a+1<e.length&&e[a+1]===`[`){let t=a+2;for(;t<e.length&&e.charCodeAt(t)>=32&&e.charCodeAt(t)<=63;)t++;for(;t<e.length&&e.charCodeAt(t)>=32&&e.charCodeAt(t)<=47;)t++;t<e.length&&e.charCodeAt(t)>=64&&e.charCodeAt(t)<=126&&t++,i+=e.slice(a,t),a=t;continue}if(e.charCodeAt(a)===27&&a+1<e.length&&e[a+1]===`]`){let t=a+2;for(;t<e.length&&e[t]!==`\x07`&&!(e[t]===`\x1B`&&e[t+1]===`\\`);)t++;t<e.length&&e[t]===`\x07`?t++:t+1<e.length&&e[t]===`\x1B`&&e[t+1]===`\\`&&(t+=2),i+=e.slice(a,t),a=t;continue}let t=e[a],n=ut(t);if(n>r)break;i+=t,r-=n,a++}return i+R.ellipsis}function Zc(e){let t=e.split(`
42
+ `}return{text:n,hasHistory:r}}const Uc=aa();function Wc(e){return`… ${e} 行更早历史(回看加载)`}const Gc=H.memo(function({content:e}){return q(X,{wrap:`truncate-end`,children:e===``?` `:e})}),Kc=new WeakMap;function qc(e,t){let n=e,r=V.language??``;if(typeof n==`object`&&n){let i=Kc.get(n);if(i&&i.columns===t&&i.lang===r)return i.lines;let a=rc(e,t);return Kc.set(n,{columns:t,lang:r,lines:a}),a}return rc(e,t)}function Jc(e,t,n=2e4,r=!1){let i=Math.max(1,t),a=[],o=r;for(let t of e){let e=qc(t,i);e.length!==0&&(Vc(String(t.role??`unknown`),!o)&&a.push(``),a.push(...e),o=!0)}if(a.length<=n)return{lines:a,folded:0};let s=a.length-n,c=a.slice(s);return c[0]=Wc(s),{lines:c,folded:s}}function Yc({messages:e,columns:t,rows:n,scroll:r=0,scrollStore:i,frozenNewCount:a=0,earlierLoading:o=!1,earlierEnded:s=!1,onNeedEarlier:c,onPrepend:l,findQuery:u,findActiveMatch:d,onFindNavigateTo:f,onFindCountChange:p,onReviewHintChange:m,renderReviewHint:h=!0,maxLines:g}){let _=H.useRef(null),v=H.useRef(0),y=H.useMemo(()=>{let n=_.current,r=g??2e4;if(n&&n.columns===t&&e.length>=n.len&&(n.len===0||e[n.len-1]===n.lastMsg)){let i=Jc(e.slice(n.len),t,1/0,n.lines.length>0),a=[...n.lines,...i.lines],o=a.length>r?a.length-r:0;if(o>0){let r=a.slice(o),i=n.folded+o-1;return r[0]=Wc(i),_.current={len:e.length,columns:t,lines:r,lastMsg:e[e.length-1],firstMsg:e[0],folded:i},{lines:r,folded:i}}return _.current={len:e.length,columns:t,lines:a,lastMsg:e[e.length-1],firstMsg:e[0],folded:n.folded},{lines:a,folded:n.folded}}let i=Jc(e,t,1/0),a=0,o=i.lines;return i.lines.length>r&&(a=i.lines.length-r,o=[Wc(a),...i.lines.slice(a)]),n!==null&&n.firstMsg!==void 0&&e[0]!==n.firstMsg&&e.length>n.len&&(v.current=Math.max(0,i.lines.length-n.lines.length)),_.current={len:e.length,columns:t,lines:o,lastMsg:e[e.length-1],firstMsg:e[0],folded:a},{lines:o,folded:a}},[e,t,g,l]),b=Z((i??Uc).store,e=>e.offset),x=i?b:r,S=Math.max(1,Math.floor(n)-((u?1:0)+(x>0?1:0)+(h?1:0))),C=Fo(y.lines.length,S,x),w=y.lines.slice(C.start,C.end);y.folded>0&&C.start===0&&w.length>0&&(s?w=w.slice(1):o&&(w=[V.t(`transcript.loadingEarlier`),...w.slice(1)]));let T=C.above===0&&x>0;H.useEffect(()=>{T&&!o&&!s&&c&&c()},[T,o,s,c]),H.useEffect(()=>{i?.setTotalLines(y.lines.length)},[y.lines.length,i]),H.useEffect(()=>{i?.setAtTranscriptTop(C.start===0)},[C.start,i]);let E=s&&C.above===0&&x>0,D=C.above>0&&x>0;H.useEffect(()=>{if(v.current>0&&l){let e=v.current;v.current=0,l(e)}},[y,l]);let O=H.useMemo(()=>{if(!u)return{byLine:new Map,flat:[]};let e=new Map,t=[];for(let n=0;n<y.lines.length;n++){let r=ya(ks(y.lines[n]),u);if(r.length>0){e.set(n,r);for(let e of r)t.push({line:n,range:e})}}return{byLine:e,flat:t}},[u,y]);H.useEffect(()=>{p?.(O.flat.length)},[O,p]),H.useEffect(()=>{if(!f||d==null||d<0)return;let e=O.flat[d];if(!e)return;let t=Math.max(1,Math.floor(n)),r=Math.max(0,y.lines.length-t);f(Math.min(r,Math.max(0,y.lines.length-e.line-Math.floor(t/2))))},[d,O]);let k=y.folded>0&&C.start===0&&w.length>0&&(s||o),ee=w.map((e,t)=>{let n=k&&s?C.start+t+1:C.start+t;if(k&&o&&t===0)return e;let r=O.byLine.get(n);if(!r||r.length===0)return e;let i;if(d!=null&&d>=0){let e=O.flat[d];e&&e.line===n&&(i=e.range)}return va(e,r,i)}),te=x>0||C.above>0||a>0,A=a>0?C.below>0?`⏸ ${a} ${V.t(`transcript.frozenNew`)} · ↓ ${C.below} ${V.t(`transcript.escToLive`)}`:`⏸ ${a} ${V.t(`transcript.frozenNew`)} · ${V.t(`transcript.escToLive`)}`:C.below>0?`↓ ${C.below} · ${V.t(`transcript.escToLive`)}`:null;return H.useEffect(()=>{m?.(te&&A?A:null)},[te,A,m]),J(Y,{flexDirection:`column`,children:[u&&q(X,{bold:!0,children:V.t(`transcript.findBar`,{query:u,count:O.flat.length})}),D&&q(X,{dimColor:!0,children:`↑ ${C.above}`}),E&&q(X,{dimColor:!0,children:V.t(`transcript.emptyEarlier`)}),ee.map((e,t)=>q(Gc,{content:e},C.start+t)),h&&te&&A&&q(X,{dimColor:!0,children:A})]})}function Xc(e,t){let n=Math.max(1,t);if(ut(e)<=n)return e;let r=n-ut(R.ellipsis),i=``,a=0;for(;a<e.length&&r>0;){if(e.charCodeAt(a)===27&&a+1<e.length&&e[a+1]===`[`){let t=a+2;for(;t<e.length&&e.charCodeAt(t)>=32&&e.charCodeAt(t)<=63;)t++;for(;t<e.length&&e.charCodeAt(t)>=32&&e.charCodeAt(t)<=47;)t++;t<e.length&&e.charCodeAt(t)>=64&&e.charCodeAt(t)<=126&&t++,i+=e.slice(a,t),a=t;continue}if(e.charCodeAt(a)===27&&a+1<e.length&&e[a+1]===`]`){let t=a+2;for(;t<e.length&&e[t]!==`\x07`&&!(e[t]===`\x1B`&&e[t+1]===`\\`);)t++;t<e.length&&e[t]===`\x07`?t++:t+1<e.length&&e[t]===`\x1B`&&e[t+1]===`\\`&&(t+=2),i+=e.slice(a,t),a=t;continue}let t=e[a],n=ut(t);if(n>r)break;i+=t,r-=n,a++}return i+R.ellipsis}function Zc(e){let t=e.split(`
43
43
  `);if(t.length<=120)return e;let n=t.length-120,r=(t.slice(0,n).join(`
44
44
  `).match(/```/g)??[]).length,i=t.slice(n).join(`
45
45
  `);return r%2==1?"```\n"+i:i}function Qc(e,t,n){if(!e)return[];let r=e.split(`
@@ -49,7 +49,7 @@ import{$ as e,$t as t,A as n,At as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as
49
49
  `))}`);break}case`assistant_stream`:t.text.trim()&&n.push(`⏺ ${V.t(`transcript.assistant`)}\n${ml(t.text)}`);break;case`tool`:{let e=t.args?`${t.name}(${hl(t.args,60)})`:t.name,r=t.result?` → ${t.isError?`${R.cross} `:``}${hl(t.result,200)}`:t.isError?` → ${R.cross}`:``;n.push(` ${R.toolResult} ${e}${r}`);break}case`summary`:{let e=t.status===`incomplete`?V.t(`status.stopped`):pl(t.status),r=Number(t.tasksDone??0),i=Number(t.tasksTotal??0),a=Number.isFinite(r)?r:0,o=Number.isFinite(i)?i:0,s=t.status===`incomplete`&&t.tasksTotal!=null?` · ${V.t(`task.leftLabel`,{done:a,total:o,left:Math.max(0,o-a)})}`:``,c=typeof t.cacheHitRatio==`number`?`(${Math.round(t.cacheHitRatio*100)}%)`:``,l=t.tokensUsed==null?c?` · cache${c}`:``:` · ${fl(t.tokensUsed)}${c}`;n.push(`— ${e} · ${V.t(`tool.countLabel`,{count:t.toolCount})} · ${Math.round(t.elapsedMs/1e3)}s${l}${s}`);break}}return t.trim()&&n.push(`⏺ ${V.t(`transcript.assistant`)} (${V.t(`prompt.streaming`)})\n${ml(t)}`),n.join(`
50
50
 
51
51
  `)}function _l(e){let t=e.filter(e=>e!==null),n=Math.max(0,...t.map(e=>ut(e.label)));return e.map(e=>{if(e===null)return``;let t=` `.repeat(Math.max(0,n-ut(e.label))+1);return`${e.label}:${t}${e.value}`})}function vl(e,t){let n=/^- \[(.+?)\]\(memory\/(.+?)\.md\)(?: — (.+))?$/gm,r=[],i;for(;(i=n.exec(e))!==null;)r.push({name:i[1]??``,slug:i[2]??``,description:(i[3]??``).trim(),source:t});return r}function yl({projectIndex:e,userIndex:t,onViewEntry:n,onForget:r,onDismiss:i,rows:a=24,columns:o=80}){let[s,c]=K(()=>vl(e,`project`)),[l,u]=K(()=>vl(t,`user`)),[d,f]=K({mode:`list`}),[p,m]=K(void 0),h=s.length>0||l.length>0;function g(e){e.source===`project`?c(t=>t.filter(t=>t.slug!==e.slug)):u(t=>t.filter(t=>t.slug!==e.slug))}function _(e){m(`${e.source}:${e.slug}`),f({mode:`detail`,entry:e,content:null,loading:!0}),n(e).then(t=>{f(n=>n.mode===`detail`&&n.entry.slug===e.slug?{...n,content:t,loading:!1}:n)})}async function v(e){await r(e),g(e),f({mode:`list`})}return d.mode===`confirm-forget`?q(Cl,{entry:d.entry,onConfirm:()=>void v(d.entry),onCancel:()=>f({mode:`list`})}):d.mode===`detail`?q(xl,{entry:d.entry,content:d.content,loading:d.loading,onForget:()=>f({mode:`confirm-forget`,entry:d.entry}),onBack:()=>f({mode:`list`}),rows:a,columns:o}):q(bl,{projEntries:s,userEntries:l,hasAny:h,defaultValue:p,onView:_,onForget:e=>f({mode:`confirm-forget`,entry:e}),onDismiss:i,rows:a})}function bl({projEntries:e,userEntries:n,hasAny:r,defaultValue:i,onView:a,onForget:o,onDismiss:s,rows:c}){let l=new Map;for(let t of[...e,...n])l.set(`${t.source}:${t.slug}`,t);return r?q(z.Root,{rows:c,title:V.t(`cmd.titleMemory`),defaultValue:i,onCancel:s,onKey:(e,t,n)=>{if(e===`d`&&n){let e=l.get(n.value);return e&&o(e),!0}return!1},onValueChange:e=>{let t=l.get(e);t&&a(t)},footer:q(f,{items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[B.enter,V.t(`cmd.memoryDialogHintView`)],[`d`,V.t(`cmd.memoryDialogHintForget`)],[B.esc,V.t(`hint.close`)]]}),children:J(z.Content,{children:[J(z.Group,{children:[q(z.Label,{children:V.t(`cmd.memoryDialogProjGroup`,{count:e.length})}),e.map(e=>q(z.Item,{value:`project:${e.slug}`,detail:e.description||void 0,marker:`number`,children:e.name},`project:${e.slug}`))]}),q(z.Separator,{}),J(z.Group,{children:[q(z.Label,{children:V.t(`cmd.memoryDialogUserGroup`,{count:n.length})}),n.map(e=>q(z.Item,{value:`user:${e.slug}`,detail:e.description||void 0,marker:`number`,children:e.name},`user:${e.slug}`))]})]})}):q(M,{header:q(w,{children:V.t(`cmd.titleMemory`)}),footer:q(f,{items:[[B.esc,V.t(`hint.close`)]]}),children:q(Y,{marginTop:t.tight,children:q(X,{dimColor:!0,children:V.t(`cmd.memoryDialogEmptyHint`)})})})}function xl({entry:e,content:t,loading:n,onForget:r,onBack:i,rows:a,columns:o}){let s=L(),c=e.source===`project`?V.t(`cmd.memoryDialogDetailSourceProject`):V.t(`cmd.memoryDialogDetailSourceUser`),l=V.t(`cmd.memoryDialogDetailTitle`,{name:e.name,source:c}),u=Ft(()=>(t??``).split(`
52
- `),[t]);return n?q(Sl,{title:l,onForget:r,onBack:i}):q(sc,{lines:u,rows:a,columns:o,wrapMode:`pre-wrap`,header:q(Y,{children:q(X,{color:s.selection,children:l})}),onDismiss:i,initialScroll:`top`,contentKey:e.slug,emptyMessage:V.t(`cmd.memoryDialogDetailEmpty`),onKey:e=>e===`d`?(r(),!0):!1,extraHints:[[`d`,V.t(`cmd.memoryDialogHintForget`)]]})}function Sl({title:e,onForget:n,onBack:r}){return yt(`memory-dialog-detail-loading`,(e,t)=>{if(t.escape){r();return}e===`d`&&n()}),q(M,{header:q(w,{children:e}),footer:q(f,{items:[[B.esc,V.t(`cmd.memoryDialogHintBack`)]]}),children:q(Y,{marginTop:t.tight,children:q(X,{dimColor:!0,children:`…`})})})}function Cl({entry:e,onConfirm:n,onCancel:r}){let i=L(),[a,o]=K(0);return yt(`memory-dialog`,(e,t)=>{if(t.escape){r();return}if(t.leftArrow||t.rightArrow||t.tab){let e=te(t);e!==0&&o(t=>D(t,e,2));return}t.return&&(a===1?n():r())}),q(M,{header:q(w,{children:V.t(`cmd.memoryDialogConfirmForgetTitle`)}),children:J(Y,{marginTop:t.tight,flexDirection:`column`,children:[q(X,{color:i.warning,children:V.t(`cmd.memoryDialogConfirmForgetMessage`,{name:e.name})}),J(Y,{marginTop:t.section,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,label:V.t(`common.genericCancelButton`),focused:a===0,color:`gray`}),q(F,{variant:`solid`,brackets:!0,label:V.t(`hint.delete`),focused:a===1,color:`red`})]})]})})}function wl(e,t=80){return l(e.replace(/\s+/g,` `).trim(),t)}function Tl({req:e,rows:t=24}){let{entries:n,menuContributions:r=[],onSelect:i,onCancel:a}=e,o=n.filter(e=>e.enabled).length,s=n.length>0?V.t(`cmd.extListTitle`,{enabled:o,total:n.length}):V.t(`cmd.extListEmptyTitle`),c=r.find(e=>e.id===`__discover__`),l=r.filter(e=>e.id!==`__discover__`),u=c?{hint:V.t(`cmd.extDiscoverHint`),label:V.t(`cmd.extDiscoverButton`),onPress:()=>i(`contrib:${c.id}`)}:void 0;if(n.length===0)return q(z.Root,{title:s,headerAction:u,onCancel:a,rows:t,extensionHeightBudget:!0,children:q(z.Content,{children:q(z.Item,{value:``,children:V.t(`cmd.extListEmptyOption`)})})});let d=new Map;for(let e of n){let t=V.t(`cmd.extCategoryLabel`,{category:e.category}),n=d.get(t);n?n.push(e):d.set(t,[e])}return q(z.Root,{title:s,headerAction:u,onValueChange:i,onCancel:a,rows:t,extensionHeightBudget:!0,defaultValue:e.lastSelectedValue,children:J(z.Content,{children:[[...d.entries()].map(([e,t])=>J(z.Group,{children:[q(z.Label,{children:e}),t.map(e=>{let t=[];e.description&&t.push(e.description),e.applies&&e.applies!==`live`&&t.push(e.applies);let n=t.length>0?wl(t.join(` · `)):void 0;return q(z.Item,{value:`${e.category}:${e.id}`,detail:n,children:e.enabled?e.name:`${R.toggleOff} ${e.name}`},`${e.category}:${e.id}`)})]},e)),l.length>0&&J(z.Group,{children:[q(z.Label,{children:V.t(`cmd.extCategoryLabel`,{category:`plugin`})}),l.map(e=>q(z.Item,{value:`contrib:${e.id}`,children:e.title},`contrib:${e.id}`))]},`contrib`)]})})}const El={y:0,n:1,a:2};function Dl({tool:e,input:n,risk:r,onApprove:i,onDeny:a}){let o=L(),[s,c]=K(0),u=Pe(r),d=e=>{e===0?i(`once`):e===1?a():i(`always`)};return yt(`permission-dialog-buttons`,(e,t)=>{if(t.escape)return a(),!0;let n=te(t);if(n!==0)return c(e=>D(e,n,3)),!0;if(t.return)return c(e=>(d(e),e)),!0;let r=El[e.toLowerCase()];return r===void 0?!1:(d(r),!0)}),J(M,{header:J(w,{children:[V.t(`permission.allowTool`),` `,q(X,{color:o.permission,children:e}),` `,J(X,{color:u,children:[`(`,V.t(`permission.riskLabel`,{context:r}),`)`]})]}),footer:q(f,{items:[[`${B.left}${B.right}`,V.t(`hint.switch`)],[B.enter,V.t(`hint.confirm`)],[`y/n/a`,V.t(`hint.shortcut`)],[B.esc,V.t(`hint.cancel`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{dimColor:!0,children:l(n,200)})}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:V.t(`permission.approve`),focused:s===0}),q(F,{variant:`solid`,brackets:!0,color:`red`,label:V.t(`permission.deny`),focused:s===1}),q(F,{variant:`solid`,brackets:!0,color:`amber`,label:V.t(`permission.alwaysAllow`),focused:s===2})]})]})}function Ol(e){let t=/^\s*cd\s+(.+?)\s*&&\s*(.*)$/s.exec(e);return t?{workDir:t[1]}:{workDir:null}}const kl={y:0,n:1,a:2},Al={y:0,n:1};function jl({command:e,risk:n,description:r,alwaysAllowLabel:i,onApprove:a,onDeny:o}){let s=L(),[c,u]=K(0),d=Pe(n),p=i!=null,m=p?3:2,h=p?kl:Al,g=e=>{e===0?a(`once`):e===1?o():a(`always`)};yt(`bash-permission-dialog-buttons`,(e,t)=>{if(t.escape)return o(),!0;let n=te(t);if(n!==0)return u(e=>D(e,n,m)),!0;if(t.return)return u(e=>(g(e),e)),!0;let r=h[e.toLowerCase()];return r===void 0?!1:(g(r),!0)});let{workDir:_}=Ol(e),v=l(e,500);return J(M,{header:J(w,{children:[V.t(`permission.bashCommand`),` `,J(X,{color:d,children:[`(`,V.t(`permission.riskLabel`,{context:n}),`)`]})]}),footer:q(f,{items:[[`${B.left}${B.right}`,V.t(`hint.switch`)],[B.enter,V.t(`hint.confirm`)],[p?`y/n/a`:`y/n`,V.t(`hint.shortcut`)],[B.esc,V.t(`hint.cancel`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{color:s.suggestion,children:v})}),(_||r)&&J(Y,{marginTop:t.tight,flexDirection:`column`,children:[_&&q(X,{dimColor:!0,children:_}),r&&q(X,{dimColor:!0,children:r})]}),i&&J(Y,{marginTop:t.tight,children:[J(X,{dimColor:!0,children:[V.t(`permission.alwaysAllow`),`: `]}),q(X,{color:s.suggestion,children:i})]}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:V.t(`permission.approve`),focused:c===0}),q(F,{variant:`solid`,brackets:!0,color:`red`,label:V.t(`permission.deny`),focused:c===1}),p&&q(F,{variant:`solid`,brackets:!0,color:`amber`,label:V.t(`permission.alwaysAllow`),focused:c===2})]})]})}function Ml({title:e,message:n,okLabel:r,onOk:i}){let a=Array.isArray(n)?n:[n];return O({tabIndex:0,id:`alert-ok`,onAction:()=>(i(),!0),onEscape:()=>(i(),!0)}),yt(`alert-dialog`,(e,t)=>t.return||t.escape?(i(),!0):!1),J(M,{header:q(w,{children:e}),footer:q(f,{items:[[`${B.enter}/${B.esc}`,V.t(`hint.close`)]]}),children:[q(Y,{marginTop:t.tight,flexDirection:`column`,children:a.map((e,t)=>q(X,{wrap:`truncate-end`,children:e===``?` `:e},t))}),q(Y,{marginTop:t.tight,children:q(F,{variant:`solid`,brackets:!0,color:`accent`,label:r??V.t(`common.okButton`),focused:!0})})]})}function Nl({title:e,message:n,placeholder:r,initialValue:i=``,submitLabel:a,cancelLabel:o,columns:s=60,onSubmit:c,onCancel:l}){let[u,d]=K(i),[p,m]=K(i.length),[h,g]=K(`input`),_=n?Array.isArray(n)?n:[n]:[],v=(e,t)=>{d(e),m(t)};return yt(`prompt-dialog`,(e,t)=>{if(t.escape){l();return}if(t.return&&h===`input`){u.trim()!==``&&g(`submit`);return}if(t.return){h===`submit`&&u.trim()!==``?c(u):l();return}if(t.tab||t.ctrl&&e===`n`){g(e=>e===`input`?`submit`:e===`submit`?`cancel`:`input`);return}if(t.leftArrow&&h!==`input`){g(e=>`submit`);return}if(t.rightArrow&&h!==`input`){g(e=>`cancel`);return}if(h!==`input`)return;if(e.length>1&&!t.ctrl&&!t.meta&&!t.return&&!t.escape&&!t.backspace&&!t.delete&&!t.tab&&!t.upArrow&&!t.downArrow&&!t.leftArrow&&!t.rightArrow){let t=Te(e);t&&v(u.slice(0,p)+t+u.slice(p),p+t.length);return}if(t.leftArrow){let e=De.fromText(u,s,p).left();v(e.text,e.offset);return}if(t.rightArrow){let e=De.fromText(u,s,p).right();v(e.text,e.offset);return}let n={name:t.backspace?`backspace`:t.delete?`delete`:e||`unknown`,ctrl:t.ctrl??!1,shift:!1,alt:t.meta??!1,meta:t.meta??!1},r=nt(De.fromText(u,s,p),n);if(r){if(r.action===`clear_text`){v(``,0);return}r.action===`submit`||r.action===`submit_force`||v(r.cursor.text,r.cursor.offset)}}),J(M,{header:q(w,{children:e??V.t(`prompt.defaultTitle`)}),footer:q(f,{items:[[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.cancel`)]]}),children:[_.length>0&&q(Y,{marginTop:t.tight,flexDirection:`column`,children:_.map((e,t)=>q(X,{wrap:`truncate-end`,children:e===``?` `:e},t))}),q(Y,{marginTop:t.tight,flexDirection:`row`,children:q(mt,{value:u,offset:p,columns:s,mode:`dialog`,placeholder:r,focused:h===`input`,physicalCursor:h===`input`})}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:a??V.t(`prompt.submitButton`),focused:h===`submit`,disabled:u.trim()===``}),q(F,{variant:`solid`,brackets:!0,color:`gray`,label:o??V.t(`common.genericCancelButton`),focused:h===`cancel`})]})]})}function Pl(){return{toast:null,retryCountdown:null,errorRetry:null,providerUsage:null,notifications:[],paused:!1,pauseDialog:null,pausePending:null,pulseSurvey:null}}function Fl(){let e=Rn(Pl()),t,n={};return{store:e,reset(){e.setState(Pl())},setNotify(e){t=e},setEffects(e){n=e},setProviderUsage(n){e.setState({providerUsage:n}),t?.()},setPausePending(n){e.setState({pausePending:n}),t?.()},setPaused(r){e.setState({paused:r}),r||n.drainQueueOnResume?.(),t?.()},setPulseSurvey(r){e.setState({pulseSurvey:r}),n.syncPulseSurveyRoute?.(r!==null),t?.()}}}function Il(e,t){return{role:`history_capped`,removedCount:e,trigger:t}}const Ll=e=>{try{return JSON.stringify(e).length}catch{return 0}};function Rl(e,t=bn,n=yn){let r=e.filter(e=>e.role!==`history_capped`);if(r.length===0)return e;let i=0,a=null;r.length>t&&(i+=r.length-t,r.splice(0,i),a=`count`);let o=r.map(Ll),s=o.reduce((e,t)=>e+t,0);if(s>n){let e=0;for(;e<o.length-1&&s>n;)s-=o[e],e++,i++;r.splice(0,e),a=`bytes`}return i===0?e:[...r,Il(i,a??`count`)]}function zl(){let e=Rn({messages:[]}),t=t=>{e.setState({messages:Rl(t)})};return{store:e,append(n,r,i){t([...e.getState().messages,{...n,id:n.id??r,...i==null?{}:{seq:i}}])},appendMany(n,r){n.length!==0&&t([...e.getState().messages,...n.map(e=>({...e,id:e.id??r()}))])},prependMany(n){if(n.length===0)return;let r=e.getState();t([...n.map(e=>({...e})),...r.messages])},patchLast(n){let r=e.getState();if(r.messages.length===0)return;let i=r.messages[r.messages.length-1];t([...r.messages.slice(0,-1),{...i,...n}])},patchById(n,r){let i=e.getState(),a=i.messages.findIndex(e=>e.id===n);if(a===-1)return;let o=i.messages[a],s=[...i.messages];s[a]={...o,...r},t(s)},removeLast(){let n=e.getState();n.messages.length!==0&&t(n.messages.slice(0,-1))},removeById(n){let r=e.getState(),i=r.messages.findIndex(e=>e.id===n);if(i===-1)return;let a=[...r.messages];a.splice(i,1),t(a)},reset(){e.setState({messages:[]})}}}const Bl=[{label:`Tool guidance`,lane:`stable`,priority:20},{label:`Environment`,lane:`stable`,priority:25},{label:`Memory index`,lane:`stable`,priority:35},{label:`Skill catalog`,lane:`stable`,priority:38},{label:`Lesson`,lane:`stable`,priority:40},{label:`Memory delta`,lane:`volatile`,priority:60},{label:`TODO reminder`,lane:`volatile`,priority:62}];function Vl(e){let t=Bl.length,n=Math.round(e/t);return Bl.map(e=>({label:e.label,lane:e.lane,estimatedTokens:n}))}function Hl(){let e=Rn({open:!1,conversationTurns:[],systemSections:[],modelName:``,contextWindow:0,contextPercent:0,totalUsed:0,free:0});return{store:e,toggle(t){e.setState({open:t??!e.getState().open})},reset(){e.setState({open:!1,conversationTurns:[],systemSections:[],modelName:``,contextWindow:0,contextPercent:0,totalUsed:0,free:0})},addTurn(t){let n=[...e.getState().conversationTurns,t];e.setState({conversationTurns:n.length>bn?n.slice(n.length-bn):n})},markTurns(t){let{turnIndex:n,...r}=t,i=e.getState().conversationTurns.map(e=>e.turnIndex===n?{...e,...r}:e);e.setState({conversationTurns:i})},setBudget(t){e.setState({modelName:t.modelName,contextWindow:t.contextWindow,contextPercent:t.contextPercent,totalUsed:t.totalUsed,free:t.free,systemSections:Vl(t.overheadTokens)})}}}const Ul=Mt(void 0),Wl=Ul.Provider;function Gl(){let e=Pt(Ul);if(!e)throw Error(`useAppStoresContext must be used within <AppStoresProvider>`);return e}function Kl(){let{currentPath:e}=ce();return e===`/`?`prompt`:e===`/home`?`home`:e===`/pane/delegates`||e===`/pane/delegates/output`?`background`:e===`/pane/edited-files`?`editedFiles`:e.startsWith(`/pane/edited-files/`)?`editedFileFull`:e===`/subagent`?`subagentContext`:e===`/pane/subagents`?`subagents`:e===`/pane/clipboard`?`clipboard`:e===`/pane/schedule`?`schedule`:e===`/pane/tasks`?`taskFocus`:e.startsWith(`/pane/tasks/`)?`taskDetail`:e===`/pane/draft`?`draft`:e===`/pane/queue`?`queue`:e.startsWith(`/pane/queue/`)?`queueEdit`:e===`/pane/shell`?`shell`:e===`/pane/sigil`?`sigilPane`:e===`/pane/perf`?`perf`:e===`/pane/cache`?`cacheStats`:e===`/pane/compaction-log`?`compactionLog`:e===`/pane/gallery`?`gallery`:e===`/pane/notifications`?`notifications`:e===`/pane/proxy`?`proxy`:e===`/pane/prompts`?`prompts`:e===`/pane/context`?`info`:(e.startsWith(`/dialog/`)||e.startsWith(`/viewer/`),`prompt`)}const ql=`onA2uiAction.onAlertResolve.onBackToContextPane.onBackgroundApply.onBackgroundClose.onBackgroundDelete.onBackgroundKill.onBackgroundOutputClose.onBackgroundSwitch.onBackgroundViewOutput.onCacheDismiss.onCancelUpgrade.onCloseNotifications.onCompactionLogDismiss.onContextDismiss.onConfirmResolve.onCyclePermissionMode.onDelegateSupply.onDismissNotification.onDismissToast.onDraftDelete.onDraftDeleteMany.onDraftSave.onErrorRetryFocusChange.onExitSubagentContext.onFocusOwnerChange.onScrollActiveChange.onGalleryDismiss.onHistoryPush.onInfoDismiss.onInputAction.onInputResolve.onOnboardingResolve.onInterrupt.onKeybindingPanelDismiss.onMemoryDismiss.onPaneOwnsViewportChange.onPerfDismiss.onPerfRefresh.onPermissionDecision.onPopQueued.onPromptResolve.onProxyClear.onProxyTest.onProxyDismiss.onProxyOpenModal.onProxySubmitUrl.onProxyToggleEnabled.onPulseSurveyChange.onQuestionsResolve.onQueueDelete.onQueueEditText.onQueueMove.onQueueSendNow.onSelectResolve.onSessionSelect.onShellAbort.onShellAskAi.onShellCopyOutput.onShellDismiss.onShortcutsDialogDismiss.onSigilSelect.onSubmit.onToast.onToggleDelegates.onToggleDraftPane.onToggleEditedFiles.onToggleNotifications.onToggleQueuePane.onTogglePrompts.onToggleSchedule.onToggleSubagents.onUpgrade.onViewDetails.onWithdrawPending.onWithdrawSteer`.split(`.`);function Jl(e){let t={};for(let n of ql)t[n]=e[n];return t}const Yl=Mt(null),Xl=Yl.Provider;function Zl(){let e=Pt(Yl);if(!e)throw Error(`useAppCallbacks must be used within AppCallbacksProvider`);return e}function Ql(e){let{editedFilesLength:t,queuedItemsLength:n,subagentContext:r,backgroundOutput:i}=e,{onPaneOwnsViewportChange:a}=Zl(),{currentPath:o}=ce(),[s,c]=K(null),[l,u]=K(null),[d,f]=K(null),m=Nt(e=>{f(e),e?p()?.navigate(`/viewer/shell-output`):p()?.goBack()},[]),[h,g]=K(null),[_,v]=K(!1),[y,b]=K(!1),[x,S]=K(!1),[C,w]=K(!1),[T,E]=K(``),D=!!r||s!==null||!!i||l!=null,O=Nt(e=>{a?.(!0),c(e),p()?.navigate(`/pane/edited-files/${e}`)},[a]),k=Nt(()=>{a?.(l!=null),c(null),p()?.goBack()},[a,l]),ee=Nt(e=>{a?.(!0),u(e),p()?.navigate(`/pane/tasks/${e}`)},[a]),te=Nt(()=>{a?.(s!==null),u(null),p()?.goBack()},[a,s]);return W(()=>{let e=o.startsWith(`/pane/edited-files/`)?s:null,t=o.startsWith(`/pane/tasks/`)?l:null;e!==s&&c(e),t!==l&&u(t),(e!==s||t!==l)&&a?.(e!==null||t!=null),h!==null&&o!==`/pane/queue/edit`&&(g(null),v(!1),b(!1)),d&&!o.startsWith(`/viewer/shell-output`)&&f(null)},[o,s,a,h,d,l]),W(()=>{s!==null&&s>=t&&(a?.(l!=null),c(null),p()?.goBack())},[s,t,l,a]),W(()=>{h!==null&&h>=n&&(g(null),v(!1),b(!1),o===`/pane/queue/edit`&&p()?.goBack())},[o,h,n]),{editedFileFullIndex:s,openEditedFileFull:O,closeEditedFileFull:k,taskDetailTurn:l,openTaskDetail:ee,closeTaskDetail:te,shellFullOutput:d,setShellFullOutput:m,queueEditIndex:h,setQueueEditIndex:g,queueCloseConfirm:_,setQueueCloseConfirm:v,queueEscSuppress:y,setQueueEscSuppress:b,interruptConfirm:x,setInterruptConfirm:S,popQueuedConfirm:C,setPopQueuedConfirm:w,supplyDraft:T,setSupplyDraft:E,fullScreenPaneActive:D}}function $l(){p()?.navigate(`/`,{reset:!0})}let eu=null;function tu(e){eu=e}function nu(){let e=eu;return e?.hasSelection()?(e.clear(),!0):!1}function ru(e,t){let n=e.getState().offset;return e.subscribe(()=>{let r=e.getState().offset;r!==n&&(n=r,t())})}function iu(e){let{showHome:t,tasksLength:n,backgroundTasksLength:r,editedFilesLength:i,subagentsLength:a,draftsLength:s,draftOpen:c,queuedItemsLength:l,queueOpen:d,clipboardHasContent:f,shellExecutionRunning:m,routeDerivedOwner:h,currentPath:g,backgroundOutput:_,a2uiButtons:v,scrollOffset:y,editedFilesOpen:b,subagentsOpen:x,setTasksCollapsed:S,keybindingOverrides:C}=e,{onToggleDelegates:w,onToggleEditedFiles:T,onToggleSubagents:E,onToggleDraftPane:D,onToggleQueuePane:O,onShellAbort:k,onInterrupt:te,onA2uiAction:A,onCyclePermissionMode:ne,onToggleNotifications:j,onSubmit:M}=Zl(),re=Nt(()=>{let e=p();e&&e.currentPath!==`/`&&e.navigate(`/`,{reset:!0})},[]),N=Nt(e=>{let o=p();if(!o)return!1;let s=[{path:`/`,activate:()=>re()},...t?[{path:`/home`,activate:()=>o.navigate(`/home`,{replace:!0})}]:[],...n>0?[{path:`/pane/tasks`,activate:()=>o.navigate(`/pane/tasks`,{replace:!0})}]:[],...r>0?[{path:`/pane/delegates`,activate:()=>{w?.()}}]:[],...i>0?[{path:`/pane/edited-files`,activate:()=>{T?.()}}]:[],...a>0?[{path:`/pane/subagents`,activate:()=>{E?.()}}]:[],...f?[{path:`/pane/clipboard`,activate:()=>{o.navigate(`/pane/clipboard`,{replace:!0})}}]:[]];return s.length<=1?!1:(s[(Math.max(0,s.findIndex(e=>o.currentPath===e.path||o.currentPath.startsWith(e.path+`/`)))+e+s.length)%s.length]?.activate(),!0)},[r,re,c,s,i,w,D,T,O,E,d,l,t,a,n,f]);u(`app-global-prelude`,(e,t)=>t.ctrl&&e===`c`?m?(k?.(),!0):(te?.(),!0):!1),ee(`selection-escape`,(e,t)=>!t.escape||t.ctrl||t.meta||t.shift?!1:nu()),o(`app-prompt-global`,(e,t)=>{if(t.tab&&!t.ctrl&&!t.meta&&!t.shift)return g.startsWith(`/dialog/`)||g.startsWith(`/viewer/`)||qr(g)||![`prompt`,`home`,`taskFocus`,`background`,`editedFiles`,`subagents`,`schedule`,`draft`,`queue`].includes(h)||g===`/pane/delegates`&&_?!1:N(t.shift?-1:1);if(y===0&&v&&v.length>0&&e>=`1`&&e<=`9`&&!t.ctrl&&!t.meta){let t=v.find(t=>t.key===e);if(t&&A)return A(t.componentId,t.action,t.payload),!0}if(g===`/`&&t.ctrl&&e===`k`)return!1;let r=me(ke,h,e,t,C);if(r===`smart-close`)return g===`/pane/tasks`?($l(),!0):b?(T?.(),!0):x?(E?.(),!0):(n>0?(S(()=>!1),p()?.navigate(`/pane/tasks`,{replace:!0})):S(e=>!e),!0);let i={"cycle-permission-mode":()=>{ne?.()},"toggle-notifications":()=>{j?.()},"toggle-edited-files":()=>{T?.()},"toggle-subagents":()=>{E?.()},"toggle-delegates":()=>{w?.()},"toggle-draft-pane":()=>{D?.()},"toggle-queue-pane":()=>{O?.()},"open-keybinding-panel":()=>{M?.(`/keybindings`,`send`)}};return r&&i[r]?(i[r](),!0):!1});let P=ie();Vt((e,t)=>{P.dispatch(e,t)})}function au(e){let t=e>=60,n=e>=76,r=e>=100;return{modelName:!0,occupancyBar:!0,hintText:!0,permissionMode:t,perfIndicator:t,notificationBell:t,backgroundTaskIndicator:t,scheduleIndicator:t,serviceIndicator:t,cost:n,providerUsage:n,language:n,pluginStatusItems:r,liveClock:r}}const ou={narrow:0,medium:1,low:2};function su(e){return e.map((e,t)=>({entry:e,index:t})).sort((e,t)=>{let n=ou[e.entry.tier]-ou[t.entry.tier];if(n!==0)return n;if(e.entry.isHost!==t.entry.isHost)return e.entry.isHost?-1:1;let r=(e.entry.order??0)-(t.entry.order??0);return r===0?e.index-t.index:r}).map(e=>e.entry)}const cu=new Map;function lu(e){let t=cu.get(e);return t||(t={consecutiveSlowCalls:0,tripped:!1},cu.set(e,t)),t}function uu(){cu.clear()}function du(e,t){let n=lu(e.id);if(n.tripped)return null;let r=Date.now(),i=null;try{i=e.render(t)}catch{i=null}if(Date.now()-r>5){if(n.consecutiveSlowCalls+=1,n.consecutiveSlowCalls>=3)return n.tripped=!0,null}else n.consecutiveSlowCalls=0;return i}function fu(e){let t;for(let n of e){if(n.tickMs===void 0)continue;let e=Math.max(1e3,n.tickMs);(t===void 0||e<t)&&(t=e)}return t}function pu(e){let{columns:t,permissionMode:n,cost:r,providerUsage:i,pluginStatusItems:a,statusWidgets:o,modelName:s}=e,[c,l]=K(0);W(()=>{if(!i)return;let e=setInterval(()=>l(e=>e+1),3e4);return()=>clearInterval(e)},[i]);let[u,d]=K(0);W(()=>{let e=fu(o);if(e===void 0)return;let t=setInterval(()=>d(e=>e+1),e);return()=>clearInterval(t)},[o]);let f=Ft(()=>au(t),[t]);return{footerVisible:f,badgeEntries:Ft(()=>{let e=[];if(f.permissionMode&&n&&e.push({id:`host:permission-mode`,text:V.t(`pref.permModeLabel`,{context:n}),color:n===`bypass`?`warning`:`inactive`,separator:`dot`,tier:`narrow`,isHost:!0}),f.cost&&r&&e.push({id:`host:cost`,text:r,separator:`space`,tier:`medium`,isHost:!0}),f.providerUsage&&i){let t=Date.now(),n=Pn(i,t);n&&e.push({id:`host:provider-usage`,text:n,color:Ln(i.status,i.limitType,i.usedPercent,i.resetsAt,t,i.overageStatus),separator:`dot`,tier:`medium`,isHost:!0})}if(f.pluginStatusItems&&a)for(let t of a)e.push({id:t.id,text:t.text,separator:`space`,tier:`low`,isHost:!1});if(f.pluginStatusItems&&o.length>0){let n={nowMs:Date.now(),model:s,providerUsage:i,columns:t};for(let t of o){let r=du(t,n);r&&e.push({id:t.id,text:r.text,color:r.color,separator:`space`,tier:`low`,isHost:!1,order:t.order})}}return su(e)},[f,n,r,i,c,a,o,u,s,t])}}function mu(e){let{shellExecution:t,subagentContext:n,agentProcessing:r,queuedItems:i,pendingEcho:a,pendingSteers:o,onRequestPopQueuedConfirm:s}=e,{onExitSubagentContext:c,onPopQueued:l,onInterrupt:u,onWithdrawPending:d,onWithdrawSteer:f}=Zl();return Nt(()=>{if(!t){if(n){c?.();return}if(r){if(i.length>0){s?s():l?.();return}if(o&&o.length>0){let e=o[o.length-1];e&&f?.(e.id);return}if(a){d?.(a.text,a.mode);return}u?.();return}}},[t,n,c,r,i,a,o,l,u,d,f,s])}let hu=null;function gu(e){hu=e}function _u(){return hu}function vu(){let[e,t]=K(null),n=G(null),r=Nt(e=>{n.current=e,t(e),!e&&p()?.currentPath===`/pane/sigil`&&p()?.goBack()},[]),i=G(null),[a,o]=K(null),s=G(!1),[c,l]=K(null),u=G(null),d=Nt((e,t,n)=>{i.current=n,r({sigil:e,query:t,mode:`sigil`}),p()?.navigate(`/pane/sigil`)},[]),f=Nt(()=>{if(n.current?.mode===`history`){r(null);return}i.current=null,r({sigil:`#`,query:``,mode:`history`}),p()?.navigate(`/pane/sigil`)},[]);return W(()=>(gu(f),()=>gu(null)),[f]),{sigilState:e,setSigilState:r,sigilApplyRef:i,hadSigilFocusRef:s,chipContentViewerRequest:a,pasteContent:c,handleSigilTrigger:d,handleHistorySearch:f,handleChipReopen:Nt((e,n,r)=>{i.current={select:r.select,cancel:()=>r.cancel()},t({sigil:`@`,query:``}),p()?.navigate(`/pane/sigil`)},[]),handleChipViewPaste:Nt((e,t)=>{Jr(p(),Gr,!0),o({label:e,content:t,onDismiss:()=>{o(null),Jr(p(),Gr,!1)}})},[]),handleSigilClose:Nt(()=>{r(null)},[]),handlePasteConfirmRequest:Nt((e,t)=>{u.current=t,l(e),Jr(p(),Ur,!0)},[]),handlePasteConfirm:Nt(()=>{u.current?.confirm(),u.current=null,l(null),Jr(p(),Ur,!1)},[]),handlePasteCancel:Nt(()=>{u.current?.cancel(),u.current=null,l(null),Jr(p(),Ur,!1)},[])}}function yu(e){let{sigilState:t,setSigilState:n,sigilApplyRef:r,hadSigilFocusRef:i,focusOwner:a,preempted:o}=e;W(()=>{if(!t){i.current=!1;return}if(a===`sigilPane`&&!o){i.current=!0;return}i.current&&=(n(null),r.current?.cancel(!1),!1)},[t,a,o])}function bu(){let e=Rn({budget:null});return{store:e,setBudget(t){e.setState({budget:t})},reset(){e.setState({budget:null})}}}function xu(e,t){return e.toolCallId&&t.toolCallId&&e.toolCallId===t.toolCallId?{...e,...t}:{...e,...t,oldContent:e.oldContent??t.oldContent,newContent:t.newContent??e.newContent,addedLines:e.addedLines+t.addedLines,removedLines:e.removedLines+t.removedLines,timestamp:Math.max(e.timestamp,t.timestamp),turnId:t.turnId??e.turnId,toolCallId:t.toolCallId??e.toolCallId}}function Su(e){let t=e.split(`/`);return t.length<=3?e:`…/${t.slice(-2).join(`/`)}`}function Cu(e){switch(e){case`edit`:return`~`;case`write`:return`+`;case`delete`:return`-`}}function wu(e,t){switch(e){case`edit`:return t.accent;case`write`:return t.success;case`delete`:return t.error}}function Tu({files:e,focused:n,onDismiss:r,onOpenFileFull:a,fullOpenIndex:o=null,rows:s=24}){let c=L(),[l,u]=ra(`editedFiles`,e.length),m=G(0);if(yt(`edited-files-pane`,(t,n)=>n.escape?o===null?(p()?.navigate(`/`,{reset:!0}),r?.(),!0):!0:ue(`list-nav-up`,t,n,`editedFiles`)?(u(e=>Math.max(0,e-1)),!0):ue(`list-nav-down`,t,n,`editedFiles`)?(u(t=>Math.min(e.length-1,t+1)),!0):n.return?(a?.(l),!0):!1,{isActive:n}),e.length===0)return null;let h=e.reduce((e,t)=>e+t.addedLines,0),g=e.reduce((e,t)=>e+t.removedLines,0),_=Math.min(l,e.length-1),v=xt(e,_,Ve(e.length,s,3),m.current);return m.current=v.scrollTop,J(Y,{flexDirection:`column`,marginTop:t.tight,children:[J(Y,{children:[q(X,{color:c.special,children:`▸ `}),q(X,{color:n?c.text:c.inactive,children:V.t(`panelTitle.editedFilesTitle`)}),J(d,{type:`secondary`,children:[` `,V.t(`diff.fileCountLabel`,{count:e.length})]}),h>0&&J(X,{color:c.diffAdd,children:[` +`,h]}),g>0&&J(X,{color:c.diffRemove,children:[` -`,g]}),!n&&J(d,{type:`secondary`,dim:!0,children:[` `,i(`v`)]}),n&&q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[B.enter,V.t(`hint.view`)],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),J(Y,{marginLeft:t.section,flexDirection:`column`,children:[v.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),v.rows.map((e,t)=>{let r=v.scrollTop+t===_,i=r&&n?c.selection:c.inactive;return J(Y,{flexDirection:`row`,children:[q(X,{color:i,children:r?tt():be()}),J(X,{color:wu(e.operation,c),children:[Cu(e.operation),` `]}),q(X,{color:i,children:Su(e.path)}),e.addedLines>0&&J(X,{color:c.diffAdd,children:[` +`,e.addedLines]}),e.removedLines>0&&J(X,{color:c.diffRemove,children:[` -`,e.removedLines]})]},`${e.path}-${e.timestamp}`)}),v.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})]})}function Eu(e={}){return{tasks:[],tasksTitle:void 0,turnBoundaries:[],editedFiles:[],backgroundTasks:[],subagentsAccum:new Map,scheduleTasks:[],drafts:e.drafts??[],queued:[],pendingPermission:null,clipboardChars:0,clipboardText:``,clipboardFailed:!1,clipboardJustCopied:!1,backgroundOutput:null,subagentContext:null,forcedUpgrade:null,pendingEcho:null,pendingSteers:[],modelName:e.modelName??``,pluginStatusItems:[],statusWidgets:[],needsSetup:e.needsSetup??!1,permissionMode:e.permissionMode??`auto`,commands:e.commands??[],paneOwnsViewportFlag:!1,shellExecution:null,recentMentions:e.recentMentions??[],sessionList:[],sessionTitle:``}}function Du(e={}){let t=Rn(Eu(e)),n,r={},i=()=>n?.();return{store:t,reset(){t.setState(Eu(e))},setNotify(e){n=e},setEffects(e){r=e},actions:{setTasks(e,n){t.setState({tasks:e}),t.setState({tasksTitle:n}),i()},setEditedFiles(e){t.setState({editedFiles:e.sort((e,t)=>t.timestamp-e.timestamp)}),i()},addEditedFile(e){let n=[...t.getState().editedFiles],r=n.findIndex(t=>t.path===e.path);r>=0?n[r]=xu(n[r],e):n.push(e),n.sort((e,t)=>t.timestamp-e.timestamp),t.setState({editedFiles:n}),i()},setBackgroundTasks(e){if(t.setState({backgroundTasks:e}),e.some(e=>e.type===`agent-session`)){let n=new Map(t.getState().subagentsAccum);for(let t of e)t.type===`agent-session`&&n.set(t.id,t);t.setState({subagentsAccum:n})}i()},setTurnBoundaries(e){t.setState({turnBoundaries:[...e]})},addTurnBoundary(e){t.setState({turnBoundaries:[...t.getState().turnBoundaries,e]})},setDrafts(e){t.setState({drafts:e}),i()},setScheduleTasks(e){t.setState({scheduleTasks:e}),i()},setRecentMentions(e){t.setState({recentMentions:e}),i()},setModelName(e){t.setState({modelName:e}),i()},setSessionList(e){t.setState({sessionList:e}),i()},setSessionTitle(e){t.setState({sessionTitle:e}),i()},setNeedsSetup(e){t.getState().needsSetup!==e&&(t.setState({needsSetup:e}),i())},setPermissionMode(e){t.setState({permissionMode:e}),i()},setForcedUpgrade(e){t.setState({forcedUpgrade:e}),r.syncForcedUpgradeRoute?.(!!e),i()},setPluginStatusItems(e){t.setState({pluginStatusItems:e}),r.registerStatusItems?.(e),i()},setBackgroundOutput(e){t.setState({backgroundOutput:e}),r.backgroundOutputRoute?.(e!==null),r.flushScrollbackIfIdle?.(),i()}}}}function Ou(){let e=Rn({memory:void 0,memoryHistory:[],notify:void 0,indicatorLevel:`healthy`,pluginMetrics:[]});return{store:e,reset(){e.setState({memory:void 0,memoryHistory:[],notify:void 0,indicatorLevel:`healthy`,pluginMetrics:[]})},setMemory(t){let n=[...e.getState().memoryHistory,t.heapUsed].slice(-32);e.setState({memory:t,memoryHistory:n})},setNotify(t){e.setState({notify:t})},setIndicatorLevel(t){e.setState({indicatorLevel:t})},setPluginMetrics(t){e.setState({pluginMetrics:t})}}}function ku(){let e=Rn({view:null});return{store:e,setView(t){e.setState({view:t})}}}function Au(){return{view:{configPath:`~/.otto/config.json`}}}function ju(){let e=Rn(Au());return{store:e,setView(t){e.setState({view:t})}}}function Mu(e=Date.now){let t=Rn({entries:[]}),n=1,r=r=>{let i=[{...r,id:n++,timestamp:e()},...t.getState().entries].slice(0,20);t.setState({entries:i})};return{store:t,recordCompaction(e,t,n){r({kind:`compact`,before:e,after:t,summary:n})},recordPrune(e,t){r({kind:`prune`,tokensSaved:e,prunedCount:t})},recordHistoryCapped(e){r({kind:`history_capped`,removedCount:e})}}}const Nu={categoryIndex:0,itemIndex:0,variantIndex:0};function Pu(){let e=Rn({...Nu});return{store:e,reset(){e.setState({...Nu})},setCategoryIndex(t){e.setState({categoryIndex:t,itemIndex:0,variantIndex:0})},setItemIndex(t){e.setState({itemIndex:t,variantIndex:0})},setVariantIndex(t){e.setState({variantIndex:t})}}}function Fu(e){let{taskStore:t,budgetStore:n,perfStore:r,cacheStore:i,proxyStore:a,compactionLogStore:o,galleryStore:s,streamStore:c}=e;return{taskStore:Ft(()=>t??Du(),[t]),budgetStore:Ft(()=>n??bu(),[n]),perfStore:Ft(()=>r??Ou(),[r]),cacheStore:Ft(()=>i??ku(),[i]),proxyStore:Ft(()=>a??ju(),[a]),compactionLogStore:Ft(()=>o??Mu(),[o]),galleryStore:Ft(()=>s??Pu(),[s]),streamStore:Ft(()=>c??sl(),[c])}}const Iu=[{en:`Use ↑/↓ for input history; Ctrl+R opens fuzzy history search.`,zh:`输入框里按 ↑/↓ 浏览历史输入,Ctrl+R 模糊搜索历史。`},{en:`Use /feedback to report a bug or request a feature via GitHub.`,zh:`输入 /feedback 可通过 GitHub 提交 bug 或功能建议。`},{en:`During a run, press Esc on an empty prompt to interrupt and steer.`,zh:`运行时输入框为空按 Esc 可中断,otto 停下来让你接管方向。`},{en:`During a run, Shift+Enter queues a follow-up; Ctrl+Q manages it.`,zh:`运行中按 Shift+Enter 排队追加消息(本回合后执行),Ctrl+Q 管理队列。`},{en:`While otto works, plain Enter steers the current turn.`,zh:`otto 工作中按普通 Enter 可注入引导消息到当前回合。`},{en:`Type /model then Tab to pick a model and switch mid-session.`,zh:`输入 /model 后按 Tab 自动补全可用模型,会话中途即可切换。`},{en:`Use /install for skills/plugins/MCP; manage them in /extension.`,zh:`/install 从文件或 URL 安装技能/插件/MCP,/extension 面板管理。`},{en:`Reasoning streams inline; /effort changes its intensity.`,zh:`推理过程实时内联在对话流中生成,/effort 调节推理强度。`},{en:`Type /open then Tab to browse and open files in the viewer.`,zh:`输入 /open 按 Tab 浏览目录,在内置查看器打开文件。`},{en:`Ctrl+S saves the current input as a draft; Ctrl+O lists and loads drafts.`,zh:`Ctrl+S 把当前输入存为草稿,Ctrl+O 打开草稿面板选择载入。`},{en:`Ctrl+R or /history searches session and shell history.`,zh:`Ctrl+R(或 /history)搜索会话与 shell 历史,选中即回填。`},{en:`Large pastes become chips; press Enter on a chip to view it.`,zh:`大段粘贴自动折叠成占位标记,光标停在标记上按 Enter 查看原文。`},{en:`Use /compact to free context; /compact log shows pruned items.`,zh:`长会话用 /compact 释放上下文,/compact log 查看裁剪明细。`},{en:"Run `otto doctor` in another terminal for a full health check.",zh:"在另一个终端运行 `otto doctor` 做完整环境健康诊断。"},{en:`Otto can fall back to another model after failure or rate limits.`,zh:`当前模型失败或限流时,otto 自动回退到已配置的其他模型。`},{en:`Use /schedule add with cron syntax for recurring tasks.`,zh:`/schedule add 用 cron 表达式设定期任务(如日报)。`},{en:`Use /queue to reorder or remove queued follow-ups.`,zh:`/queue 面板管理排队消息,move 调顺序,remove 删除。`},{en:`Tab completes slash commands and arguments: /model gpt<Tab>.`,zh:`Tab 补全斜杠命令及其参数(试试 /model gpt<Tab>)。`},{en:`Ctrl+P opens Delegates; press Enter to view job output.`,zh:`Ctrl+P 打开委派面板查看后台任务,Enter 实时查看其输出。`},{en:`Use /job <directive> to run work in a background worktree.`,zh:`/job <指令> 在后台 worktree 跑任务,不阻塞当前会话。`},{en:`Language, model, and permission mode persist across sessions.`,zh:`语言、模型、权限模式跨会话自动持久化。`},{en:`Ctrl+V lists edited files; Enter opens a full-screen diff.`,zh:`Ctrl+V 列出本会话修改的文件及 +/- 统计,Enter 打开全屏 diff。`},{en:`Scroll with Alt+↑/↓ or PgUp/PgDn; press / in review to search.`,zh:`Alt+↑/↓ 或 PageUp/PageDown 滚动对话流,回看态按 / 搜索。`},{en:`Use /perf for memory and rendering health; /diagnose for failures.`,zh:`/perf 查看内存占用与渲染健康度,/diagnose 汇总反复出现的失败并给改进建议。`},{en:`Use /preference to switch theme or language.`,zh:`/preference theme 切 dark/light/system 主题,/preference lang 切中英文。`},{en:`Wheel scrolling works by default; drag to select, release to copy.`,zh:`滚轮/触控板开箱即用,拖拽即选中、松手自动复制。`},{en:`Use /upgrade for otto updates; /upgrade --check checks extensions.`,zh:`/upgrade 检查 otto 更新,/upgrade --check 检查扩展更新。`},{en:`Use /resume for recent sessions; /pin keeps favorites on top.`,zh:`/resume 切换最近会话,/pin 把常用会话置顶。`}];function Lu({active:e,resetKey:t,isZh:n,delayMs:r=6e4,rotateMs:i=2e4}){let[a,o]=K(!1),[s,l]=K(()=>Ru()),u=G(e);u.current=e;let d=G(0),[f,p]=K(0);if(c(`idle-tip-activity`,()=>{d.current+=1,p(d.current)},{isActive:e}),W(()=>{if(!e){o(!1);return}o(!1);let t=setTimeout(()=>{u.current&&o(!0)},r);return()=>{clearTimeout(t)}},[e,t,r,f]),W(()=>{if(!a)return;let e=setInterval(()=>{l(e=>(e+1)%Iu.length)},i);return()=>clearInterval(e)},[a,i]),!e||!a)return null;let m=Iu[s%Iu.length];return m?n?m.zh:m.en:null}function Ru(){let e=new Date,t=`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`,n=0;for(let e=0;e<t.length;e++)n=(n<<5)-n+t.charCodeAt(e)|0;return Math.abs(n)%Iu.length}function zu(){return q(Y,{children:q(X,{color:L().warning,children:`🕶 ${V.t(`welcome.shadowChip`)}`})})}function Bu(){let e=L();return J(Y,{flexDirection:`column`,marginBottom:1,children:[q(X,{bold:!0,color:e.warning,children:`🕶 ${V.t(`welcome.shadowBannerTitle`)}`}),q(X,{color:e.suggestion,children:V.t(`welcome.shadowGuarantee`)}),J(Y,{marginTop:1,flexDirection:`column`,children:[q(X,{color:e.inactive,children:V.t(`welcome.shadowNotGuaranteedTitle`)}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg1`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg2`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg3`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg4`)}`})]})]})}const Vu=[`#E06C75`,`#D19A66`,`#E5C07B`,`#98C379`,`#61AFEF`,`#C678DD`],Hu=[`#B5403A`,`#B45F1F`,`#96740F`,`#4E7A34`,`#2364A8`,`#7B4FC4`];function Uu(e){let t=2*e;return 375+t+188+t}function Wu(e){return 2*e}function Gu(e,t){return Math.min(t,Math.floor(e/2)+1)}function Ku(e,t){let n=Wu(t),r=e%Uu(t);if(r<375)return{phase:`brand`,progress:0,t:r};let i=r-375;if(i<n)return{phase:`entering`,progress:Gu(i,t),t:i};let a=i-n;if(a<188)return{phase:`hold`,progress:t,t:a};let o=a-188;return o<n?{phase:`exiting`,progress:Gu(o,t),t:o}:{phase:`brand`,progress:0,t:r}}function qu(e){let t=e%16;return t<=8?t/8:(16-t)/8}function Ju(e){return Math.floor(e/3)%Vu.length}function Yu(e,t,n){let r=n===`light`?Hu:Vu,i=Ju(t),a=[];for(let t=0;t<e;t++)a.push(r[(t+i)%r.length]);return a}function Xu(e,t){let n=parseInt(e.slice(1),16),r=n>>16&255,i=n>>8&255,a=n&255,o=e=>Math.round(e+(255-e)*t),s=e=>e.toString(16).padStart(2,`0`).toUpperCase();return`#${s(o(r))}${s(o(i))}${s(o(a))}`}function Zu(e,t,n,r,i,a,o){let s=i===`light`?Hu:Vu,c=a.phase===`hold`?qu(a.t):0,l=[];for(let i=0;i<e.length;i++){let u=a.phase===`hold`||a.phase===`entering`&&i<a.progress||a.phase===`exiting`&&i>=a.progress,d=Math.abs(i-t)<=n,f;if(u){let e=s[(i+r)%s.length];f=Xu(e,d?.5+.25*c:.5*c)}else f=d?o.brandShimmer:o.brand;let p=l[l.length-1];p&&p.color===f?p.text+=e[i]:l.push({text:e[i],color:f})}return l}const Qu=[`✦`,`✧`,`·`,`⋆`],$u=[`~`,`°`,`·`,`˘`,`∼`],ed=[`▄▀▀▄ ▀█▀ ▀█▀ ▄▀▀▄`,`▀▄▄▀ █ █ ▀▄▄▀`],td=[{left:2,phase:0},{left:8,phase:11},{left:13,phase:22}],nd=[{left:1,phase:16}],rd=[{left:1,phase:0},{left:5,phase:10},{left:9,phase:20},{left:14,phase:30}],id=[{left:3,phase:15},{left:10,phase:35}];function ad(e,t){let n=(e+t)%32,r=n<=16?n/16:(32-n)/16;return r<.15?0:r<.5?1:r<.85?2:3}function od(e,t){let n=(e+t)%70,r=(Math.sin(n/70*Math.PI*2)+1)/2;return r<.1?0:r<.4?1:r<.75?2:3}function sd(e,t){return $u[Math.floor((e+t)/8)%$u.length]}function cd({isNight:e=!1}){let t=L(),{resolvedTheme:n}=b(),[r,i]=H.useState(0),a=ge();Ne(80,i);let o=e&&!a,s=!e&&!a,c=a?null:Ku(r,ed[0].length),l=Ju(r),u={brand:t.brand,brandShimmer:t.brandShimmer},d=e=>e===1?t.accentDim:e===3?t.accentBright:t.accent,f=(e,t,n)=>{let i=ad(r,e.phase);return i===0?null:q(Y,{position:`absolute`,top:t,left:e.left,children:q(X,{color:d(i),children:Qu[n%Qu.length]})},`${t}-${e.left}`)},p=(e,t,n)=>{let i=od(r,e.phase);return i===0?null:q(Y,{position:`absolute`,top:t,left:e.left,children:q(X,{color:d(i),children:sd(r,e.phase)})},`ripple-${n}`)};return J(Y,{position:`relative`,flexDirection:`column`,children:[ed.map((e,i)=>{let a=el(r+i*3,e.length);return q(Y,{flexDirection:`row`,children:c&&c.phase!==`brand`?Zu(e,a,2,l,n,c,u).map((e,t)=>q(X,{bold:!0,color:e.color,children:e.text},t)):$c(e,a,2).map((e,n)=>q(X,{bold:!0,color:e.bright?t.brandShimmer:t.brand,children:e.text},n))},i)}),o&&td.map((e,t)=>f(e,-1,t)),o&&nd.map((e,t)=>f(e,ed.length,t)),s&&rd.map((e,t)=>p(e,-1,t)),s&&id.map((e,t)=>p(e,ed.length,t))]})}const ld=[`provider`,`authentication`,`model`],ud={provider:{titleKey:`recovery.titleProvider`,ctaKey:`recovery.ctaProvider`,hintKey:`recovery.hintProvider`},authentication:{titleKey:`recovery.titleAuth`,ctaKey:`recovery.ctaAuth`,hintKey:`recovery.hintAuth`},model:{titleKey:`recovery.titleModel`,ctaKey:`recovery.ctaModel`,hintKey:`recovery.hintModel`}};function dd(e,t){if(e===`ready`||e===`first-prompt`)return null;let n=ud[e],r=ld.indexOf(e)+1,i=t<80;return{titleKey:n.titleKey,ctaKey:n.ctaKey,...i?{}:{hintKey:n.hintKey},step:r,totalSteps:ld.length}}function fd({version:e=`0.1.0`,buildId:n,cwd:r,width:i,nickname:a,updateAvailable:o,weather:s,ftueStage:c,shadow:l=!1}){let u=L(),f=r?r.replace(process.env.HOME??`~`,`~`):void 0,p=i??process.stdout.columns??80,m=p>=60,h=H.useMemo(()=>{let e=new Date().getHours();return e<5?`late`:e<9?`earlyMorning`:e<12?`morning`:e<18?`afternoon`:e<22?`evening`:`night`},[]),g=h===`night`||h===`late`,[_]=H.useState(()=>{let e=new Date,t=V.language===`zh`?[`日`,`一`,`二`,`三`,`四`,`五`,`六`]:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],n=t[e.getDay()]??t[0],r=a?V.language===`zh`?`,${a}`:`, ${a}`:``;return V.t(`welcome.greeting`,{context:h,wday:n,who:r})}),v=_,y=V.t(`welcome.version`),b=V.t(`welcome.workspace`),x=Math.max(ut(y),ut(b))+4,S=ed.map(e=>ut(e)),C=Math.max(...S),w=e=>` `.repeat(Math.max(0,C-(S[e]??C))),T=c?dd(c,p):null;return q(Y,{flexDirection:`column`,children:J(Y,{flexDirection:`column`,paddingX:t.tight,paddingTop:t.section,...Qe,borderColor:u.panelBorder,children:[m&&J(Y,{marginBottom:t.tight,flexDirection:`row`,children:[q(cd,{isNight:g}),J(Y,{flexDirection:`column`,marginLeft:t.loose,children:[J(Y,{flexDirection:`row`,children:[J(d,{type:`secondary`,children:[w(0),vt(y,x)]}),J(d,{type:`secondary`,children:[`v`,e]}),n!=null&&J(d,{type:`secondary`,dim:!0,children:[` `,`(build `,n,`)`]}),o&&o.newer&&J(X,{color:o.forced?u.warning:u.accent,children:[` `,o.forced?V.t(`update.forcedBanner`,{latest:o.latest}):V.t(`update.availableBanner`,{latest:o.latest})]})]}),f&&J(Y,{flexDirection:`row`,children:[J(d,{type:`secondary`,children:[w(1),vt(b,x)]}),q(d,{type:`secondary`,children:f})]})]})]}),!m&&J(Y,{flexDirection:`column`,marginBottom:t.tight,children:[J(Y,{flexDirection:`row`,children:[$c(`otto`,1).map((e,t)=>q(X,{bold:!0,color:e.bright?u.brandShimmer:u.brand,children:e.text},t)),q(d,{type:`secondary`,children:` ${vt(y,x)}`}),J(d,{type:`secondary`,children:[`v`,e]}),n!=null&&J(d,{type:`secondary`,dim:!0,children:[` `,`(build `,n,`)`]})]}),f&&J(Y,{flexDirection:`row`,children:[q(d,{type:`secondary`,children:` ${vt(b,x)}`}),q(d,{type:`secondary`,children:f})]})]}),q(Y,{marginBottom:t.tight,children:a&&v.includes(a)?J(X,{color:u.text,bold:!0,children:[v.slice(0,v.indexOf(a)),q(X,{color:u.accent,children:a}),v.slice(v.indexOf(a)+a.length)]}):q(X,{color:u.text,bold:!0,children:v})}),T&&J(Y,{flexDirection:`column`,marginBottom:t.tight,children:[J(Y,{children:[q(X,{color:u.warning,bold:!0,children:V.t(T.titleKey)}),q(d,{type:`secondary`,children:` ${T.step}/${T.totalSteps}`})]}),T.hintKey&&q(d,{type:`secondary`,children:V.t(T.hintKey)}),q(X,{color:u.accent,children:V.t(T.ctaKey)})]}),l&&q(Bu,{}),s&&J(Y,{marginBottom:t.tight,children:[J(X,{color:u.accent,children:[s.condition,` `,s.temp,`°C`]}),J(d,{type:`secondary`,children:[` `,s.location]})]})]})})}function pd(e,t){let n=la();W(()=>{if(n)return n.registerWheel(e)},[n,...t])}function md({title:e,status:t,messages:n,streamText:r=``,rows:i=24,columns:a=80,onDismiss:o}){let s=L(),c=oe();yt(`subagent-context-view`,(e,t)=>t.escape?(o?.(),!0):t.upArrow?(m(e=>b(e+1)),!0):t.downArrow?(m(e=>b(e-1)),!0):t.pageUp?(m(e=>b(e+v)),!0):t.pageDown?(m(e=>b(e-v)),!0):e===`g`&&!t.ctrl&&!t.meta?(m(y),!0):e===`G`&&!t.ctrl&&!t.meta?(m(0),!0):!1,{isActive:c?c.currentPath===`/subagent`:!0});let l=[];for(let e of n){let t=rc(e,a);t.length>0&&l.push(t)}let u=[];for(let e=0;e<l.length;e++)e>0&&u.push(``),u.push(...l[e]);let[p,m]=K(0),h=p===0,g=Qc(r,a-ne.borderInset,3);if(h&&g.length>0){u.length>0&&u.push(``),u.push(`⏺ assistant (streaming)`);for(let e of g)u.push(` ${e}`)}let _=k(i),v=Math.max(1,_-7),y=Math.max(0,u.length-v),b=e=>Math.min(y,Math.max(0,e)),x=y-b(p),S=u.slice(x,x+v);return pd(e=>m(t=>b(t+e*3)),[y]),J(M,{maxHeight:_,header:J(Y,{flexDirection:`column`,children:[q(X,{color:s.secondary,italic:!0,children:V.t(`subagent.header`,{title:e,status:t})}),q(X,{children:` `})]}),footer:q(f,{items:[...y>0?[[`${B.up}${B.down}`,V.t(`hint.scroll`)]]:[],[B.esc,V.t(`hint.back`)]]}),children:[q(Y,{height:1,children:x>0&&q(d,{type:`secondary`,dim:!0,children:V.t(`subagent.contextEarlierLines`,{n:x})})}),q(Y,{flexDirection:`column`,children:S.map((e,t)=>q(X,{children:e},`${x+t}`))})]})}const hd=[{thresholdSec:0,stage:{labelKey:`analyze`,capPercent:30}},{thresholdSec:3,stage:{labelKey:`summarize`,capPercent:80}},{thresholdSec:8,stage:{labelKey:`finalize`,capPercent:92}}];function gd(e){let t=Number.isFinite(e)?e:0,n=hd[0].stage;for(let{thresholdSec:e,stage:r}of hd)if(t>=e)n=r;else break;return n}const _d=ze,vd=3e3;function yd(e){let t=100*(1-Math.exp(-Math.max(0,e)/8));return Math.min(92,Math.round(t))}function bd({verb:e,elapsed:n=!0,paused:r=!1,responseLength:i=0,hasActiveTools:a=!1,tokens:o=0,mode:s,progressPercent:c,toolTurnCount:l=0,maxToolTurns:u=0,estimatedProgress:d=!1}){let f=L(),[p,m]=K(0),[h,g]=K(0),[_,v]=K(0),y=G(Date.now()),b=G(0),x=G(i),S=G(null),C=G(-1),w=G(e??(()=>{let e=V.t(`spinner.verbs`,{returnObjects:!0});return e[Math.floor(Math.random()*e.length)]})()),T=G(i),E=G(a);T.current=i,E.current=a;let D=ge(),O=G(r);O.current=r,Ne(160,()=>{if(O.current)return;let e=Date.now()-y.current-b.current;m(Math.floor(e/160)%_d.length)}),W(()=>{let e=setInterval(()=>{if(r)return;let e=Date.now()-y.current-b.current,t=Math.floor(e/1e3);t!==C.current&&(C.current=t,g(e));let n=T.current,i=x.current;if(i>0&&i===n&&!E.current)if(S.current===null)S.current=Date.now();else{let e=Date.now()-S.current;e>=vd&&v(Math.min(1,(e-vd)/2e3))}else x.current=n,S.current=null,v(0)},160);return()=>clearInterval(e)},[r]),W(()=>{r?b.current=Date.now()-y.current:(y.current=Date.now()-b.current,b.current=0)},[r]);let k=_>0,ee=_d[p],te=Math.floor(h/1e3),A=[];if(n&&A.push({text:bo(te)}),o>0&&A.push({text:`↓ ${V.t(`budget.tokensLabel`,{count:o})}`}),s===`responding`&&c!==void 0&&Number.isFinite(c)){let e=Math.max(0,Math.min(100,Math.round(c)));A.push({text:V.t(`spinner.outputPercent`,{pct:e})})}let ne=d?gd(te):null;if(ne){let e=Math.min(ne.capPercent,yd(te));A.push({text:V.t(`spinner.estimatedPercent`,{pct:e})})}u>0&&A.push({text:V.t(`tool.budgetLabel`,{used:l,max:u}),color:tl(l,u)});let j=k?f.error:f.accent,M=ne?`${V.t(`compact.ionStageLabel`,{context:ne.labelKey})}…`:`${e??w.current}…`,re=k||D?null:$c(M,el(p,M.length)),N=s===`requesting`?R.requesting:s===`responding`?R.responding:null;return J(Y,{flexDirection:`row`,marginTop:t.tight,children:[q(X,{color:j,children:ee}),q(X,{children:` `}),N&&J(It,{children:[q(X,{dimColor:!0,color:f.inactive,children:N}),q(X,{children:` `})]}),re?re.map((e,t)=>q(X,{color:e.bright?f.text:f.inactive,bold:e.bright,children:e.text},t)):q(X,{color:k?f.error:f.text,children:M}),A.length>0&&J(It,{children:[q(X,{color:f.inactive,children:` (`}),A.map((e,t)=>J(H.Fragment,{children:[t>0&&q(X,{color:f.inactive,children:` · `}),q(X,{color:e.color??f.inactive,children:e.text})]},t)),q(X,{color:f.inactive,children:`)`})]})]})}function xd({streamStore:e,pendingPermission:t}){let n=Z(e.store,e=>e.streamingText),r=Z(e.store,e=>e.streamingThinking),i=Z(e.store,e=>e.spinnerMode),a=Z(e.store,e=>e.toolTurnCount),o=Z(e.store,e=>e.maxToolTurns),s=Z(e.store,e=>e.processing),c=Z(e.store,e=>e.activeTool),l=Z(e.store,ul),u=Z(e.store,ll);if(!s||t||r)return null;let d=c===mo,f=d?V.t(`compact.ingVerb`):c?V.t(`bg.runningVerb`,{tool:c}):void 0;return q(bd,{hasActiveTools:!!c,responseLength:n.length,tokens:l,verb:f,mode:i??void 0,progressPercent:u,toolTurnCount:a,maxToolTurns:o,estimatedProgress:d})}function Sd(e,t,n=60){if(e.length===0)return null;let r=Math.max(0,Math.min(t,e.length-1));for(let t=r;t>=0;t--){let r=e[t];if(!r||r.role!==`user`)continue;let i=Cd(r.content);if(i)return Td(i,n)}return null}function Cd(e){return typeof e==`string`?e.trim():Array.isArray(e)?e.map(e=>typeof e==`string`?e:wd(e)?e.text:``).filter(Boolean).join(` `).trim():wd(e)?String(e.text).trim():``}function wd(e){return!!e&&typeof e==`object`&&typeof e.text==`string`}function Td(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(1,t-1))}…`}function Ed(e,t){let n=e.replace(/\s+/g,` `).trim();return t<=0?``:l(n,t)}function Dd({sessionTitle:e,reviewing:t,turnPrompt:n,maxWidth:r}){let i=t&&n?n:e??``;return i===``||r===void 0?i:Ed(i,r)}function Od(e){return typeof e==`string`&&/^[a-f\d]{8}$/i.test(e)}function kd(e){let t=Zl(),{taskStore:n}=Gl(),r=Z(n.store,e=>e.sessionTitle),i=Z(n.store,e=>e.sessionList),a=Z(n.store,e=>e.needsSetup),o=Z(n.store,e=>e.pendingPermission),s=Z(n.store,e=>e.subagentContext),c=Z(n.store,e=>e.pendingEcho),l=Z(n.store,e=>e.pendingSteers),u=Z(e.scrollStore.store,e=>e.offset>0),[d,f]=H.useState(null);H.useEffect(()=>{s&&f(null)},[s]);let p=Z(e.scrollStore.store,e=>e.offset),m=Z(e.scrollStore.store,e=>e.totalLines),h=H.useMemo(()=>{if(!u)return null;let t=Math.max(0,e.messages.length-1-Math.floor(p/3));return Sd(e.messages,t)},[u,p,e.messages]),g=a?`model`:void 0;if(e.welcome&&e.showHome)return q(fd,{version:e.welcome.version,buildId:e.welcome.buildId,cwd:e.welcome.cwd,width:e.columns,nickname:e.welcome.nickname,updateAvailable:e.welcome.updateAvailable,weather:e.welcome.weather,sessionList:i,onSessionSelect:t.onSessionSelect,ftueStage:g,shadow:e.shadow});let _=Dd({sessionTitle:r,reviewing:u,turnPrompt:h,maxWidth:Math.max(1,e.columns-2)}),v=m>0&&m<=Math.max(1,e.rows),y=_.length>0&&!Od(_)&&!v,b=Math.max(1,e.rows-(y?1:0)-(d?1:0));return J(Y,{flexDirection:`column`,flexGrow:1,justifyContent:`flex-end`,children:[y&&q(Y,{height:1,flexShrink:0,flexDirection:`row`,children:q(X,{dimColor:!0,children:`${R.userPrompt} ${_}`})}),s?(()=>{let n=s;return q(md,{title:n.title,status:n.status,messages:n.messages,streamText:n.streamText,rows:b,columns:e.columns,onDismiss:t.onExitSubagentContext})})():J(It,{children:[q(dl,{streamStore:e.streamStore,completedMessages:e.messages,columns:e.columns,rows:b,maxPreviewRows:e.fullScreenPaneActive?0:e.maxPreviewRows,suppressLive:e.fullScreenPaneActive||u,pendingEcho:c??null,scrollbackMode:e.scrollbackMode??!1,pendingSteers:l??[],windowMode:e.windowMode,scrollStore:e.scrollStore,earlierLoading:e.earlierLoading,earlierEnded:e.earlierEnded,onNeedEarlier:e.onNeedEarlier,onPrepend:e.onPrepend,findQuery:e.findQuery,findActiveMatch:e.findActiveMatch,onFindNavigateTo:e.onFindNavigateTo,onFindCountChange:e.onFindCountChange,onReviewHintChange:f,renderReviewHint:!1}),!e.fullScreenPaneActive&&q(xd,{streamStore:e.streamStore,pendingPermission:o??null})]}),d&&q(Y,{height:1,flexShrink:0,flexDirection:`row`,children:q(X,{dimColor:!0,children:d})})]})}const Ad=ut(` · `),jd=ut(`←`)+4;function Md(e,t,n,r){let i=e.map((e,n)=>({item:e,index:n,label:t(e)}));if(e.length===0)return{items:[],hiddenLeft:0,hiddenRight:0};if(r===void 0||!Number.isFinite(r)||r<=0)return{items:i,hiddenLeft:0,hiddenRight:0};let a=Math.max(0,Math.min(n,e.length-1)),o=e=>ut(i[e].label)+2;if(i.reduce((e,t,n)=>e+o(n),0)+(i.length-1)*Ad<=r)return{items:i,hiddenLeft:0,hiddenRight:0};let s=Math.max(6,r-jd*2),c=a,u=a+1,d=Math.min(o(a),s);for(;;){let e=u<i.length,t=c>0;if(!e&&!t)break;let n=!1;if(e){let e=o(u)+Ad;d+e<=s&&(d+=e,u++,n=!0)}if(t){let e=o(c-1)+Ad;d+e<=s&&(d+=e,c--,n=!0)}if(!n)break}return{items:i.slice(c,u).map(e=>{let t=Math.max(1,s-2);return ut(e.label)>t?{...e,label:l(e.label,t)}:e}),hiddenLeft:c,hiddenRight:i.length-u}}function Nd({label:e,active:t,disabled:n,color:r=`accent`}){return q(F,{variant:`ghost`,color:r,label:e,focused:t,disabled:n})}function Pd({items:e,activeKey:n,color:r=`accent`,tabIndex:i=-1,onSelect:a,availableWidth:o,enableDigitAccess:s=!1}){let c=L(),{focused:l}=O({tabIndex:i,disabled:i<0}),u=(t,r)=>{if(!a||e.length===0)return!1;let i=e.findIndex(e=>e.key===n);if(r.leftArrow||r.rightArrow)return a(e[(i+(r.leftArrow?-1:1)+e.length)%e.length].key),!0;if(s&&t>=`1`&&t<=`9`){let n=t.charCodeAt(0)-49;return n<e.length&&!e[n].disabled?(a(e[n].key),!0):!1}return!1};We(l,u),yt(`segmented-${e.map(e=>e.key).join(`-`)}`,u,{isActive:!!a&&!l});let d=Md(e,e=>e.label,e.findIndex(e=>e.key===n),o);return J(Y,{flexDirection:`row`,gap:t.tight,children:[d.hiddenLeft>0&&q(X,{color:c.inactive,children:`←${d.hiddenLeft}`}),d.items.map((e,t)=>J(H.Fragment,{children:[t>0&&q(X,{color:c.inactive,children:`·`}),q(Nd,{label:e.label,active:e.item.key===n,disabled:e.item.disabled,color:r})]},e.item.key)),d.hiddenRight>0&&q(X,{color:c.inactive,children:`→${d.hiddenRight}`})]})}const Fd={running:R.todoActive,exited:R.check,killed:R.cross,failed:R.cross};function Id(e,t){return e===`running`?t.special:e===`exited`?t.success:t.error}function Ld(e){if((e.type??`process`)===`agent-session`)switch(e.agentStatus){case`running`:return R.todoActive;case`ready`:return R.attention;case`needs_input`:return R.attention;case`applied`:return R.check;default:return R.cross}return Fd[e.status]}function Rd(e,t){if((e.type??`process`)===`agent-session`){if(e.stall===`stalled`)return t.error;if(e.stall===`warn`)return t.warning;switch(e.agentStatus){case`running`:return t.special;case`ready`:return t.selection;case`needs_input`:return t.warning;case`applied`:return t.success;default:return t.error}}return Id(e.status,t)}function zd({tasks:e,columns:n=80,onClose:r,onKill:a,onViewOutput:o,onApply:s,onSwitch:c,onDelete:u,active:p=!0,rows:m=24}){let h=L(),[g,_]=ra(`delegates`,e.length),v=G(0),y=e.some(e=>(e.type??`process`)===`agent-session`?e.agentStatus===`running`:e.status===`running`),[,b]=K(0);W(()=>{if(!y)return;let e=setInterval(()=>b(e=>(e+1)%1e6),1e3);return()=>clearInterval(e)},[y]),yt(`delegates-pane`,(t,n)=>{if(n.escape||t===`q`)return r?.(),!0;if(ue(`list-nav-up`,t,n,`background`))return _(e=>Math.max(0,e-1)),!0;if(ue(`list-nav-down`,t,n,`background`))return _(t=>Math.max(0,Math.min(e.length-1,t+1))),!0;let i=e[g],l=i?yo(i):!1;return t===`k`&&l&&i?(a?.(i.id),!0):(t===`o`||n.return)&&i?(o?.(i.id),!0):t===`a`&&i?.type===`agent-session`&&i.agentStatus===`ready`&&i.diffStat?(s?.(i.id),!0):t===`s`&&i?.type===`agent-session`?(c?.(i.id),!0):t===`d`&&i&&!l?(u?.(i.id),!0):!1},{isActive:p,ignoreRoute:!0});let x=e.filter(yo).length,S=Date.now(),C=Math.max(12,Math.min(48,n-28));if(!p){if(e.length===0)return null;let t=e[Math.min(g,e.length-1)];return J(Y,{flexDirection:`column`,children:[J(Y,{children:[q(X,{color:h.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`bg.tasksTitle`)}),J(d,{type:`secondary`,children:[` `,e.length]}),x>0&&J(d,{type:`secondary`,children:[` · `,V.t(`bg.runningSuffix`,{n:x})]}),J(d,{type:`secondary`,dim:!0,children:[` `,i(`p`)]})]}),t&&J(Y,{flexDirection:`row`,children:[q(X,{color:h.inactive,children:`${R.pointer} `}),q(X,{color:h.inactive,children:l(t.command,C).padEnd(C)}),J(d,{type:`secondary`,dim:!0,children:[` `,To(t,S)]})]})]})}let w=e[Math.min(g,e.length-1)],T=(w?.type??`process`)===`agent-session`&&w?.agentStatus===`ready`&&!!w?.diffStat,E=!!w&&!yo(w),D=Math.min(g,e.length-1),O=[],k,ee=0;e.forEach((e,t)=>{let n=_o(e);n!==k&&(ee>0&&O.push({type:`spacer`}),O.push({type:`header`,category:n}),ee++,k=n),O.push({type:`entry`,task:e,index:t})});let te=xt(O,O.findIndex(e=>e.type===`entry`&&e.index===D),Ve(O.length,m,3),v.current);return v.current=te.scrollTop,J(Y,{flexDirection:`column`,marginTop:t.tight,children:[J(Y,{children:[q(X,{color:h.special,children:`▸ `}),q(X,{color:h.text,children:V.t(`bg.tasksTitle`)}),J(d,{type:`secondary`,children:[` `,x>0?V.t(`bg.runningSuffix`,{n:x}):`${e.length} total`,e.length>x?` · ${V.t(`bg.doneSuffix`,{n:e.length-x})}`:``]}),q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`k`,V.t(`hint.kill`)],[`o`,V.t(`hint.output`)],...T?[[`a`,V.t(`hint.apply`)]]:[],...E?[[`d`,V.t(`hint.delete`)]]:[],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),q(Y,{marginLeft:t.section,flexDirection:`column`,children:e.length===0?q(d,{type:`secondary`,dim:!0,children:V.t(`bg.empty`)}):J(It,{children:[te.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),te.rows.map((e,t)=>{if(e.type===`spacer`)return q(X,{children:` `},`spacer-${t}`);if(e.type===`header`)return q(d,{type:`secondary`,dim:!0,children:V.t(`bg.categoryLabel`,{context:e.category})},`h-${t}`);let n=e.task,r=e.index===g;return J(Y,{flexDirection:`row`,children:[q(X,{color:r?h.selection:h.inactive,children:r?tt():be()}),J(X,{color:Rd(n,h),children:[Ld(n),` `]}),q(X,{color:r?h.selection:h.inactive,children:l(n.command,C).padEnd(C)}),(n.type??`process`)===`agent-session`&&n.model&&J(d,{type:`secondary`,dim:!0,children:[` `,String(n.model)]}),J(d,{type:`secondary`,dim:!0,children:[` `,To(n,S)]})]},n.id)}),te.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})})]})}function Bd({view:e,columns:n=80,rows:r,active:i=!0,onDismiss:a}){let o=L(),s=e.prompt!==void 0,c=e.messages!==void 0&&e.messages.length>0,u=!!e.diff?.trim(),p=(s?1:0)+(c?1:0)+(u?1:0)>=2,[m,h]=K(u?`diff`:c?`conversation`:`prompt`),[g,_]=K(0),[v,y]=K(!1),[b,x]=K(``),[S,C]=K(-1),w=r?Ue(r,12):18;W(()=>_(0),[e.id,m]);let T=Math.max(8,n-ne.contentInset),E=[],D=[];if(m===`diff`)E=(e.diff??``).split(`
52
+ `),[t]);return n?q(Sl,{title:l,onForget:r,onBack:i}):q(sc,{lines:u,rows:a,columns:o,wrapMode:`pre-wrap`,header:q(Y,{children:q(X,{color:s.selection,children:l})}),onDismiss:i,initialScroll:`top`,contentKey:e.slug,emptyMessage:V.t(`cmd.memoryDialogDetailEmpty`),onKey:e=>e===`d`?(r(),!0):!1,extraHints:[[`d`,V.t(`cmd.memoryDialogHintForget`)]]})}function Sl({title:e,onForget:n,onBack:r}){return yt(`memory-dialog-detail-loading`,(e,t)=>{if(t.escape){r();return}e===`d`&&n()}),q(M,{header:q(w,{children:e}),footer:q(f,{items:[[B.esc,V.t(`cmd.memoryDialogHintBack`)]]}),children:q(Y,{marginTop:t.tight,children:q(X,{dimColor:!0,children:`…`})})})}function Cl({entry:e,onConfirm:n,onCancel:r}){let i=L(),[a,o]=K(0);return yt(`memory-dialog`,(e,t)=>{if(t.escape){r();return}if(t.leftArrow||t.rightArrow||t.tab){let e=te(t);e!==0&&o(t=>D(t,e,2));return}t.return&&(a===1?n():r())}),q(M,{header:q(w,{children:V.t(`cmd.memoryDialogConfirmForgetTitle`)}),children:J(Y,{marginTop:t.tight,flexDirection:`column`,children:[q(X,{color:i.warning,children:V.t(`cmd.memoryDialogConfirmForgetMessage`,{name:e.name})}),J(Y,{marginTop:t.section,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,label:V.t(`common.genericCancelButton`),focused:a===0,color:`gray`}),q(F,{variant:`solid`,brackets:!0,label:V.t(`hint.delete`),focused:a===1,color:`red`})]})]})})}function wl(e,t=80){return l(e.replace(/\s+/g,` `).trim(),t)}function Tl({req:e,rows:t=24}){let{entries:n,menuContributions:r=[],onSelect:i,onCancel:a}=e,o=n.filter(e=>e.enabled).length,s=n.length>0?V.t(`cmd.extListTitle`,{enabled:o,total:n.length}):V.t(`cmd.extListEmptyTitle`),c=r.find(e=>e.id===`__discover__`),l=r.filter(e=>e.id!==`__discover__`),u=c?{hint:V.t(`cmd.extDiscoverHint`),label:V.t(`cmd.extDiscoverButton`),onPress:()=>i(`contrib:${c.id}`)}:void 0;if(n.length===0)return q(z.Root,{title:s,headerAction:u,onCancel:a,rows:t,extensionHeightBudget:!0,children:q(z.Content,{children:q(z.Item,{value:``,children:V.t(`cmd.extListEmptyOption`)})})});let d=new Map;for(let e of n){let t=V.t(`cmd.extCategoryLabel`,{category:e.category}),n=d.get(t);n?n.push(e):d.set(t,[e])}return q(z.Root,{title:s,headerAction:u,onValueChange:i,onCancel:a,rows:t,extensionHeightBudget:!0,defaultValue:e.lastSelectedValue,children:J(z.Content,{children:[[...d.entries()].map(([e,t])=>J(z.Group,{children:[q(z.Label,{children:e}),t.map(e=>{let t=[];e.description&&t.push(e.description),e.applies&&e.applies!==`live`&&t.push(V.t(`cmd.extAppliesNextTurn`));let n=t.length>0?wl(t.join(` · `)):void 0;return q(z.Item,{value:`${e.category}:${e.id}`,detail:n,children:e.enabled?e.name:`${R.toggleOff} ${e.name}`},`${e.category}:${e.id}`)})]},e)),l.length>0&&J(z.Group,{children:[q(z.Label,{children:V.t(`cmd.extCategoryLabel`,{category:`plugin`})}),l.map(e=>q(z.Item,{value:`contrib:${e.id}`,children:e.title},`contrib:${e.id}`))]},`contrib`)]})})}const El={y:0,n:1,a:2};function Dl({tool:e,input:n,risk:r,onApprove:i,onDeny:a}){let o=L(),[s,c]=K(0),u=Pe(r),d=e=>{e===0?i(`once`):e===1?a():i(`always`)};return yt(`permission-dialog-buttons`,(e,t)=>{if(t.escape)return a(),!0;let n=te(t);if(n!==0)return c(e=>D(e,n,3)),!0;if(t.return)return c(e=>(d(e),e)),!0;let r=El[e.toLowerCase()];return r===void 0?!1:(d(r),!0)}),J(M,{header:J(w,{children:[V.t(`permission.allowTool`),` `,q(X,{color:o.permission,children:e}),` `,J(X,{color:u,children:[`(`,V.t(`permission.riskLabel`,{context:r}),`)`]})]}),footer:q(f,{items:[[`${B.left}${B.right}`,V.t(`hint.switch`)],[B.enter,V.t(`hint.confirm`)],[`y/n/a`,V.t(`hint.shortcut`)],[B.esc,V.t(`hint.cancel`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{dimColor:!0,children:l(n,200)})}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:V.t(`permission.approve`),focused:s===0}),q(F,{variant:`solid`,brackets:!0,color:`red`,label:V.t(`permission.deny`),focused:s===1}),q(F,{variant:`solid`,brackets:!0,color:`amber`,label:V.t(`permission.alwaysAllow`),focused:s===2})]})]})}function Ol(e){let t=/^\s*cd\s+(.+?)\s*&&\s*(.*)$/s.exec(e);return t?{workDir:t[1]}:{workDir:null}}const kl={y:0,n:1,a:2},Al={y:0,n:1};function jl({command:e,risk:n,description:r,alwaysAllowLabel:i,onApprove:a,onDeny:o}){let s=L(),[c,u]=K(0),d=Pe(n),p=i!=null,m=p?3:2,h=p?kl:Al,g=e=>{e===0?a(`once`):e===1?o():a(`always`)};yt(`bash-permission-dialog-buttons`,(e,t)=>{if(t.escape)return o(),!0;let n=te(t);if(n!==0)return u(e=>D(e,n,m)),!0;if(t.return)return u(e=>(g(e),e)),!0;let r=h[e.toLowerCase()];return r===void 0?!1:(g(r),!0)});let{workDir:_}=Ol(e),v=l(e,500);return J(M,{header:J(w,{children:[V.t(`permission.bashCommand`),` `,J(X,{color:d,children:[`(`,V.t(`permission.riskLabel`,{context:n}),`)`]})]}),footer:q(f,{items:[[`${B.left}${B.right}`,V.t(`hint.switch`)],[B.enter,V.t(`hint.confirm`)],[p?`y/n/a`:`y/n`,V.t(`hint.shortcut`)],[B.esc,V.t(`hint.cancel`)]]}),children:[q(Y,{marginTop:t.tight,children:q(X,{color:s.suggestion,children:v})}),(_||r)&&J(Y,{marginTop:t.tight,flexDirection:`column`,children:[_&&q(X,{dimColor:!0,children:_}),r&&q(X,{dimColor:!0,children:r})]}),i&&J(Y,{marginTop:t.tight,children:[J(X,{dimColor:!0,children:[V.t(`permission.alwaysAllow`),`: `]}),q(X,{color:s.suggestion,children:i})]}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:V.t(`permission.approve`),focused:c===0}),q(F,{variant:`solid`,brackets:!0,color:`red`,label:V.t(`permission.deny`),focused:c===1}),p&&q(F,{variant:`solid`,brackets:!0,color:`amber`,label:V.t(`permission.alwaysAllow`),focused:c===2})]})]})}function Ml({title:e,message:n,okLabel:r,onOk:i}){let a=Array.isArray(n)?n:[n];return O({tabIndex:0,id:`alert-ok`,onAction:()=>(i(),!0),onEscape:()=>(i(),!0)}),yt(`alert-dialog`,(e,t)=>t.return||t.escape?(i(),!0):!1),J(M,{header:q(w,{children:e}),footer:q(f,{items:[[`${B.enter}/${B.esc}`,V.t(`hint.close`)]]}),children:[q(Y,{marginTop:t.tight,flexDirection:`column`,children:a.map((e,t)=>q(X,{wrap:`truncate-end`,children:e===``?` `:e},t))}),q(Y,{marginTop:t.tight,children:q(F,{variant:`solid`,brackets:!0,color:`accent`,label:r??V.t(`common.okButton`),focused:!0})})]})}function Nl({title:e,message:n,placeholder:r,initialValue:i=``,submitLabel:a,cancelLabel:o,columns:s=60,onSubmit:c,onCancel:l}){let[u,d]=K(i),[p,m]=K(i.length),[h,g]=K(`input`),_=n?Array.isArray(n)?n:[n]:[],v=(e,t)=>{d(e),m(t)};return yt(`prompt-dialog`,(e,t)=>{if(t.escape){l();return}if(t.return&&h===`input`){u.trim()!==``&&g(`submit`);return}if(t.return){h===`submit`&&u.trim()!==``?c(u):l();return}if(t.tab||t.ctrl&&e===`n`){g(e=>e===`input`?`submit`:e===`submit`?`cancel`:`input`);return}if(t.leftArrow&&h!==`input`){g(e=>`submit`);return}if(t.rightArrow&&h!==`input`){g(e=>`cancel`);return}if(h!==`input`)return;if(e.length>1&&!t.ctrl&&!t.meta&&!t.return&&!t.escape&&!t.backspace&&!t.delete&&!t.tab&&!t.upArrow&&!t.downArrow&&!t.leftArrow&&!t.rightArrow){let t=Te(e);t&&v(u.slice(0,p)+t+u.slice(p),p+t.length);return}if(t.leftArrow){let e=De.fromText(u,s,p).left();v(e.text,e.offset);return}if(t.rightArrow){let e=De.fromText(u,s,p).right();v(e.text,e.offset);return}let n={name:t.backspace?`backspace`:t.delete?`delete`:e||`unknown`,ctrl:t.ctrl??!1,shift:!1,alt:t.meta??!1,meta:t.meta??!1},r=nt(De.fromText(u,s,p),n);if(r){if(r.action===`clear_text`){v(``,0);return}r.action===`submit`||r.action===`submit_force`||v(r.cursor.text,r.cursor.offset)}}),J(M,{header:q(w,{children:e??V.t(`prompt.defaultTitle`)}),footer:q(f,{items:[[B.enter,V.t(`hint.confirm`)],[B.esc,V.t(`hint.cancel`)]]}),children:[_.length>0&&q(Y,{marginTop:t.tight,flexDirection:`column`,children:_.map((e,t)=>q(X,{wrap:`truncate-end`,children:e===``?` `:e},t))}),q(Y,{marginTop:t.tight,flexDirection:`row`,children:q(mt,{value:u,offset:p,columns:s,mode:`dialog`,placeholder:r,focused:h===`input`,physicalCursor:h===`input`})}),J(Y,{marginTop:t.tight,flexDirection:`row`,gap:t.section,children:[q(F,{variant:`solid`,brackets:!0,color:`accent`,label:a??V.t(`prompt.submitButton`),focused:h===`submit`,disabled:u.trim()===``}),q(F,{variant:`solid`,brackets:!0,color:`gray`,label:o??V.t(`common.genericCancelButton`),focused:h===`cancel`})]})]})}function Pl(){return{toast:null,retryCountdown:null,errorRetry:null,providerUsage:null,notifications:[],paused:!1,pauseDialog:null,pausePending:null,pulseSurvey:null}}function Fl(){let e=Rn(Pl()),t,n={};return{store:e,reset(){e.setState(Pl())},setNotify(e){t=e},setEffects(e){n=e},setProviderUsage(n){e.setState({providerUsage:n}),t?.()},setPausePending(n){e.setState({pausePending:n}),t?.()},setPaused(r){e.setState({paused:r}),r||n.drainQueueOnResume?.(),t?.()},setPulseSurvey(r){e.setState({pulseSurvey:r}),n.syncPulseSurveyRoute?.(r!==null),t?.()}}}function Il(e,t){return{role:`history_capped`,removedCount:e,trigger:t}}const Ll=e=>{try{return JSON.stringify(e).length}catch{return 0}};function Rl(e,t=bn,n=yn){let r=e.filter(e=>e.role!==`history_capped`);if(r.length===0)return e;let i=0,a=null;r.length>t&&(i+=r.length-t,r.splice(0,i),a=`count`);let o=r.map(Ll),s=o.reduce((e,t)=>e+t,0);if(s>n){let e=0;for(;e<o.length-1&&s>n;)s-=o[e],e++,i++;r.splice(0,e),a=`bytes`}return i===0?e:[...r,Il(i,a??`count`)]}function zl(){let e=Rn({messages:[]}),t=t=>{e.setState({messages:Rl(t)})};return{store:e,append(n,r,i){t([...e.getState().messages,{...n,id:n.id??r,...i==null?{}:{seq:i}}])},appendMany(n,r){n.length!==0&&t([...e.getState().messages,...n.map(e=>({...e,id:e.id??r()}))])},prependMany(n){if(n.length===0)return;let r=e.getState();t([...n.map(e=>({...e})),...r.messages])},patchLast(n){let r=e.getState();if(r.messages.length===0)return;let i=r.messages[r.messages.length-1];t([...r.messages.slice(0,-1),{...i,...n}])},patchById(n,r){let i=e.getState(),a=i.messages.findIndex(e=>e.id===n);if(a===-1)return;let o=i.messages[a],s=[...i.messages];s[a]={...o,...r},t(s)},removeLast(){let n=e.getState();n.messages.length!==0&&t(n.messages.slice(0,-1))},removeById(n){let r=e.getState(),i=r.messages.findIndex(e=>e.id===n);if(i===-1)return;let a=[...r.messages];a.splice(i,1),t(a)},reset(){e.setState({messages:[]})}}}const Bl=[{label:`Tool guidance`,lane:`stable`,priority:20},{label:`Environment`,lane:`stable`,priority:25},{label:`Memory index`,lane:`stable`,priority:35},{label:`Skill catalog`,lane:`stable`,priority:38},{label:`Lesson`,lane:`stable`,priority:40},{label:`Memory delta`,lane:`volatile`,priority:60},{label:`TODO reminder`,lane:`volatile`,priority:62}];function Vl(e){let t=Bl.length,n=Math.round(e/t);return Bl.map(e=>({label:e.label,lane:e.lane,estimatedTokens:n}))}function Hl(){let e=Rn({open:!1,conversationTurns:[],systemSections:[],modelName:``,contextWindow:0,contextPercent:0,totalUsed:0,free:0});return{store:e,toggle(t){e.setState({open:t??!e.getState().open})},reset(){e.setState({open:!1,conversationTurns:[],systemSections:[],modelName:``,contextWindow:0,contextPercent:0,totalUsed:0,free:0})},addTurn(t){let n=[...e.getState().conversationTurns,t];e.setState({conversationTurns:n.length>bn?n.slice(n.length-bn):n})},markTurns(t){let{turnIndex:n,...r}=t,i=e.getState().conversationTurns.map(e=>e.turnIndex===n?{...e,...r}:e);e.setState({conversationTurns:i})},setBudget(t){e.setState({modelName:t.modelName,contextWindow:t.contextWindow,contextPercent:t.contextPercent,totalUsed:t.totalUsed,free:t.free,systemSections:Vl(t.overheadTokens)})}}}const Ul=Mt(void 0),Wl=Ul.Provider;function Gl(){let e=Pt(Ul);if(!e)throw Error(`useAppStoresContext must be used within <AppStoresProvider>`);return e}function Kl(){let{currentPath:e}=ce();return e===`/`?`prompt`:e===`/home`?`home`:e===`/pane/delegates`||e===`/pane/delegates/output`?`background`:e===`/pane/edited-files`?`editedFiles`:e.startsWith(`/pane/edited-files/`)?`editedFileFull`:e===`/subagent`?`subagentContext`:e===`/pane/subagents`?`subagents`:e===`/pane/clipboard`?`clipboard`:e===`/pane/schedule`?`schedule`:e===`/pane/tasks`?`taskFocus`:e.startsWith(`/pane/tasks/`)?`taskDetail`:e===`/pane/draft`?`draft`:e===`/pane/queue`?`queue`:e.startsWith(`/pane/queue/`)?`queueEdit`:e===`/pane/shell`?`shell`:e===`/pane/sigil`?`sigilPane`:e===`/pane/perf`?`perf`:e===`/pane/cache`?`cacheStats`:e===`/pane/compaction-log`?`compactionLog`:e===`/pane/gallery`?`gallery`:e===`/pane/notifications`?`notifications`:e===`/pane/proxy`?`proxy`:e===`/pane/prompts`?`prompts`:e===`/pane/context`?`info`:(e.startsWith(`/dialog/`)||e.startsWith(`/viewer/`),`prompt`)}const ql=`onA2uiAction.onAlertResolve.onBackToContextPane.onBackgroundApply.onBackgroundClose.onBackgroundDelete.onBackgroundKill.onBackgroundOutputClose.onBackgroundSwitch.onBackgroundViewOutput.onCacheDismiss.onCancelUpgrade.onCloseNotifications.onCompactionLogDismiss.onContextDismiss.onConfirmResolve.onCyclePermissionMode.onDelegateSupply.onDismissNotification.onDismissToast.onDraftDelete.onDraftDeleteMany.onDraftSave.onErrorRetryFocusChange.onExitSubagentContext.onFocusOwnerChange.onScrollActiveChange.onGalleryDismiss.onHistoryPush.onInfoDismiss.onInputAction.onInputResolve.onOnboardingResolve.onInterrupt.onKeybindingPanelDismiss.onMemoryDismiss.onPaneOwnsViewportChange.onPerfDismiss.onPerfRefresh.onPermissionDecision.onPopQueued.onPromptResolve.onProxyClear.onProxyTest.onProxyDismiss.onProxyOpenModal.onProxySubmitUrl.onProxyToggleEnabled.onPulseSurveyChange.onQuestionsResolve.onQueueDelete.onQueueEditText.onQueueMove.onQueueSendNow.onSelectResolve.onSessionSelect.onShellAbort.onShellAskAi.onShellCopyOutput.onShellDismiss.onShortcutsDialogDismiss.onSigilSelect.onSubmit.onToast.onToggleDelegates.onToggleDraftPane.onToggleEditedFiles.onToggleNotifications.onToggleQueuePane.onTogglePrompts.onToggleSchedule.onToggleSubagents.onUpgrade.onViewDetails.onWithdrawPending.onWithdrawSteer`.split(`.`);function Jl(e){let t={};for(let n of ql)t[n]=e[n];return t}const Yl=Mt(null),Xl=Yl.Provider;function Zl(){let e=Pt(Yl);if(!e)throw Error(`useAppCallbacks must be used within AppCallbacksProvider`);return e}function Ql(e){let{editedFilesLength:t,queuedItemsLength:n,subagentContext:r,backgroundOutput:i}=e,{onPaneOwnsViewportChange:a}=Zl(),{currentPath:o}=ce(),[s,c]=K(null),[l,u]=K(null),[d,f]=K(null),m=Nt(e=>{f(e),e?p()?.navigate(`/viewer/shell-output`):p()?.goBack()},[]),[h,g]=K(null),[_,v]=K(!1),[y,b]=K(!1),[x,S]=K(!1),[C,w]=K(!1),[T,E]=K(``),D=!!r||s!==null||!!i||l!=null,O=Nt(e=>{a?.(!0),c(e),p()?.navigate(`/pane/edited-files/${e}`)},[a]),k=Nt(()=>{a?.(l!=null),c(null),p()?.goBack()},[a,l]),ee=Nt(e=>{a?.(!0),u(e),p()?.navigate(`/pane/tasks/${e}`)},[a]),te=Nt(()=>{a?.(s!==null),u(null),p()?.goBack()},[a,s]);return W(()=>{let e=o.startsWith(`/pane/edited-files/`)?s:null,t=o.startsWith(`/pane/tasks/`)?l:null;e!==s&&c(e),t!==l&&u(t),(e!==s||t!==l)&&a?.(e!==null||t!=null),h!==null&&o!==`/pane/queue/edit`&&(g(null),v(!1),b(!1)),d&&!o.startsWith(`/viewer/shell-output`)&&f(null)},[o,s,a,h,d,l]),W(()=>{s!==null&&s>=t&&(a?.(l!=null),c(null),p()?.goBack())},[s,t,l,a]),W(()=>{h!==null&&h>=n&&(g(null),v(!1),b(!1),o===`/pane/queue/edit`&&p()?.goBack())},[o,h,n]),{editedFileFullIndex:s,openEditedFileFull:O,closeEditedFileFull:k,taskDetailTurn:l,openTaskDetail:ee,closeTaskDetail:te,shellFullOutput:d,setShellFullOutput:m,queueEditIndex:h,setQueueEditIndex:g,queueCloseConfirm:_,setQueueCloseConfirm:v,queueEscSuppress:y,setQueueEscSuppress:b,interruptConfirm:x,setInterruptConfirm:S,popQueuedConfirm:C,setPopQueuedConfirm:w,supplyDraft:T,setSupplyDraft:E,fullScreenPaneActive:D}}function $l(){p()?.navigate(`/`,{reset:!0})}let eu=null;function tu(e){eu=e}function nu(){let e=eu;return e?.hasSelection()?(e.clear(),!0):!1}function ru(e,t){let n=e.getState().offset;return e.subscribe(()=>{let r=e.getState().offset;r!==n&&(n=r,t())})}function iu(e){let{showHome:t,tasksLength:n,backgroundTasksLength:r,editedFilesLength:i,subagentsLength:a,draftsLength:s,draftOpen:c,queuedItemsLength:l,queueOpen:d,clipboardHasContent:f,shellExecutionRunning:m,routeDerivedOwner:h,currentPath:g,backgroundOutput:_,a2uiButtons:v,scrollOffset:y,editedFilesOpen:b,subagentsOpen:x,setTasksCollapsed:S,keybindingOverrides:C}=e,{onToggleDelegates:w,onToggleEditedFiles:T,onToggleSubagents:E,onToggleDraftPane:D,onToggleQueuePane:O,onShellAbort:k,onInterrupt:te,onA2uiAction:A,onCyclePermissionMode:ne,onToggleNotifications:j,onSubmit:M}=Zl(),re=Nt(()=>{let e=p();e&&e.currentPath!==`/`&&e.navigate(`/`,{reset:!0})},[]),N=Nt(e=>{let o=p();if(!o)return!1;let s=[{path:`/`,activate:()=>re()},...t?[{path:`/home`,activate:()=>o.navigate(`/home`,{replace:!0})}]:[],...n>0?[{path:`/pane/tasks`,activate:()=>o.navigate(`/pane/tasks`,{replace:!0})}]:[],...r>0?[{path:`/pane/delegates`,activate:()=>{w?.()}}]:[],...i>0?[{path:`/pane/edited-files`,activate:()=>{T?.()}}]:[],...a>0?[{path:`/pane/subagents`,activate:()=>{E?.()}}]:[],...f?[{path:`/pane/clipboard`,activate:()=>{o.navigate(`/pane/clipboard`,{replace:!0})}}]:[]];return s.length<=1?!1:(s[(Math.max(0,s.findIndex(e=>o.currentPath===e.path||o.currentPath.startsWith(e.path+`/`)))+e+s.length)%s.length]?.activate(),!0)},[r,re,c,s,i,w,D,T,O,E,d,l,t,a,n,f]);u(`app-global-prelude`,(e,t)=>t.ctrl&&e===`c`?m?(k?.(),!0):(te?.(),!0):!1),ee(`selection-escape`,(e,t)=>!t.escape||t.ctrl||t.meta||t.shift?!1:nu()),o(`app-prompt-global`,(e,t)=>{if(t.tab&&!t.ctrl&&!t.meta&&!t.shift)return g.startsWith(`/dialog/`)||g.startsWith(`/viewer/`)||qr(g)||![`prompt`,`home`,`taskFocus`,`background`,`editedFiles`,`subagents`,`schedule`,`draft`,`queue`].includes(h)||g===`/pane/delegates`&&_?!1:N(t.shift?-1:1);if(y===0&&v&&v.length>0&&e>=`1`&&e<=`9`&&!t.ctrl&&!t.meta){let t=v.find(t=>t.key===e);if(t&&A)return A(t.componentId,t.action,t.payload),!0}if(g===`/`&&t.ctrl&&e===`k`)return!1;let r=me(ke,h,e,t,C);if(r===`smart-close`)return g===`/pane/tasks`?($l(),!0):b?(T?.(),!0):x?(E?.(),!0):(n>0?(S(()=>!1),p()?.navigate(`/pane/tasks`,{replace:!0})):S(e=>!e),!0);let i={"cycle-permission-mode":()=>{ne?.()},"toggle-notifications":()=>{j?.()},"toggle-edited-files":()=>{T?.()},"toggle-subagents":()=>{E?.()},"toggle-delegates":()=>{w?.()},"toggle-draft-pane":()=>{D?.()},"toggle-queue-pane":()=>{O?.()},"open-keybinding-panel":()=>{M?.(`/keybindings`,`send`)}};return r&&i[r]?(i[r](),!0):!1});let P=ie();Vt((e,t)=>{P.dispatch(e,t)})}function au(e){let t=e>=60,n=e>=76,r=e>=100;return{modelName:!0,occupancyBar:!0,hintText:!0,permissionMode:t,perfIndicator:t,notificationBell:t,backgroundTaskIndicator:t,scheduleIndicator:t,serviceIndicator:t,cost:n,providerUsage:n,language:n,pluginStatusItems:r,liveClock:r}}const ou={narrow:0,medium:1,low:2};function su(e){return e.map((e,t)=>({entry:e,index:t})).sort((e,t)=>{let n=ou[e.entry.tier]-ou[t.entry.tier];if(n!==0)return n;if(e.entry.isHost!==t.entry.isHost)return e.entry.isHost?-1:1;let r=(e.entry.order??0)-(t.entry.order??0);return r===0?e.index-t.index:r}).map(e=>e.entry)}const cu=new Map;function lu(e){let t=cu.get(e);return t||(t={consecutiveSlowCalls:0,tripped:!1},cu.set(e,t)),t}function uu(){cu.clear()}function du(e,t){let n=lu(e.id);if(n.tripped)return null;let r=Date.now(),i=null;try{i=e.render(t)}catch{i=null}if(Date.now()-r>5){if(n.consecutiveSlowCalls+=1,n.consecutiveSlowCalls>=3)return n.tripped=!0,null}else n.consecutiveSlowCalls=0;return i}function fu(e){let t;for(let n of e){if(n.tickMs===void 0)continue;let e=Math.max(1e3,n.tickMs);(t===void 0||e<t)&&(t=e)}return t}function pu(e){let{columns:t,permissionMode:n,cost:r,providerUsage:i,pluginStatusItems:a,statusWidgets:o,modelName:s}=e,[c,l]=K(0);W(()=>{if(!i)return;let e=setInterval(()=>l(e=>e+1),3e4);return()=>clearInterval(e)},[i]);let[u,d]=K(0);W(()=>{let e=fu(o);if(e===void 0)return;let t=setInterval(()=>d(e=>e+1),e);return()=>clearInterval(t)},[o]);let f=Ft(()=>au(t),[t]);return{footerVisible:f,badgeEntries:Ft(()=>{let e=[];if(f.permissionMode&&n&&e.push({id:`host:permission-mode`,text:V.t(`pref.permModeLabel`,{context:n}),color:n===`bypass`?`warning`:`inactive`,separator:`dot`,tier:`narrow`,isHost:!0}),f.cost&&r&&e.push({id:`host:cost`,text:r,separator:`space`,tier:`medium`,isHost:!0}),f.providerUsage&&i){let t=Date.now(),n=Pn(i,t);n&&e.push({id:`host:provider-usage`,text:n,color:Ln(i.status,i.limitType,i.usedPercent,i.resetsAt,t,i.overageStatus),separator:`dot`,tier:`medium`,isHost:!0})}if(f.pluginStatusItems&&a)for(let t of a)e.push({id:t.id,text:t.text,separator:`space`,tier:`low`,isHost:!1});if(f.pluginStatusItems&&o.length>0){let n={nowMs:Date.now(),model:s,providerUsage:i,columns:t};for(let t of o){let r=du(t,n);r&&e.push({id:t.id,text:r.text,color:r.color,separator:`space`,tier:`low`,isHost:!1,order:t.order})}}return su(e)},[f,n,r,i,c,a,o,u,s,t])}}function mu(e){let{shellExecution:t,subagentContext:n,agentProcessing:r,queuedItems:i,pendingEcho:a,pendingSteers:o,onRequestPopQueuedConfirm:s}=e,{onExitSubagentContext:c,onPopQueued:l,onInterrupt:u,onWithdrawPending:d,onWithdrawSteer:f}=Zl();return Nt(()=>{if(!t){if(n){c?.();return}if(r){if(i.length>0){s?s():l?.();return}if(o&&o.length>0){let e=o[o.length-1];e&&f?.(e.id);return}if(a){d?.(a.text,a.mode);return}u?.();return}}},[t,n,c,r,i,a,o,l,u,d,f,s])}let hu=null;function gu(e){hu=e}function _u(){return hu}function vu(){let[e,t]=K(null),n=G(null),r=Nt(e=>{n.current=e,t(e),!e&&p()?.currentPath===`/pane/sigil`&&p()?.goBack()},[]),i=G(null),[a,o]=K(null),s=G(!1),[c,l]=K(null),u=G(null),d=Nt((e,t,n)=>{i.current=n,r({sigil:e,query:t,mode:`sigil`}),p()?.navigate(`/pane/sigil`)},[]),f=Nt(()=>{if(n.current?.mode===`history`){r(null);return}i.current=null,r({sigil:`#`,query:``,mode:`history`}),p()?.navigate(`/pane/sigil`)},[]);return W(()=>(gu(f),()=>gu(null)),[f]),{sigilState:e,setSigilState:r,sigilApplyRef:i,hadSigilFocusRef:s,chipContentViewerRequest:a,pasteContent:c,handleSigilTrigger:d,handleHistorySearch:f,handleChipReopen:Nt((e,n,r)=>{i.current={select:r.select,cancel:()=>r.cancel()},t({sigil:`@`,query:``}),p()?.navigate(`/pane/sigil`)},[]),handleChipViewPaste:Nt((e,t)=>{Jr(p(),Gr,!0),o({label:e,content:t,onDismiss:()=>{o(null),Jr(p(),Gr,!1)}})},[]),handleSigilClose:Nt(()=>{r(null)},[]),handlePasteConfirmRequest:Nt((e,t)=>{u.current=t,l(e),Jr(p(),Ur,!0)},[]),handlePasteConfirm:Nt(()=>{u.current?.confirm(),u.current=null,l(null),Jr(p(),Ur,!1)},[]),handlePasteCancel:Nt(()=>{u.current?.cancel(),u.current=null,l(null),Jr(p(),Ur,!1)},[])}}function yu(e){let{sigilState:t,setSigilState:n,sigilApplyRef:r,hadSigilFocusRef:i,focusOwner:a,preempted:o}=e;W(()=>{if(!t){i.current=!1;return}if(a===`sigilPane`&&!o){i.current=!0;return}i.current&&=(n(null),r.current?.cancel(!1),!1)},[t,a,o])}function bu(){let e=Rn({budget:null});return{store:e,setBudget(t){e.setState({budget:t})},reset(){e.setState({budget:null})}}}function xu(e,t){return e.toolCallId&&t.toolCallId&&e.toolCallId===t.toolCallId?{...e,...t}:{...e,...t,oldContent:e.oldContent??t.oldContent,newContent:t.newContent??e.newContent,addedLines:e.addedLines+t.addedLines,removedLines:e.removedLines+t.removedLines,timestamp:Math.max(e.timestamp,t.timestamp),turnId:t.turnId??e.turnId,toolCallId:t.toolCallId??e.toolCallId}}function Su(e){let t=e.split(`/`);return t.length<=3?e:`…/${t.slice(-2).join(`/`)}`}function Cu(e){switch(e){case`edit`:return`~`;case`write`:return`+`;case`delete`:return`-`}}function wu(e,t){switch(e){case`edit`:return t.accent;case`write`:return t.success;case`delete`:return t.error}}function Tu({files:e,focused:n,onDismiss:r,onOpenFileFull:a,fullOpenIndex:o=null,rows:s=24}){let c=L(),[l,u]=ra(`editedFiles`,e.length),m=G(0);if(yt(`edited-files-pane`,(t,n)=>n.escape?o===null?(p()?.navigate(`/`,{reset:!0}),r?.(),!0):!0:ue(`list-nav-up`,t,n,`editedFiles`)?(u(e=>Math.max(0,e-1)),!0):ue(`list-nav-down`,t,n,`editedFiles`)?(u(t=>Math.min(e.length-1,t+1)),!0):n.return?(a?.(l),!0):!1,{isActive:n}),e.length===0)return null;let h=e.reduce((e,t)=>e+t.addedLines,0),g=e.reduce((e,t)=>e+t.removedLines,0),_=Math.min(l,e.length-1),v=xt(e,_,Ve(e.length,s,3),m.current);return m.current=v.scrollTop,J(Y,{flexDirection:`column`,marginTop:t.tight,children:[J(Y,{children:[q(X,{color:c.special,children:`▸ `}),q(X,{color:n?c.text:c.inactive,children:V.t(`panelTitle.editedFilesTitle`)}),J(d,{type:`secondary`,children:[` `,V.t(`diff.fileCountLabel`,{count:e.length})]}),h>0&&J(X,{color:c.diffAdd,children:[` +`,h]}),g>0&&J(X,{color:c.diffRemove,children:[` -`,g]}),!n&&J(d,{type:`secondary`,dim:!0,children:[` `,i(`v`)]}),n&&q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[B.enter,V.t(`hint.view`)],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),J(Y,{marginLeft:t.section,flexDirection:`column`,children:[v.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),v.rows.map((e,t)=>{let r=v.scrollTop+t===_,i=r&&n?c.selection:c.inactive;return J(Y,{flexDirection:`row`,children:[q(X,{color:i,children:r?tt():be()}),J(X,{color:wu(e.operation,c),children:[Cu(e.operation),` `]}),q(X,{color:i,children:Su(e.path)}),e.addedLines>0&&J(X,{color:c.diffAdd,children:[` +`,e.addedLines]}),e.removedLines>0&&J(X,{color:c.diffRemove,children:[` -`,e.removedLines]})]},`${e.path}-${e.timestamp}`)}),v.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})]})}function Eu(e={}){return{tasks:[],tasksTitle:void 0,turnBoundaries:[],editedFiles:[],backgroundTasks:[],subagentsAccum:new Map,scheduleTasks:[],drafts:e.drafts??[],queued:[],pendingPermission:null,clipboardChars:0,clipboardText:``,clipboardFailed:!1,clipboardJustCopied:!1,backgroundOutput:null,subagentContext:null,forcedUpgrade:null,pendingEcho:null,pendingSteers:[],modelName:e.modelName??``,pluginStatusItems:[],statusWidgets:[],needsSetup:e.needsSetup??!1,permissionMode:e.permissionMode??`auto`,commands:e.commands??[],paneOwnsViewportFlag:!1,shellExecution:null,recentMentions:e.recentMentions??[],sessionList:[],sessionTitle:``}}function Du(e={}){let t=Rn(Eu(e)),n,r={},i=()=>n?.();return{store:t,reset(){t.setState(Eu(e))},setNotify(e){n=e},setEffects(e){r=e},actions:{setTasks(e,n){t.setState({tasks:e}),t.setState({tasksTitle:n}),i()},setEditedFiles(e){t.setState({editedFiles:e.sort((e,t)=>t.timestamp-e.timestamp)}),i()},addEditedFile(e){let n=[...t.getState().editedFiles],r=n.findIndex(t=>t.path===e.path);r>=0?n[r]=xu(n[r],e):n.push(e),n.sort((e,t)=>t.timestamp-e.timestamp),t.setState({editedFiles:n}),i()},setBackgroundTasks(e){if(t.setState({backgroundTasks:e}),e.some(e=>e.type===`agent-session`)){let n=new Map(t.getState().subagentsAccum);for(let t of e)t.type===`agent-session`&&n.set(t.id,t);t.setState({subagentsAccum:n})}i()},setTurnBoundaries(e){t.setState({turnBoundaries:[...e]})},addTurnBoundary(e){t.setState({turnBoundaries:[...t.getState().turnBoundaries,e]})},setDrafts(e){t.setState({drafts:e}),i()},setScheduleTasks(e){t.setState({scheduleTasks:e}),i()},setRecentMentions(e){t.setState({recentMentions:e}),i()},setModelName(e){t.setState({modelName:e}),i()},setSessionList(e){t.setState({sessionList:e}),i()},setSessionTitle(e){t.setState({sessionTitle:e}),i()},setNeedsSetup(e){t.getState().needsSetup!==e&&(t.setState({needsSetup:e}),i())},setPermissionMode(e){t.setState({permissionMode:e}),i()},setForcedUpgrade(e){t.setState({forcedUpgrade:e}),r.syncForcedUpgradeRoute?.(!!e),i()},setPluginStatusItems(e){t.setState({pluginStatusItems:e}),r.registerStatusItems?.(e),i()},setBackgroundOutput(e){t.setState({backgroundOutput:e}),r.backgroundOutputRoute?.(e!==null),r.flushScrollbackIfIdle?.(),i()}}}}function Ou(){let e=Rn({memory:void 0,memoryHistory:[],notify:void 0,indicatorLevel:`healthy`,pluginMetrics:[]});return{store:e,reset(){e.setState({memory:void 0,memoryHistory:[],notify:void 0,indicatorLevel:`healthy`,pluginMetrics:[]})},setMemory(t){let n=[...e.getState().memoryHistory,t.heapUsed].slice(-32);e.setState({memory:t,memoryHistory:n})},setNotify(t){e.setState({notify:t})},setIndicatorLevel(t){e.setState({indicatorLevel:t})},setPluginMetrics(t){e.setState({pluginMetrics:t})}}}function ku(){let e=Rn({view:null});return{store:e,setView(t){e.setState({view:t})}}}function Au(){return{view:{configPath:`~/.otto/config.json`}}}function ju(){let e=Rn(Au());return{store:e,setView(t){e.setState({view:t})}}}function Mu(e=Date.now){let t=Rn({entries:[]}),n=1,r=r=>{let i=[{...r,id:n++,timestamp:e()},...t.getState().entries].slice(0,20);t.setState({entries:i})};return{store:t,recordCompaction(e,t,n){r({kind:`compact`,before:e,after:t,summary:n})},recordPrune(e,t){r({kind:`prune`,tokensSaved:e,prunedCount:t})},recordHistoryCapped(e){r({kind:`history_capped`,removedCount:e})}}}const Nu={categoryIndex:0,itemIndex:0,variantIndex:0};function Pu(){let e=Rn({...Nu});return{store:e,reset(){e.setState({...Nu})},setCategoryIndex(t){e.setState({categoryIndex:t,itemIndex:0,variantIndex:0})},setItemIndex(t){e.setState({itemIndex:t,variantIndex:0})},setVariantIndex(t){e.setState({variantIndex:t})}}}function Fu(e){let{taskStore:t,budgetStore:n,perfStore:r,cacheStore:i,proxyStore:a,compactionLogStore:o,galleryStore:s,streamStore:c}=e;return{taskStore:Ft(()=>t??Du(),[t]),budgetStore:Ft(()=>n??bu(),[n]),perfStore:Ft(()=>r??Ou(),[r]),cacheStore:Ft(()=>i??ku(),[i]),proxyStore:Ft(()=>a??ju(),[a]),compactionLogStore:Ft(()=>o??Mu(),[o]),galleryStore:Ft(()=>s??Pu(),[s]),streamStore:Ft(()=>c??sl(),[c])}}const Iu=[{en:`Use ↑/↓ for input history; Ctrl+R opens fuzzy history search.`,zh:`输入框里按 ↑/↓ 浏览历史输入,Ctrl+R 模糊搜索历史。`},{en:`Use /feedback to report a bug or request a feature via GitHub.`,zh:`输入 /feedback 可通过 GitHub 提交 bug 或功能建议。`},{en:`During a run, press Esc on an empty prompt to interrupt and steer.`,zh:`运行时输入框为空按 Esc 可中断,otto 停下来让你接管方向。`},{en:`During a run, Shift+Enter queues a follow-up; Ctrl+Q manages it.`,zh:`运行中按 Shift+Enter 排队追加消息(本回合后执行),Ctrl+Q 管理队列。`},{en:`While otto works, plain Enter steers the current turn.`,zh:`otto 工作中按普通 Enter 可注入引导消息到当前回合。`},{en:`Type /model then Tab to pick a model and switch mid-session.`,zh:`输入 /model 后按 Tab 自动补全可用模型,会话中途即可切换。`},{en:`Use /install for skills/plugins/MCP; manage them in /extension.`,zh:`/install 从文件或 URL 安装技能/插件/MCP,/extension 面板管理。`},{en:`Reasoning streams inline; /effort changes its intensity.`,zh:`推理过程实时内联在对话流中生成,/effort 调节推理强度。`},{en:`Type /open then Tab to browse and open files in the viewer.`,zh:`输入 /open 按 Tab 浏览目录,在内置查看器打开文件。`},{en:`Ctrl+S saves the current input as a draft; Ctrl+O lists and loads drafts.`,zh:`Ctrl+S 把当前输入存为草稿,Ctrl+O 打开草稿面板选择载入。`},{en:`Ctrl+R or /history searches session and shell history.`,zh:`Ctrl+R(或 /history)搜索会话与 shell 历史,选中即回填。`},{en:`Large pastes become chips; press Enter on a chip to view it.`,zh:`大段粘贴自动折叠成占位标记,光标停在标记上按 Enter 查看原文。`},{en:`Use /compact to free context; /compact log shows pruned items.`,zh:`长会话用 /compact 释放上下文,/compact log 查看裁剪明细。`},{en:"Run `otto doctor` in another terminal for a full health check.",zh:"在另一个终端运行 `otto doctor` 做完整环境健康诊断。"},{en:`Otto can fall back to another model after failure or rate limits.`,zh:`当前模型失败或限流时,otto 自动回退到已配置的其他模型。`},{en:`Use /schedule add with cron syntax for recurring tasks.`,zh:`/schedule add 用 cron 表达式设定期任务(如日报)。`},{en:`Use /queue to reorder or remove queued follow-ups.`,zh:`/queue 面板管理排队消息,move 调顺序,remove 删除。`},{en:`Tab completes slash commands and arguments: /model gpt<Tab>.`,zh:`Tab 补全斜杠命令及其参数(试试 /model gpt<Tab>)。`},{en:`Ctrl+P opens Delegates; press Enter to view job output.`,zh:`Ctrl+P 打开委派面板查看后台任务,Enter 实时查看其输出。`},{en:`Use /job <directive> to run work in a background worktree.`,zh:`/job <指令> 在后台 worktree 跑任务,不阻塞当前会话。`},{en:`Language, model, and permission mode persist across sessions.`,zh:`语言、模型、权限模式跨会话自动持久化。`},{en:`Ctrl+V lists edited files; Enter opens a full-screen diff.`,zh:`Ctrl+V 列出本会话修改的文件及 +/- 统计,Enter 打开全屏 diff。`},{en:`Scroll with Alt+↑/↓ or PgUp/PgDn; press / in review to search.`,zh:`Alt+↑/↓ 或 PageUp/PageDown 滚动对话流,回看态按 / 搜索。`},{en:`Use /perf for memory and rendering health; /diagnose for failures.`,zh:`/perf 查看内存占用与渲染健康度,/diagnose 汇总反复出现的失败并给改进建议。`},{en:`Use /preference to switch theme or language.`,zh:`/preference theme 切 dark/light/system 主题,/preference lang 切中英文。`},{en:`Wheel scrolling works by default; drag to select, release to copy.`,zh:`滚轮/触控板开箱即用,拖拽即选中、松手自动复制。`},{en:`Use /upgrade for otto updates; /upgrade --check checks extensions.`,zh:`/upgrade 检查 otto 更新,/upgrade --check 检查扩展更新。`},{en:`Use /resume for recent sessions; /pin keeps favorites on top.`,zh:`/resume 切换最近会话,/pin 把常用会话置顶。`}];function Lu({active:e,resetKey:t,isZh:n,delayMs:r=6e4,rotateMs:i=2e4}){let[a,o]=K(!1),[s,l]=K(()=>Ru()),u=G(e);u.current=e;let d=G(0),[f,p]=K(0);if(c(`idle-tip-activity`,()=>{d.current+=1,p(d.current)},{isActive:e}),W(()=>{if(!e){o(!1);return}o(!1);let t=setTimeout(()=>{u.current&&o(!0)},r);return()=>{clearTimeout(t)}},[e,t,r,f]),W(()=>{if(!a)return;let e=setInterval(()=>{l(e=>(e+1)%Iu.length)},i);return()=>clearInterval(e)},[a,i]),!e||!a)return null;let m=Iu[s%Iu.length];return m?n?m.zh:m.en:null}function Ru(){let e=new Date,t=`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`,n=0;for(let e=0;e<t.length;e++)n=(n<<5)-n+t.charCodeAt(e)|0;return Math.abs(n)%Iu.length}function zu(){return q(Y,{children:q(X,{color:L().warning,children:`🕶 ${V.t(`welcome.shadowChip`)}`})})}function Bu(){let e=L();return J(Y,{flexDirection:`column`,marginBottom:1,children:[q(X,{bold:!0,color:e.warning,children:`🕶 ${V.t(`welcome.shadowBannerTitle`)}`}),q(X,{color:e.suggestion,children:V.t(`welcome.shadowGuarantee`)}),J(Y,{marginTop:1,flexDirection:`column`,children:[q(X,{color:e.inactive,children:V.t(`welcome.shadowNotGuaranteedTitle`)}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg1`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg2`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg3`)}`}),q(X,{color:e.inactive,children:` • ${V.t(`welcome.shadowNg4`)}`})]})]})}const Vu=[`#E06C75`,`#D19A66`,`#E5C07B`,`#98C379`,`#61AFEF`,`#C678DD`],Hu=[`#B5403A`,`#B45F1F`,`#96740F`,`#4E7A34`,`#2364A8`,`#7B4FC4`];function Uu(e){let t=2*e;return 375+t+188+t}function Wu(e){return 2*e}function Gu(e,t){return Math.min(t,Math.floor(e/2)+1)}function Ku(e,t){let n=Wu(t),r=e%Uu(t);if(r<375)return{phase:`brand`,progress:0,t:r};let i=r-375;if(i<n)return{phase:`entering`,progress:Gu(i,t),t:i};let a=i-n;if(a<188)return{phase:`hold`,progress:t,t:a};let o=a-188;return o<n?{phase:`exiting`,progress:Gu(o,t),t:o}:{phase:`brand`,progress:0,t:r}}function qu(e){let t=e%16;return t<=8?t/8:(16-t)/8}function Ju(e){return Math.floor(e/3)%Vu.length}function Yu(e,t,n){let r=n===`light`?Hu:Vu,i=Ju(t),a=[];for(let t=0;t<e;t++)a.push(r[(t+i)%r.length]);return a}function Xu(e,t){let n=parseInt(e.slice(1),16),r=n>>16&255,i=n>>8&255,a=n&255,o=e=>Math.round(e+(255-e)*t),s=e=>e.toString(16).padStart(2,`0`).toUpperCase();return`#${s(o(r))}${s(o(i))}${s(o(a))}`}function Zu(e,t,n,r,i,a,o){let s=i===`light`?Hu:Vu,c=a.phase===`hold`?qu(a.t):0,l=[];for(let i=0;i<e.length;i++){let u=a.phase===`hold`||a.phase===`entering`&&i<a.progress||a.phase===`exiting`&&i>=a.progress,d=Math.abs(i-t)<=n,f;if(u){let e=s[(i+r)%s.length];f=Xu(e,d?.5+.25*c:.5*c)}else f=d?o.brandShimmer:o.brand;let p=l[l.length-1];p&&p.color===f?p.text+=e[i]:l.push({text:e[i],color:f})}return l}const Qu=[`✦`,`✧`,`·`,`⋆`],$u=[`~`,`°`,`·`,`˘`,`∼`],ed=[`▄▀▀▄ ▀█▀ ▀█▀ ▄▀▀▄`,`▀▄▄▀ █ █ ▀▄▄▀`],td=[{left:2,phase:0},{left:8,phase:11},{left:13,phase:22}],nd=[{left:1,phase:16}],rd=[{left:1,phase:0},{left:5,phase:10},{left:9,phase:20},{left:14,phase:30}],id=[{left:3,phase:15},{left:10,phase:35}];function ad(e,t){let n=(e+t)%32,r=n<=16?n/16:(32-n)/16;return r<.15?0:r<.5?1:r<.85?2:3}function od(e,t){let n=(e+t)%70,r=(Math.sin(n/70*Math.PI*2)+1)/2;return r<.1?0:r<.4?1:r<.75?2:3}function sd(e,t){return $u[Math.floor((e+t)/8)%$u.length]}function cd({isNight:e=!1}){let t=L(),{resolvedTheme:n}=b(),[r,i]=H.useState(0),a=ge();Ne(80,i);let o=e&&!a,s=!e&&!a,c=a?null:Ku(r,ed[0].length),l=Ju(r),u={brand:t.brand,brandShimmer:t.brandShimmer},d=e=>e===1?t.accentDim:e===3?t.accentBright:t.accent,f=(e,t,n)=>{let i=ad(r,e.phase);return i===0?null:q(Y,{position:`absolute`,top:t,left:e.left,children:q(X,{color:d(i),children:Qu[n%Qu.length]})},`${t}-${e.left}`)},p=(e,t,n)=>{let i=od(r,e.phase);return i===0?null:q(Y,{position:`absolute`,top:t,left:e.left,children:q(X,{color:d(i),children:sd(r,e.phase)})},`ripple-${n}`)};return J(Y,{position:`relative`,flexDirection:`column`,children:[ed.map((e,i)=>{let a=el(r+i*3,e.length);return q(Y,{flexDirection:`row`,children:c&&c.phase!==`brand`?Zu(e,a,2,l,n,c,u).map((e,t)=>q(X,{bold:!0,color:e.color,children:e.text},t)):$c(e,a,2).map((e,n)=>q(X,{bold:!0,color:e.bright?t.brandShimmer:t.brand,children:e.text},n))},i)}),o&&td.map((e,t)=>f(e,-1,t)),o&&nd.map((e,t)=>f(e,ed.length,t)),s&&rd.map((e,t)=>p(e,-1,t)),s&&id.map((e,t)=>p(e,ed.length,t))]})}const ld=[`provider`,`authentication`,`model`],ud={provider:{titleKey:`recovery.titleProvider`,ctaKey:`recovery.ctaProvider`,hintKey:`recovery.hintProvider`},authentication:{titleKey:`recovery.titleAuth`,ctaKey:`recovery.ctaAuth`,hintKey:`recovery.hintAuth`},model:{titleKey:`recovery.titleModel`,ctaKey:`recovery.ctaModel`,hintKey:`recovery.hintModel`}};function dd(e,t){if(e===`ready`||e===`first-prompt`)return null;let n=ud[e],r=ld.indexOf(e)+1,i=t<80;return{titleKey:n.titleKey,ctaKey:n.ctaKey,...i?{}:{hintKey:n.hintKey},step:r,totalSteps:ld.length}}function fd({version:e=`0.1.0`,buildId:n,cwd:r,width:i,nickname:a,updateAvailable:o,weather:s,ftueStage:c,shadow:l=!1}){let u=L(),f=r?r.replace(process.env.HOME??`~`,`~`):void 0,p=i??process.stdout.columns??80,m=p>=60,h=H.useMemo(()=>{let e=new Date().getHours();return e<5?`late`:e<9?`earlyMorning`:e<12?`morning`:e<18?`afternoon`:e<22?`evening`:`night`},[]),g=h===`night`||h===`late`,[_]=H.useState(()=>{let e=new Date,t=V.language===`zh`?[`日`,`一`,`二`,`三`,`四`,`五`,`六`]:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],n=t[e.getDay()]??t[0],r=a?V.language===`zh`?`,${a}`:`, ${a}`:``;return V.t(`welcome.greeting`,{context:h,wday:n,who:r})}),v=_,y=V.t(`welcome.version`),b=V.t(`welcome.workspace`),x=Math.max(ut(y),ut(b))+4,S=ed.map(e=>ut(e)),C=Math.max(...S),w=e=>` `.repeat(Math.max(0,C-(S[e]??C))),T=c?dd(c,p):null;return q(Y,{flexDirection:`column`,children:J(Y,{flexDirection:`column`,paddingX:t.tight,paddingTop:t.section,...Qe,borderColor:u.panelBorder,children:[m&&J(Y,{marginBottom:t.tight,flexDirection:`row`,children:[q(cd,{isNight:g}),J(Y,{flexDirection:`column`,marginLeft:t.loose,children:[J(Y,{flexDirection:`row`,children:[J(d,{type:`secondary`,children:[w(0),vt(y,x)]}),J(d,{type:`secondary`,children:[`v`,e]}),n!=null&&J(d,{type:`secondary`,dim:!0,children:[` `,`(build `,n,`)`]}),o&&o.newer&&J(X,{color:o.forced?u.warning:u.accent,children:[` `,o.forced?V.t(`update.forcedBanner`,{latest:o.latest}):V.t(`update.availableBanner`,{latest:o.latest})]})]}),f&&J(Y,{flexDirection:`row`,children:[J(d,{type:`secondary`,children:[w(1),vt(b,x)]}),q(d,{type:`secondary`,children:f})]})]})]}),!m&&J(Y,{flexDirection:`column`,marginBottom:t.tight,children:[J(Y,{flexDirection:`row`,children:[$c(`otto`,1).map((e,t)=>q(X,{bold:!0,color:e.bright?u.brandShimmer:u.brand,children:e.text},t)),q(d,{type:`secondary`,children:` ${vt(y,x)}`}),J(d,{type:`secondary`,children:[`v`,e]}),n!=null&&J(d,{type:`secondary`,dim:!0,children:[` `,`(build `,n,`)`]})]}),f&&J(Y,{flexDirection:`row`,children:[q(d,{type:`secondary`,children:` ${vt(b,x)}`}),q(d,{type:`secondary`,children:f})]})]}),q(Y,{marginBottom:t.tight,children:a&&v.includes(a)?J(X,{color:u.text,bold:!0,children:[v.slice(0,v.indexOf(a)),q(X,{color:u.accent,children:a}),v.slice(v.indexOf(a)+a.length)]}):q(X,{color:u.text,bold:!0,children:v})}),T&&J(Y,{flexDirection:`column`,marginBottom:t.tight,children:[J(Y,{children:[q(X,{color:u.warning,bold:!0,children:V.t(T.titleKey)}),q(d,{type:`secondary`,children:` ${T.step}/${T.totalSteps}`})]}),T.hintKey&&q(d,{type:`secondary`,children:V.t(T.hintKey)}),q(X,{color:u.accent,children:V.t(T.ctaKey)})]}),l&&q(Bu,{}),s&&J(Y,{marginBottom:t.tight,children:[J(X,{color:u.accent,children:[s.condition,` `,s.temp,`°C`]}),J(d,{type:`secondary`,children:[` `,s.location]})]})]})})}function pd(e,t){let n=la();W(()=>{if(n)return n.registerWheel(e)},[n,...t])}function md({title:e,status:t,messages:n,streamText:r=``,rows:i=24,columns:a=80,onDismiss:o}){let s=L(),c=oe();yt(`subagent-context-view`,(e,t)=>t.escape?(o?.(),!0):t.upArrow?(m(e=>b(e+1)),!0):t.downArrow?(m(e=>b(e-1)),!0):t.pageUp?(m(e=>b(e+v)),!0):t.pageDown?(m(e=>b(e-v)),!0):e===`g`&&!t.ctrl&&!t.meta?(m(y),!0):e===`G`&&!t.ctrl&&!t.meta?(m(0),!0):!1,{isActive:c?c.currentPath===`/subagent`:!0});let l=[];for(let e of n){let t=rc(e,a);t.length>0&&l.push(t)}let u=[];for(let e=0;e<l.length;e++)e>0&&u.push(``),u.push(...l[e]);let[p,m]=K(0),h=p===0,g=Qc(r,a-ne.borderInset,3);if(h&&g.length>0){u.length>0&&u.push(``),u.push(`⏺ assistant (streaming)`);for(let e of g)u.push(` ${e}`)}let _=k(i),v=Math.max(1,_-7),y=Math.max(0,u.length-v),b=e=>Math.min(y,Math.max(0,e)),x=y-b(p),S=u.slice(x,x+v);return pd(e=>m(t=>b(t+e*3)),[y]),J(M,{maxHeight:_,header:J(Y,{flexDirection:`column`,children:[q(X,{color:s.secondary,italic:!0,children:V.t(`subagent.header`,{title:e,status:t})}),q(X,{children:` `})]}),footer:q(f,{items:[...y>0?[[`${B.up}${B.down}`,V.t(`hint.scroll`)]]:[],[B.esc,V.t(`hint.back`)]]}),children:[q(Y,{height:1,children:x>0&&q(d,{type:`secondary`,dim:!0,children:V.t(`subagent.contextEarlierLines`,{n:x})})}),q(Y,{flexDirection:`column`,children:S.map((e,t)=>q(X,{children:e},`${x+t}`))})]})}const hd=[{thresholdSec:0,stage:{labelKey:`analyze`,capPercent:30}},{thresholdSec:3,stage:{labelKey:`summarize`,capPercent:80}},{thresholdSec:8,stage:{labelKey:`finalize`,capPercent:92}}];function gd(e){let t=Number.isFinite(e)?e:0,n=hd[0].stage;for(let{thresholdSec:e,stage:r}of hd)if(t>=e)n=r;else break;return n}const _d=ze,vd=3e3;function yd(e){let t=100*(1-Math.exp(-Math.max(0,e)/8));return Math.min(92,Math.round(t))}function bd({verb:e,elapsed:n=!0,paused:r=!1,responseLength:i=0,hasActiveTools:a=!1,tokens:o=0,mode:s,progressPercent:c,toolTurnCount:l=0,maxToolTurns:u=0,estimatedProgress:d=!1}){let f=L(),[p,m]=K(0),[h,g]=K(0),[_,v]=K(0),y=G(Date.now()),b=G(0),x=G(i),S=G(null),C=G(-1),w=G(e??(()=>{let e=V.t(`spinner.verbs`,{returnObjects:!0});return e[Math.floor(Math.random()*e.length)]})()),T=G(i),E=G(a);T.current=i,E.current=a;let D=ge(),O=G(r);O.current=r,Ne(160,()=>{if(O.current)return;let e=Date.now()-y.current-b.current;m(Math.floor(e/160)%_d.length)}),W(()=>{let e=setInterval(()=>{if(r)return;let e=Date.now()-y.current-b.current,t=Math.floor(e/1e3);t!==C.current&&(C.current=t,g(e));let n=T.current,i=x.current;if(i>0&&i===n&&!E.current)if(S.current===null)S.current=Date.now();else{let e=Date.now()-S.current;e>=vd&&v(Math.min(1,(e-vd)/2e3))}else x.current=n,S.current=null,v(0)},160);return()=>clearInterval(e)},[r]),W(()=>{r?b.current=Date.now()-y.current:(y.current=Date.now()-b.current,b.current=0)},[r]);let k=_>0,ee=_d[p],te=Math.floor(h/1e3),A=[];if(n&&A.push({text:bo(te)}),o>0&&A.push({text:`↓ ${V.t(`budget.tokensLabel`,{count:o})}`}),s===`responding`&&c!==void 0&&Number.isFinite(c)){let e=Math.max(0,Math.min(100,Math.round(c)));A.push({text:V.t(`spinner.outputPercent`,{pct:e})})}let ne=d?gd(te):null;if(ne){let e=Math.min(ne.capPercent,yd(te));A.push({text:V.t(`spinner.estimatedPercent`,{pct:e})})}u>0&&A.push({text:V.t(`tool.budgetLabel`,{used:l,max:u}),color:tl(l,u)});let j=k?f.error:f.accent,M=ne?`${V.t(`compact.ionStageLabel`,{context:ne.labelKey})}…`:`${e??w.current}…`,re=k||D?null:$c(M,el(p,M.length)),N=s===`requesting`?R.requesting:s===`responding`?R.responding:null;return J(Y,{flexDirection:`row`,marginTop:t.tight,children:[q(X,{color:j,children:ee}),q(X,{children:` `}),N&&J(It,{children:[q(X,{dimColor:!0,color:f.inactive,children:N}),q(X,{children:` `})]}),re?re.map((e,t)=>q(X,{color:e.bright?f.text:f.inactive,bold:e.bright,children:e.text},t)):q(X,{color:k?f.error:f.text,children:M}),A.length>0&&J(It,{children:[q(X,{color:f.inactive,children:` (`}),A.map((e,t)=>J(H.Fragment,{children:[t>0&&q(X,{color:f.inactive,children:` · `}),q(X,{color:e.color??f.inactive,children:e.text})]},t)),q(X,{color:f.inactive,children:`)`})]})]})}function xd({streamStore:e,pendingPermission:t}){let n=Z(e.store,e=>e.streamingText),r=Z(e.store,e=>e.streamingThinking),i=Z(e.store,e=>e.spinnerMode),a=Z(e.store,e=>e.toolTurnCount),o=Z(e.store,e=>e.maxToolTurns),s=Z(e.store,e=>e.processing),c=Z(e.store,e=>e.activeTool),l=Z(e.store,ul),u=Z(e.store,ll);if(!s||t||r)return null;let d=c===mo,f=d?V.t(`compact.ingVerb`):c?V.t(`bg.runningVerb`,{tool:c}):void 0;return q(bd,{hasActiveTools:!!c,responseLength:n.length,tokens:l,verb:f,mode:i??void 0,progressPercent:u,toolTurnCount:a,maxToolTurns:o,estimatedProgress:d})}function Sd(e,t,n=60){if(e.length===0)return null;let r=Math.max(0,Math.min(t,e.length-1));for(let t=r;t>=0;t--){let r=e[t];if(!r||r.role!==`user`)continue;let i=Cd(r.content);if(i)return Td(i,n)}return null}function Cd(e){return typeof e==`string`?e.trim():Array.isArray(e)?e.map(e=>typeof e==`string`?e:wd(e)?e.text:``).filter(Boolean).join(` `).trim():wd(e)?String(e.text).trim():``}function wd(e){return!!e&&typeof e==`object`&&typeof e.text==`string`}function Td(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(1,t-1))}…`}function Ed(e,t){let n=e.replace(/\s+/g,` `).trim();return t<=0?``:l(n,t)}function Dd({sessionTitle:e,reviewing:t,turnPrompt:n,maxWidth:r}){let i=t&&n?n:e??``;return i===``||r===void 0?i:Ed(i,r)}function Od(e){return typeof e==`string`&&/^[a-f\d]{8}$/i.test(e)}function kd(e){let t=Zl(),{taskStore:n}=Gl(),r=Z(n.store,e=>e.sessionTitle),i=Z(n.store,e=>e.sessionList),a=Z(n.store,e=>e.needsSetup),o=Z(n.store,e=>e.pendingPermission),s=Z(n.store,e=>e.subagentContext),c=Z(n.store,e=>e.pendingEcho),l=Z(n.store,e=>e.pendingSteers),u=Z(e.scrollStore.store,e=>e.offset>0),[d,f]=H.useState(null);H.useEffect(()=>{s&&f(null)},[s]);let p=Z(e.scrollStore.store,e=>e.offset),m=Z(e.scrollStore.store,e=>e.atTranscriptTop),h=H.useMemo(()=>{if(!u)return null;let t=Math.max(0,e.messages.length-1-Math.floor(p/3));return Sd(e.messages,t)},[u,p,e.messages]),g=a?`model`:void 0;if(e.welcome&&e.showHome)return q(fd,{version:e.welcome.version,buildId:e.welcome.buildId,cwd:e.welcome.cwd,width:e.columns,nickname:e.welcome.nickname,updateAvailable:e.welcome.updateAvailable,weather:e.welcome.weather,sessionList:i,onSessionSelect:t.onSessionSelect,ftueStage:g,shadow:e.shadow});let _=Dd({sessionTitle:r,reviewing:u,turnPrompt:h,maxWidth:Math.max(1,e.columns-2)}),v=_.length>0&&!Od(_)&&!m,y=Math.max(1,e.rows-(v?1:0)-(d?1:0));return J(Y,{flexDirection:`column`,flexGrow:1,justifyContent:`flex-end`,children:[v&&q(Y,{height:1,flexShrink:0,flexDirection:`row`,children:q(X,{dimColor:!0,children:`${R.userPrompt} ${_}`})}),s?(()=>{let n=s;return q(md,{title:n.title,status:n.status,messages:n.messages,streamText:n.streamText,rows:y,columns:e.columns,onDismiss:t.onExitSubagentContext})})():J(It,{children:[q(dl,{streamStore:e.streamStore,completedMessages:e.messages,columns:e.columns,rows:y,maxPreviewRows:e.fullScreenPaneActive?0:e.maxPreviewRows,suppressLive:e.fullScreenPaneActive||u,pendingEcho:c??null,scrollbackMode:e.scrollbackMode??!1,pendingSteers:l??[],windowMode:e.windowMode,scrollStore:e.scrollStore,earlierLoading:e.earlierLoading,earlierEnded:e.earlierEnded,onNeedEarlier:e.onNeedEarlier,onPrepend:e.onPrepend,findQuery:e.findQuery,findActiveMatch:e.findActiveMatch,onFindNavigateTo:e.onFindNavigateTo,onFindCountChange:e.onFindCountChange,onReviewHintChange:f,renderReviewHint:!1}),!e.fullScreenPaneActive&&q(xd,{streamStore:e.streamStore,pendingPermission:o??null})]}),d&&q(Y,{height:1,flexShrink:0,flexDirection:`row`,children:q(X,{dimColor:!0,children:d})})]})}const Ad=ut(` · `),jd=ut(`←`)+4;function Md(e,t,n,r){let i=e.map((e,n)=>({item:e,index:n,label:t(e)}));if(e.length===0)return{items:[],hiddenLeft:0,hiddenRight:0};if(r===void 0||!Number.isFinite(r)||r<=0)return{items:i,hiddenLeft:0,hiddenRight:0};let a=Math.max(0,Math.min(n,e.length-1)),o=e=>ut(i[e].label)+2;if(i.reduce((e,t,n)=>e+o(n),0)+(i.length-1)*Ad<=r)return{items:i,hiddenLeft:0,hiddenRight:0};let s=Math.max(6,r-jd*2),c=a,u=a+1,d=Math.min(o(a),s);for(;;){let e=u<i.length,t=c>0;if(!e&&!t)break;let n=!1;if(e){let e=o(u)+Ad;d+e<=s&&(d+=e,u++,n=!0)}if(t){let e=o(c-1)+Ad;d+e<=s&&(d+=e,c--,n=!0)}if(!n)break}return{items:i.slice(c,u).map(e=>{let t=Math.max(1,s-2);return ut(e.label)>t?{...e,label:l(e.label,t)}:e}),hiddenLeft:c,hiddenRight:i.length-u}}function Nd({label:e,active:t,disabled:n,color:r=`accent`}){return q(F,{variant:`ghost`,color:r,label:e,focused:t,disabled:n})}function Pd({items:e,activeKey:n,color:r=`accent`,tabIndex:i=-1,onSelect:a,availableWidth:o,enableDigitAccess:s=!1}){let c=L(),{focused:l}=O({tabIndex:i,disabled:i<0}),u=(t,r)=>{if(!a||e.length===0)return!1;let i=e.findIndex(e=>e.key===n);if(r.leftArrow||r.rightArrow)return a(e[(i+(r.leftArrow?-1:1)+e.length)%e.length].key),!0;if(s&&t>=`1`&&t<=`9`){let n=t.charCodeAt(0)-49;return n<e.length&&!e[n].disabled?(a(e[n].key),!0):!1}return!1};We(l,u),yt(`segmented-${e.map(e=>e.key).join(`-`)}`,u,{isActive:!!a&&!l});let d=Md(e,e=>e.label,e.findIndex(e=>e.key===n),o);return J(Y,{flexDirection:`row`,gap:t.tight,children:[d.hiddenLeft>0&&q(X,{color:c.inactive,children:`←${d.hiddenLeft}`}),d.items.map((e,t)=>J(H.Fragment,{children:[t>0&&q(X,{color:c.inactive,children:`·`}),q(Nd,{label:e.label,active:e.item.key===n,disabled:e.item.disabled,color:r})]},e.item.key)),d.hiddenRight>0&&q(X,{color:c.inactive,children:`→${d.hiddenRight}`})]})}const Fd={running:R.todoActive,exited:R.check,killed:R.cross,failed:R.cross};function Id(e,t){return e===`running`?t.special:e===`exited`?t.success:t.error}function Ld(e){if((e.type??`process`)===`agent-session`)switch(e.agentStatus){case`running`:return R.todoActive;case`ready`:return R.attention;case`needs_input`:return R.attention;case`applied`:return R.check;default:return R.cross}return Fd[e.status]}function Rd(e,t){if((e.type??`process`)===`agent-session`){if(e.stall===`stalled`)return t.error;if(e.stall===`warn`)return t.warning;switch(e.agentStatus){case`running`:return t.special;case`ready`:return t.selection;case`needs_input`:return t.warning;case`applied`:return t.success;default:return t.error}}return Id(e.status,t)}function zd({tasks:e,columns:n=80,onClose:r,onKill:a,onViewOutput:o,onApply:s,onSwitch:c,onDelete:u,active:p=!0,rows:m=24}){let h=L(),[g,_]=ra(`delegates`,e.length),v=G(0),y=e.some(e=>(e.type??`process`)===`agent-session`?e.agentStatus===`running`:e.status===`running`),[,b]=K(0);W(()=>{if(!y)return;let e=setInterval(()=>b(e=>(e+1)%1e6),1e3);return()=>clearInterval(e)},[y]),yt(`delegates-pane`,(t,n)=>{if(n.escape||t===`q`)return r?.(),!0;if(ue(`list-nav-up`,t,n,`background`))return _(e=>Math.max(0,e-1)),!0;if(ue(`list-nav-down`,t,n,`background`))return _(t=>Math.max(0,Math.min(e.length-1,t+1))),!0;let i=e[g],l=i?yo(i):!1;return t===`k`&&l&&i?(a?.(i.id),!0):(t===`o`||n.return)&&i?(o?.(i.id),!0):t===`a`&&i?.type===`agent-session`&&i.agentStatus===`ready`&&i.diffStat?(s?.(i.id),!0):t===`s`&&i?.type===`agent-session`?(c?.(i.id),!0):t===`d`&&i&&!l?(u?.(i.id),!0):!1},{isActive:p,ignoreRoute:!0});let x=e.filter(yo).length,S=Date.now(),C=Math.max(12,Math.min(48,n-28));if(!p){if(e.length===0)return null;let t=e[Math.min(g,e.length-1)];return J(Y,{flexDirection:`column`,children:[J(Y,{children:[q(X,{color:h.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`bg.tasksTitle`)}),J(d,{type:`secondary`,children:[` `,e.length]}),x>0&&J(d,{type:`secondary`,children:[` · `,V.t(`bg.runningSuffix`,{n:x})]}),J(d,{type:`secondary`,dim:!0,children:[` `,i(`p`)]})]}),t&&J(Y,{flexDirection:`row`,children:[q(X,{color:h.inactive,children:`${R.pointer} `}),q(X,{color:h.inactive,children:l(t.command,C).padEnd(C)}),J(d,{type:`secondary`,dim:!0,children:[` `,To(t,S)]})]})]})}let w=e[Math.min(g,e.length-1)],T=(w?.type??`process`)===`agent-session`&&w?.agentStatus===`ready`&&!!w?.diffStat,E=!!w&&!yo(w),D=Math.min(g,e.length-1),O=[],k,ee=0;e.forEach((e,t)=>{let n=_o(e);n!==k&&(ee>0&&O.push({type:`spacer`}),O.push({type:`header`,category:n}),ee++,k=n),O.push({type:`entry`,task:e,index:t})});let te=xt(O,O.findIndex(e=>e.type===`entry`&&e.index===D),Ve(O.length,m,3),v.current);return v.current=te.scrollTop,J(Y,{flexDirection:`column`,marginTop:t.tight,children:[J(Y,{children:[q(X,{color:h.special,children:`▸ `}),q(X,{color:h.text,children:V.t(`bg.tasksTitle`)}),J(d,{type:`secondary`,children:[` `,x>0?V.t(`bg.runningSuffix`,{n:x}):`${e.length} total`,e.length>x?` · ${V.t(`bg.doneSuffix`,{n:e.length-x})}`:``]}),q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`k`,V.t(`hint.kill`)],[`o`,V.t(`hint.output`)],...T?[[`a`,V.t(`hint.apply`)]]:[],...E?[[`d`,V.t(`hint.delete`)]]:[],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),q(Y,{marginLeft:t.section,flexDirection:`column`,children:e.length===0?q(d,{type:`secondary`,dim:!0,children:V.t(`bg.empty`)}):J(It,{children:[te.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),te.rows.map((e,t)=>{if(e.type===`spacer`)return q(X,{children:` `},`spacer-${t}`);if(e.type===`header`)return q(d,{type:`secondary`,dim:!0,children:V.t(`bg.categoryLabel`,{context:e.category})},`h-${t}`);let n=e.task,r=e.index===g;return J(Y,{flexDirection:`row`,children:[q(X,{color:r?h.selection:h.inactive,children:r?tt():be()}),J(X,{color:Rd(n,h),children:[Ld(n),` `]}),q(X,{color:r?h.selection:h.inactive,children:l(n.command,C).padEnd(C)}),(n.type??`process`)===`agent-session`&&n.model&&J(d,{type:`secondary`,dim:!0,children:[` `,String(n.model)]}),J(d,{type:`secondary`,dim:!0,children:[` `,To(n,S)]})]},n.id)}),te.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})})]})}function Bd({view:e,columns:n=80,rows:r,active:i=!0,onDismiss:a}){let o=L(),s=e.prompt!==void 0,c=e.messages!==void 0&&e.messages.length>0,u=!!e.diff?.trim(),p=(s?1:0)+(c?1:0)+(u?1:0)>=2,[m,h]=K(u?`diff`:c?`conversation`:`prompt`),[g,_]=K(0),[v,y]=K(!1),[b,x]=K(``),[S,C]=K(-1),w=r?Ue(r,12):18;W(()=>_(0),[e.id,m]);let T=Math.max(8,n-ne.contentInset),E=[],D=[];if(m===`diff`)E=(e.diff??``).split(`
53
53
  `);else if(m===`prompt`)E=eo(e.prompt??``,T);else if(e.messages&&e.messages.length>0){let t=[];for(let n=0;n<e.messages.length;n++){let r=e.messages[n],i=rc(r,T);i.length!==0&&(t.length>0&&t.push(``),t.push(...i))}E=t,D=e.streamText?Qc(e.streamText,T-ne.borderInset,3):[]}let O=m===`prompt`,k=m===`diff`,ee=e=>e.startsWith(`+`)&&!e.startsWith(`+++`)?o.diffAdd:e.startsWith(`-`)&&!e.startsWith(`---`)?o.diffRemove:e.startsWith(`@@`)||e.startsWith(`diff --git`)?o.special:o.secondary,te=e.status===`running`,A=H.useMemo(()=>{if(!b)return{flat:[],byLine:new Map};let e=[],t=new Map;for(let n=0;n<E.length;n++){let r=ya(ks(E[n]),b);if(r.length!==0){t.set(n,r);for(let t of r)e.push({line:n,range:t})}}return{flat:e,byLine:t}},[b,E]),j=Fo(E.length,w,g),re=E.slice(j.start,j.end),N=b?re.map((e,t)=>{let n=j.start+t,r=A.byLine.get(n);if(!r||r.length===0)return e;let i=S>=0?A.flat[S]:void 0;return va(e,r,i&&i.line===n?i.range:void 0)}):re,ie=e.responseText?.split(`
54
54
  `)[0],[P,ae]=K(!1);pd(e=>_(t=>Math.max(0,t+e)),[]),yt(`delegates-pane-2`,(t,n)=>{if(v){if(n.escape)return y(!1),x(``),C(-1),!0;if(n.backspace)return x(e=>e.slice(0,-1)),C(-1),!0;if((t===`n`||t===`N`)&&b.length>0){let e=t===`n`?1:-1;return C(t=>A.flat.length>0?(t+e+A.flat.length)%A.flat.length:-1),!0}return t.length===1?(x(e=>e+t),C(-1),!0):!0}return t===`/`&&!n.ctrl&&!n.meta?(y(!0),x(``),C(-1),!0):n.escape?(a?.(),!0):t===`]`&&p?(h(e=>{let t=[...u?[`diff`]:[],...c?[`conversation`]:[],...s?[`prompt`]:[]];return t[(t.indexOf(e)+1)%t.length]??e}),!0):t===`d`&&e.responseText?(ae(e=>!e),!0):n.upArrow?(_(e=>e+1),!0):n.downArrow?(_(e=>Math.max(0,e-1)),!0):n.pageUp?(_(e=>e+w),!0):n.pageDown?(_(e=>Math.max(0,e-w)),!0):!1},{isActive:i,ignoreRoute:!0});let oe=J(Y,{flexDirection:`column`,children:[J(Y,{flexDirection:`row`,children:[J(X,{color:Id(e.status,o),children:[Fd[e.status],` `]}),q(X,{color:o.secondary,bold:!0,children:l(e.command,Math.max(12,n-12))}),q(d,{type:`secondary`,children:te?` ${R.statusDot} ${V.t(`bg.live`)}`:` ${V.t(`status.done`)}`})]}),ie&&J(Y,{flexDirection:`column`,children:[J(d,{type:`secondary`,dim:!0,children:[` `,ie,` `,q(X,{color:o.suggestion,children:`[d] ${P?V.t(`hint.collapse`):V.t(`find.tabDiagnostics`)}`})]}),P&&e.responseText&&q(Y,{flexDirection:`column`,marginTop:t.tight,children:e.responseText.split(`
55
55
  `).slice(1).map((e,t)=>q(X,{color:o.secondary,dimColor:!0,wrap:`truncate-end`,children:e===``?` `:e},t))})]}),q(X,{children:` `})]}),se=[...u?[{key:`diff`,label:V.t(`find.tabDiff`)}]:[],...c?[{key:`conversation`,label:V.t(`find.tabConversation`)}]:[],...s?[{key:`prompt`,label:V.t(`find.tabPrompt`)}]:[]];return J(M,{header:oe,footer:q(f,{dim:!0,items:[...p?[[`]`,V.t(`hint.switch`)]]:[],...e.responseText?[[`d`,P?V.t(`hint.collapse`):V.t(`find.tabDiagnostics`)]]:[],...E.length>w?[[`${B.up}${B.down}`,V.t(`hint.scroll`)]]:[],[B.esc,V.t(`hint.back`)]]}),children:[p&&q(Y,{marginBottom:t.tight,children:q(Pd,{items:se.map(e=>({key:e.key,label:e.label})),activeKey:m,availableWidth:n-4,onSelect:e=>h(e)})}),J(Y,{flexDirection:`column`,children:[v&&q(Y,{height:1,children:q(X,{color:o.selection,children:V.t(`transcript.findBar`,{query:b,count:A.flat.length})})}),q(X,{color:o.special,dimColor:!0,children:j.above>0?`↑ ${j.above}`:` `}),E.length===0?q(d,{type:`secondary`,dim:!0,children:V.t(`bg.noOutput`)}):N.map((e,t)=>k?q(X,{color:ee(e),wrap:`truncate-end`,children:e===``?` `:e},j.start+t):O?q(X,{color:o.secondary,wrap:`truncate-end`,children:e===``?` `:e},j.start+t):q(X,{wrap:`truncate-end`,children:e===``?` `:e},j.start+t)),D.length>0&&q(Y,{flexDirection:`column`,children:D.map((e,t)=>J(Y,{flexDirection:`row`,children:[q(X,{color:o.replyPrefix,children:t===0?`${R.bullet} `:` `}),q(X,{children:e})]},t))}),q(X,{color:o.special,dimColor:!0,children:j.below>0?`↓ ${j.below}`:` `})]})]})}function Vd(e){let t=e.agentStatus??`running`;return t===`running`||t===`ready`||t===`needs_input`}function Hd(e,t){if(e.stall===`stalled`)return{ch:R.statusDot,color:t.error};if(e.stall===`warn`)return{ch:R.statusDot,color:t.warning};switch(e.agentStatus??`running`){case`running`:return{ch:R.statusDot,color:t.accent};case`needs_input`:return{ch:R.needsInput,color:t.warning};case`ready`:return{ch:R.check,color:t.success};case`applied`:return{ch:R.check,color:t.success};case`failed`:return{ch:R.cross,color:t.error};case`canceled`:return{ch:R.cross,color:t.inactive};default:return{ch:R.statusDot,color:t.inactive}}}function Ud(e){return l(e,44)}function Wd({tasks:e,focused:n,now:r,onDismiss:a,onSwitch:o,onViewOutput:s,rows:c=24}){let l=L(),[u,m]=ra(`subagents`,e.length),h=G(0);if(yt(`subagents-pane`,(t,n)=>{if(n.escape)return p()?.navigate(`/`,{reset:!0}),a?.(),!0;if(ue(`list-nav-up`,t,n,`subagents`))return m(e=>Math.max(0,e-1)),!0;if(ue(`list-nav-down`,t,n,`subagents`))return m(t=>Math.min(e.length-1,t+1)),!0;let r=e[Math.max(0,Math.min(u,e.length-1))];return n.return?(r&&o?.(r.id),!0):t===`s`?(r&&s?.(r.id),!0):!1},{isActive:n}),e.length===0)return null;let g=r??Date.now(),_=e.filter(Vd).length;if(!n)return J(Y,{children:[q(X,{color:l.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`subagent.sTitle`)}),J(d,{type:`secondary`,children:[` `,e.length,_>0?` · ${V.t(`subagent.sRunning`,{n:_})}`:``]}),J(d,{type:`secondary`,dim:!0,children:[` `,i(`t`)]})]});let v=Math.min(u,e.length-1),y=xt(e,v,Ve(e.length,c,3),h.current);return h.current=y.scrollTop,J(Y,{flexDirection:`column`,marginTop:t.tight,children:[J(Y,{children:[q(X,{color:l.special,children:`▸ `}),q(X,{color:l.text,children:V.t(`subagent.sTitle`)}),J(d,{type:`secondary`,children:[` `,e.length,_>0?` · ${V.t(`subagent.sRunning`,{n:_})}`:``]}),q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[B.enter,V.t(`hint.switch`)],[`s`,V.t(`hint.view`)],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),J(Y,{marginLeft:t.section,flexDirection:`column`,children:[y.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),y.rows.map((e,t)=>{let n=y.scrollTop+t===v,r=Hd(e,l),i=n?l.selection:void 0;return J(Y,{flexDirection:`row`,children:[q(X,{color:n?l.selection:l.inactive,children:n?tt():be()}),J(X,{color:r.color,children:[r.ch,` `]}),q(X,{color:i??l.inactive,children:Ud(e.command)}),e.model&&J(d,{type:`secondary`,children:[` `,e.model,e.modelDecidedBy?` (${e.modelDecidedBy})`:``]}),J(d,{type:`secondary`,children:[` `,To(e,g)]})]},e.id)}),y.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})]})}function Gd(e,t){return t===0?0:Math.max(0,Math.min(e,t-1))}function Kd(e,t,n){let r=globalThis;r[`__ottoSchedule${e===`run`?`Run`:e===`toggle`?`Toggle`:`Remove`}Request`]=e===`toggle`?{taskId:t,...n}:t}function qd({tasks:e,focused:n,onDismiss:r,rows:a=24}){let o=L(),[s,c]=ra(`schedule`,e.length),l=G(0);if(yt(`schedule-pane`,(t,n)=>{if(n.escape)return p()?.navigate(`/`,{reset:!0}),r?.(),!0;if(ue(`list-nav-up`,t,n,`schedule`))return c(e=>Math.max(0,e-1)),!0;if(ue(`list-nav-down`,t,n,`schedule`))return c(t=>Math.min(e.length-1,t+1)),!0;let i=e[Math.max(0,Math.min(s,e.length-1))];return i?n.return||t===`r`?(Kd(`run`,i.id),!0):t===` `||t===`t`?(Kd(`toggle`,i.id,{enabled:!i.enabled}),!0):t===`d`?(Kd(`remove`,i.id),!0):!1:!1},{isActive:n}),e.length===0&&!n)return null;if(!n)return J(Y,{children:[q(X,{color:o.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`schedule.sLabel`)}),J(d,{type:`secondary`,children:[` `,e.length]}),J(d,{type:`secondary`,dim:!0,children:[` `,i(`s`)]})]});let u=Gd(s,e.length),m=Math.min(32,Math.max(0,...e.map(e=>ut(e.name)))),h=xt(e,u,Ve(e.length,a,3),l.current);return l.current=h.scrollTop,J(Y,{flexDirection:`column`,children:[J(Y,{children:[q(X,{color:o.special,children:`▸ `}),q(X,{color:o.text,children:V.t(`schedule.sLabel`)}),J(d,{type:`secondary`,children:[` `,e.length]}),q(Y,{marginLeft:t.tight,children:q(f,{dim:!0,items:[[`${B.up}${B.down}`,V.t(`hint.select`)],[`↵/r`,V.t(`hint.execute`)],[`t`,V.t(`hint.toggle`)],[`d`,V.t(`hint.delete`)],[B.esc,V.t(`hint.close`)],[B.tab,V.t(`hint.tabFocus`)]]})})]}),J(Y,{marginLeft:t.section,flexDirection:`column`,children:[e.length===0&&q(d,{type:`secondary`,children:V.t(`schedule.sEmpty`)}),h.hasMoreAbove&&q(X,{dimColor:!0,children:V.t(`scroll.above`,{n:1})}),h.rows.map((e,t)=>{let n=h.scrollTop+t===u,r=e.lastFireFailed===!0,i=r?`!`:e.enabled?R.toggleOn:R.toggleOff,a=r?o.error:e.enabled?o.accent:o.inactive,s=n?o.selection:void 0,c=new Date(e.nextFireAt).toLocaleString(),l=e.recurring?e.cronExpression:V.t(`schedule.oneShot`),f=r&&e.lastFireError?` (failed: ${e.lastFireError})`:``;return J(Y,{flexDirection:`row`,children:[q(X,{color:n?o.selection:o.inactive,children:n?tt():be()}),J(X,{color:a,children:[i,` `]}),q(X,{color:s??o.inactive,children:vt(e.name,m)}),J(d,{type:`secondary`,children:[` `,l,` `,V.t(`schedule.next`),c]}),f&&q(X,{color:o.error,children:f})]},e.id)}),h.hasMoreBelow&&q(X,{dimColor:!0,children:V.t(`scroll.below`,{n:1})})]})]})}function Jd({text:e,focused:n,columns:r=80,onDismiss:i,onOpenViewer:a}){let o=L();if(yt(`clipboard-pane`,(e,t)=>t.escape?(p()?.navigate(`/`,{reset:!0}),i?.(),!0):t.return?(a?.(),!0):!1,{isActive:n}),e.length===0)return null;let s=Array.from(e).length;if(!n)return J(Y,{children:[q(X,{color:o.special,children:`▸ `}),q(d,{type:`secondary`,children:V.t(`clipboard.paneTitle`)}),J(d,{type:`secondary`,children:[` `,V.t(`clipboard.charsLabel`,{count:s})]})]});let c=Math.max(10,r-t.section-2),u=e.split(`
@@ -104,6 +104,6 @@ line three`,onDismiss:$},rows:24,columns:80})}]},{id:`A2uiFormDialog`,category:`
104
104
  `),s=0;c(o.slice(0,60).join(`
105
105
  `)),s=60;let l=()=>{if(s>=o.length){i();return}c(o.slice(s,s+60).join(`
106
106
  `)),s+=60,e.notify(),setImmediate(l)};setImmediate(l)},d=r=>{if(r===``){u(n,t.length,()=>{s(),e.streamStore.setState({streamingText:``})});return}t=r;let i=Ec(r);i>n&&(l(n,i),n=i);let o=r.slice(n);o!==e.streamStore.getState().lastTail&&e.streamStore.setState({streamingText:o.trim()?eo(ks(Zc(o)),a()).join(`
107
- `):``,lastTail:o})},f=t=>{if(e.scrollbackMode){d(t);return}let{chunks:n,tail:r,state:i}=Oc(e.streamStore.getState().streamCommit,t);if(n.length>0){let t=n.map(t=>{let n=e.incMsgCounter();return{role:`assistant_stream`,text:t.text,lead:t.lead,id:`s-${n}`}});e.messageStoreHandle.appendMany(t,()=>`s-${e.incMsgCounter()}`)}e.streamStore.setState({streamCommit:i,streamingText:r}),(t===``||n.length>0)&&e.notify()},p=t=>{e.streamStore.setState({streamingThinking:t})};return{applyStreamText:f,applyStreamThinking:p,streamTextCoalescer:jc(f,e.coalesceMs),streamThinkingCoalescer:jc(p,e.coalesceMs),outputTokensThrottle:cl(e.streamStore,e.coalesceMs),resetController:()=>{t=``,n=0,r=0,i=!1}}}function u_(e,t){if(e.length===0)return[];let n=Math.max(1,t);return e.map(e=>rc(e,n))}function d_(e){let t=t=>{let n=u_(t,e.getColumns()),{text:r,hasHistory:i}=Hc(t.map((e,t)=>({role:e.role??``,lines:n[t]??[]})),e.getHasHistory());return e.setHasHistory(i),r},n=null,r=r=>{let i=t(r);if(i){if(n){n.push(i);return}e.scrollbackBuffer.write(i)}},i=i=>{if(i.length<=60&&!n){r(i);return}if(n){let e=t(i);e&&n.push(e);return}n=[t(i.slice(0,60))];let a=60,o=()=>{if(a>=i.length){let t=(n??[]).join(``);n=null,t&&e.scrollbackBuffer.write(t),e.notify();return}let r=i.slice(a,a+60);a+=60,n?.push(t(r)),setImmediate(o)};setImmediate(o)};return{commitToHistory:e=>i([e]),commitManyToHistory:i}}function f_(e){let{taskStore:t,notificationStore:n,resolvers:r,flushScrollbackIfIdle:i,paneOwnsViewport:a,setPaneOwnsViewport:o,getRouter:s=p}=e,c=null,l={},u=(e,t)=>{let n=s();n.navigate(`/dialog/plugin-panel`,{state:{panelInfo:e,onClose:()=>{n.goBack(),t?.()}}})};return{openModal:(e=>{switch(e.kind){case`select`:{let t=s();if(e.async){let n=!1;t.navigate(`/dialog/select`,{state:{title:e.title,subtitle:`Probing, please wait…`,options:[],layout:e.layout??`buttons`}}),r.select=e=>{if(e==null){n=!0;return}},(async()=>{try{let i=await e.async;if(n)return;r.select=t=>{t==null?e.onCancel?.():e.onSelect(t)},t.navigate(`/dialog/select`,{replace:!0,state:{title:i.title??e.title,subtitle:i.subtitle??e.subtitle,subtitleTone:e.subtitleTone,options:i.options,maxVisible:e.maxVisible,layout:e.layout,searchable:e.searchable,subtitleActions:e.subtitleActions,detailPlacement:e.detailPlacement,onHighlight:e.onHighlight}})}catch(i){if(n)return;r.select=()=>{},t.navigate(`/dialog/select`,{replace:!0,state:{title:e.title,subtitle:`Error: ${i instanceof Error?i.message:String(i)}`,options:[{label:`Close`,value:`close`,color:`gray`}],layout:`buttons`}})}})();return}process.env.NODE_ENV!==`production`&&t.currentPath===`/dialog/select`&&e.replace!==!0&&console.warn('[openModal] Detected re-entrant openModal({ kind: "select" }) — this pushes a new dialog stack entry instead of replacing the current one. Use the `async` field for loading→content transitions, or close the current dialog before opening a new one. See RFC-285 D2.');let n=e.replace===!0&&t.currentPath===`/dialog/select`;t.navigate(`/dialog/select`,{replace:n,state:{title:e.title,subtitle:e.subtitle,subtitleTone:e.subtitleTone,options:e.options,maxVisible:e.maxVisible,searchable:e.searchable,layout:e.layout,subtitleActions:e.subtitleActions,detailPlacement:e.detailPlacement,initialFilter:e.initialFilter,onFilterChange:e.onFilterChange,onHighlight:e.onHighlight,defaultSelectedValue:e.defaultSelectedValue}}),r.select=t=>{t==null?e.onCancel?.():e.onSelect(t)};return}case`extensionDetail`:{let t=s(),n=()=>{t.goBack()};t.navigate(`/dialog/extension`,{state:{title:e.title,meta:e.meta,metaStatus:e.metaStatus,metaSuffix:e.metaSuffix,actions:e.actions,panelInfo:e.panelInfo,info:e.info,healthStats:e.healthStats,logEntries:e.logEntries,onRefresh:e.onRefresh,dataListEntries:e.dataListEntries,fullText:e.fullText,onOpenPanel:e.panelInfo?()=>u(e.panelInfo):void 0,onAction:t=>{n(),e.onAction(t)},onClose:()=>{let r=t.stack,i=r.length>=2?r[r.length-2]?.path:void 0;n(),i!==`/dialog/extensions`&&e.onClose?.()}}});return}case`pluginPanel`:u(e.panelInfo,e.onClose);return;case`extensionsList`:{let t=s();t.navigate(`/dialog/extensions`,{state:{entries:e.entries,menuContributions:e.menuContributions,lastSelectedValue:l.value,onSelect:n=>{l.value=n,n.startsWith(`contrib:`)&&t.goBack(),e.onSelect(n)},onCancel:()=>{t.goBack(),e.onCancel?.()}}});return}case`input`:return new Promise(t=>{if(e.signal?.aborted){t(null);return}let n=!1,i=e=>{n||(n=!0,r.input===i&&(s()?.goBack(),r.input=null,r.inputAction=null),t(e))};r.input=i,e.actionButton?.onPress&&(r.inputAction=e.actionButton.onPress),e.signal?.addEventListener(`abort`,()=>i(null),{once:!0}),s().navigate(`/dialog/input`,{state:{title:e.title,description:e.description,placeholder:e.placeholder,defaultValue:e.defaultValue,mask:e.mask,actionButton:e.actionButton?{label:e.actionButton.label}:void 0}})});case`onboarding`:return new Promise(t=>{let n=!1,i=e=>{n||(n=!0,r.onboarding===i&&(s()?.navigate(`/`,{reset:!0}),r.onboarding=null),t(e))};r.onboarding=i,s().navigate(`/dialog/onboarding`,{state:{onLanguagePreview:e.onLanguagePreview}})});case`questions`:return new Promise(t=>{o(!0),r.questions=(e,n)=>{t(e?{answers:e,freeformText:n}:null)},s().navigate(`/dialog/questions`,{state:{title:e.title,questions:e.questions}})});case`confirm`:{let t=s();r.confirm=()=>e.onConfirm(),r.cancel=()=>e.onCancel?.(),r.extra=e.onExtra??null;let n=t.currentPath===`/dialog/confirm`;t.navigate(`/dialog/confirm`,{replace:n,state:{title:e.title,message:e.message,confirmLabel:e.confirmLabel,cancelLabel:e.cancelLabel,confirmColor:e.confirmColor,dangerous:e.dangerous,extraLabel:e.extraLabel,extraColor:e.extraColor}});return}case`permissions`:s().navigate(`/dialog/info`,{state:{title:`Permissions`,lines:e.lines}});return;case`info`:s().navigate(`/dialog/info`,{state:{title:e.title,lines:e.lines,action:e.action,lineTones:e.lineTones,dataListEntries:e.dataListEntries}});return;case`context`:s().navigate(`/pane/context`);return;case`memory`:s().navigate(`/dialog/memory`,{state:{projectIndex:e.projectIndex,userIndex:e.userIndex,onViewEntry:e.onViewEntry,onForget:e.onForget}});return;case`keybindingPanel`:s().navigate(`/dialog/keybindings`,{state:{overrides:e.overrides,onSave:e.onSave,onSaveReplace:e.onSaveReplace,onReset:e.onReset,onResetAll:e.onResetAll}});return;case`shortcutsPanel`:s().navigate(`/dialog/shortcuts`,{state:{bindings:e.shortcuts,onSave:e.onSave,onDelete:e.onDelete}});return;case`fileViewer`:s().navigate(`/viewer/file`,{state:{path:e.path,content:e.content,preTruncated:e.preTruncated,onDismiss:e.onDismiss}});return;case`helpViewer`:s().navigate(`/viewer/help`,{state:{title:e.title,lines:e.lines,onDismiss:e.onDismiss}});return;case`progress`:{let t=s();c={title:e.title,phases:e.phases,phaseIndex:0,phaseStatuses:[`active`,`pending`,`pending`,`pending`],percent:0,detail:e.phases[0]??``,status:`running`,onDismiss:()=>{c=null}},t.navigate(`/dialog/progress`,{state:c});return}case`wizard`:{let t=s();if(t?.currentPath===`/dialog/wizard`)return;t?.navigate(`/dialog/wizard`,{state:{...e,onDismiss:()=>{t.navigate(`/`,{reset:!0}),e.onDismiss?.()},onComplete:()=>{t.navigate(`/`,{reset:!0}),e.onComplete?.()}}});return}case`a2uiForm`:{let t=s();t.navigate(`/dialog/a2ui-form`,{state:{component:e.component,onAction:(n,r,i)=>{t.goBack(),e.onAction(n,r,i)},onDismiss:()=>{t.goBack()}}});return}default:return e}}),togglePane:(e,r)=>{let a=s();if(!a)return;let o=e=>a.currentPath===e||a.currentPath.startsWith(e+`/`),c=e=>{a.currentPath===e?a.goBack():a.navigate(`/`,{reset:!0})};switch(e){case`history`:_u()?.();return;case`backgroundTasks`:{let e=`/pane/delegates`;r??!o(e)?a.navigate(e):(c(e),t.setState({backgroundOutput:null}),i());return}case`draftPane`:{let e=`/pane/draft`;r??!o(e)?a.navigate(e):c(e);return}case`queuePane`:{let e=`/pane/queue`;r??!o(e)?a.navigate(e):c(e);return}case`notifications`:r??a.currentPath!==`/pane/notifications`?a.navigate(`/pane/notifications`):(a.goBack(),n.setState({notifications:n.getState().notifications.map(e=>({...e,read:!0}))}));return;case`schedulePane`:r??a.currentPath!==`/pane/schedule`?a.navigate(`/pane/schedule`):a.goBack();return;case`perf`:r??a.currentPath!==`/pane/perf`?a.navigate(`/pane/perf`):a.goBack();return;case`cacheStats`:r??a.currentPath!==`/pane/cache`?a.navigate(`/pane/cache`):a.goBack();return;case`compactionLog`:{let e=`/pane/compaction-log`;r??!o(e)?a.navigate(e):c(e);return}case`gallery`:r??a.currentPath!==`/pane/gallery`?a.navigate(`/pane/gallery`):a.goBack();return;case`proxy`:r??a.currentPath!==`/pane/proxy`?a.navigate(`/pane/proxy`):a.goBack();return;case`prompts`:{let e=`/pane/prompts`;r??!o(e)?a.navigate(e):c(e);return}default:return e}},getNotifyStats:e.getNotifyStats,isFullScreenPaneActive:()=>a(),getCurrentPath:()=>s()?.currentPath??`/`,isForcedUpgradeActive:()=>e.taskStore.getState().forcedUpgrade!==null,openAlert:e=>{r.alert=()=>e.onOk?.(),s().navigate(`/dialog/alert`,{state:{title:e.title,message:e.message,okLabel:e.okLabel}})},openPrompt:e=>new Promise(t=>{r.prompt=t,s().navigate(`/dialog/prompt`,{state:{title:e.title,message:e.message,placeholder:e.placeholder,initialValue:e.initialValue,submitLabel:e.submitLabel,cancelLabel:e.cancelLabel}})}),updateProgress(e){if(!c)return;let t=s();if(!t){c=null;return}c={...c,...e},t.navigate(`/dialog/progress`,{replace:!0,state:c})}}}function p_(e){let{taskStore:t,state:n,notify:r,showToast:i,getRouter:a=p}=e;return{startShellExecution:e=>{n.shellTimer&&clearTimeout(n.shellTimer),t.setState({shellExecution:{command:e,output:``,status:`running`,exitCode:null}}),a()?.navigate(`/pane/shell`),r()},appendShellOutput:e=>{t.getState().shellExecution&&(t.setState({shellExecution:{...t.getState().shellExecution,output:t.getState().shellExecution.output+e}}),r())},finishShellExecution:(e,n,i)=>{t.getState().shellExecution&&(t.setState({shellExecution:{...t.getState().shellExecution,status:e===null?`error`:`done`,exitCode:e,terminated:i,output:n?t.getState().shellExecution.output+n:t.getState().shellExecution.output}}),r())},dismissShellExecution:()=>{n.shellTimer&&clearTimeout(n.shellTimer),t.setState({shellExecution:null}),a()?.currentPath===`/pane/shell`&&a()?.goBack(),n.shellTimer=null,r()},copyShellOutput:()=>{let e=t.getState().shellExecution;e&&(Xn(e.output),i(V.t(`shell.copiedTitle`),V.t(`shell.copiedBody`)))},getShellExecutionSnapshot:()=>{let e=t.getState().shellExecution;return e?{command:e.command,output:e.output,exitCode:e.exitCode,terminated:e.terminated}:null}}}function m_(e){let{notificationStore:t,state:n,counters:r,notify:i,getRouter:a=p}=e;return{showToast:(e,o)=>{n.toastTimer&&clearTimeout(n.toastTimer);let s={id:++r.toast,title:e,content:o};t.setState({toast:s}),Jr(a(),Lr,!0),n.toastTimer=setTimeout(()=>{t.setState({toast:null}),n.toastTimer=null,Jr(a(),Lr,!1),i()},jm),i()},showRetryDialog:(e,n,r,o,s,c,l)=>{t.setState({retryCountdown:{attempt:e,max:n,delayMs:r,accelerate:o,reason:c,onExpired:()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i(),s()},onStop:l?()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i(),l()}:void 0}}),Jr(a(),zr,!0),i()},clearRetryDialog:()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i()},showErrorRetry:e=>{let n=e=>()=>{t.setState({errorRetry:null}),Jr(a(),Br,!1),i(),e()};t.setState({errorRetry:{...e,actions:e.actions.map(e=>({...e,run:n(e.run)})),focusIndex:0,exhausted:e.exhausted??!1,onExpired:n(e.onExpired),onCancel:n(e.onCancel)}}),Jr(a(),Br,!0),i()},clearErrorRetry:()=>{t.setState({errorRetry:null}),Jr(a(),Br,!1),i()},pushNotification:(e,n,a=`system`,o=`info`)=>{t.setState({notifications:[{id:++r.notify,source:a,level:o,title:e,message:n,timestamp:Date.now(),read:!1},...t.getState().notifications.slice(0,49)]}),i()},dismissNotification:e=>{t.setState({notifications:t.getState().notifications.filter(t=>t.id!==e)}),t.getState().notifications.length===0&&a()?.goBack(),i()},markAllNotificationsRead:()=>{t.setState({notifications:t.getState().notifications.map(e=>({...e,read:!0}))}),i()}}}function h_(e){let{taskStore:t,messageStoreHandle:n,counters:r,pendingSteerMsgIds:i,scrollbackMode:a,commitToHistory:o,scanA2uiButtons:s,notify:c}=e;return{setPendingEcho:(e,r)=>{if(t.setState({pendingEcho:{text:e,mode:r}}),!a){let e=n.store.getState().messages.at(-1);e?.id?n.patchById(e.id,{streaming:!0}):n.patchLast({streaming:!0})}c()},clearPendingEcho:()=>{let e=t.getState().pendingEcho;if(e){if(a&&(o({role:`user`,content:e.text}),s()),t.setState({pendingEcho:null}),!a){let e=n.store.getState().messages.at(-1);e?.id?n.patchById(e.id,{streaming:!1}):n.patchLast({streaming:!1})}c()}},withdrawPendingEcho:()=>{if(t.getState().pendingEcho){if(t.setState({pendingEcho:null}),!a){let e=`u-${r.msg}`,t=n.store.getState().messages.findLastIndex(t=>t.id===e);if(t!==-1){let e=[...n.store.getState().messages];e.splice(t,1),n.store.setState({messages:e})}else n.removeLast()}c()}},setPendingSteer:(e,o)=>{if(t.setState({pendingSteers:[...t.getState().pendingSteers,{text:e,id:o}]}),!a){r.msg++;let t=`u-${r.msg}`;i.set(o,t),n.append({role:`user`,content:e,streaming:!0,id:t},t)}c()},commitPendingSteer:e=>{let r=t.getState().pendingSteers,l=r.find(t=>t.id===e);if(l){if(a)o({role:`user`,content:l.text}),s();else{let t=i.get(e);t&&(n.patchById(t,{streaming:!1}),i.delete(e))}t.setState({pendingSteers:r.filter(t=>t.id!==e)}),c()}},withdrawPendingSteer:e=>{let r=t.getState().pendingSteers;if(r.some(t=>t.id===e)){if(t.setState({pendingSteers:r.filter(t=>t.id!==e)}),!a){let t=i.get(e);if(t){let r=n.store.getState().messages.filter(e=>e.id!==t);n.store.setState({messages:r}),i.delete(e)}}c()}},clearPendingSteers:()=>{let e=t.getState().pendingSteers;if(e.length!==0){if(a){for(let t of e)o({role:`user`,content:t.text});s()}else for(let t of e){let e=i.get(t.id);e&&(n.patchById(e,{streaming:!1}),i.delete(t.id))}t.setState({pendingSteers:[]}),c()}}}}function g_(e){let{streamStore:t,streamTextCoalescer:n,streamThinkingCoalescer:r,outputTokensThrottle:i,perfStore:a,compactionLogStore:o,drainQueue:s,getRouterRef:c,notify:l}=e;return{pushEngineEvent:e=>{switch(e.kind){case`agentProcessing`:t.setState({processing:e.value}),e.value||s();break;case`streamingText`:n.push(e.text,e.text===``);break;case`streamingThinking`:r.push(e.text,e.text===``);break;case`activeTool`:t.setState({activeTool:e.name});break;case`spinnerMode`:t.setState(e.mode===`requesting`?{spinnerMode:e.mode,outputTokensThisTurn:0}:{spinnerMode:e.mode});break;case`outputTokensThisTurn`:i.push(e.n);break;case`maxOutputTokens`:t.setState({maxOutputTokens:e.n});break;case`toolBudget`:t.setState({toolTurnCount:e.toolTurnCount,maxToolTurns:e.maxToolTurns,promptOutputTokens:e.outputTokens??0,promptOutputTokenBudget:e.outputTokenBudget??0});break;case`perf`:{let t=!1;e.memory&&(a.setMemory(e.memory),t=!0),e.notify&&(a.setNotify(e.notify),t=!0),e.pluginMetrics&&(a.setPluginMetrics(e.pluginMetrics),t=!0),e.indicatorLevel&&a.setIndicatorLevel(e.indicatorLevel),t&&l();break}case`compactionLog`:switch(e.entryKind){case`compact`:o.recordCompaction(e.before,e.after,e.summary);break;case`prune`:o.recordPrune(e.tokensSaved,e.prunedCount??0);break;case`history_capped`:o.recordHistoryCapped(e.removedCount);break}c()?.currentPath.startsWith(`/pane/compaction-log`)&&l();break}}}}function __(e){let{modalHandleMethods:t,permResolvers:n,counters:r,taskStore:i,getRouterRef:a,notify:o,onConfirmResolve:s}=e;return{...t,resolveConfirm:e=>{s(e)},requestPermission:e=>{let t=`perm-${++r.perm}`;return new Promise(r=>{n.set(t,r);let s={id:t,tool:e.tool,input:e.input,risk:e.risk,description:e.description,alwaysAllowLabel:e.alwaysAllowLabel};i.setState({pendingPermission:s}),o(),a()?.navigate(`/dialog/permission`,{state:s})})}}}function v_(e){let{pendingMethods:t,restoreInputRef:n,pasteBridgeRef:r}=e;return{...t,restoreInputText:e=>{n.current?.fill(e)},hydratePaste:e=>{r.current?.hydrate(e)},exportPaste:()=>r.current?.export()??null}}function y_(e){let{lifecycleFlags:t,scrollbackBuffer:n,streamTextCoalescer:r,streamThinkingCoalescer:i,notifyScheduler:a,state:o,registryUnregisterAll:s,unmount:c,windowMode:l,scopedViewport:u,hasHistoryRef:d,resetStreamController:f,messageStoreHandle:p,scrollStoreHandle:m,streamStoreHandle:h,taskStoreHandle:g,notificationStoreHandle:_,perfStore:v,contextStore:y,budgetStore:b,taskStore:x,notificationStore:S,a2uiButtonsRef:C,resetStatusWidgetBreakers:w,getRouterRef:T,overlayPaths:E,syncOverlayRoute:D,notify:O,i18next:k,detectLanguage:ee,setLanguage:te,getThemeRef:A,setTerminalTitle:ne}=e;return{stop:()=>{if(!t.stopped){t.stopped=!0,t.unmounted=!0,e.detachSessionSource?.(),s();try{n.flush()}catch{}r.cancel(),i.cancel(),a.cancel(),o.toastTimer&&=(clearTimeout(o.toastTimer),null),c(),e.onStop?.()}},clearSession:()=>{l||n.write(u?`\x1B[2J\x1B[H`:`\x1B[2J\x1B[3J\x1B[H`),d.set(!1),f(),p.reset(),m.toBottom(),h.reset(),g.reset(),_.reset(),v.reset(),y.reset(),b.reset(),x.setState({tasks:[]}),x.setState({tasksTitle:void 0}),x.setState({turnBoundaries:[]}),x.setState({editedFiles:[]}),x.setState({subagentsAccum:new Map}),S.setState({toast:null}),S.setState({retryCountdown:null}),S.setState({errorRetry:null});let e=T();if(e)for(let t of E)D(e,t,!1);S.setState({providerUsage:null}),o.toastTimer&&=(clearTimeout(o.toastTimer),null),C.current=[],s(),w(),e?.currentPath!==`/home`&&e?.navigate(`/home`,{reset:!0}),O()},setLanguage:e=>{let t=e===`auto`?ee():e;return k.changeLanguage(t),te(t),O(),t},setPresetSelection:e=>{A()?.setPresetSelection(e)},setTerminalTitle:e=>ne(e)}}function b_(e){let{messageStoreHandle:t,notify:n}=e,r=null,i=()=>{let e=r;e&&(r=null,e.stop())};return{attachSessionSource:async e=>{if(r)throw Error(`attachSessionSource: a session data source is already attached`);return r={stop:await e.start({messageStore:{setState:e=>t.store.setState(e)}})},n(),i},detachSessionSource:i}}function x_(e){let{scrollbackMode:t,commitToHistory:n,commitManyToHistory:r,messageStoreHandle:i,counters:a,getTurnMessagesFor:o,taskStore:s,notify:c,scanA2uiButtons:l}=e;return{pushMessage:e=>{if(t){n(e),c(),l();return}a.msg++,i.append(e,`m-${a.msg}`),c(),l()},pushMessages:e=>{if(e.length!==0){if(t){r(e),c(),l();return}i.appendMany(e,()=>(a.msg++,`m-${a.msg}`)),c(),l()}},echoUserInput:(e,r)=>{let o=r?.pending===!0;if(t){if(o)return;n({role:`user`,content:e}),l();return}a.msg++;let s=`u-${a.msg}`;i.append({role:`user`,content:e,streaming:o,id:s},s),c(),l()},getTurnMessages:o,getTurnBoundaries:()=>s.getState().turnBoundaries,getEditedFiles:()=>s.getState().editedFiles}}function S_(e){let{streamMethods:t,taskStore:n,notificationStore:r,notificationMethods:i,getRouterRef:a,syncOverlayRoute:o,overlayPause:s,drainQueue:c,notify:l}=e;return{pushEngineEvent:t.pushEngineEvent,hasQueuedFollowUp:()=>n.getState().queued.length>0,takeLastQueuedFollowUp:()=>{let e=n.getState().queued,t=e.at(-1);if(t)return n.setState({queued:e.slice(0,-1)}),l(),t},enqueueFollowUp:(e,t=`send`)=>{n.setState({queued:[...n.getState().queued,{text:e,mode:t}]}),l(),c()},setPauseDialog:e=>{r.setState({pauseDialog:e}),o(a(),s,!!e),l()},showRetryDialog:i.showRetryDialog,clearRetryDialog:i.clearRetryDialog,showErrorRetry:i.showErrorRetry,clearErrorRetry:i.clearErrorRetry}}function C_(e){let{modalHandleMethods:t,taskStore:n,getRouterRef:r,syncOverlayRoute:i,overlayServices:a,flushScrollbackIfIdle:o,notify:s}=e;return{togglePane:t.togglePane,setServices:e=>{i(r(),a,e),s()},switchToSubagentContext:e=>{n.setState({subagentContext:e});let t=r();e&&t?.currentPath!==`/subagent`&&t?.navigate(`/subagent`),o(),s()},toggleEditedFiles:e=>{if(n.getState().editedFiles.length===0)return;let t=r();if(!t)return;let i=`/pane/edited-files`,a=t.currentPath===i||t.currentPath.startsWith(i+`/`),o=e??!a;o&&!a?t.navigate(i):!o&&a&&t.currentPath===i&&t.goBack()},clearEditedFiles:()=>{n.setState({editedFiles:[]}),s()},removeQueuedAt:e=>{n.setState({queued:n.getState().queued.filter((t,n)=>n!==e)}),s()},clearQueue:()=>{n.setState({queued:[]}),s()},moveQueuedItem:(e,t)=>{let r=e,i=e+t;if(i<0||i>=n.getState().queued.length||r<0||r>=n.getState().queued.length)return;let a=[...n.getState().queued],[o]=a.splice(r,1);o&&a.splice(i,0,o),n.setState({queued:a}),s()}}}function w_(e){let{taskStore:t,taskStoreHandle:n,registerPlugin:r,registryUnregister:i,computeStalePluginIds:a,getRegistrySnapshot:o,getStatusItems:s,getStatusWidgets:c,resetStatusWidgetBreakers:l,registryRef:u,a2uiButtonsRef:d,subagentRestoreFields:f,notify:p}=e;return{setPluginRegistrations:e=>{let n=new Set;for(let t of e)n.add(t.pluginId),r(t.pluginId,t);for(let e of a(n,o()))i(e);l(),t.setState({pluginStatusItems:s(),statusWidgets:c()}),p()},unregisterPluginSource:e=>{i(e),l(),t.setState({pluginStatusItems:s(),statusWidgets:c()}),p()},setPluginStatusItems:e=>{n.actions.setPluginStatusItems(e.map(e=>({id:e.icon,text:e.text})))},setCommands:e=>{t.setState({commands:e}),r(`cli-commands`,{pluginId:`cli-commands`,commands:[...e]})},registerArgumentSuggester:(e,t)=>{u?.current&&u.current.registerArgumentSuggester(e,t)},setA2uiButtons:e=>{d.current=e},addSubagent:e=>{let n=new Map(t.getState().subagentsAccum);n.set(e.id,{id:e.id,command:e.name,type:`agent-session`,startedAt:e.startedAt??Date.now(),...f(e.status)}),t.setState({subagentsAccum:n}),p()},getSubagents:()=>t.getState().subagentsAccum,clearSubagents:()=>{t.setState({subagentsAccum:new Map}),p()}}}function T_(e){let{notificationMethods:t,notifyScheduler:n,taskStore:r,modalHandleMethods:i,shellMethods:a,contextStore:o,getRouterRef:s,scrollStoreHandle:c}=e;return{pushNotification:t.pushNotification,dismissNotification:t.dismissNotification,markAllNotificationsRead:t.markAllNotificationsRead,getNotifyStats:()=>n.getStats(),getCurrentPath:()=>s()?.currentPath??`/`,isForcedUpgradeActive:()=>r.getState().forcedUpgrade!==null,isFullScreenPaneActive:()=>i.isFullScreenPaneActive(),getShellExecutionSnapshot:a.getShellExecutionSnapshot,addContextTurn:e=>o.addTurn(e),markContextTurns:e=>o.markTurns(e),showToast:t.showToast,setTopView:e=>{s()?.navigate(`/`,{reset:!0}),c.toBottom(),c.setTotalLines(0)}}}function E_(e){let t=e.intervalMs??5e3,n=e.minIntervalMs??2e3,{stdout:r,enabled:i}=e,a=null,o=0,s=()=>{try{r.write(`\x1B]11;?\x07`),o=Date.now()}catch{}};return{start:()=>{i&&r.isTTY&&(a||(s(),a=setInterval(s,t),a.unref?.()))},stop:()=>{a&&=(clearInterval(a),null)},pollNow:()=>{i&&r.isTTY&&(Date.now()-o<n||s())}}}function D_(e,t,n,r,i){return{onPermissionDecision:(e,n,i)=>{let a=t.get(e);t.delete(e),r.setState({pendingPermission:null}),p()?.goBack(),a?.({approved:n,mode:i})},onSelectResolve:e=>{let t=n.select;n.select=null,p()?.goBack(),t?.(e)},onInputResolve:e=>{let t=n.input;t&&(n.input=null,p()?.currentPath===`/dialog/input`&&p()?.goBack(),t(e))},onOnboardingResolve:e=>{n.onboarding?.(e)},onInputAction:()=>{let e=n.inputAction;e?.()},onQuestionsResolve:(e,t)=>{let r=n.questions;r&&(i?.(!1),n.questions=null,p()?.currentPath===`/dialog/questions`&&p()?.goBack(),r(e,t))},onConfirmResolve:(e,t)=>{let r=n.confirm,i=n.cancel,a=n.extra;n.confirm=null,n.cancel=null,n.extra=null,p()?.currentPath===`/dialog/confirm`&&p()?.goBack(),!(!r&&!i&&!a)&&(t?a?.():e?r?.():i?.())},onAlertResolve:()=>{let e=n.alert;n.alert=null,p()?.goBack(),e?.()},onPromptResolve:e=>{let t=n.prompt;n.prompt=null,p()?.goBack(),t?.(e)},getTurnMessagesFor:t=>{let n=r.getState().turnBoundaries,i=e.getMessages(),a=t>1?n[t-2]??0:0,o=n[t-1]??i.length;return i.slice(a,o)}}}function O_(e,t,n,r,i){return()=>{if(t()||i.getState().queued.length===0)return;let[e,...a]=i.getState().queued;i.setState({queued:a}),n(),queueMicrotask(()=>r?.(e.text,e.mode))}}function k_(e){let[,t]=K(0);H.useEffect(()=>{let n=()=>t(e=>e+1);return e.state.listener=n,()=>{e.state.listener===n&&(e.state.listener=null)}},[]);let n=H.useCallback(()=>{$l(),e.taskStore.setState({backgroundOutput:null}),e.opts.onBackgroundOutputClose?.(),e.flushScrollbackIfIdle(),e.notify()},[]),r=H.useCallback(()=>{p()?.goBack(),e.taskStore.setState({backgroundOutput:null}),e.opts.onBackgroundOutputClose?.(),e.flushScrollbackIfIdle(),e.notify()},[]),i=H.useCallback(()=>{p()?.currentPath===`/subagent`&&p()?.goBack(),e.opts.onSubagentExit?.(),e.taskStore.setState({subagentContext:null}),e.flushScrollbackIfIdle(),e.notify()},[]),a=H.useCallback(()=>{e.taskStore.getState().queued.length!==0&&(e.taskStore.setState({queued:e.taskStore.getState().queued.slice(0,-1)}),e.notify())},[]),o=H.useCallback(()=>{p()?.currentPath===`/dialog/info`&&p()?.goBack(),e.notify()},[]),s=H.useCallback(()=>{p()?.currentPath===`/dialog/memory`&&p()?.goBack(),e.notify()},[]),c=H.useCallback(()=>{p()?.currentPath===`/dialog/keybindings`&&p()?.goBack(),e.notify()},[]),l=H.useCallback(()=>{p()?.currentPath===`/dialog/shortcuts`&&p()?.goBack(),e.notify()},[]),u=H.useCallback(()=>{p()?.navigate(`/pane/context/detail`)},[]),d=H.useCallback(()=>{p()?.currentPath===`/pane/context/detail`&&p()?.goBack()},[]),f=H.useCallback(()=>{let e=p();e?.currentPath.startsWith(`/pane/context`)&&e.navigate(`/`,{reset:!0})},[]),m=H.useCallback(()=>{let e=p();e&&(e.currentPath===`/pane/notifications`?e.goBack():e.navigate(`/pane/notifications`))},[]),h=H.useCallback(t=>{e.notificationStore.setState({notifications:e.notificationStore.getState().notifications.filter(e=>e.id!==t)}),e.notificationStore.getState().notifications.length===0&&p()?.goBack()},[]),g=H.useCallback(()=>{e.notificationStore.setState({notifications:e.notificationStore.getState().notifications.map(e=>({...e,read:!0}))}),p()?.goBack()},[]),_=H.useCallback(()=>{e.opts.onSubmit?.(`/upgrade`,`send`)},[]),v=H.useCallback(()=>{e.stopRef.current?.()},[]),y=H.useCallback((t,n)=>{e.state.toastTimer&&clearTimeout(e.state.toastTimer);let r={id:++e.toastCounterRef.current,title:t,content:n};e.notificationStore.setState({toast:r}),Jr(p(),Lr,!0),e.state.toastTimer=setTimeout(()=>{e.notificationStore.setState({toast:null}),e.state.toastTimer=null,Jr(p(),Lr,!1),e.notify()},jm),e.notify()},[]),b=H.useCallback(()=>{e.state.toastTimer&&(clearTimeout(e.state.toastTimer),e.state.toastTimer=null),e.notificationStore.getState().toast&&(e.notificationStore.setState({toast:null}),Jr(p(),Lr,!1),e.notify())},[]),x=e.scrollbackMode?H.useCallback(t=>{e.inkWriteRef.current=t},[]):void 0,S=e.opts.welcome?.cwd?H.useCallback(async t=>{let{content:n,truncated:r}=await tn(pn(e.opts.welcome.cwd,t));return{content:n,truncated:r}},[]):void 0,C=H.useCallback(()=>{if(e.taskStore.getState().editedFiles.length===0)return;let t=p();if(!t)return;let n=`/pane/edited-files`;t.currentPath===n||t.currentPath.startsWith(n+`/`)?t.navigate(`/`,{reset:!0}):t.navigate(n,{replace:!0})},[]),w=H.useCallback(()=>{if(e.taskStore.getState().subagentsAccum.size===0)return;let t=p();t&&(t.currentPath===`/pane/subagents`?t.navigate(`/`,{reset:!0}):t.navigate(`/pane/subagents`,{replace:!0}))},[]),T=H.useCallback(()=>{if(e.taskStore.getState().scheduleTasks.length===0)return;let t=p();t&&(t.currentPath===`/pane/schedule`?t.navigate(`/`,{reset:!0}):t.navigate(`/pane/schedule`,{replace:!0}))},[]),E=H.useCallback(e=>{let t=p();if(!t)return;let n=`/pane/draft`,r=t.currentPath===n||t.currentPath.startsWith(n+`/`),i=e??!r;i&&!r?t.navigate(n,{replace:!0}):!i&&r&&t.navigate(`/`,{reset:!0})},[]),D=H.useCallback(e=>{let t=p();if(!t)return;let n=`/pane/queue`,r=t.currentPath===n||t.currentPath.startsWith(n+`/`),i=e??!r;i&&!r?t.navigate(n,{replace:!0}):!i&&r&&t.navigate(`/`,{reset:!0})},[]),O=H.useCallback(()=>{let e=p();if(!e)return;let t=`/pane/prompts`;e.currentPath===t||e.currentPath.startsWith(t+`/`)?$l():e.navigate(t,{replace:!0})},[]),k=H.useCallback(t=>{e.opts.onDraftSave?.(t)},[]),ee=H.useCallback(t=>{let n=e.taskStore.getState().drafts[t];n&&e.opts.onDraftDelete?.(n.id)},[]),te=H.useCallback(t=>{e.opts.onDraftDeleteMany?.(t)},[]),A=H.useCallback(t=>{e.taskStore.setState({queued:e.taskStore.getState().queued.filter((e,n)=>n!==t)}),e.notify()},[]),ne=H.useCallback((t,n)=>{let r=t,i=t+n;if(i<0||i>=e.taskStore.getState().queued.length||r<0||r>=e.taskStore.getState().queued.length)return;let a=[...e.taskStore.getState().queued],[o]=a.splice(r,1);o&&a.splice(i,0,o),e.taskStore.setState({queued:a}),e.notify()},[]),j=H.useCallback((t,n)=>{let r=e.taskStore.getState().queued;if(t<0||t>=r.length)return;let i=[...r],a=i[t];a&&(i[t]={...a,text:n}),e.taskStore.setState({queued:i}),e.notify()},[]),M=H.useCallback((t,n)=>{let r=e.taskStore.getState().queued;if(t<0||t>=r.length)return;let i=r[t].mode;e.taskStore.setState({queued:r.filter((e,n)=>n!==t)}),e.notify(),e.opts.onQueueSendNow?.(n,i)},[]),re=H.useCallback(t=>{let n=e.notificationStore.getState().errorRetry;n&&(e.notificationStore.setState({errorRetry:{...n,focusIndex:t}}),e.notify())},[]),N=H.useCallback(t=>{let n=e.notificationStore.getState().pulseSurvey;n&&(e.notificationStore.setState({pulseSurvey:{...n,...t}}),e.notify())},[]),ie=H.useCallback(()=>{if(e.taskStore.getState().backgroundTasks.length===0)return;let t=p();if(!t)return;let n=`/pane/delegates`;t.currentPath===n||t.currentPath.startsWith(n+`/`)?(t.navigate(`/`,{reset:!0}),e.taskStore.setState({backgroundOutput:null}),e.flushScrollbackIfIdle()):t.navigate(n,{replace:!0})},[]),P=H.useCallback(()=>{e.state.shellTimer&&clearTimeout(e.state.shellTimer),e.taskStore.setState({shellExecution:null}),e.state.shellTimer=null,p()?.currentPath===`/pane/shell`&&p()?.goBack(),e.notify()},[]),ae=H.useCallback(()=>{let t=e.taskStore.getState().shellExecution;t&&(Xn(t.output),y(V.t(`shell.copiedTitle`),V.t(`shell.copiedBody`)))},[]);return H.useEffect(()=>{let t=null,n=()=>{t&&clearTimeout(t),t=setTimeout(()=>{let t=e.opts.columns||(e.stdout.columns>0?e.stdout.columns:process.stdout.columns>0?process.stdout.columns:80),n=e.opts.rows||(e.stdout.rows>0?e.stdout.rows:process.stdout.rows>0?process.stdout.rows:24);(t!==e.columnsRef.current||n!==e.rowsRef.current)&&(e.columnsRef.current=t,e.rowsRef.current=n,e.notify())},100)};return e.stdout.on(`resize`,n),()=>{t&&clearTimeout(t),e.stdout.off(`resize`,n)}},[]),H.createElement(pg,{columns:e.columnsRef.current,rows:e.rowsRef.current,registerWrite:e.scrollbackMode?x:void 0,maxPreviewRows:e.scrollbackMode?1:void 0,hasHistory:e.hasHistoryRef.current,messages:e.messageStore.getState().messages,scrollStore:e.scrollStore,loadHistory:e.opts.loadHistory,messageStore:e.messageStoreHandle,windowMode:e.windowMode,scrollbackMode:e.scrollbackMode,shadow:e.opts.shadow??!1,language:e.languageRef.current,systemTheme:e.systemTheme,themeRegistry:e.themeRegistry,presetSelection:e.presetSelection,keybindingOverrides:e.opts.keybindingOverrides,onCyclePermissionMode:e.opts.onCyclePermissionMode,pluginInput:e.opts.pluginInput,readFileContent:S,getTurnMessages:e.getTurnMessagesFor,editedFilesOpen:!1,onToggleEditedFiles:C,subagentsOpen:!1,onToggleSubagents:w,onToggleSchedule:T,initialHistory:e.opts.initialHistory,externalHistoryCommands:e.opts.externalHistoryCommands,onHistoryPush:e.opts.onHistoryPush,residencyGovernor:e.opts.residencyGovernor,resolveWholeFileDiff:e.opts.resolveWholeFileDiff,restoreInputRef:e.restoreInputRef,pasteBridgeRef:e.pasteBridgeRef,scheduleOpen:!1,draftOpen:!1,onToggleDraftPane:E,onDraftSave:k,onDraftDelete:ee,onDraftDeleteMany:te,onSigilSelect:e.opts.onSigilSelect,queueOpen:!1,onToggleQueuePane:D,onTogglePrompts:O,onQueueDelete:A,onQueueMove:ne,onQueueEditText:j,onQueueSendNow:M,pendingEcho:e.taskStore.getState().pendingEcho,onErrorRetryFocusChange:re,onPulseSurveyChange:N,backgroundTasksOpen:!1,onToggleDelegates:ie,onBackgroundClose:n,onBackgroundKill:e.opts.onBackgroundKill,onBackgroundViewOutput:e.opts.onBackgroundViewOutput,onBackgroundOutputClose:r,onBackgroundApply:e.opts.onBackgroundApply,onBackgroundSwitch:e.opts.onBackgroundSwitch,onBackgroundDelete:e.opts.onBackgroundDelete,onExitSubagentContext:i,onPaneOwnsViewportChange:e.scrollbackMode?e.setPaneOwnsViewport:void 0,onFocusOwnerChange:e.scrollbackMode?e.setFocusOwnerForBuffer:void 0,onScrollActiveChange:e.setScrollActive,onDelegateSupply:e.opts.onDelegateSupply,welcome:e.opts.welcome,onSessionSelect:e.opts.onSessionSelect,budgetStore:e.budgetStore,contextStore:e.contextStore,notificationStore:e.notificationStoreHandle,perfStore:e.perfStore,onPerfDismiss:()=>{p()?.currentPath===`/pane/perf`&&p()?.goBack()},cacheStore:e.cacheStore,onCacheDismiss:()=>{p()?.currentPath===`/pane/cache`&&p()?.goBack()},proxyStore:e.proxyStore,proxyOpen:!1,onProxyDismiss:()=>{p()?.goBack()},onProxyOpenModal:e.proxyOpenModal,onProxySubmitUrl:e.opts.onProxySubmitUrl,onProxyToggleEnabled:e.opts.onProxyToggleEnabled,onProxyClear:e.opts.onProxyClear,compactionLogStore:e.compactionLogStore,onCompactionLogDismiss:()=>{let e=p();e?.currentPath.startsWith(`/pane/compaction-log`)&&e.navigate(`/`,{reset:!0})},galleryStore:e.galleryStore,onGalleryDismiss:()=>{p()?.currentPath===`/pane/gallery`&&p()?.goBack()},streamStore:e.streamStoreHandle,taskStore:e.taskStoreHandle,initialPath:e.opts.initialPath,onPerfRefresh:e.opts.onPerfRefresh,onSubmit:e.submitOrQueue,onInterrupt:e.opts.onInterrupt,onWithdrawPending:e.opts.onWithdrawPending,onWithdrawSteer:e.opts.onWithdrawSteer,onPopQueued:a,onPermissionDecision:e.onPermissionDecision,onSelectResolve:e.onSelectResolve,onInputResolve:e.onInputResolve,onOnboardingResolve:e.onOnboardingResolve,onInputAction:e.onInputAction,onQuestionsResolve:e.onQuestionsResolve,onConfirmResolve:e.onConfirmResolve,onAlertResolve:e.onAlertResolve,onPromptResolve:e.onPromptResolve,onInfoDismiss:o,onMemoryDismiss:s,onKeybindingPanelDismiss:c,onShortcutsDialogDismiss:l,onViewDetails:u,onBackToContextPane:d,onContextDismiss:f,notificationsOpen:!1,onToggleNotifications:m,onDismissNotification:h,onCloseNotifications:g,onUpgrade:_,onCancelUpgrade:v,onToast:y,onDismissToast:b,registryRef:e.registryRef,shellBackendRef:e.shellBackendRef,shellExecution:e.taskStore.getState().shellExecution,onShellAbort:e.opts.onInterrupt,onShellDismiss:P,onShellCopyOutput:ae,onShellAskAi:e.opts.onShellAskAi,a2uiButtons:e.a2uiButtonsRef.current,onA2uiAction:e.a2uiActionRef.current})}function A_(){let e=Buffer.alloc(0);return t=>{let n=m(t),r=e.length?Buffer.concat([e,n]):n;e=Buffer.alloc(0);let i=r.length;i>=2&&r[i-2]===27&&r[i-1]===91&&(e=Buffer.from(r.subarray(i-2)),i-=2);let a,o=[],s=0;for(;s<i;){if(r[s]===27&&r[s+1]===91&&(r[s+2]===73||r[s+2]===79)){a=r[s+2]===73,s+=3;continue}o.push(r[s]),s++}return{focused:a,rest:Buffer.from(o)}}}var j_=class{pending=null;feed(e){let t=m(e),n=this.pending?Buffer.concat([this.pending,t]):t;this.pending=null;let r=[],i=null,a=0;for(;a<n.length;){let e=n.indexOf(`\x1B]`,a,`latin1`);if(e<0){a<n.length&&r.push(n.slice(a));break}e>a&&r.push(n.slice(a,e));let t=n.indexOf(7,e),o=n.indexOf(`\x1B\\`,e,`latin1`),s=-1,c=0;if(t>=0&&(o<0||t<o)?(s=t,c=1):o>=0&&(s=o,c=2),s<0){let t=n.slice(e);t.length>64?r.push(t):this.pending=t;break}let l=M_(n.slice(e,s).toString(`latin1`));l&&(i=l),a=s+c}return{keys:r.length>0?Buffer.concat(r):Buffer.alloc(0),osc11:i}}};function M_(e){let t=e.match(/\]11;rgb:([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)/);if(!t)return null;let n=parseInt(t[1].slice(0,2),16),r=parseInt(t[2].slice(0,2),16),i=parseInt(t[3].slice(0,2),16);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?null:{r:n,g:r,b:i}}function N_(e,t,n){return .2126*e+.7152*t+.0722*n<128?`dark`:`light`}function P_(e){let{stdin:t,renderStdout:n,onInterrupt:r,onFocusChange:i,onTerminalBgDetected:a,onMouseWheel:o,onMouseDrag:s}=e,c=[],l=process.env.OTTO_TUI_MOUSE===`0`,u=(typeof o==`function`||typeof s==`function`)&&!!t.isTTY,d=u&&!l,f=u?Qg():null,p=d,h;if(d)try{n.write(Kg)}catch{}u&&(h=()=>{try{n.write(qg)}catch{}},process.once(`exit`,h));let g=e=>{if(!u)return!1;if(e===p)return p;p=e;try{n.write(e?Kg:qg)}catch{}return p},_=new j_,v=e=>{if(!a)return m(e);let{keys:t,osc11:n}=_.feed(e);return n&&a(N_(n.r,n.g,n.b)),t},y=e=>{if(!f)return v(e);let{wheels:t,drags:n,rest:r}=f(e);if(p){for(let e of t)o?.(e.delta);for(let e of n)s?.(e)}return v(r)},b=process.env.OTTO_TUI_KITTY===`1`&&!!t.isTTY,x,S=t;if(b){try{n.write(`\x1B[>1u`)}catch{}x=()=>{try{n.write(n_)}catch{}},process.once(`exit`,x);let e=o_(),i=new Sn;Object.assign(i,{isTTY:!0,setRawMode:e=>{try{t.setRawMode?.(e)}catch{}return i},ref:()=>{try{t.ref?.()}catch{}return i},unref:()=>{try{t.unref?.()}catch{}return i}});let a=t=>{let n=y(t);if(n.length===0)return;let a=e(n);a.includes(3)&&r?.(),i.write(a)};t.on(`data`,a),c.push({stream:t,fn:a}),S=i}let C=process.env.OTTO_TUI_FOCUS===`1`&&!!t.isTTY&&typeof i==`function`,w;if(C){try{n.write(`\x1B[?1004h`)}catch{}w=()=>{try{n.write(`\x1B[?1004l`)}catch{}},process.once(`exit`,w);let e=S,t=A_(),r=new Sn;Object.assign(r,{isTTY:!0,setRawMode:t=>{try{e.setRawMode?.(t)}catch{}return r},ref:()=>{try{e.ref?.()}catch{}return r},unref:()=>{try{e.unref?.()}catch{}return r}});let a=e=>{let n=y(e);if(n.length===0)return;let{focused:a,rest:o}=t(n);a!==void 0&&i?.(a),o.length&&r.write(o)};e.on(`data`,a),c.push({stream:e,fn:a}),S=r}if(!b&&!C&&(a||d)){let e=S,t=new Sn;Object.assign(t,{isTTY:!0,setRawMode:n=>(e.setRawMode?.(n),t),ref:()=>(e.ref?.(),t),unref:()=>(e.unref?.(),t)});let n=e=>{let n=y(e);n.length>0&&t.write(n)};e.on(`data`,n),c.push({stream:e,fn:n}),e.resume(),S=t}return{renderStdin:S,kittyOn:b,focusOn:C,mouseOn:d,kittyExitHandler:x,focusExitHandler:w,mouseExitHandler:h,setMouseEnabled:g,isMouseEnabled:()=>p,cleanup:()=>{for(let{stream:e,fn:t}of c)e.removeListener(`data`,t);c.length=0}}}const F_=12e3;async function I_(e){let{stdin:t,stdout:n,onStop:r}=e,i=kc(e.maxFps??30),a=e.renderMaxFps??90;Ea();let o=e.columns||(n.columns>0?n.columns:process.stdout.columns>0?process.stdout.columns:80),s=e.rows||(n.rows>0?n.rows:process.stdout.rows>0?process.stdout.rows:24),c=e.language&&e.language!==`auto`?e.language:Et();Tt(c);let l=await ae(),u=e.themeRegistry,d=e.presetSelection,f=process.env.OTTO_TUI_SCOPED_VIEWPORT!==`0`,m=Sg(n),h=()=>Math.max(1,s-1);process.once(`exit`,()=>m.exit());let g=e.scrollback===!0||process.env.OTTO_TUI_SCROLLBACK===`1`,_=e.scrollback===!1||process.env.OTTO_TUI_SCROLLBACK===`0`,v=!g&&!_,y=ir()?rr(n):n;g&&!f&&(y=sr(y));let b=e=>{y.write(e)},x=!1,{streamStoreHandle:S,streamStore:C,notificationStoreHandle:w,notificationStore:T,taskStoreHandle:E,taskStore:D,messageStoreHandle:O,messageStore:k,scrollStoreHandle:ee,budgetStore:te,contextStore:A,perfStore:ne,cacheStore:j,proxyStore:M,compactionLogStore:re,galleryStore:N,completer:ie,shellBackendRef:P,a2uiButtonsRef:oe,a2uiActionRef:se,scanA2uiButtons:ce}=yg(e),le={toastTimer:null,listener:null,shellTimer:null},ue={current:null},de={current:null},fe=process.env.OTTO_TUI_PANE_BUFFER!==`0`,me=`prompt`,he=()=>fe&&(D.getState().subagentContext!=null||D.getState().backgroundOutput!=null||D.getState().paneOwnsViewportFlag||me!==`prompt`),ge=bg({paneOwnsViewport:he,realWrite:e=>b(e)}),_e=()=>{he()||ge.flush()},ve=e=>{let t=me===`prompt`;me=e,e===`prompt`&&!t&&_e()},ye=!0,be=e=>{ye=e},xe=e=>{D.setState({paneOwnsViewportFlag:e}),e||_e()},Se={msg:0,perm:0,toast:0,notify:0},Ce=new Map,we=new Map,Te={select:null,input:null,inputAction:null,questions:null,confirm:null,cancel:null,extra:null,alert:null,prompt:null,onboarding:null},F={current:null},Ee={current:null},De=(e=>Ee.current?Ee.current.openModal(e):e.kind===`input`?Promise.resolve(null):void 0),Oe=Mc({listener:()=>le.listener?.(),intervalMs:i}),ke=()=>Oe.immediate();E.setNotify(ke),w.setNotify(ke);let{commitToHistory:Ae,commitManyToHistory:je}=d_({scrollbackBuffer:ge,getColumns:()=>o,getHasHistory:()=>x,setHasHistory:e=>{x=e},notify:ke}),{streamTextCoalescer:Me,streamThinkingCoalescer:Ne,outputTokensThrottle:Pe,resetController:Fe}=l_({streamStore:C,messageStore:k,messageStoreHandle:O,scrollbackBuffer:ge,scrollbackMode:g,coalesceMs:i,getColumns:()=>o,getHasHistory:()=>x,setHasHistory:e=>{x=e},getMsgCounter:()=>Se.msg,incMsgCounter:()=>++Se.msg,notify:ke}),Ie=()=>$i(Qi(Xi(e.isAgentBusy,C.getState().processing),!!T.getState().errorRetry),!!e.isPaused?.()),I=(t,n,r)=>{let i=ea(t,n,r??!1,{processing:Ie(),isImmediateCommand:t=>e.isImmediateCommand?.(t)??!1,isInterruptCommand:t=>e.isInterruptCommand?.(t)??!1});if(i===`queue`){D.setState({queued:[...D.getState().queued,{text:t,mode:n}]}),ke();return}e.onSubmit?.(t,n,i===`steer`?`steer`:`send`)},Le=O_(le,Ie,ke,e.onSubmit,D);E.setEffects({syncForcedUpgradeRoute:e=>Jr(p(),Hr,e),backgroundOutputRoute:e=>{e?p()?.navigate(`/pane/delegates/output`):p()?.currentPath===`/pane/delegates/output`&&p()?.goBack()},flushScrollbackIfIdle:_e,registerStatusItems:e=>Go(`cli-status`,{pluginId:`cli-status`,statusItems:[...e]})}),w.setEffects({drainQueueOnResume:()=>Le(),syncPulseSurveyRoute:e=>Jr(p(),Vr,e)});let{onPermissionDecision:Re,onSelectResolve:ze,onInputResolve:Be,onOnboardingResolve:Ve,onInputAction:He,onQuestionsResolve:Ue,onConfirmResolve:We,onAlertResolve:Ge,onPromptResolve:Ke,getTurnMessagesFor:qe}=D_({getMessages:()=>k.getState().messages},we,Te,D,xe),Je={state:le,columnsRef:{get current(){return o},set current(e){o=e}},rowsRef:{get current(){return s},set current(e){s=e}},hasHistoryRef:{get current(){return x},set current(e){x=e}},inkWriteRef:{get current(){return b},set current(e){b=e}},toastCounterRef:{get current(){return Se.toast},set current(e){Se.toast=e}},languageRef:{get current(){return c},set current(e){c=e}},systemTheme:l,themeRegistry:u,presetSelection:d,stopRef:{},taskStore:D,notificationStore:T,messageStore:k,streamStoreHandle:S,taskStoreHandle:E,notificationStoreHandle:w,messageStoreHandle:O,budgetStore:te,contextStore:A,perfStore:ne,cacheStore:j,proxyStore:M,compactionLogStore:re,galleryStore:N,opts:e,notify:ke,flushScrollbackIfIdle:_e,setPaneOwnsViewport:xe,setFocusOwnerForBuffer:ve,setScrollActive:be,getTurnMessagesFor:qe,submitOrQueue:I,onPermissionDecision:Re,onSelectResolve:ze,onInputResolve:Be,onOnboardingResolve:Ve,onInputAction:He,onQuestionsResolve:Ue,onConfirmResolve:We,onAlertResolve:Ge,onPromptResolve:Ke,proxyOpenModal:De,restoreInputRef:ue,pasteBridgeRef:de,registryRef:F,shellBackendRef:P,a2uiButtonsRef:oe,a2uiActionRef:se,scrollbackMode:g,windowMode:v,scrollStore:ee,stdout:n},Ye=()=>k_(Je),Xe=E_({stdout:y,enabled:!0}),Ze=$g(e=>{ee.dispatchWheel(e)||me===`prompt`&&ye&&ee.scrollBy(e*3)}),Qe={current:null},$e=0;ru(ee.store,()=>Qe.current?.clear());let{renderStdin:et,kittyOn:tt,focusOn:nt,mouseOn:rt,kittyExitHandler:it,focusExitHandler:at,mouseExitHandler:ot,setMouseEnabled:L,isMouseEnabled:st,cleanup:R}=P_({stdin:t,renderStdout:y,onInterrupt:e.onInterrupt,onFocusChange:e.onFocusChange,onMouseWheel:e=>Ze.push(e),onMouseDrag:e=>{Qe.current?.handleDrag(e)},onTerminalBgDetected:e=>{process.env.OTTO_DEBUG_THEME&&process.stderr.write(`[RFC-282] OSC detected: ${e} themeRef=${!!pe()}\n`),pe()?.setSystemTheme(e)}}),ct=e.concurrent??process.env.OTTO_TUI_CONCURRENT===`1`;f&&m.enter();let lt=await Ng(y);lt?.buffer.setMaxLineWidth(o),lt&&(Qe.current=Wg({buffer:lt.buffer,terminalRows:()=>h(),writeSelectionRepaint:e=>{if(e)try{y.write(e)}catch{}},writeClipboard:e=>{let t=t_(e),n=!1;try{Xn(e),n=!0}catch{n=!1}return t||n},onCopied:(e,t)=>{let n=Gg(e);if(t){$e+=1;let t=$e;D.setState({clipboardChars:n,clipboardText:e,clipboardFailed:!1,clipboardJustCopied:!0}),setTimeout(()=>{D.getState().clipboardChars===n&&D.setState({clipboardChars:0})},F_),setTimeout(()=>{$e===t&&D.setState({clipboardJustCopied:!1})},1500)}else D.setState({clipboardFailed:!0,clipboardChars:0}),setTimeout(()=>{D.getState().clipboardFailed&&D.setState({clipboardFailed:!1})},F_)}}),tu(Qe.current),lt.onDamage(e=>{Qe.current?.onFrameDamage(e)}));let{waitUntilExit:ut,unmount:dt}=zt(H.createElement(Ye),{stdout:y,stdin:et,exitOnCtrlC:!1,maxFps:a,concurrent:ct});ct&&await new Promise(e=>{let t=Date.now()+1e3,n=()=>{le.listener||Date.now()>t?e():setImmediate(n)};n()});let ft=s_({stdin:t,stdout:n,renderStdout:y,kittyOn:tt,kittyExitHandler:it,focusOn:nt,focusExitHandler:at,mouseOn:rt,mouseExitHandler:ot,onInterrupt:e.onInterrupt,unmount:()=>dt(),terminalInputCleanup:R});ft.setupRawInput(),Xe.start();let pt=()=>{Xe.pollNow();let e=n.columns>0?n.columns:o;lt?.buffer.setMaxLineWidth(e)};n.on(`resize`,pt),process.once(`exit`,()=>{n.removeListener(`resize`,pt),Xe.stop()});let mt={stopped:!1,unmounted:!1},z=f_({taskStore:D,notificationStore:T,cacheStore:j,proxyStore:M,resolvers:Te,getNotifyStats:()=>Oe.getStats(),flushScrollbackIfIdle:_e,paneOwnsViewport:he,setPaneOwnsViewport:xe});Ee.current=z;let ht=p_({taskStore:D,state:le,notify:ke,showToast:(...e)=>wt.info.showToast(...e)}),gt=m_({notificationStore:T,state:le,counters:Se,notify:ke}),_t=v_({pendingMethods:h_({taskStore:D,messageStoreHandle:O,counters:Se,pendingSteerMsgIds:Ce,scrollbackMode:g,commitToHistory:Ae,scanA2uiButtons:ce,notify:ke}),restoreInputRef:ue,pasteBridgeRef:de}),vt=b_({messageStoreHandle:O,notify:ke}),yt=y_({lifecycleFlags:mt,scrollbackBuffer:ge,streamTextCoalescer:Me,streamThinkingCoalescer:Ne,notifyScheduler:Oe,state:le,registryUnregisterAll:qo,unmount:dt,windowMode:v,scopedViewport:f,hasHistoryRef:{set:e=>{x=e}},resetStreamController:Fe,messageStoreHandle:O,scrollStoreHandle:ee,streamStoreHandle:S,taskStoreHandle:E,notificationStoreHandle:w,perfStore:ne,contextStore:A,budgetStore:te,taskStore:D,notificationStore:T,a2uiButtonsRef:oe,resetStatusWidgetBreakers:uu,getRouterRef:p,overlayPaths:Kr,syncOverlayRoute:Jr,notify:ke,i18next:V,detectLanguage:Et,setLanguage:e=>{c=e},getThemeRef:pe,setTerminalTitle:Kn,onStop:r,detachSessionSource:vt.detachSessionSource}),bt=C_({modalHandleMethods:z,taskStore:D,getRouterRef:p,syncOverlayRoute:Jr,overlayServices:Wr,flushScrollbackIfIdle:_e,notify:ke}),xt=w_({taskStore:D,taskStoreHandle:E,registerPlugin:Go,registryUnregister:Ko,computeStalePluginIds:Xo,getRegistrySnapshot:Jo,getStatusItems:Qo,getStatusWidgets:es,resetStatusWidgetBreakers:uu,registryRef:F,a2uiButtonsRef:oe,subagentRestoreFields:Do,notify:ke}),St=T_({notificationMethods:gt,notifyScheduler:Oe,taskStore:D,modalHandleMethods:z,shellMethods:ht,contextStore:A,getRouterRef:p,scrollStoreHandle:ee}),Ct=S_({streamMethods:g_({streamStore:C,streamTextCoalescer:Me,streamThinkingCoalescer:Ne,outputTokensThrottle:Pe,perfStore:ne,compactionLogStore:re,drainQueue:Le,getRouterRef:p,notify:ke}),taskStore:D,notificationStore:T,notificationMethods:gt,getRouterRef:p,syncOverlayRoute:Jr,overlayPause:Rr,drainQueue:Le,notify:ke}),B=x_({scrollbackMode:g,commitToHistory:Ae,commitManyToHistory:je,messageStoreHandle:O,counters:Se,getTurnMessagesFor:qe,taskStore:D,notify:ke,scanA2uiButtons:ce}),wt={modal:__({modalHandleMethods:z,permResolvers:we,counters:Se,taskStore:D,getRouterRef:p,notify:ke,onConfirmResolve:We}),pending:_t,lifecycle:{...yt,...vt,toggleMouse:()=>{let e=L(!st());return wt.info.showToast(V.t(`mouse.toggleTitle`),e?V.t(`mouse.enabledBody`,{modifier:of()}):V.t(`mouse.disabledBody`)),e}},messages:B,engine:Ct,panes:bt,plugins:xt,info:St,shell:ht,stores:{tasks:E.actions,budget:{setBudget:te.setBudget},context:{setBudget:A.setBudget,addTurn:A.addTurn,markTurns:A.markTurns},cache:{setView:j.setView},proxy:{setView:M.setView},notification:{setProviderUsage:w.setProviderUsage,setPausePending:w.setPausePending,setPaused:w.setPaused,setPulseSurvey:w.setPulseSurvey}}};return Je.stopRef.current=()=>wt.lifecycle.stop(),ut().then(()=>{mt.unmounted||(mt.unmounted=!0,ft.cleanup(),lt?.dispose(),dt(),m.active()||n.write(xg(h())),n.write(`\x1B[?25h`),m.exit())}),wt}function L_(){return{streamBuf:``,thinkBuf:``,turnStart:0,turnToolCount:0,lastTasks:[],messageIndex:0}}function R_(e,t){let n=[];e.forEach((e,t)=>{e?.role===`user`&&n.push(t)});let r=n.length,i=Math.max(t,r);if(r===0||i<=1)return[];let a=n[0],o=Array(i-1).fill(a);for(let e=0;e<r;e++){let t=i-r-1+e;t>=0&&t<o.length&&(o[t]=n[e])}return o}function z_(e){return e.filter(e=>e.status!==`done`&&e.status!==`skipped`&&e.status!==`failed`).length}function B_(e,t,n){if(t.length===0)return[...e];let r=[];e.forEach((e,t)=>{e?.role===`user`&&r.push(t)});let i=r.length,a=Math.max(n,i);if(i===0||a<=0)return[...e];let o=a-i+1,s=new Map;for(let e of t)s.set(e.turn,e);let c=new Map;for(let t of s.values()){if(t.turn<o||t.turn>a)continue;let n=t.turn-o,s=n+1<i?r[n+1]:e.length,{turn:l,...u}=t,d={role:`summary`,...u},f=c.get(s);f?f.push(d):c.set(s,[d])}if(c.size===0)return[...e];let l=[];for(let t=0;t<e.length;t++){l.push(e[t]);let n=c.get(t+1);n&&l.push(...n)}return l}function V_(e,t){let n=z_(t.lastTasks),r=e.stopReason??`completed`,i=r===`error`?`error`:r===`interrupted`?`interrupted`:n>0?`incomplete`:`done`,a={toolCount:t.turnToolCount,elapsedMs:t.turnStart>0?performance.now()-t.turnStart:0,tokensUsed:e.tokens??void 0,model:e.model||void 0,effort:e.effort||void 0,cacheHitRatio:e.cacheHitRatio??void 0};return i===`incomplete`?{...a,status:i,tasksDone:t.lastTasks.length-n,tasksTotal:t.lastTasks.length}:{...a,status:i}}function H_(e,t,n){let r=()=>{n.thinkBuf.trim()&&(t.pushMessage({role:`assistant`,content:[{type:`thinking`,thinking:n.thinkBuf}]}),n.messageIndex++),n.thinkBuf=``,t.pushEngineEvent({kind:`streamingThinking`,text:``})};switch(e.kind){case`prompt.start`:n.turnStart=performance.now(),n.turnToolCount=0,t.addTurnBoundary?.(n.messageIndex);return;case`prompt.end`:{n.thinkBuf.trim()&&(t.pushMessage({role:`assistant`,content:[{type:`thinking`,thinking:n.thinkBuf}]}),n.messageIndex++),n.streamBuf=``,n.thinkBuf=``,t.pushEngineEvent({kind:`streamingText`,text:``}),t.pushEngineEvent({kind:`streamingThinking`,text:``});let r={role:`summary`,...V_(e,n)};t.pushMessage(r),n.messageIndex++;return}case`stream.text.delta`:n.streamBuf+=e.delta,t.pushEngineEvent({kind:`streamingText`,text:n.streamBuf});return;case`stream.thinking.delta`:n.thinkBuf+=e.delta,t.pushEngineEvent({kind:`streamingThinking`,text:n.thinkBuf});return;case`stream.text.start`:r(),n.streamBuf=``;return;case`stream.text.end`:t.pushEngineEvent({kind:`streamingText`,text:``}),n.streamBuf=``;return;case`stream.thinking.start`:n.thinkBuf=``;return;case`stream.thinking.end`:r();return;case`tool.start`:t.pushEngineEvent({kind:`activeTool`,name:e.call.name});return;case`tool.end`:{if(t.pushEngineEvent({kind:`activeTool`,name:null}),n.turnToolCount++,e.suppressMessage)return;let r=e.call.arguments??{},i=r,a=i.command??i.path??i.file_path??i.pattern??i.query??JSON.stringify(r);t.pushMessage({role:`tool`,name:e.call.name,args:typeof a==`string`?a:JSON.stringify(a),argsObj:r,result:e.resultText,isError:e.isError}),n.messageIndex++;return}case`tasks.update`:n.lastTasks=e.tasks,t.setTasks(e.tasks,e.title);return;case`turn.budget`:t.pushEngineEvent({kind:`toolBudget`,toolTurnCount:e.toolTurnCount,maxToolTurns:e.maxToolTurns,outputTokens:e.outputTokens,outputTokenBudget:e.outputTokenBudget});return;case`delegate.update`:return}}function U_(e,t={}){for(let t of e){let e=t.role??`unknown`,n=t.content??[],r=Array.isArray(n)?n.filter(e=>e.type===`text`).map(e=>String(e.text??``)).join(`
107
+ `):``,lastTail:o})},f=t=>{if(e.scrollbackMode){d(t);return}let{chunks:n,tail:r,state:i}=Oc(e.streamStore.getState().streamCommit,t);if(n.length>0){let t=n.map(t=>{let n=e.incMsgCounter();return{role:`assistant_stream`,text:t.text,lead:t.lead,id:`s-${n}`}});e.messageStoreHandle.appendMany(t,()=>`s-${e.incMsgCounter()}`)}e.streamStore.setState({streamCommit:i,streamingText:r}),(t===``||n.length>0)&&e.notify()},p=t=>{e.streamStore.setState({streamingThinking:t})};return{applyStreamText:f,applyStreamThinking:p,streamTextCoalescer:jc(f,e.coalesceMs),streamThinkingCoalescer:jc(p,e.coalesceMs),outputTokensThrottle:cl(e.streamStore,e.coalesceMs),resetController:()=>{t=``,n=0,r=0,i=!1}}}function u_(e,t){if(e.length===0)return[];let n=Math.max(1,t);return e.map(e=>rc(e,n))}function d_(e){let t=t=>{let n=u_(t,e.getColumns()),{text:r,hasHistory:i}=Hc(t.map((e,t)=>({role:e.role??``,lines:n[t]??[]})),e.getHasHistory());return e.setHasHistory(i),r},n=null,r=r=>{let i=t(r);if(i){if(n){n.push(i);return}e.scrollbackBuffer.write(i)}},i=i=>{if(i.length<=60&&!n){r(i);return}if(n){let e=t(i);e&&n.push(e);return}n=[t(i.slice(0,60))];let a=60,o=()=>{if(a>=i.length){let t=(n??[]).join(``);n=null,t&&e.scrollbackBuffer.write(t),e.notify();return}let r=i.slice(a,a+60);a+=60,n?.push(t(r)),setImmediate(o)};setImmediate(o)};return{commitToHistory:e=>i([e]),commitManyToHistory:i}}function f_(e){let{taskStore:t,notificationStore:n,resolvers:r,flushScrollbackIfIdle:i,paneOwnsViewport:a,setPaneOwnsViewport:o,getRouter:s=p}=e,c=null,l={},u=(e,t)=>{let n=s();n.navigate(`/dialog/plugin-panel`,{state:{panelInfo:e,onClose:()=>{n.goBack(),t?.()}}})};return{openModal:(e=>{switch(e.kind){case`select`:{let t=s();if(e.async){let n=!1;t.navigate(`/dialog/select`,{state:{title:e.title,subtitle:`Probing, please wait…`,options:[],layout:e.layout??`buttons`}}),r.select=e=>{if(e==null){n=!0;return}},(async()=>{try{let i=await e.async;if(n)return;r.select=t=>{t==null?e.onCancel?.():e.onSelect(t)},t.navigate(`/dialog/select`,{replace:!0,state:{title:i.title??e.title,subtitle:i.subtitle??e.subtitle,subtitleTone:e.subtitleTone,options:i.options,maxVisible:e.maxVisible,layout:e.layout,searchable:e.searchable,subtitleActions:e.subtitleActions,detailPlacement:e.detailPlacement,onHighlight:e.onHighlight}})}catch(i){if(n)return;r.select=()=>{},t.navigate(`/dialog/select`,{replace:!0,state:{title:e.title,subtitle:`Error: ${i instanceof Error?i.message:String(i)}`,options:[{label:`Close`,value:`close`,color:`gray`}],layout:`buttons`}})}})();return}process.env.NODE_ENV!==`production`&&t.currentPath===`/dialog/select`&&e.replace!==!0&&console.warn('[openModal] Detected re-entrant openModal({ kind: "select" }) — this pushes a new dialog stack entry instead of replacing the current one. Use the `async` field for loading→content transitions, or close the current dialog before opening a new one. See RFC-285 D2.');let n=e.replace===!0&&t.currentPath===`/dialog/select`;t.navigate(`/dialog/select`,{replace:n,state:{title:e.title,subtitle:e.subtitle,subtitleTone:e.subtitleTone,options:e.options,maxVisible:e.maxVisible,searchable:e.searchable,layout:e.layout,subtitleActions:e.subtitleActions,detailPlacement:e.detailPlacement,initialFilter:e.initialFilter,onFilterChange:e.onFilterChange,onHighlight:e.onHighlight,defaultSelectedValue:e.defaultSelectedValue}}),r.select=t=>{t==null?e.onCancel?.():e.onSelect(t)};return}case`extensionDetail`:{let t=s(),n=()=>{t.goBack()};t.navigate(`/dialog/extension`,{state:{title:e.title,meta:e.meta,metaStatus:e.metaStatus,metaSuffix:e.metaSuffix,actions:e.actions,panelInfo:e.panelInfo,info:e.info,healthStats:e.healthStats,logEntries:e.logEntries,onRefresh:e.onRefresh,dataListEntries:e.dataListEntries,fullText:e.fullText,onOpenPanel:e.panelInfo?()=>u(e.panelInfo):void 0,onAction:t=>{n(),e.onAction(t)},onClose:()=>{let r=t.stack,i=r.length>=2?r[r.length-2]?.path:void 0;n(),i!==`/dialog/extensions`&&e.onClose?.()}}});return}case`pluginPanel`:u(e.panelInfo,e.onClose);return;case`extensionsList`:{let t=s();t.navigate(`/dialog/extensions`,{state:{entries:e.entries,menuContributions:e.menuContributions,lastSelectedValue:l.value,onSelect:n=>{l.value=n,n.startsWith(`contrib:`)&&t.goBack(),e.onSelect(n)},onCancel:()=>{t.goBack(),e.onCancel?.()}}});return}case`input`:return new Promise(t=>{if(e.signal?.aborted){t(null);return}let n=!1,i=e=>{n||(n=!0,r.input===i&&(s()?.goBack(),r.input=null,r.inputAction=null),t(e))};r.input=i,e.actionButton?.onPress&&(r.inputAction=e.actionButton.onPress),e.signal?.addEventListener(`abort`,()=>i(null),{once:!0}),s().navigate(`/dialog/input`,{state:{title:e.title,description:e.description,placeholder:e.placeholder,defaultValue:e.defaultValue,mask:e.mask,actionButton:e.actionButton?{label:e.actionButton.label}:void 0}})});case`onboarding`:return new Promise(t=>{let n=!1,i=e=>{n||(n=!0,r.onboarding===i&&(s()?.navigate(`/`,{reset:!0}),r.onboarding=null),t(e))};r.onboarding=i,s().navigate(`/dialog/onboarding`,{state:{onLanguagePreview:e.onLanguagePreview}})});case`questions`:return new Promise(t=>{o(!0),r.questions=(e,n)=>{t(e?{answers:e,freeformText:n}:null)},s().navigate(`/dialog/questions`,{state:{title:e.title,questions:e.questions}})});case`confirm`:{let t=s();r.confirm=()=>e.onConfirm(),r.cancel=()=>e.onCancel?.(),r.extra=e.onExtra??null;let n=t.currentPath===`/dialog/confirm`;t.navigate(`/dialog/confirm`,{replace:n,state:{title:e.title,message:e.message,confirmLabel:e.confirmLabel,cancelLabel:e.cancelLabel,confirmColor:e.confirmColor,dangerous:e.dangerous,extraLabel:e.extraLabel,extraColor:e.extraColor}});return}case`permissions`:s().navigate(`/dialog/info`,{state:{title:`Permissions`,lines:e.lines}});return;case`info`:s().navigate(`/dialog/info`,{state:{title:e.title,lines:e.lines,action:e.action,lineTones:e.lineTones,dataListEntries:e.dataListEntries}});return;case`context`:s().navigate(`/pane/context`);return;case`memory`:s().navigate(`/dialog/memory`,{state:{projectIndex:e.projectIndex,userIndex:e.userIndex,onViewEntry:e.onViewEntry,onForget:e.onForget}});return;case`keybindingPanel`:s().navigate(`/dialog/keybindings`,{state:{overrides:e.overrides,onSave:e.onSave,onSaveReplace:e.onSaveReplace,onReset:e.onReset,onResetAll:e.onResetAll}});return;case`shortcutsPanel`:s().navigate(`/dialog/shortcuts`,{state:{bindings:e.shortcuts,onSave:e.onSave,onDelete:e.onDelete}});return;case`fileViewer`:s().navigate(`/viewer/file`,{state:{path:e.path,content:e.content,preTruncated:e.preTruncated,onDismiss:e.onDismiss}});return;case`helpViewer`:s().navigate(`/viewer/help`,{state:{title:e.title,lines:e.lines,onDismiss:e.onDismiss}});return;case`progress`:{let t=s();c={title:e.title,phases:e.phases,phaseIndex:0,phaseStatuses:[`active`,`pending`,`pending`,`pending`],percent:0,detail:e.phases[0]??``,status:`running`,onDismiss:()=>{c=null}},t.navigate(`/dialog/progress`,{state:c});return}case`wizard`:{let t=s();if(t?.currentPath===`/dialog/wizard`)return;t?.navigate(`/dialog/wizard`,{state:{...e,onDismiss:()=>{t.navigate(`/`,{reset:!0}),e.onDismiss?.()},onComplete:()=>{t.navigate(`/`,{reset:!0}),e.onComplete?.()}}});return}case`a2uiForm`:{let t=s();t.navigate(`/dialog/a2ui-form`,{state:{component:e.component,onAction:(n,r,i)=>{t.goBack(),e.onAction(n,r,i)},onDismiss:()=>{t.goBack()}}});return}default:return e}}),togglePane:(e,r)=>{let a=s();if(!a)return;let o=e=>a.currentPath===e||a.currentPath.startsWith(e+`/`),c=e=>{a.currentPath===e?a.goBack():a.navigate(`/`,{reset:!0})};switch(e){case`history`:_u()?.();return;case`backgroundTasks`:{let e=`/pane/delegates`;r??!o(e)?a.navigate(e):(c(e),t.setState({backgroundOutput:null}),i());return}case`draftPane`:{let e=`/pane/draft`;r??!o(e)?a.navigate(e):c(e);return}case`queuePane`:{let e=`/pane/queue`;r??!o(e)?a.navigate(e):c(e);return}case`notifications`:r??a.currentPath!==`/pane/notifications`?a.navigate(`/pane/notifications`):(a.goBack(),n.setState({notifications:n.getState().notifications.map(e=>({...e,read:!0}))}));return;case`schedulePane`:r??a.currentPath!==`/pane/schedule`?a.navigate(`/pane/schedule`):a.goBack();return;case`perf`:r??a.currentPath!==`/pane/perf`?a.navigate(`/pane/perf`):a.goBack();return;case`cacheStats`:r??a.currentPath!==`/pane/cache`?a.navigate(`/pane/cache`):a.goBack();return;case`compactionLog`:{let e=`/pane/compaction-log`;r??!o(e)?a.navigate(e):c(e);return}case`gallery`:r??a.currentPath!==`/pane/gallery`?a.navigate(`/pane/gallery`):a.goBack();return;case`proxy`:r??a.currentPath!==`/pane/proxy`?a.navigate(`/pane/proxy`):a.goBack();return;case`prompts`:{let e=`/pane/prompts`;r??!o(e)?a.navigate(e):c(e);return}default:return e}},getNotifyStats:e.getNotifyStats,isFullScreenPaneActive:()=>a(),getCurrentPath:()=>s()?.currentPath??`/`,isForcedUpgradeActive:()=>e.taskStore.getState().forcedUpgrade!==null,openAlert:e=>{r.alert=()=>e.onOk?.(),s().navigate(`/dialog/alert`,{state:{title:e.title,message:e.message,okLabel:e.okLabel}})},openPrompt:e=>new Promise(t=>{r.prompt=t,s().navigate(`/dialog/prompt`,{state:{title:e.title,message:e.message,placeholder:e.placeholder,initialValue:e.initialValue,submitLabel:e.submitLabel,cancelLabel:e.cancelLabel}})}),updateProgress(e){if(!c)return;let t=s();if(!t){c=null;return}c={...c,...e},t.navigate(`/dialog/progress`,{replace:!0,state:c})}}}function p_(e){let{taskStore:t,state:n,notify:r,showToast:i,getRouter:a=p}=e;return{startShellExecution:e=>{n.shellTimer&&clearTimeout(n.shellTimer),t.setState({shellExecution:{command:e,output:``,status:`running`,exitCode:null}}),a()?.navigate(`/pane/shell`),r()},appendShellOutput:e=>{t.getState().shellExecution&&(t.setState({shellExecution:{...t.getState().shellExecution,output:t.getState().shellExecution.output+e}}),r())},finishShellExecution:(e,n,i)=>{t.getState().shellExecution&&(t.setState({shellExecution:{...t.getState().shellExecution,status:e===null?`error`:`done`,exitCode:e,terminated:i,output:n?t.getState().shellExecution.output+n:t.getState().shellExecution.output}}),r())},dismissShellExecution:()=>{n.shellTimer&&clearTimeout(n.shellTimer),t.setState({shellExecution:null}),a()?.currentPath===`/pane/shell`&&a()?.goBack(),n.shellTimer=null,r()},copyShellOutput:()=>{let e=t.getState().shellExecution;e&&(Xn(e.output),i(V.t(`shell.copiedTitle`),V.t(`shell.copiedBody`)))},getShellExecutionSnapshot:()=>{let e=t.getState().shellExecution;return e?{command:e.command,output:e.output,exitCode:e.exitCode,terminated:e.terminated}:null}}}function m_(e){let{notificationStore:t,state:n,counters:r,notify:i,getRouter:a=p}=e;return{showToast:(e,o)=>{n.toastTimer&&clearTimeout(n.toastTimer);let s={id:++r.toast,title:e,content:o};t.setState({toast:s}),Jr(a(),Lr,!0),n.toastTimer=setTimeout(()=>{t.setState({toast:null}),n.toastTimer=null,Jr(a(),Lr,!1),i()},jm),i()},showRetryDialog:(e,n,r,o,s,c,l)=>{t.setState({retryCountdown:{attempt:e,max:n,delayMs:r,accelerate:o,reason:c,onExpired:()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i(),s()},onStop:l?()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i(),l()}:void 0}}),Jr(a(),zr,!0),i()},clearRetryDialog:()=>{t.setState({retryCountdown:null}),Jr(a(),zr,!1),i()},showErrorRetry:e=>{let n=e=>()=>{t.setState({errorRetry:null}),Jr(a(),Br,!1),i(),e()};t.setState({errorRetry:{...e,actions:e.actions.map(e=>({...e,run:n(e.run)})),focusIndex:0,exhausted:e.exhausted??!1,onExpired:n(e.onExpired),onCancel:n(e.onCancel)}}),Jr(a(),Br,!0),i()},clearErrorRetry:()=>{t.setState({errorRetry:null}),Jr(a(),Br,!1),i()},pushNotification:(e,n,a=`system`,o=`info`)=>{t.setState({notifications:[{id:++r.notify,source:a,level:o,title:e,message:n,timestamp:Date.now(),read:!1},...t.getState().notifications.slice(0,49)]}),i()},dismissNotification:e=>{t.setState({notifications:t.getState().notifications.filter(t=>t.id!==e)}),t.getState().notifications.length===0&&a()?.goBack(),i()},markAllNotificationsRead:()=>{t.setState({notifications:t.getState().notifications.map(e=>({...e,read:!0}))}),i()}}}function h_(e){let{taskStore:t,messageStoreHandle:n,counters:r,pendingSteerMsgIds:i,scrollbackMode:a,commitToHistory:o,scanA2uiButtons:s,notify:c}=e;return{setPendingEcho:(e,r)=>{if(t.setState({pendingEcho:{text:e,mode:r}}),!a){let e=n.store.getState().messages.at(-1);e?.id?n.patchById(e.id,{streaming:!0}):n.patchLast({streaming:!0})}c()},clearPendingEcho:()=>{let e=t.getState().pendingEcho;if(e){if(a&&(o({role:`user`,content:e.text}),s()),t.setState({pendingEcho:null}),!a){let e=n.store.getState().messages.at(-1);e?.id?n.patchById(e.id,{streaming:!1}):n.patchLast({streaming:!1})}c()}},withdrawPendingEcho:()=>{if(t.getState().pendingEcho){if(t.setState({pendingEcho:null}),!a){let e=`u-${r.msg}`,t=n.store.getState().messages.findLastIndex(t=>t.id===e);if(t!==-1){let e=[...n.store.getState().messages];e.splice(t,1),n.store.setState({messages:e})}else n.removeLast()}c()}},setPendingSteer:(e,o)=>{if(t.setState({pendingSteers:[...t.getState().pendingSteers,{text:e,id:o}]}),!a){r.msg++;let t=`u-${r.msg}`;i.set(o,t),n.append({role:`user`,content:e,streaming:!0,id:t},t)}c()},commitPendingSteer:e=>{let r=t.getState().pendingSteers,l=r.find(t=>t.id===e);if(l){if(a)o({role:`user`,content:l.text}),s();else{let t=i.get(e);t&&(n.patchById(t,{streaming:!1}),i.delete(e))}t.setState({pendingSteers:r.filter(t=>t.id!==e)}),c()}},withdrawPendingSteer:e=>{let r=t.getState().pendingSteers;if(r.some(t=>t.id===e)){if(t.setState({pendingSteers:r.filter(t=>t.id!==e)}),!a){let t=i.get(e);if(t){let r=n.store.getState().messages.filter(e=>e.id!==t);n.store.setState({messages:r}),i.delete(e)}}c()}},clearPendingSteers:()=>{let e=t.getState().pendingSteers;if(e.length!==0){if(a){for(let t of e)o({role:`user`,content:t.text});s()}else for(let t of e){let e=i.get(t.id);e&&(n.patchById(e,{streaming:!1}),i.delete(t.id))}t.setState({pendingSteers:[]}),c()}}}}function g_(e){let{streamStore:t,streamTextCoalescer:n,streamThinkingCoalescer:r,outputTokensThrottle:i,perfStore:a,compactionLogStore:o,drainQueue:s,getRouterRef:c,notify:l}=e;return{pushEngineEvent:e=>{switch(e.kind){case`agentProcessing`:t.setState({processing:e.value}),e.value||s();break;case`streamingText`:n.push(e.text,e.text===``);break;case`streamingThinking`:r.push(e.text,e.text===``);break;case`activeTool`:t.setState({activeTool:e.name});break;case`spinnerMode`:t.setState(e.mode===`requesting`?{spinnerMode:e.mode,outputTokensThisTurn:0}:{spinnerMode:e.mode});break;case`outputTokensThisTurn`:i.push(e.n);break;case`maxOutputTokens`:t.setState({maxOutputTokens:e.n});break;case`toolBudget`:t.setState({toolTurnCount:e.toolTurnCount,maxToolTurns:e.maxToolTurns,promptOutputTokens:e.outputTokens??0,promptOutputTokenBudget:e.outputTokenBudget??0});break;case`perf`:{let t=!1;e.memory&&(a.setMemory(e.memory),t=!0),e.notify&&(a.setNotify(e.notify),t=!0),e.pluginMetrics&&(a.setPluginMetrics(e.pluginMetrics),t=!0),e.indicatorLevel&&a.setIndicatorLevel(e.indicatorLevel),t&&l();break}case`compactionLog`:switch(e.entryKind){case`compact`:o.recordCompaction(e.before,e.after,e.summary);break;case`prune`:o.recordPrune(e.tokensSaved,e.prunedCount??0);break;case`history_capped`:o.recordHistoryCapped(e.removedCount);break}c()?.currentPath.startsWith(`/pane/compaction-log`)&&l();break}}}}function __(e){let{modalHandleMethods:t,permResolvers:n,counters:r,taskStore:i,getRouterRef:a,notify:o,onConfirmResolve:s}=e;return{...t,resolveConfirm:e=>{s(e)},requestPermission:e=>{let t=`perm-${++r.perm}`;return new Promise(r=>{n.set(t,r);let s={id:t,tool:e.tool,input:e.input,risk:e.risk,description:e.description,alwaysAllowLabel:e.alwaysAllowLabel};i.setState({pendingPermission:s}),o(),a()?.navigate(`/dialog/permission`,{state:s})})}}}function v_(e){let{pendingMethods:t,restoreInputRef:n,pasteBridgeRef:r}=e;return{...t,restoreInputText:e=>{n.current?.fill(e)},hydratePaste:e=>{r.current?.hydrate(e)},exportPaste:()=>r.current?.export()??null}}function y_(e){let{lifecycleFlags:t,scrollbackBuffer:n,streamTextCoalescer:r,streamThinkingCoalescer:i,notifyScheduler:a,state:o,registryUnregisterAll:s,unmount:c,windowMode:l,scopedViewport:u,hasHistoryRef:d,resetStreamController:f,messageStoreHandle:p,scrollStoreHandle:m,streamStoreHandle:h,taskStoreHandle:g,notificationStoreHandle:_,perfStore:v,contextStore:y,budgetStore:b,taskStore:x,notificationStore:S,a2uiButtonsRef:C,resetStatusWidgetBreakers:w,getRouterRef:T,overlayPaths:E,syncOverlayRoute:D,notify:O,i18next:k,detectLanguage:ee,setLanguage:te,getThemeRef:A,setTerminalTitle:ne}=e;return{stop:()=>{if(!t.stopped){t.stopped=!0,t.unmounted=!0,e.detachSessionSource?.(),s();try{n.flush()}catch{}r.cancel(),i.cancel(),a.cancel(),o.toastTimer&&=(clearTimeout(o.toastTimer),null),c(),e.teardownTerminal?.(),e.onStop?.()}},clearSession:()=>{l||n.write(u?`\x1B[2J\x1B[H`:`\x1B[2J\x1B[3J\x1B[H`),d.set(!1),f(),p.reset(),m.toBottom(),h.reset(),g.reset(),_.reset(),v.reset(),y.reset(),b.reset(),x.setState({tasks:[]}),x.setState({tasksTitle:void 0}),x.setState({turnBoundaries:[]}),x.setState({editedFiles:[]}),x.setState({subagentsAccum:new Map}),S.setState({toast:null}),S.setState({retryCountdown:null}),S.setState({errorRetry:null});let e=T();if(e)for(let t of E)D(e,t,!1);S.setState({providerUsage:null}),o.toastTimer&&=(clearTimeout(o.toastTimer),null),C.current=[],s(),w(),e?.currentPath!==`/home`&&e?.navigate(`/home`,{reset:!0}),O()},setLanguage:e=>{let t=e===`auto`?ee():e;return k.changeLanguage(t),te(t),O(),t},setPresetSelection:e=>{A()?.setPresetSelection(e)},setTerminalTitle:e=>ne(e)}}function b_(e){let{messageStoreHandle:t,notify:n}=e,r=null,i=()=>{let e=r;e&&(r=null,e.stop())};return{attachSessionSource:async e=>{if(r)throw Error(`attachSessionSource: a session data source is already attached`);return r={stop:await e.start({messageStore:{setState:e=>t.store.setState(e)}})},n(),i},detachSessionSource:i}}function x_(e){let{scrollbackMode:t,commitToHistory:n,commitManyToHistory:r,messageStoreHandle:i,counters:a,getTurnMessagesFor:o,taskStore:s,notify:c,scanA2uiButtons:l}=e;return{pushMessage:e=>{if(t){n(e),c(),l();return}a.msg++,i.append(e,`m-${a.msg}`),c(),l()},pushMessages:e=>{if(e.length!==0){if(t){r(e),c(),l();return}i.appendMany(e,()=>(a.msg++,`m-${a.msg}`)),c(),l()}},echoUserInput:(e,r)=>{let o=r?.pending===!0;if(t){if(o)return;n({role:`user`,content:e}),l();return}a.msg++;let s=`u-${a.msg}`;i.append({role:`user`,content:e,streaming:o,id:s},s),c(),l()},getTurnMessages:o,getTurnBoundaries:()=>s.getState().turnBoundaries,getEditedFiles:()=>s.getState().editedFiles}}function S_(e){let{streamMethods:t,taskStore:n,notificationStore:r,notificationMethods:i,getRouterRef:a,syncOverlayRoute:o,overlayPause:s,drainQueue:c,notify:l}=e;return{pushEngineEvent:t.pushEngineEvent,hasQueuedFollowUp:()=>n.getState().queued.length>0,takeLastQueuedFollowUp:()=>{let e=n.getState().queued,t=e.at(-1);if(t)return n.setState({queued:e.slice(0,-1)}),l(),t},enqueueFollowUp:(e,t=`send`)=>{n.setState({queued:[...n.getState().queued,{text:e,mode:t}]}),l(),c()},setPauseDialog:e=>{r.setState({pauseDialog:e}),o(a(),s,!!e),l()},showRetryDialog:i.showRetryDialog,clearRetryDialog:i.clearRetryDialog,showErrorRetry:i.showErrorRetry,clearErrorRetry:i.clearErrorRetry}}function C_(e){let{modalHandleMethods:t,taskStore:n,getRouterRef:r,syncOverlayRoute:i,overlayServices:a,flushScrollbackIfIdle:o,notify:s}=e;return{togglePane:t.togglePane,setServices:e=>{i(r(),a,e),s()},switchToSubagentContext:e=>{n.setState({subagentContext:e});let t=r();e&&t?.currentPath!==`/subagent`&&t?.navigate(`/subagent`),o(),s()},toggleEditedFiles:e=>{if(n.getState().editedFiles.length===0)return;let t=r();if(!t)return;let i=`/pane/edited-files`,a=t.currentPath===i||t.currentPath.startsWith(i+`/`),o=e??!a;o&&!a?t.navigate(i):!o&&a&&t.currentPath===i&&t.goBack()},clearEditedFiles:()=>{n.setState({editedFiles:[]}),s()},removeQueuedAt:e=>{n.setState({queued:n.getState().queued.filter((t,n)=>n!==e)}),s()},clearQueue:()=>{n.setState({queued:[]}),s()},moveQueuedItem:(e,t)=>{let r=e,i=e+t;if(i<0||i>=n.getState().queued.length||r<0||r>=n.getState().queued.length)return;let a=[...n.getState().queued],[o]=a.splice(r,1);o&&a.splice(i,0,o),n.setState({queued:a}),s()}}}function w_(e){let{taskStore:t,taskStoreHandle:n,registerPlugin:r,registryUnregister:i,computeStalePluginIds:a,getRegistrySnapshot:o,getStatusItems:s,getStatusWidgets:c,resetStatusWidgetBreakers:l,registryRef:u,a2uiButtonsRef:d,subagentRestoreFields:f,notify:p}=e;return{setPluginRegistrations:e=>{let n=new Set;for(let t of e)n.add(t.pluginId),r(t.pluginId,t);for(let e of a(n,o()))i(e);l(),t.setState({pluginStatusItems:s(),statusWidgets:c()}),p()},unregisterPluginSource:e=>{i(e),l(),t.setState({pluginStatusItems:s(),statusWidgets:c()}),p()},setPluginStatusItems:e=>{n.actions.setPluginStatusItems(e.map(e=>({id:e.icon,text:e.text})))},setCommands:e=>{t.setState({commands:e}),r(`cli-commands`,{pluginId:`cli-commands`,commands:[...e]})},registerArgumentSuggester:(e,t)=>{u?.current&&u.current.registerArgumentSuggester(e,t)},setA2uiButtons:e=>{d.current=e},addSubagent:e=>{let n=new Map(t.getState().subagentsAccum);n.set(e.id,{id:e.id,command:e.name,type:`agent-session`,startedAt:e.startedAt??Date.now(),...f(e.status)}),t.setState({subagentsAccum:n}),p()},getSubagents:()=>t.getState().subagentsAccum,clearSubagents:()=>{t.setState({subagentsAccum:new Map}),p()}}}function T_(e){let{notificationMethods:t,notifyScheduler:n,taskStore:r,modalHandleMethods:i,shellMethods:a,contextStore:o,getRouterRef:s,scrollStoreHandle:c}=e;return{pushNotification:t.pushNotification,dismissNotification:t.dismissNotification,markAllNotificationsRead:t.markAllNotificationsRead,getNotifyStats:()=>n.getStats(),getCurrentPath:()=>s()?.currentPath??`/`,isForcedUpgradeActive:()=>r.getState().forcedUpgrade!==null,isFullScreenPaneActive:()=>i.isFullScreenPaneActive(),getShellExecutionSnapshot:a.getShellExecutionSnapshot,addContextTurn:e=>o.addTurn(e),markContextTurns:e=>o.markTurns(e),showToast:t.showToast,setTopView:e=>{s()?.navigate(`/`,{reset:!0}),c.toBottom(),c.setTotalLines(0)}}}function E_(e){let t=e.intervalMs??5e3,n=e.minIntervalMs??2e3,{stdout:r,enabled:i}=e,a=null,o=0,s=()=>{try{r.write(`\x1B]11;?\x07`),o=Date.now()}catch{}};return{start:()=>{i&&r.isTTY&&(a||(s(),a=setInterval(s,t),a.unref?.()))},stop:()=>{a&&=(clearInterval(a),null)},pollNow:()=>{i&&r.isTTY&&(Date.now()-o<n||s())}}}function D_(e,t,n,r,i){return{onPermissionDecision:(e,n,i)=>{let a=t.get(e);t.delete(e),r.setState({pendingPermission:null}),p()?.goBack(),a?.({approved:n,mode:i})},onSelectResolve:e=>{let t=n.select;n.select=null,p()?.goBack(),t?.(e)},onInputResolve:e=>{let t=n.input;t&&(n.input=null,p()?.currentPath===`/dialog/input`&&p()?.goBack(),t(e))},onOnboardingResolve:e=>{n.onboarding?.(e)},onInputAction:()=>{let e=n.inputAction;e?.()},onQuestionsResolve:(e,t)=>{let r=n.questions;r&&(i?.(!1),n.questions=null,p()?.currentPath===`/dialog/questions`&&p()?.goBack(),r(e,t))},onConfirmResolve:(e,t)=>{let r=n.confirm,i=n.cancel,a=n.extra;n.confirm=null,n.cancel=null,n.extra=null,p()?.currentPath===`/dialog/confirm`&&p()?.goBack(),!(!r&&!i&&!a)&&(t?a?.():e?r?.():i?.())},onAlertResolve:()=>{let e=n.alert;n.alert=null,p()?.goBack(),e?.()},onPromptResolve:e=>{let t=n.prompt;n.prompt=null,p()?.goBack(),t?.(e)},getTurnMessagesFor:t=>{let n=r.getState().turnBoundaries,i=e.getMessages(),a=t>1?n[t-2]??0:0,o=n[t-1]??i.length;return i.slice(a,o)}}}function O_(e,t,n,r,i){return()=>{if(t()||i.getState().queued.length===0)return;let[e,...a]=i.getState().queued;i.setState({queued:a}),n(),queueMicrotask(()=>r?.(e.text,e.mode))}}function k_(e){let[,t]=K(0);H.useEffect(()=>{let n=()=>t(e=>e+1);return e.state.listener=n,()=>{e.state.listener===n&&(e.state.listener=null)}},[]);let n=H.useCallback(()=>{$l(),e.taskStore.setState({backgroundOutput:null}),e.opts.onBackgroundOutputClose?.(),e.flushScrollbackIfIdle(),e.notify()},[]),r=H.useCallback(()=>{p()?.goBack(),e.taskStore.setState({backgroundOutput:null}),e.opts.onBackgroundOutputClose?.(),e.flushScrollbackIfIdle(),e.notify()},[]),i=H.useCallback(()=>{p()?.currentPath===`/subagent`&&p()?.goBack(),e.opts.onSubagentExit?.(),e.taskStore.setState({subagentContext:null}),e.flushScrollbackIfIdle(),e.notify()},[]),a=H.useCallback(()=>{e.taskStore.getState().queued.length!==0&&(e.taskStore.setState({queued:e.taskStore.getState().queued.slice(0,-1)}),e.notify())},[]),o=H.useCallback(()=>{p()?.currentPath===`/dialog/info`&&p()?.goBack(),e.notify()},[]),s=H.useCallback(()=>{p()?.currentPath===`/dialog/memory`&&p()?.goBack(),e.notify()},[]),c=H.useCallback(()=>{p()?.currentPath===`/dialog/keybindings`&&p()?.goBack(),e.notify()},[]),l=H.useCallback(()=>{p()?.currentPath===`/dialog/shortcuts`&&p()?.goBack(),e.notify()},[]),u=H.useCallback(()=>{p()?.navigate(`/pane/context/detail`)},[]),d=H.useCallback(()=>{p()?.currentPath===`/pane/context/detail`&&p()?.goBack()},[]),f=H.useCallback(()=>{let e=p();e?.currentPath.startsWith(`/pane/context`)&&e.navigate(`/`,{reset:!0})},[]),m=H.useCallback(()=>{let e=p();e&&(e.currentPath===`/pane/notifications`?e.goBack():e.navigate(`/pane/notifications`))},[]),h=H.useCallback(t=>{e.notificationStore.setState({notifications:e.notificationStore.getState().notifications.filter(e=>e.id!==t)}),e.notificationStore.getState().notifications.length===0&&p()?.goBack()},[]),g=H.useCallback(()=>{e.notificationStore.setState({notifications:e.notificationStore.getState().notifications.map(e=>({...e,read:!0}))}),p()?.goBack()},[]),_=H.useCallback(()=>{e.opts.onSubmit?.(`/upgrade`,`send`)},[]),v=H.useCallback(()=>{e.stopRef.current?.()},[]),y=H.useCallback((t,n)=>{e.state.toastTimer&&clearTimeout(e.state.toastTimer);let r={id:++e.toastCounterRef.current,title:t,content:n};e.notificationStore.setState({toast:r}),Jr(p(),Lr,!0),e.state.toastTimer=setTimeout(()=>{e.notificationStore.setState({toast:null}),e.state.toastTimer=null,Jr(p(),Lr,!1),e.notify()},jm),e.notify()},[]),b=H.useCallback(()=>{e.state.toastTimer&&(clearTimeout(e.state.toastTimer),e.state.toastTimer=null),e.notificationStore.getState().toast&&(e.notificationStore.setState({toast:null}),Jr(p(),Lr,!1),e.notify())},[]),x=e.scrollbackMode?H.useCallback(t=>{e.inkWriteRef.current=t},[]):void 0,S=e.opts.welcome?.cwd?H.useCallback(async t=>{let{content:n,truncated:r}=await tn(pn(e.opts.welcome.cwd,t));return{content:n,truncated:r}},[]):void 0,C=H.useCallback(()=>{if(e.taskStore.getState().editedFiles.length===0)return;let t=p();if(!t)return;let n=`/pane/edited-files`;t.currentPath===n||t.currentPath.startsWith(n+`/`)?t.navigate(`/`,{reset:!0}):t.navigate(n,{replace:!0})},[]),w=H.useCallback(()=>{if(e.taskStore.getState().subagentsAccum.size===0)return;let t=p();t&&(t.currentPath===`/pane/subagents`?t.navigate(`/`,{reset:!0}):t.navigate(`/pane/subagents`,{replace:!0}))},[]),T=H.useCallback(()=>{if(e.taskStore.getState().scheduleTasks.length===0)return;let t=p();t&&(t.currentPath===`/pane/schedule`?t.navigate(`/`,{reset:!0}):t.navigate(`/pane/schedule`,{replace:!0}))},[]),E=H.useCallback(e=>{let t=p();if(!t)return;let n=`/pane/draft`,r=t.currentPath===n||t.currentPath.startsWith(n+`/`),i=e??!r;i&&!r?t.navigate(n,{replace:!0}):!i&&r&&t.navigate(`/`,{reset:!0})},[]),D=H.useCallback(e=>{let t=p();if(!t)return;let n=`/pane/queue`,r=t.currentPath===n||t.currentPath.startsWith(n+`/`),i=e??!r;i&&!r?t.navigate(n,{replace:!0}):!i&&r&&t.navigate(`/`,{reset:!0})},[]),O=H.useCallback(()=>{let e=p();if(!e)return;let t=`/pane/prompts`;e.currentPath===t||e.currentPath.startsWith(t+`/`)?$l():e.navigate(t,{replace:!0})},[]),k=H.useCallback(t=>{e.opts.onDraftSave?.(t)},[]),ee=H.useCallback(t=>{let n=e.taskStore.getState().drafts[t];n&&e.opts.onDraftDelete?.(n.id)},[]),te=H.useCallback(t=>{e.opts.onDraftDeleteMany?.(t)},[]),A=H.useCallback(t=>{e.taskStore.setState({queued:e.taskStore.getState().queued.filter((e,n)=>n!==t)}),e.notify()},[]),ne=H.useCallback((t,n)=>{let r=t,i=t+n;if(i<0||i>=e.taskStore.getState().queued.length||r<0||r>=e.taskStore.getState().queued.length)return;let a=[...e.taskStore.getState().queued],[o]=a.splice(r,1);o&&a.splice(i,0,o),e.taskStore.setState({queued:a}),e.notify()},[]),j=H.useCallback((t,n)=>{let r=e.taskStore.getState().queued;if(t<0||t>=r.length)return;let i=[...r],a=i[t];a&&(i[t]={...a,text:n}),e.taskStore.setState({queued:i}),e.notify()},[]),M=H.useCallback((t,n)=>{let r=e.taskStore.getState().queued;if(t<0||t>=r.length)return;let i=r[t].mode;e.taskStore.setState({queued:r.filter((e,n)=>n!==t)}),e.notify(),e.opts.onQueueSendNow?.(n,i)},[]),re=H.useCallback(t=>{let n=e.notificationStore.getState().errorRetry;n&&(e.notificationStore.setState({errorRetry:{...n,focusIndex:t}}),e.notify())},[]),N=H.useCallback(t=>{let n=e.notificationStore.getState().pulseSurvey;n&&(e.notificationStore.setState({pulseSurvey:{...n,...t}}),e.notify())},[]),ie=H.useCallback(()=>{if(e.taskStore.getState().backgroundTasks.length===0)return;let t=p();if(!t)return;let n=`/pane/delegates`;t.currentPath===n||t.currentPath.startsWith(n+`/`)?(t.navigate(`/`,{reset:!0}),e.taskStore.setState({backgroundOutput:null}),e.flushScrollbackIfIdle()):t.navigate(n,{replace:!0})},[]),P=H.useCallback(()=>{e.state.shellTimer&&clearTimeout(e.state.shellTimer),e.taskStore.setState({shellExecution:null}),e.state.shellTimer=null,p()?.currentPath===`/pane/shell`&&p()?.goBack(),e.notify()},[]),ae=H.useCallback(()=>{let t=e.taskStore.getState().shellExecution;t&&(Xn(t.output),y(V.t(`shell.copiedTitle`),V.t(`shell.copiedBody`)))},[]);return H.useEffect(()=>{let t=null,n=()=>{t&&clearTimeout(t),t=setTimeout(()=>{let t=e.opts.columns||(e.stdout.columns>0?e.stdout.columns:process.stdout.columns>0?process.stdout.columns:80),n=e.opts.rows||(e.stdout.rows>0?e.stdout.rows:process.stdout.rows>0?process.stdout.rows:24);(t!==e.columnsRef.current||n!==e.rowsRef.current)&&(e.columnsRef.current=t,e.rowsRef.current=n,e.notify())},100)};return e.stdout.on(`resize`,n),()=>{t&&clearTimeout(t),e.stdout.off(`resize`,n)}},[]),H.createElement(pg,{columns:e.columnsRef.current,rows:e.rowsRef.current,registerWrite:e.scrollbackMode?x:void 0,maxPreviewRows:e.scrollbackMode?1:void 0,hasHistory:e.hasHistoryRef.current,messages:e.messageStore.getState().messages,scrollStore:e.scrollStore,loadHistory:e.opts.loadHistory,messageStore:e.messageStoreHandle,windowMode:e.windowMode,scrollbackMode:e.scrollbackMode,shadow:e.opts.shadow??!1,language:e.languageRef.current,systemTheme:e.systemTheme,themeRegistry:e.themeRegistry,presetSelection:e.presetSelection,keybindingOverrides:e.opts.keybindingOverrides,onCyclePermissionMode:e.opts.onCyclePermissionMode,pluginInput:e.opts.pluginInput,readFileContent:S,getTurnMessages:e.getTurnMessagesFor,editedFilesOpen:!1,onToggleEditedFiles:C,subagentsOpen:!1,onToggleSubagents:w,onToggleSchedule:T,initialHistory:e.opts.initialHistory,externalHistoryCommands:e.opts.externalHistoryCommands,onHistoryPush:e.opts.onHistoryPush,residencyGovernor:e.opts.residencyGovernor,resolveWholeFileDiff:e.opts.resolveWholeFileDiff,restoreInputRef:e.restoreInputRef,pasteBridgeRef:e.pasteBridgeRef,scheduleOpen:!1,draftOpen:!1,onToggleDraftPane:E,onDraftSave:k,onDraftDelete:ee,onDraftDeleteMany:te,onSigilSelect:e.opts.onSigilSelect,queueOpen:!1,onToggleQueuePane:D,onTogglePrompts:O,onQueueDelete:A,onQueueMove:ne,onQueueEditText:j,onQueueSendNow:M,pendingEcho:e.taskStore.getState().pendingEcho,onErrorRetryFocusChange:re,onPulseSurveyChange:N,backgroundTasksOpen:!1,onToggleDelegates:ie,onBackgroundClose:n,onBackgroundKill:e.opts.onBackgroundKill,onBackgroundViewOutput:e.opts.onBackgroundViewOutput,onBackgroundOutputClose:r,onBackgroundApply:e.opts.onBackgroundApply,onBackgroundSwitch:e.opts.onBackgroundSwitch,onBackgroundDelete:e.opts.onBackgroundDelete,onExitSubagentContext:i,onPaneOwnsViewportChange:e.scrollbackMode?e.setPaneOwnsViewport:void 0,onFocusOwnerChange:e.scrollbackMode?e.setFocusOwnerForBuffer:void 0,onScrollActiveChange:e.setScrollActive,onDelegateSupply:e.opts.onDelegateSupply,welcome:e.opts.welcome,onSessionSelect:e.opts.onSessionSelect,budgetStore:e.budgetStore,contextStore:e.contextStore,notificationStore:e.notificationStoreHandle,perfStore:e.perfStore,onPerfDismiss:()=>{p()?.currentPath===`/pane/perf`&&p()?.goBack()},cacheStore:e.cacheStore,onCacheDismiss:()=>{p()?.currentPath===`/pane/cache`&&p()?.goBack()},proxyStore:e.proxyStore,proxyOpen:!1,onProxyDismiss:()=>{p()?.goBack()},onProxyOpenModal:e.proxyOpenModal,onProxySubmitUrl:e.opts.onProxySubmitUrl,onProxyToggleEnabled:e.opts.onProxyToggleEnabled,onProxyClear:e.opts.onProxyClear,compactionLogStore:e.compactionLogStore,onCompactionLogDismiss:()=>{let e=p();e?.currentPath.startsWith(`/pane/compaction-log`)&&e.navigate(`/`,{reset:!0})},galleryStore:e.galleryStore,onGalleryDismiss:()=>{p()?.currentPath===`/pane/gallery`&&p()?.goBack()},streamStore:e.streamStoreHandle,taskStore:e.taskStoreHandle,initialPath:e.opts.initialPath,onPerfRefresh:e.opts.onPerfRefresh,onSubmit:e.submitOrQueue,onInterrupt:e.opts.onInterrupt,onWithdrawPending:e.opts.onWithdrawPending,onWithdrawSteer:e.opts.onWithdrawSteer,onPopQueued:a,onPermissionDecision:e.onPermissionDecision,onSelectResolve:e.onSelectResolve,onInputResolve:e.onInputResolve,onOnboardingResolve:e.onOnboardingResolve,onInputAction:e.onInputAction,onQuestionsResolve:e.onQuestionsResolve,onConfirmResolve:e.onConfirmResolve,onAlertResolve:e.onAlertResolve,onPromptResolve:e.onPromptResolve,onInfoDismiss:o,onMemoryDismiss:s,onKeybindingPanelDismiss:c,onShortcutsDialogDismiss:l,onViewDetails:u,onBackToContextPane:d,onContextDismiss:f,notificationsOpen:!1,onToggleNotifications:m,onDismissNotification:h,onCloseNotifications:g,onUpgrade:_,onCancelUpgrade:v,onToast:y,onDismissToast:b,registryRef:e.registryRef,shellBackendRef:e.shellBackendRef,shellExecution:e.taskStore.getState().shellExecution,onShellAbort:e.opts.onInterrupt,onShellDismiss:P,onShellCopyOutput:ae,onShellAskAi:e.opts.onShellAskAi,a2uiButtons:e.a2uiButtonsRef.current,onA2uiAction:e.a2uiActionRef.current})}function A_(){let e=Buffer.alloc(0);return t=>{let n=m(t),r=e.length?Buffer.concat([e,n]):n;e=Buffer.alloc(0);let i=r.length;i>=2&&r[i-2]===27&&r[i-1]===91&&(e=Buffer.from(r.subarray(i-2)),i-=2);let a,o=[],s=0;for(;s<i;){if(r[s]===27&&r[s+1]===91&&(r[s+2]===73||r[s+2]===79)){a=r[s+2]===73,s+=3;continue}o.push(r[s]),s++}return{focused:a,rest:Buffer.from(o)}}}var j_=class{pending=null;feed(e){let t=m(e),n=this.pending?Buffer.concat([this.pending,t]):t;this.pending=null;let r=[],i=null,a=0;for(;a<n.length;){let e=n.indexOf(`\x1B]`,a,`latin1`);if(e<0){a<n.length&&r.push(n.slice(a));break}e>a&&r.push(n.slice(a,e));let t=n.indexOf(7,e),o=n.indexOf(`\x1B\\`,e,`latin1`),s=-1,c=0;if(t>=0&&(o<0||t<o)?(s=t,c=1):o>=0&&(s=o,c=2),s<0){let t=n.slice(e);t.length>64?r.push(t):this.pending=t;break}let l=M_(n.slice(e,s).toString(`latin1`));l&&(i=l),a=s+c}return{keys:r.length>0?Buffer.concat(r):Buffer.alloc(0),osc11:i}}};function M_(e){let t=e.match(/\]11;rgb:([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)/);if(!t)return null;let n=parseInt(t[1].slice(0,2),16),r=parseInt(t[2].slice(0,2),16),i=parseInt(t[3].slice(0,2),16);return Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)?null:{r:n,g:r,b:i}}function N_(e,t,n){return .2126*e+.7152*t+.0722*n<128?`dark`:`light`}function P_(e){let{stdin:t,renderStdout:n,onInterrupt:r,onFocusChange:i,onTerminalBgDetected:a,onMouseWheel:o,onMouseDrag:s}=e,c=[],l=process.env.OTTO_TUI_MOUSE===`0`,u=(typeof o==`function`||typeof s==`function`)&&!!t.isTTY,d=u&&!l,f=u?Qg():null,p=d,h;if(d)try{n.write(Kg)}catch{}u&&(h=()=>{try{n.write(qg)}catch{}},process.once(`exit`,h));let g=e=>{if(!u)return!1;if(e===p)return p;p=e;try{n.write(e?Kg:qg)}catch{}return p},_=new j_,v=e=>{if(!a)return m(e);let{keys:t,osc11:n}=_.feed(e);return n&&a(N_(n.r,n.g,n.b)),t},y=e=>{if(!f)return v(e);let{wheels:t,drags:n,rest:r}=f(e);if(p){for(let e of t)o?.(e.delta);for(let e of n)s?.(e)}return v(r)},b=process.env.OTTO_TUI_KITTY===`1`&&!!t.isTTY,x,S=t;if(b){try{n.write(`\x1B[>1u`)}catch{}x=()=>{try{n.write(n_)}catch{}},process.once(`exit`,x);let e=o_(),i=new Sn;Object.assign(i,{isTTY:!0,setRawMode:e=>{try{t.setRawMode?.(e)}catch{}return i},ref:()=>{try{t.ref?.()}catch{}return i},unref:()=>{try{t.unref?.()}catch{}return i}});let a=t=>{let n=y(t);if(n.length===0)return;let a=e(n);a.includes(3)&&r?.(),i.write(a)};t.on(`data`,a),c.push({stream:t,fn:a}),S=i}let C=process.env.OTTO_TUI_FOCUS===`1`&&!!t.isTTY&&typeof i==`function`,w;if(C){try{n.write(`\x1B[?1004h`)}catch{}w=()=>{try{n.write(`\x1B[?1004l`)}catch{}},process.once(`exit`,w);let e=S,t=A_(),r=new Sn;Object.assign(r,{isTTY:!0,setRawMode:t=>{try{e.setRawMode?.(t)}catch{}return r},ref:()=>{try{e.ref?.()}catch{}return r},unref:()=>{try{e.unref?.()}catch{}return r}});let a=e=>{let n=y(e);if(n.length===0)return;let{focused:a,rest:o}=t(n);a!==void 0&&i?.(a),o.length&&r.write(o)};e.on(`data`,a),c.push({stream:e,fn:a}),S=r}if(!b&&!C&&(a||d)){let e=S,t=new Sn;Object.assign(t,{isTTY:!0,setRawMode:n=>(e.setRawMode?.(n),t),ref:()=>(e.ref?.(),t),unref:()=>(e.unref?.(),t)});let n=e=>{let n=y(e);n.length>0&&t.write(n)};e.on(`data`,n),c.push({stream:e,fn:n}),e.resume(),S=t}return{renderStdin:S,kittyOn:b,focusOn:C,mouseOn:d,kittyExitHandler:x,focusExitHandler:w,mouseExitHandler:h,setMouseEnabled:g,isMouseEnabled:()=>p,cleanup:()=>{for(let{stream:e,fn:t}of c)e.removeListener(`data`,t);c.length=0}}}const F_=12e3;async function I_(e){let{stdin:t,stdout:n,onStop:r}=e,i=kc(e.maxFps??30),a=e.renderMaxFps??90;Ea();let o=e.columns||(n.columns>0?n.columns:process.stdout.columns>0?process.stdout.columns:80),s=e.rows||(n.rows>0?n.rows:process.stdout.rows>0?process.stdout.rows:24),c=e.language&&e.language!==`auto`?e.language:Et();Tt(c);let l=await ae(),u=e.themeRegistry,d=e.presetSelection,f=process.env.OTTO_TUI_SCOPED_VIEWPORT!==`0`,m=Sg(n),h=()=>Math.max(1,s-1);process.once(`exit`,()=>m.exit());let g=e.scrollback===!0||process.env.OTTO_TUI_SCROLLBACK===`1`,_=e.scrollback===!1||process.env.OTTO_TUI_SCROLLBACK===`0`,v=!g&&!_,y=ir()?rr(n):n;g&&!f&&(y=sr(y));let b=e=>{y.write(e)},x=!1,{streamStoreHandle:S,streamStore:C,notificationStoreHandle:w,notificationStore:T,taskStoreHandle:E,taskStore:D,messageStoreHandle:O,messageStore:k,scrollStoreHandle:ee,budgetStore:te,contextStore:A,perfStore:ne,cacheStore:j,proxyStore:M,compactionLogStore:re,galleryStore:N,completer:ie,shellBackendRef:P,a2uiButtonsRef:oe,a2uiActionRef:se,scanA2uiButtons:ce}=yg(e),le={toastTimer:null,listener:null,shellTimer:null},ue={current:null},de={current:null},fe=process.env.OTTO_TUI_PANE_BUFFER!==`0`,me=`prompt`,he=()=>fe&&(D.getState().subagentContext!=null||D.getState().backgroundOutput!=null||D.getState().paneOwnsViewportFlag||me!==`prompt`),ge=bg({paneOwnsViewport:he,realWrite:e=>b(e)}),_e=()=>{he()||ge.flush()},ve=e=>{let t=me===`prompt`;me=e,e===`prompt`&&!t&&_e()},ye=!0,be=e=>{ye=e},xe=e=>{D.setState({paneOwnsViewportFlag:e}),e||_e()},Se={msg:0,perm:0,toast:0,notify:0},Ce=new Map,we=new Map,Te={select:null,input:null,inputAction:null,questions:null,confirm:null,cancel:null,extra:null,alert:null,prompt:null,onboarding:null},F={current:null},Ee={current:null},De=(e=>Ee.current?Ee.current.openModal(e):e.kind===`input`?Promise.resolve(null):void 0),Oe=Mc({listener:()=>le.listener?.(),intervalMs:i}),ke=()=>Oe.immediate();E.setNotify(ke),w.setNotify(ke);let{commitToHistory:Ae,commitManyToHistory:je}=d_({scrollbackBuffer:ge,getColumns:()=>o,getHasHistory:()=>x,setHasHistory:e=>{x=e},notify:ke}),{streamTextCoalescer:Me,streamThinkingCoalescer:Ne,outputTokensThrottle:Pe,resetController:Fe}=l_({streamStore:C,messageStore:k,messageStoreHandle:O,scrollbackBuffer:ge,scrollbackMode:g,coalesceMs:i,getColumns:()=>o,getHasHistory:()=>x,setHasHistory:e=>{x=e},getMsgCounter:()=>Se.msg,incMsgCounter:()=>++Se.msg,notify:ke}),Ie=()=>$i(Qi(Xi(e.isAgentBusy,C.getState().processing),!!T.getState().errorRetry),!!e.isPaused?.()),I=(t,n,r)=>{let i=ea(t,n,r??!1,{processing:Ie(),isImmediateCommand:t=>e.isImmediateCommand?.(t)??!1,isInterruptCommand:t=>e.isInterruptCommand?.(t)??!1});if(i===`queue`){D.setState({queued:[...D.getState().queued,{text:t,mode:n}]}),ke();return}e.onSubmit?.(t,n,i===`steer`?`steer`:`send`)},Le=O_(le,Ie,ke,e.onSubmit,D);E.setEffects({syncForcedUpgradeRoute:e=>Jr(p(),Hr,e),backgroundOutputRoute:e=>{e?p()?.navigate(`/pane/delegates/output`):p()?.currentPath===`/pane/delegates/output`&&p()?.goBack()},flushScrollbackIfIdle:_e,registerStatusItems:e=>Go(`cli-status`,{pluginId:`cli-status`,statusItems:[...e]})}),w.setEffects({drainQueueOnResume:()=>Le(),syncPulseSurveyRoute:e=>Jr(p(),Vr,e)});let{onPermissionDecision:Re,onSelectResolve:ze,onInputResolve:Be,onOnboardingResolve:Ve,onInputAction:He,onQuestionsResolve:Ue,onConfirmResolve:We,onAlertResolve:Ge,onPromptResolve:Ke,getTurnMessagesFor:qe}=D_({getMessages:()=>k.getState().messages},we,Te,D,xe),Je={state:le,columnsRef:{get current(){return o},set current(e){o=e}},rowsRef:{get current(){return s},set current(e){s=e}},hasHistoryRef:{get current(){return x},set current(e){x=e}},inkWriteRef:{get current(){return b},set current(e){b=e}},toastCounterRef:{get current(){return Se.toast},set current(e){Se.toast=e}},languageRef:{get current(){return c},set current(e){c=e}},systemTheme:l,themeRegistry:u,presetSelection:d,stopRef:{},taskStore:D,notificationStore:T,messageStore:k,streamStoreHandle:S,taskStoreHandle:E,notificationStoreHandle:w,messageStoreHandle:O,budgetStore:te,contextStore:A,perfStore:ne,cacheStore:j,proxyStore:M,compactionLogStore:re,galleryStore:N,opts:e,notify:ke,flushScrollbackIfIdle:_e,setPaneOwnsViewport:xe,setFocusOwnerForBuffer:ve,setScrollActive:be,getTurnMessagesFor:qe,submitOrQueue:I,onPermissionDecision:Re,onSelectResolve:ze,onInputResolve:Be,onOnboardingResolve:Ve,onInputAction:He,onQuestionsResolve:Ue,onConfirmResolve:We,onAlertResolve:Ge,onPromptResolve:Ke,proxyOpenModal:De,restoreInputRef:ue,pasteBridgeRef:de,registryRef:F,shellBackendRef:P,a2uiButtonsRef:oe,a2uiActionRef:se,scrollbackMode:g,windowMode:v,scrollStore:ee,stdout:n},Ye=()=>k_(Je),Xe=E_({stdout:y,enabled:!0}),Ze=$g(e=>{ee.dispatchWheel(e)||me===`prompt`&&ye&&ee.scrollBy(e*3)}),Qe={current:null},$e=0;ru(ee.store,()=>Qe.current?.clear());let{renderStdin:et,kittyOn:tt,focusOn:nt,mouseOn:rt,kittyExitHandler:it,focusExitHandler:at,mouseExitHandler:ot,setMouseEnabled:L,isMouseEnabled:st,cleanup:R}=P_({stdin:t,renderStdout:y,onInterrupt:e.onInterrupt,onFocusChange:e.onFocusChange,onMouseWheel:e=>Ze.push(e),onMouseDrag:e=>{Qe.current?.handleDrag(e)},onTerminalBgDetected:e=>{process.env.OTTO_DEBUG_THEME&&process.stderr.write(`[RFC-282] OSC detected: ${e} themeRef=${!!pe()}\n`),pe()?.setSystemTheme(e)}}),ct=e.concurrent??process.env.OTTO_TUI_CONCURRENT===`1`;f&&m.enter();let lt=await Ng(y);lt?.buffer.setMaxLineWidth(o),lt&&(Qe.current=Wg({buffer:lt.buffer,terminalRows:()=>h(),writeSelectionRepaint:e=>{if(e)try{y.write(e)}catch{}},writeClipboard:e=>{let t=t_(e),n=!1;try{Xn(e),n=!0}catch{n=!1}return t||n},onCopied:(e,t)=>{let n=Gg(e);if(t){$e+=1;let t=$e;D.setState({clipboardChars:n,clipboardText:e,clipboardFailed:!1,clipboardJustCopied:!0}),setTimeout(()=>{D.getState().clipboardChars===n&&D.setState({clipboardChars:0})},F_),setTimeout(()=>{$e===t&&D.setState({clipboardJustCopied:!1})},1500)}else D.setState({clipboardFailed:!0,clipboardChars:0}),setTimeout(()=>{D.getState().clipboardFailed&&D.setState({clipboardFailed:!1})},F_)}}),tu(Qe.current),lt.onDamage(e=>{Qe.current?.onFrameDamage(e)}));let{waitUntilExit:ut,unmount:dt}=zt(H.createElement(Ye),{stdout:y,stdin:et,exitOnCtrlC:!1,maxFps:a,concurrent:ct});ct&&await new Promise(e=>{let t=Date.now()+1e3,n=()=>{le.listener||Date.now()>t?e():setImmediate(n)};n()});let ft=s_({stdin:t,stdout:n,renderStdout:y,kittyOn:tt,kittyExitHandler:it,focusOn:nt,focusExitHandler:at,mouseOn:rt,mouseExitHandler:ot,onInterrupt:e.onInterrupt,unmount:()=>dt(),terminalInputCleanup:R});ft.setupRawInput(),Xe.start();let pt=()=>{Xe.pollNow();let e=n.columns>0?n.columns:o;lt?.buffer.setMaxLineWidth(e)};n.on(`resize`,pt),process.once(`exit`,()=>{n.removeListener(`resize`,pt),Xe.stop()});let mt={stopped:!1,unmounted:!1},z=!1,ht=()=>{if(z)return;z=!0;let e=e=>{try{e()}catch{}};e(()=>ft.cleanup()),e(()=>lt?.dispose()),e(()=>{m.active()||n.write(xg(h()))}),e(()=>{n.write(`\x1B[?25h`)}),e(()=>m.exit())},gt=f_({taskStore:D,notificationStore:T,cacheStore:j,proxyStore:M,resolvers:Te,getNotifyStats:()=>Oe.getStats(),flushScrollbackIfIdle:_e,paneOwnsViewport:he,setPaneOwnsViewport:xe});Ee.current=gt;let _t=p_({taskStore:D,state:le,notify:ke,showToast:(...e)=>Ot.info.showToast(...e)}),vt=m_({notificationStore:T,state:le,counters:Se,notify:ke}),yt=v_({pendingMethods:h_({taskStore:D,messageStoreHandle:O,counters:Se,pendingSteerMsgIds:Ce,scrollbackMode:g,commitToHistory:Ae,scanA2uiButtons:ce,notify:ke}),restoreInputRef:ue,pasteBridgeRef:de}),bt=b_({messageStoreHandle:O,notify:ke}),xt=y_({lifecycleFlags:mt,scrollbackBuffer:ge,streamTextCoalescer:Me,streamThinkingCoalescer:Ne,notifyScheduler:Oe,state:le,registryUnregisterAll:qo,unmount:dt,windowMode:v,scopedViewport:f,hasHistoryRef:{set:e=>{x=e}},resetStreamController:Fe,messageStoreHandle:O,scrollStoreHandle:ee,streamStoreHandle:S,taskStoreHandle:E,notificationStoreHandle:w,perfStore:ne,contextStore:A,budgetStore:te,taskStore:D,notificationStore:T,a2uiButtonsRef:oe,resetStatusWidgetBreakers:uu,getRouterRef:p,overlayPaths:Kr,syncOverlayRoute:Jr,notify:ke,i18next:V,detectLanguage:Et,setLanguage:e=>{c=e},getThemeRef:pe,setTerminalTitle:Kn,onStop:r,detachSessionSource:bt.detachSessionSource,teardownTerminal:ht}),St=C_({modalHandleMethods:gt,taskStore:D,getRouterRef:p,syncOverlayRoute:Jr,overlayServices:Wr,flushScrollbackIfIdle:_e,notify:ke}),Ct=w_({taskStore:D,taskStoreHandle:E,registerPlugin:Go,registryUnregister:Ko,computeStalePluginIds:Xo,getRegistrySnapshot:Jo,getStatusItems:Qo,getStatusWidgets:es,resetStatusWidgetBreakers:uu,registryRef:F,a2uiButtonsRef:oe,subagentRestoreFields:Do,notify:ke}),B=T_({notificationMethods:vt,notifyScheduler:Oe,taskStore:D,modalHandleMethods:gt,shellMethods:_t,contextStore:A,getRouterRef:p,scrollStoreHandle:ee}),wt=S_({streamMethods:g_({streamStore:C,streamTextCoalescer:Me,streamThinkingCoalescer:Ne,outputTokensThrottle:Pe,perfStore:ne,compactionLogStore:re,drainQueue:Le,getRouterRef:p,notify:ke}),taskStore:D,notificationStore:T,notificationMethods:vt,getRouterRef:p,syncOverlayRoute:Jr,overlayPause:Rr,drainQueue:Le,notify:ke}),Dt=x_({scrollbackMode:g,commitToHistory:Ae,commitManyToHistory:je,messageStoreHandle:O,counters:Se,getTurnMessagesFor:qe,taskStore:D,notify:ke,scanA2uiButtons:ce}),Ot={modal:__({modalHandleMethods:gt,permResolvers:we,counters:Se,taskStore:D,getRouterRef:p,notify:ke,onConfirmResolve:We}),pending:yt,lifecycle:{...xt,...bt,toggleMouse:()=>{let e=L(!st());return Ot.info.showToast(V.t(`mouse.toggleTitle`),e?V.t(`mouse.enabledBody`,{modifier:of()}):V.t(`mouse.disabledBody`)),e}},messages:Dt,engine:wt,panes:St,plugins:Ct,info:B,shell:_t,stores:{tasks:E.actions,budget:{setBudget:te.setBudget},context:{setBudget:A.setBudget,addTurn:A.addTurn,markTurns:A.markTurns},cache:{setView:j.setView},proxy:{setView:M.setView},notification:{setProviderUsage:w.setProviderUsage,setPausePending:w.setPausePending,setPaused:w.setPaused,setPulseSurvey:w.setPulseSurvey}}};return Je.stopRef.current=()=>Ot.lifecycle.stop(),ut().then(()=>{mt.unmounted||(mt.unmounted=!0,dt()),ht()}),Ot}function L_(){return{streamBuf:``,thinkBuf:``,turnStart:0,turnToolCount:0,lastTasks:[],messageIndex:0}}function R_(e,t){let n=[];e.forEach((e,t)=>{e?.role===`user`&&n.push(t)});let r=n.length,i=Math.max(t,r);if(r===0||i<=1)return[];let a=n[0],o=Array(i-1).fill(a);for(let e=0;e<r;e++){let t=i-r-1+e;t>=0&&t<o.length&&(o[t]=n[e])}return o}function z_(e){return e.filter(e=>e.status!==`done`&&e.status!==`skipped`&&e.status!==`failed`).length}function B_(e,t,n){if(t.length===0)return[...e];let r=[];e.forEach((e,t)=>{e?.role===`user`&&r.push(t)});let i=r.length,a=Math.max(n,i);if(i===0||a<=0)return[...e];let o=a-i+1,s=new Map;for(let e of t)s.set(e.turn,e);let c=new Map;for(let t of s.values()){if(t.turn<o||t.turn>a)continue;let n=t.turn-o,s=n+1<i?r[n+1]:e.length,{turn:l,...u}=t,d={role:`summary`,...u},f=c.get(s);f?f.push(d):c.set(s,[d])}if(c.size===0)return[...e];let l=[];for(let t=0;t<e.length;t++){l.push(e[t]);let n=c.get(t+1);n&&l.push(...n)}return l}function V_(e,t){let n=z_(t.lastTasks),r=e.stopReason??`completed`,i=r===`error`?`error`:r===`interrupted`?`interrupted`:n>0?`incomplete`:`done`,a={toolCount:t.turnToolCount,elapsedMs:t.turnStart>0?performance.now()-t.turnStart:0,tokensUsed:e.tokens??void 0,model:e.model||void 0,effort:e.effort||void 0,cacheHitRatio:e.cacheHitRatio??void 0};return i===`incomplete`?{...a,status:i,tasksDone:t.lastTasks.length-n,tasksTotal:t.lastTasks.length}:{...a,status:i}}function H_(e,t,n){let r=()=>{n.thinkBuf.trim()&&(t.pushMessage({role:`assistant`,content:[{type:`thinking`,thinking:n.thinkBuf}]}),n.messageIndex++),n.thinkBuf=``,t.pushEngineEvent({kind:`streamingThinking`,text:``})};switch(e.kind){case`prompt.start`:n.turnStart=performance.now(),n.turnToolCount=0,t.addTurnBoundary?.(n.messageIndex);return;case`prompt.end`:{n.thinkBuf.trim()&&(t.pushMessage({role:`assistant`,content:[{type:`thinking`,thinking:n.thinkBuf}]}),n.messageIndex++),n.streamBuf=``,n.thinkBuf=``,t.pushEngineEvent({kind:`streamingText`,text:``}),t.pushEngineEvent({kind:`streamingThinking`,text:``});let r={role:`summary`,...V_(e,n)};t.pushMessage(r),n.messageIndex++;return}case`stream.text.delta`:n.streamBuf+=e.delta,t.pushEngineEvent({kind:`streamingText`,text:n.streamBuf});return;case`stream.thinking.delta`:n.thinkBuf+=e.delta,t.pushEngineEvent({kind:`streamingThinking`,text:n.thinkBuf});return;case`stream.text.start`:r(),n.streamBuf=``;return;case`stream.text.end`:t.pushEngineEvent({kind:`streamingText`,text:``}),n.streamBuf=``;return;case`stream.thinking.start`:n.thinkBuf=``;return;case`stream.thinking.end`:r();return;case`tool.start`:t.pushEngineEvent({kind:`activeTool`,name:e.call.name});return;case`tool.end`:{if(t.pushEngineEvent({kind:`activeTool`,name:null}),n.turnToolCount++,e.suppressMessage)return;let r=e.call.arguments??{},i=r,a=i.command??i.path??i.file_path??i.pattern??i.query??JSON.stringify(r);t.pushMessage({role:`tool`,name:e.call.name,args:typeof a==`string`?a:JSON.stringify(a),argsObj:r,result:e.resultText,isError:e.isError}),n.messageIndex++;return}case`tasks.update`:n.lastTasks=e.tasks,t.setTasks(e.tasks,e.title);return;case`turn.budget`:t.pushEngineEvent({kind:`toolBudget`,toolTurnCount:e.toolTurnCount,maxToolTurns:e.maxToolTurns,outputTokens:e.outputTokens,outputTokenBudget:e.outputTokenBudget});return;case`delegate.update`:return}}function U_(e,t={}){for(let t of e){let e=t.role??`unknown`,n=t.content??[],r=Array.isArray(n)?n.filter(e=>e.type===`text`).map(e=>String(e.text??``)).join(`
108
108
  `):String(n);if(e===`user`)process.stdout.write(`\x1b[34m▸ ${r}\x1b[0m\n`);else if(e===`assistant`){process.stdout.write(`${r}\n`);let e=t.tool_calls??[];for(let t of e){let e=t.function;process.stdout.write(`\x1b[33m ⚙ ${e?.name??`unknown`}\x1b[0m\n`)}}else e===`system`?process.stdout.write(`\x1b[2m${r}\x1b[0m\n`):process.stdout.write(`${r}\n`)}}function W_(e,t){return{search:n=>Qt(e,n,t)}}function G_(e){let{transport:t,sessionId:n,onSessionEvent:r,hydrateMessages:i,onGap:a}=e;return{async start(e){let o=null,s=!1,c=!1,l=0,u=1,d=new Map,f=e=>{s||(o?.(),l=e,u=e+1,d.clear(),o=t.subscribe(n,e,e=>{if(!(s||e.seq<u||d.has(e.seq)))for(d.set(e.seq,e);d.has(u);){let e=d.get(u);d.delete(u),r(e),l=u,u+=1}},e=>{s||c||(a(e),p())}))},p=async()=>{if(!c){c=!0;try{let r=await t.fetchSnapshot(n);if(s)return;i(e,r.session.messages),f(r.cursor)}catch{a({reason:`gap`,oldestAvailable:l})}finally{c=!1}}};try{let r=await t.fetchSnapshot(n);if(s)return()=>{};i(e,r.session.messages),f(r.cursor)}catch(e){throw s=!0,e}return()=>{s=!0,o?.(),o=null}}}}function K_(e){let t=L_();return{handle(n){H_(n.payload,e,t)},reset(e=0){t={...L_(),messageIndex:e}}}}function q_(e){return{pushMessage:e.pushMessage,echoUserInput:e.echoUserInput,pushEngineEvent:e.pushEngineEvent,getNotifyStats:e.getNotifyStats,setTasks:e.setTasks,addTurnBoundary:e.addTurnBoundary}}export{Ml as AlertDialog,pg as App,ai as BASH_HISTFILE_SOURCE,jl as BashPermissionDialog,zn as BracketedPasteHandler,F as Button,mo as COMPACTING_SENTINEL,Dt as CommandRegistry,Ge as ConfirmDialog,De as Cursor,Yr as DEFAULT_SENSITIVE_PATTERNS,Oe as DIALOG_BORDER,et as DataList,R as FIGURES,li as FISH_HISTFILE_SOURCE,bt as GroupDivider,fd as Home,ne as LAYOUT,Me as MeasuredText,yl as MemoryDialog,zc as Message,mi as OTTO_SESSION_SOURCE,it as PALETTE,pt as PANEL_BORDER,Dl as PermissionDialogDialog,Nl as PromptDialog,Pi as PromptInput,Fi as QueuedCommands,dl as REPLRegion,t as SPACING,Ye as STATUS,Ac as STREAM_COALESCE_MS,_ as ScrollIndicatorAbove,C as ScrollIndicatorBelow,Pd as Segmented,Pd as Tabs,z as Select,Tc as SigilPane,bd as Spinner,I as THEME,gg as TabScope,He as Tabable,mt as TextInput,de as ThemeRegistry,Zr as ZSH_HISTFILE_SOURCE,sn as applySigilCompletion,Tr as applySlashCompletion,Qn as beginSyncFrame,V_ as buildTurnSummary,rs as clearPluginRenderers,Fc as collapseMessages,G_ as createAttachSessionDataSource,bu as createBudgetStore,Ot as createBuiltinCommands,he as createBuiltinThemeRegistry,xr as createCommandRegistry,W_ as createIncrementalSearcher,cr as createInputBuffer,ur as createInputHistory,xi as createMergedHistoryProvider,br as createPasteStore,Nc as createQueryGuard,L_ as createReducerState,Je as createSelectState,K_ as createSessionEventReduceBridge,q_ as createStoreTuiSink,D as cycleIndex,R_ as deriveTurnBoundaries,Et as detectLanguage,ut as displayWidth,Zi as effectiveBusy,$n as endSyncFrame,bi as entriesToCommands,Lc as expandCollapsed,un as extractSigilPrefix,Sr as extractSlashPrefix,Po as formatAgentDiagnosticsText,_l as formatKeyValueLines,jn as formatProviderUsageLimitTypeFull,gl as formatTranscriptText,Mo as formatTurnTimeline,Cr as getCommandSuggestions,ct as getInputViewport,Be as getKillRingEntries,Fa as getMarkdownThemeUserOverrides,sr as guardScrollbackStdout,xe as handleEditingKey,nt as handleEditingKeyExtended,V as i18next,Tt as initI18n,Dc as initStreamCommit,we as insertHistory,Ke as insertHistorySequence,B_ as insertTurnSummaries,Xr as isSensitiveCommand,Nn as isUsingOverage,jc as makeCoalescer,Mc as makeNotifyScheduler,Yt as matchSubsequence,gi as mergeHistoryEntries,wr as navigateSuggestions,ii as normalizeCommand,Oo as observationLiveFields,Ao as observationRow,Zn as osc52QuerySequence,Xn as osc52Write,Yn as osc8FilePath,Jn as osc8Hyperlink,oi as parseBashHistory,Un as parseExtendedKey,ui as parseFishHistory,ti as parseZshHistory,ht as pickInsertMode,Zt as positionsToHighlightRanges,Ee as preWrapLine,je as preWrapLines,U_ as printMessages,On as promptParentWorkspaceChoice,Tn as promptWorkspaceTrust,Qt as rankCandidates,$t as rankLabeledItems,en as rankNamedItems,H_ as reduceToTui,ns as registerPluginRenderers,Ba as renderInline,eo as renderMarkdownToLines,rc as renderMessageLines,dt as resetKillRing,te as resolveHorizontalStep,ea as routeSubmit,Ec as safeCommitBoundary,nn as scoreSubsequence,Pa as setMarkdownThemeUserOverrides,ir as shouldStripSyncOutput,qe as shouldUseViewport,kt as showCommandPalette,Yi as slashCommandName,I_ as startTui,Oc as streamCommitStep,Fe as stringWidth,or as stripScrollbackClear,nr as stripSyncSequences,rr as stripSyncStdout,Eo as subagentEntryStatus,Do as subagentRestoreFields,wt as t,Ic as toggleCollapse,Z as useAppState,hg as useTabScope,O as useTabable,er as withSyncFrame};
109
109
  //# sourceMappingURL=index.js.map